專利名稱:具有根據搜索負荷被均衡的指紋數據庫的媒體識別系統的制作方法
技術領域:
本發明一般地涉及媒體識別系統,尤其涉及對媒體識別系統用來匹配未知測試樣本的參考指紋的數據庫的管理。
背景技術:
數字指紋識別是能夠用來識別諸如音頻或視頻樣本之類的未知數字媒體樣本的處理。在示例媒體識別系統中,為可從數據文件、廣播節目、流媒體或任何各種其他媒體源獲得的多個已知媒體樣本中的每一個生成數字指紋。每個數字指紋可包含如下數據段,所述數據段含有關于媒體的樣本的特征信息,所述特征信息是從媒體樣本生成的。通過引用全部結合于此的美國專利No. 7,516,074描述了用于從數據信號生成特征數字指紋的實施例。參考指紋隨后被存儲在數據庫或儲存庫中,并通過將參考指紋與其相應的媒體樣本和/或與媒體樣本有關的元數據相關聯的方式被索引。美國專利No. 7,516,074還公開了在數據庫中索引參考指紋的實施例。參考指紋的數據庫可用來識別未知媒體樣本。為了識別未知媒體項,測試指紋從該媒體項的樣本被生成。測試指紋隨后被對照參考指紋的數據庫來進行匹配,并且如果發現匹配,則該未知媒體樣本被宣布為與匹配的參考指紋相關聯的媒體樣本。用于宣布有效匹配的各種精確匹配和模糊匹配算法及標準可被使用。通常根據指紋的普通特征(例如指紋向量的坐標或者指紋中包含的數據的某一其他部分)來在數據庫中索引參考指紋。這種類型的索引方案允許多階段匹配處理。例如, 基于該索引方案,測試指紋可被審查以確定與數據庫中的參考指紋的一個或多個候選集合的初步匹配。然后,每個被識別的候選被與測試指紋(例如逐比特地)作比較以確定是否存在匹配。通過在計算量更大的指紋比較之前縮窄為候選列表,這種多階段匹配處理避免了訪問數據庫中的每個參考指紋然后將每個參考指紋與測試指紋作比較的需要。在媒體匹配系統的某些應用中,未知媒體樣本對照已知媒體樣本的擴展集合而被匹配。例如,未知媒體樣本可以是來自在線視頻分享網站的視頻剪輯,并且這些媒體樣本可對照諸如廣播節目之類的已知媒體樣本被測試。隨著已知媒體樣本集合的增長,新的參考指紋被從這些樣本生成并且隨后被添加到參考指紋數據庫。在參考指紋的數據庫非常大的應用中,數據庫可在多個物理和/或邏輯分區(又稱為“貯存倉”(silo))上被實施。當參考數據庫包含多個分區時,參考樣本通常基于每個分區中包含的數據量基本均勻地被分布在這些分區上。用于存儲參考指紋的具體算法可取決于該參考指紋所源自的媒體樣本的源。當例如從廣播節目被獲得時,樣本可根據從其獲得這些樣本的廣播頻道或者這些樣本的任何其他元屬性而被添加到分區。雖然該算法可能易于均衡每個分區中存儲的數據量,但是它不會使數據庫的預期使用達到最優情況。這是因為實際上,媒體樣本的元屬性及其受歡迎度(popularity)之間常常存在關聯。例如,在示例媒體匹配系統中,與源自其他源相比,測試樣本常常更經常地源自一個特定的源。由于索引系統會將用于測試樣本的候選分組成分區,因此這往往會導致某些分區上的訪問負荷(例如,讀請求)比其他分區更多。基于媒體匹配系統進行的訪問所造成的某些分區上的超負荷可能導致系統的次優性能。
發明內容
當在媒體識別系統的參考數據庫中存儲參考指紋時,發明的實施例對當數據庫被媒體識別系統使用時的數據庫上的搜索負荷進行均衡。具體地,當在數據庫中存儲一個或多個新的參考指紋時,發明的實施例選擇數據庫中的用于存儲新參考指紋的一個或多個分區。所選分區是至少部分地基于媒體識別系統對分區的訪問率(例如,給定時間段中對每個分區的搜索次數)來確定的。在一個實施例中,新的參考指紋將傾向于被放置在具有比其他分區相對更低的訪問率的分區中。由于向分區添加參考指紋往往會增加該分區的訪問率,因此向數據庫的具有相對更低的訪問率的分區添加新的參考指紋將易于均衡媒體識別系統對分區的搜索負荷。在一個實施例中,該系統可以創建新分區并將新分區鏈接到現有數據庫以減輕對現有分區的搜索負荷。例如,通過將現有參考數據文件轉移到新創建的分區,所有分區的搜索負荷可以變得更均衡,從而改進整體數據庫訪問率。在另一實施例中,該系統可以通過根據對指紋的訪問率在數據庫內移動現有參考指紋來重新均衡分區上的負荷。分區可以按照關于參考數據的元信息來被分組,并且對搜索負荷的均衡可以按組的級別而不是單獨針對每個新參考指紋來進行。
圖1是根據發明實施例的媒體指紋識別系統的示意圖。圖2是根據發明實施例的參考指紋的數據庫的示意表示。圖3是用于在圖2的數據庫中存儲參考指紋的數據結構的示意表示。圖4是根據發明實施例的在指紋匹配系統中使用的數據庫的示意圖示。圖5A和圖5B是示出根據發明實施例的由用于匹配數字指紋的應用所執行的步驟的流程圖。圖6是描繪了將被存儲在數據結構中的參考指紋的候選集合的、圖3所示的數據結構的示例。圖7是根據發明實施例的用于均衡參考指紋的數據庫上的搜索負荷的方法的流程圖。這些附圖僅出于例示目的描繪了本發明的各個實施例。本領域技術人員從以下討論中將容易認識到,在不脫離本文描述的發明原理的情況下,可以采用本文例示的方法和結構的替代實施例。
具體實施例方式在數字指紋識別應用中,從未知音頻或視頻內容采樣到的數字指紋被與從已知音頻或視頻節目獲得的數字指紋的參考數據庫作比較,以便識別該未知內容。識別未知內容是所希望的,因為它可以允許未知內容的元數據被修復,或者允許控制版權保護素材的分發,以及媒體識別系統的很多其他應用。
圖1示出用于在數據庫系統中實施數字指紋識別應用的裝置。參考指紋的數據庫 100和數據庫服務器125被示出。數據庫服務器125運行從媒體樣本創建參考指紋的指紋生成算法。在一個實施例中,數據庫服務器從由廣播機130發送的廣播節目140生成參考指紋。在另一實施例中,數據庫服務器125從諸如文件分享網絡或互聯網站點之類的計算機網絡135采樣媒體內容并從所采樣的媒體內容創建參考指紋。數據庫服務器125將生成的參考指紋存儲在數據庫100上以便它們可被用于識別未知媒體樣本,如本文所描述的。圖2更詳細地示出數據庫100的一個實施例。數據庫100包括存儲在數據結構110 內的多個標準大小的參考指紋105。參考指紋105可包含音頻或視頻內容中的一部分的數字指紋。數據庫100中還包括與每個參考指紋105相關的元數據115。元數據115可包括與被歸為參考指紋105的數字媒體內容有關的信息,如標題、藝術家、流派、制作者和版權日期。元數據115可從廣播節目140被提取或以其他方式由數據庫服務器125獲得。數據庫100還包括能夠被用來識別可能與測試指紋相匹配的候選指紋的集合的多個索引120, 如本文將更詳細地描述的。索引方法被用來識別可能與測試指紋相匹配的參考指紋的候選集合。候選指紋的集合是基于它們在邏輯預定義的“存儲桶”(bucket)中的出現被識別的,每個存儲桶引用在與該存儲桶相關聯的模板所指定的某些比特位置處共享相同比特值的一組指紋。包含有其比特值與相應模板中所指定比特位置處的測試指紋相匹配的指紋的存儲桶被標記。由于指紋可在許多不同的存儲桶中被引用并且每個被標記的存儲桶指示出被該存儲桶引用的指紋是匹配物的增大的概率(increased probability),一組指紋可基于它們在最高標記的存儲桶中的重現而被識別為候選指紋集合。圖3更詳細地示出參考指紋105被存儲的數據結構110。數據結構110包括被稱為分區的多個數據儲存庫。在一個實施例中,分區200例如由LDAP協議邏輯地定義,并且每個分區200的實際數據內容可被存儲在相同或不同位置中的任何數量的物理存儲介質上。 每個分區200的內容包含參考指紋105的子集。在圖4所示的典型匹配應用中,未知媒體內容300被數據庫服務器125采樣以生成測試指紋310。未知內容300可包括從諸如允許用戶生成的數據被上傳的網站之類的網站采樣到的數字音頻或視頻數據。該采樣可由數據庫服務器125處的軟件程序或者由將測試指紋310傳送到數據庫服務器125的遠程程序自動執行。這種軟件程序可以是通常被稱為“機器人”或“蜘蛛”的自動程序,所述自動程序自動地在互聯網上爬行,以尋找被分享的音頻或視頻內容來采樣。未知內容300還可包括在文件分享網絡上被分享的數據。測試指紋310可以是從未知內容300的一部分獲得的數字指紋。多個數字指紋可以從同一音頻或視頻流獲得。在一個示例中,為每五秒的采樣內容生成一個新的測試指紋。 測試指紋310 —旦被獲得,它就可以被對照數據庫100進行匹配,以確定數據庫100中包含的參考指紋105是否與該測試指紋310相匹配。如果發現匹配,則匹配的參考指紋305的元數據115可以被審查以識別未知內容300并采取適當的其他步驟,例如,通知版權所有者、 在該內容中插入廣告或阻止該內容。測試指紋310不需要與參考指紋105完全匹配。由于未知內容300中的噪聲所造成的保真度損失或其他失真可能導致測試指紋310和相應的參考指紋105之間的差別,因此可以認為部分匹配足以用于以足夠高的確定度來識別測試指紋。
圖5A示出用于對照參考指紋105來匹配測試指紋310的方法的概況。在塊400 所示的第一步,參考指紋的候選集合500被生成。在塊405所示的第二步,測試指紋310被對照候選集合500中的每個參考指紋來進行比較以確定它們是否匹配。圖5B示出圖5A的識別步驟400的一個實施方式。在圖5B中,索引方法被用來識別參考指紋的候選集合500。每個索引120根據參考指紋的特征來索引參考指紋。例如, 索引可將對于特定坐標具有同一值的參考指紋分成組。在塊410所示的第一步,測試指紋 105被與第一索引120作比較以識別可能與該測試指紋相匹配的指紋的候選集合。如果匹配,則與索引120相關聯的參考指紋被標記,如塊420所示。對每個索引120重復該處理直到所有索引都已與測試指紋310作比較,以識別用于該測試指紋的所有可能的候選參考指紋。在該方法的最后,多個參考指紋105將被標記。由于參考指紋105可能與由多于一個索引120所定義的測試指紋310的被索引特征相匹配,因此參考指紋105可多次被標記為候選。所有候選參考指紋隨后被分組,如塊425所示。在上述步驟中,候選參考指紋在不必獲得參考指紋的實際副本的情況下通過索引被識別。然而一旦候選指紋被識別,候選參考指紋的副本就被獲得,所以匹配算法可以將每個被識別的候選指紋與測試指紋作比較以確定是否存在匹配。由于從參考數據庫獲得候選指紋的副本是讀操作,因此它可包含對數據庫中候選參考指紋所位于的分區的“訪問”,并且因而是參考數據庫的資源上的負荷。圖6通過示例示出數據結構110,其中數據結構110中的參考指紋的候選集合500 已被識別出。在圖6的示例中,四個分區200被示出,并且這四個分區200包含總共兩百個被識別的候選指紋。如從左到右所示,第一分區200包含該候選集合的一百個參考指紋,第二分區200包含十七個參考指紋,第三分區200包含一個參考指紋,并且第四分區200包含八十二個參考指紋。為了識別候選集合500中任一參考指紋是否與測試指紋310相匹配,指紋匹配算法可在測試指紋310和候選集合500中的每個參考指紋之間執行逐比特比較。這可在圖5A 所示的比較階段405期間執行。為了進行該比較,指紋匹配系統首先從每個分區200獲得候選參考指紋的副本。該讀操作可在每個分區200上并行執行;然而,比較階段的整體速度受到從最慢分區200進行讀取的速度的限制,最慢分區可能是保存了最大數目的候選指紋的分區200。在本示例中,包含較多被識別候選指紋的分區將可能比包含較少被識別候選指紋的分區花費更多的時間來將指紋提供給匹配算法。由于在本示例中候選指紋的數目沒有均勻地被均衡,因此比較的整體速度將是次優的。如果參考指紋的候選集合500更均勻地分布在各分區200上,比較階段將進行地更快。這種情況下,如果候選集合中的兩百個指紋更均勻地被分布,則每個分區將大約擁有候選集合中的五十個指紋,并且匹配的整體速度可能快得多。圖7示出根據本發明的用于均衡數據庫中的搜索負荷的計算機實現的方法的流程圖。如塊600所示,針對每個分區200監視訪問率。訪問率被確定為指紋的候選集合500 中包含的該分區上的參考指紋的平均數目,并且是在多個測試指紋310的比較過程中測得的。訪問率可在若干時間段中被測量,包括但不限于,每月、每周、每天、每小時、每分鐘或每秒。在監視對數據庫中的分區的訪問率時,數據庫服務器125可如塊610所示接收用于將新的參考指紋添加到數據庫100的請求。該請求可以是對諸如圖1所示的已知廣播 140進行采樣的結果。然后,如塊620所示,新的參考指紋被存儲在與其他分區200相比具有相對低的訪問率的至少一個分區200上。通過持續將新參考指紋存儲在具有較低訪問率的分區上,這些分區上的訪問率提高,使得它們對于大多數搜索大致保持平均,進而平均搜索速度可以提高。參考指紋還可被動態地重新分布以對分區的訪問率進行負荷均衡。代替僅將新參考指紋存儲在具有較低訪問率的分區上,還可通過將參考指紋從具有較高訪問率的分區轉移到具有較低訪問率的分區來周期性地重新均衡數據庫。這既可持續地被執行,也可在指定的預定維護時間被執行。另外,參考指紋可被成組地存儲在分區上,參考指紋的最優位置的判斷以組的級別而不是單獨針對每個參考指紋來進行。例如,當為特定一集的廣播節目生成參考指紋時, 用于該集的所有參考指紋可被存儲在具有最低訪問率的分區上。僅當下一集被廣播時,用于該段內容的新創建的參考指紋才隨后被存儲在用于該集的具有相對低的訪問率的一組分區上。作為替代,指定數目或數據大小的參考指紋可被分組在一起,以對該組將被存儲在數據庫中什么地方進行定位。在一個實施例中,隨著數據庫增長,可能希望向該組分區添加分區,而不是簡單地增加現有分區的大小。當分區被添加時,一種在數據庫系統中實現新分區的方法將參考指紋從一個或多個現有分區轉移到新分區。通過這樣做,可以預計,新分區的訪問率將與現有分區的平均訪問率大致相等或更低。已出于例示目的給出了發明的實施例的以上描述,但它不打算成為窮盡性的或將發明限制在所公開的確切形式。相關領域技術人員可以理解,鑒于以上公開,可能存在很多修改和變化。本說明書的某些部分在對信息進行的操作的符號化表示和算法方面描述了發明的實施例。這些算法描述和表示通常被數據處理領域技術人員用于將他們的工作內容有效地傳達給該領域其他技術人員。這些操作雖然是在功能上、計算上或邏輯上被描述的,但是應理解,它們可由計算機程序或等同的電子電路、微代碼等來實施。另外,也已證明,在不失一般性的情況下,有時將這些操作的裝置稱為模塊比較方便。所描述的操作和它們相關的模塊可以通過軟件、固件、硬件或其任意組合來體現。本文描述的任何步驟、操作或處理可通過一個或多個硬件或軟件模塊、單獨或與其他設備結合地被執行或實施。在一個實施例中,軟件模塊是利用包含計算機可讀介質的計算機程序產品來實施的,所述計算機可讀介質包含可以由用于執行所描述的任一或全部步驟、操作或處理的計算機處理器來運行的計算機程序代碼。發明的實施例還可與用于執行本文的操作的設備有關。該設備可針對所需目的來專門構造,并且/或者它可包含由計算機中存儲的計算機程序選擇性地激活或重新配置的通用計算設備。這種計算機程序可被存儲在有形計算機可讀存儲介質或任何類型的適于存儲電子指令并耦合到計算機系統總線的介質中。此外,說明書中所稱的任何計算系統可包括單個處理器或者可以是為了增加的計算能力而采用多處理器設計的架構。發明的實施例還可與載波中包含的計算機數據信號有關,其中計算機數據信號包括本文描述的計算機程序產品或其他數據組合的任何實施例。計算機數據信號是以有形介質或載波存在的并且在載波中被調制或以其他方式編碼的、有形的并且根據任何適當傳輸方法被傳輸的產品。 最后,說明書中使用的語言主要是出于可讀性和指導目的而選擇的,并且它不是為了描述或限制發明主題而選擇的。因此,希望發明的范圍不受該詳細描述的限制,而由基于此而提出申請的任何權利要求限制。因此,發明的實施例的公開打算例示而非限制發明的范圍,發明的范圍在所附權利要求中給出。
權利要求
1.一種用于向數據庫添加參考指紋以均衡媒體識別系統對數據庫的搜索負荷的計算機實現的方法,所述方法包括維護包含多個分區的參考數據庫,每個分區存儲從已知媒體樣本生成的參考指紋的集合;監視媒體識別系統對分區的訪問率;接收用于在所述參考數據庫中存儲一個或多個新的參考指紋的請求; 至少部分地基于對分區的訪問率來選擇所述參考數據庫的分區;以及將新的參考指紋存儲在所述參考數據庫的被選分區中。
2.根據權利要求1所述的方法,其中每個分區是邏輯地定義的所述參考數據庫的數據儲存庫。
3.根據權利要求1所述的方法,其中維護所述參考數據庫包括 按照參考指紋的特征來在所述數據庫中索引參考指紋;以及將具有相同被索引特征的參考指紋分組在所述參考數據庫的同一分區中。
4.根據權利要求1所述的方法,其中所述參考數據庫還包括與所述參考數據庫中的參考指紋所對應的所述已知媒體樣本有關的元數據。
5.根據權利要求1所述的方法,其中所述參考數據庫的特定分區的訪問率包含在指定的時間段中從該分區讀取參考指紋的請求的數目。
6.根據權利要求1所述的方法,其中參考指紋中的一個或多個是從已知音頻樣本生成的。
7.根據權利要求1所述的方法,其中參考指紋中的一個或多個是從已知視頻樣本生成的。
8.一種用于向數據庫添加參考指紋以均衡媒體識別系統對數據庫的搜索負荷的計算機程序產品,所述計算機程序產品包括含有計算機程序代碼的計算機可讀存儲介質,所述計算機程序代碼用于執行以下操作維護包含多個分區的參考數據庫,每個分區存儲從已知媒體樣本生成的參考指紋的集合;監視媒體識別系統對分區的訪問率;接收用于在所述參考數據庫中存儲一個或多個新的參考指紋的請求; 至少部分地基于對分區的訪問率來選擇所述參考數據庫的分區;以及將新的參考指紋存儲在所述參考數據庫的被選分區中。
9.根據權利要求8所述的計算機程序產品,其中每個分區是邏輯地定義的所述參考數據庫的數據儲存庫。
10.根據權利要求8所述的計算機程序產品,其中維護所述參考數據庫包括 按照參考指紋的特征來在所述數據庫中索引參考指紋;以及將具有相同被索引特征的參考指紋分組在所述參考數據庫的同一分區中。
11.根據權利要求8所述的計算機程序產品,其中所述參考數據庫還包括與所述參考數據庫中的參考指紋所對應的所述已知媒體樣本有關的元數據。
12.根據權利要求8所述的計算機程序產品,其中所述參考數據庫的特定分區的訪問率包含在指定的時間段中從該分區讀取參考指紋的請求的數目。
13.根據權利要求8所述的計算機程序產品,其中參考指紋中的一個或多個是從已知音頻樣本生成的。
14.根據權利要求8所述的計算機程序產品,其中參考指紋中的一個或多個是從已知視頻樣本生成的。
15.一種媒體識別系統,包括包含多個分區的參考數據庫,每個分區存儲從已知媒體樣本生成的參考指紋的集合;指紋匹配系統,所述指紋匹配系統被配置成通過將從未知媒體樣本生成的測試指紋與所述參考數據庫中的一個或多個參考指紋相比較來匹配該未知媒體樣本;指紋生成系統,所述指紋生成系統被配置成從已知媒體樣本生成新的參考指紋,并且還被配置成將新的參考指紋存儲在所述參考數據庫中的至少部分地基于所述指紋匹配系統對分區的訪問率而選出的分區中。
16.根據權利要求15所述的系統,其中每個分區是邏輯地定義的所述參考數據庫的數據儲存庫。
17.根據權利要求15所述的系統,其中維護所述參考數據庫包括用于按照參考指紋的特征來索引參考指紋的索引,其中具有相同被索引特征的參考指紋被分組在所述參考數據庫的同一分區中。
18.根據權利要求15所述的系統,其中所述參考數據庫還包括與所述參考數據庫中的參考指紋所對應的所述已知媒體樣本有關的元數據。
19.根據權利要求15所述的系統,其中所述參考數據庫的特定分區的訪問率包含在指定的時間段中從該分區讀取參考指紋的請求的數目。
20.根據權利要求15所述的系統,其中參考指紋中的一個或多個是從已知音頻樣本生成的。
21.根據權利要求15所述的系統,其中參考指紋中的一個或多個是從已知視頻樣本生成的。
全文摘要
媒體識別系統生成已知媒體樣本的參考指紋并將參考指紋存儲在參考數據庫中。媒體識別系統使用參考指紋來匹配從未知媒體樣本生成的指紋,以識別該未知樣本。當在指紋數據庫中存儲新參考指紋時,數據庫的分區被選擇以均衡當數據庫被媒體識別系統使用時的數據庫上的搜索負荷。例如,被選分區可至少部分地基于媒體識別系統對分區的訪問率來確定。新參考指紋將傾向于被放置在具有比其他分區相對更低的訪問率的分區中,這將易于均衡媒體識別系統對分區的搜索負荷。
文檔編號G06F15/16GK102483731SQ201080024642
公開日2012年5月30日 申請日期2010年5月11日 優先權日2009年6月11日
發明者亞當·卡漢, 尼古拉斯·斯特, 約書亞·斯莫曼, 羅布·約翰遜 申請人:雅虎公司