專利名稱:媒體指紋的搜索與存儲的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及消費電子領(lǐng)域,特別涉及一種使得數(shù)字指紋的有效搜索與存儲變得容易的方法與系統(tǒng)。
2001年5月14日由Geoffrey B.Rhoads和Kenneth L.Levy提出的美國專利申請US 2002/0032864 A1,“內(nèi)容標(biāo)識符觸發(fā)相應(yīng)響應(yīng)(CONTENT IDENTIFIERS TRIGGERING CORRESPONDINGRESPONSES)”,提出多種技術(shù)并且在這里通過引用被并入,所述技術(shù)通常用于基于數(shù)據(jù)集的內(nèi)容、例如音頻或視頻文件來創(chuàng)建一個或多個指紋。一個數(shù)據(jù)集的指紋通常被用于訪問與該數(shù)據(jù)集有關(guān)的輔助信息,諸如數(shù)據(jù)集標(biāo)題、表演藝術(shù)家、作曲家、導(dǎo)演等的標(biāo)識。另外,數(shù)據(jù)集的指紋可以被用于驗證數(shù)據(jù)集訪問權(quán)限和/或評估與這種訪問相關(guān)的費用。在本技術(shù)領(lǐng)域中,基于數(shù)據(jù)集內(nèi)容的數(shù)據(jù)集標(biāo)識符的其它用途是常見的。
通常使用的與諸如唱片和錄像等娛樂素材相關(guān)的指紋旨在唯一地標(biāo)識該唱片和錄像,并且同樣地,這些指紋相當(dāng)長。例如,針對專業(yè)/商業(yè)唱片指紋的128字節(jié)格式十分常見??梢灶A(yù)期,由成千上萬個這種指紋構(gòu)成的數(shù)據(jù)庫被用于唯一地標(biāo)識商業(yè)唱片,并且需要在大型數(shù)據(jù)庫中針對大的標(biāo)識符的有效搜索技術(shù)。
還可以預(yù)期,消費娛樂設(shè)備中會包括用于保存指紋數(shù)據(jù)庫和相應(yīng)輔助信息的存儲器,并且也將需要針對這種信息的有效存儲技術(shù)。
進(jìn)一步復(fù)雜化指紋搜索和存儲的任務(wù),可能在指紋和數(shù)據(jù)集之間不存在一一對應(yīng)。一個指紋可以基于數(shù)據(jù)集的全部內(nèi)容,或基于數(shù)據(jù)集的一個或多個選定段。由于指紋是基于數(shù)據(jù)集內(nèi)容的,對數(shù)據(jù)集采樣以獲得指紋可能為相同的數(shù)據(jù)集產(chǎn)生不同的指紋。搜索指紋數(shù)據(jù)庫以發(fā)現(xiàn)與當(dāng)前確定的指紋的一個匹配通常需要基于數(shù)據(jù)集的交替采樣對數(shù)據(jù)庫搜索多次,和/或?qū)Π粩?shù)據(jù)集的多個指紋的數(shù)據(jù)庫搜索一次。
例如,考慮一個歌曲數(shù)據(jù)庫,以及一種指紋創(chuàng)建方案,該方案為相同的歌曲平均提供10個不同的指紋。數(shù)據(jù)庫可以被構(gòu)建為針對每首歌曲包含10個最常見的指紋,也可以被構(gòu)建為針對每首歌曲包含1個最有可能的指紋。當(dāng)采樣一個至今未知的數(shù)據(jù)集以產(chǎn)生一個“搜索”指紋時,它可能會與數(shù)據(jù)庫中的一個指紋匹配,也可能不會,要么因為這首特定的歌曲沒有被包括在數(shù)據(jù)庫中,要么因為這首歌曲在數(shù)據(jù)庫中,但特定的搜索指紋不是該歌曲在數(shù)據(jù)庫中的指紋之一。當(dāng)找不到一個匹配時,典型地獲得一個新的采樣,并且如果產(chǎn)生一個新的搜索指紋,使用這個新的指紋搜索數(shù)據(jù)庫進(jìn)行匹配。擁有10個最常見的針對一首歌曲存儲在數(shù)據(jù)庫中的指紋增加快速發(fā)現(xiàn)一個匹配的可能性,但它也需要將搜索指紋與存儲指紋比較10次之多;每首歌曲僅僅存儲一個指紋減少數(shù)據(jù)庫的大小以及針對每個搜索指紋的搜索時間,但是增加了不得不使用獲取的不同指紋來執(zhí)行多次搜索的可能性。
因為多個指紋對應(yīng)于相同歌曲的可能性,所以甚至對于較小的數(shù)據(jù)庫以存在對有效搜索和存儲技術(shù)的需求,并且對于大型數(shù)據(jù)庫特別關(guān)鍵。
本發(fā)明的一個目標(biāo)是提供一種基于具有差異的指紋使數(shù)據(jù)庫搜索變得容易的方法和系統(tǒng)。本發(fā)明的另一個目標(biāo)是提供一種方便在有限大小存儲器中有效存儲指紋數(shù)據(jù)庫的方法和系統(tǒng)。
這些目標(biāo)以及其它目標(biāo)通過一種考慮到關(guān)于每個指紋的一系列變種的搜索以及通過使用一種先進(jìn)先出的存儲策略來實現(xiàn)。認(rèn)識到各種不同的指紋可以對應(yīng)同一數(shù)據(jù)集,用斷定兩個指紋匹配的寬松準(zhǔn)則來執(zhí)行指紋數(shù)據(jù)庫搜索以發(fā)現(xiàn)與目標(biāo)指紋的匹配。通過匹配“相似的”、而不是“原樣的”指紋,對于每個數(shù)據(jù)集就不需要存儲冗余的指紋。當(dāng)發(fā)現(xiàn)一個新的指紋時,使用“先進(jìn)先出(FIFO)”策略在有限的存儲空間中為存儲新的條目分配空間。
圖1示出根據(jù)本發(fā)明的搜索與存儲系統(tǒng)的示例框圖。
圖2示出根據(jù)本發(fā)明的匹配確定過程的示例流程圖。
貫穿附圖,相同的參考數(shù)字指相同的單元,或基本上執(zhí)行相同功能的單元。
圖1示出根據(jù)本發(fā)明的一個搜索與存儲系統(tǒng)100的示例框圖。系統(tǒng)100包括一個比較器150,該比較器被配置成比較目標(biāo)指紋和來自指紋數(shù)據(jù)庫140的選定指紋。一個提取器110從媒體101中提取目標(biāo)指紋,并且序列發(fā)生器120選擇性地從數(shù)據(jù)庫140中提供指紋用來與這個目標(biāo)指紋進(jìn)行比較。
根據(jù)本發(fā)明,比較器150被配置成確定目標(biāo)指紋和數(shù)據(jù)庫指紋之間的匹配,這種匹配基于指紋之間的差異量,而不僅僅基于是否存在差異。也就是說,比較器150被配置成斷定目標(biāo)指紋和數(shù)據(jù)庫指紋之間的匹配,即使在它們之間存在一些差異。在一般的情況下,比較器150包括一個識別指紋之間差異的差異確定器160,以及一個基于所識別的差異來確定差異量的測量的量化器170。
在圖1所示的例子實施例中,差異確定器160包括一個異或(XOR)裝置,該裝置識別簽名的每個不同的比特,而量化器170包括一個查找表(LUT),該查找表將比特差異映射到量化測量。差異確定器160和量化器170可以被配置成實現(xiàn)整個指紋的比較,或它們可以被配置成順序地實現(xiàn)部分指紋的比較,并且累積差異測量的累計(running sum)。例如,差異確定器160的XOR裝置可以被配置成比較指紋的每個字節(jié)來生成一個差異字節(jié),并且量化器170的查找表提供與每個差異字節(jié)對應(yīng)的比特差異數(shù)量的計數(shù)。例如差異字節(jié)00000001,00000010,...,10000000中的每一個將映射到量值“1”,指示出1比特的差異。差異字節(jié)00000011,00000101,00000110,...,11000000將映射到量值“2”,指示出2比特的差異,如此類推。在這樣一種實施例中,量化器170根據(jù)一個查找表為每個差異字節(jié)維護(hù)量值的一個運行和,從而提供指紋之間差異量的累積測量,在這個例子中,它是指紋之間不同比特總數(shù)的計數(shù)。
鑒于所公開的這種方法,測量或量化兩個指紋之間差異量的其它方法對于本領(lǐng)域中的一般技術(shù)人員是顯而易見的。例如,如果指紋中特定字要比指紋中其它字更加重要或更有特色,量化器170可以被配置成給量化測量賦予為每個字確定的不同權(quán)重。以類似的方式,可以允許在指紋的某些段中比在其它段中有更多的差異,等等。
比較器裝置180將來自量化器170的差異的量化測量與閾值Th進(jìn)行比較以確定是否檢測到一個不匹配。如果差異測量超過了閾值,則斷定不匹配。與常規(guī)的裝置相比,本發(fā)明的閾值大于零,由此在斷定不匹配的情況下允許在指紋之間存在一個或多個差異。如果比較器150被配置成順序地比較字節(jié)或字,或指紋的其它片段,并且量化器170提供差異測量的累計,那么一旦所述累計超過最大值就可以斷定不匹配。
序列發(fā)生器120被配置成控制存儲控制器130,該存儲控制器130從數(shù)據(jù)庫140中提取每個指紋以用來與目標(biāo)指紋進(jìn)行比較。在這里在一般意義上使用術(shù)語“數(shù)據(jù)庫”,以便包括那些使得信息檢索變得容易的任何信息集合。數(shù)據(jù)庫可以被存儲在一個或多個存儲裝置中,所述存儲裝置可以被配置在系統(tǒng)100的內(nèi)部或外部,或兩者兼而有之。在一個簡單的實施例中,序列發(fā)生器120僅僅以順序的方式從數(shù)據(jù)140提供每個指紋,直到比較器150發(fā)現(xiàn)一個匹配。在一個更加復(fù)雜的實施例中,可以基于比較器150所提供的結(jié)果從數(shù)據(jù)庫140中選擇每個下一指紋。例如,如果指紋是以某種順序或模式存儲在數(shù)據(jù)庫140中,比較器150可以被配置成提供來自數(shù)據(jù)庫的上一個指紋與目標(biāo)指紋之間差異的指示。在這樣一種實施例中,序列發(fā)生器可以被配置成使用特定的增量范圍來順序地搜索,所述增量范圍取決于所指示的差異。例如,如果觀察到明顯的差異,序列發(fā)生器可以使用大的增量跨度直到觀察到較小的差異。
2002年12月19日由Michael Epstein和Raymond Krasinski提出的、共同未決的美國專利申請“媒體指紋的重排序搜索”、律師記錄號US020591(702895),公開與常規(guī)的MSB到LSB的字節(jié)順序相比,通過使用字節(jié)重排序在數(shù)據(jù)庫中存儲指紋所獲得的優(yōu)點,在這里通過引用并入該專利申請。如果用常規(guī)的方式或如在共同未決的申請中所教導(dǎo)的方式來以一種排序次序存儲指紋,那么序列發(fā)生器120被配置成利用常規(guī)的排序搜索技術(shù),諸如基于來自數(shù)據(jù)庫140的先前指紋與目標(biāo)指紋之間差異符號的二分搜索來實現(xiàn)針對目標(biāo)指紋的數(shù)據(jù)庫有序搜索(如指紋提取器110和序列發(fā)生器120之間虛線箭頭所示)。因為比較器150允許存在差異,而仍然斷定兩個指紋之間匹配,所以與常規(guī)的排序搜索相比,修改由序列發(fā)生器120執(zhí)行的排序搜索。如果發(fā)現(xiàn)了匹配,則序列發(fā)生器120終止進(jìn)一步搜索,如同常規(guī)排序搜索那樣。然而,如果在序列發(fā)生器120基于使用的特定排序搜索算法所選擇的樣本中沒有發(fā)現(xiàn)匹配,可能需要窮舉搜索數(shù)據(jù)庫140以確保在數(shù)據(jù)庫140中不存在一個相近差錯(near-miss)指紋(即與目標(biāo)指紋的差異小于閾值的指紋)。
可選地,當(dāng)確定在數(shù)據(jù)庫140中無法找到一個匹配時,序列發(fā)生器120被配置成經(jīng)由存儲控制器130將該指紋以及輔助數(shù)據(jù)存儲到數(shù)據(jù)庫140中。在本發(fā)明的一個優(yōu)選實施例中,控制器130被配置成在數(shù)據(jù)庫140滿的情況下實現(xiàn)一種用于添加新指紋的先進(jìn)先出策略。其它的用于確定移除哪些信息以為新的信息讓出空間的技術(shù)對于本領(lǐng)域的技術(shù)人員是顯而易見的,包括提示用戶手動刪除一個指紋來為新指紋讓出空間。
圖2示出根據(jù)本發(fā)明的匹配確定過程的示例流程圖。在210,接收目標(biāo)指紋,并且循環(huán)220-250開始。在220,從數(shù)據(jù)庫選擇一個指紋,而在230,該指紋與目標(biāo)指紋進(jìn)行比較。如上面所提到的,本發(fā)明允許,即使在兩個指紋之間存在差異,也確定兩個指紋之間的一個匹配。在這個實施例中,用于估算簽名之間差異的量化測量是觀察到的差異的數(shù)量,諸如簽名之間不同的比特的個數(shù),或簽名之間不同的字的個數(shù),等等。
如果在240,簽名之間的差異數(shù)量大于閾值,則斷言一個不匹配,并且在220從數(shù)據(jù)庫中選擇另外一個簽名,除非在250確定了數(shù)據(jù)庫中所有的條目都不匹配。如果在250確定所有的條目都不匹配,過程在260終止,可選地通過允許用戶將與目標(biāo)指紋對應(yīng)的新信息存儲進(jìn)數(shù)據(jù)庫而終止。
如果在240,簽名之間的差異數(shù)量不大于閾值,則斷定一個匹配,并且在270提取與匹配簽名對應(yīng)的輔助信息。
然而注意到,因為可以將“相近差錯”識別為目標(biāo)指紋的一個匹配,所以相近差錯事實上可能與目標(biāo)不對應(yīng)。沒有示出,如果所檢索的信息實際上并不與目標(biāo)素材相對應(yīng)(圖1中的101),則向用戶提供將與目標(biāo)指紋相對應(yīng)的新信息作為添加或替換存儲到數(shù)據(jù)庫的選項。
前述的內(nèi)容僅僅闡述本發(fā)明的原理。因而應(yīng)認(rèn)識到,本領(lǐng)域的技術(shù)人員將能夠設(shè)計出不同的方案,這些方案雖然沒有在這里顯式地加以說明或顯示,但是體現(xiàn)本發(fā)明的原理,因而符合本發(fā)明的精神和范圍。例如,前述的閾值在這里是作為靜態(tài)值呈現(xiàn)的。本領(lǐng)域普通的技術(shù)人員將能夠意識到可以將“學(xué)習(xí)”技術(shù)應(yīng)用到系統(tǒng)100以動態(tài)地修改閾值,從而改善系統(tǒng)的性能。例如,對于相同的素材,可以基于在簽名中觀察到差異來修改閾值。如果用戶重復(fù)地識別出在匹配的指紋和目標(biāo)之間的不對應(yīng),如前面一段中討論的那樣,則例如,系統(tǒng)100可以被配置成減小閾值,要么自動地,要么由用戶許可或發(fā)起。以類似的方式,可以基于數(shù)據(jù)庫140的大小,或數(shù)據(jù)庫140內(nèi)容的分類,動態(tài)地修改閾值。以類似的方式,如果指紋是分類的或有序的,則針對不同的分類或順序可以使用不同的閾值。鑒于在這里所公布的,這些以及其它的系統(tǒng)配置和優(yōu)化特征對于本領(lǐng)域中普通的技術(shù)人員是顯而易見的,并且被包括在下面的權(quán)利要求書的范圍中。
權(quán)利要求
1.一種用于搜索多個指紋以發(fā)現(xiàn)與目標(biāo)指紋相對應(yīng)的選定指紋的系統(tǒng),包括一個比較器,所述比較器被配置成比較一個給定指紋與目標(biāo)指紋,并且當(dāng)確定了一個匹配時,將給定指紋識別為選定指紋,以及一個序列發(fā)生器,所述序列發(fā)生器將來自多個指紋的所述給定指紋提供給比較器,其中,比較器被配置成基于與給定指紋和目標(biāo)指紋之間的差異相關(guān)的量化測量來確定匹配,使得當(dāng)給定指紋和目標(biāo)指紋之間存在一個或多個差異時能夠確定匹配。
2.權(quán)利要求1的系統(tǒng),其中所述量化測量取決于給定指紋和目標(biāo)指紋之間差異的計數(shù)。
3.權(quán)利要求1的系統(tǒng),其中所述比較器被配置成通過比較量化測量和一個閾值來確定匹配。
4.權(quán)利要求3的系統(tǒng),其中系統(tǒng)還被配置成基于先前的匹配確定來動態(tài)地調(diào)整閾值。
5.權(quán)利要求1的系統(tǒng),其中所述比較器包括一個差異確定器,所述差異確定器被配置成識別給定指紋和目標(biāo)指紋之間的差異;和一個量化器,可操作地耦合到所述差異確定器,所述量化器被配置成基于識別的差異來確定量化測量。
6.權(quán)利要求5的系統(tǒng),其中所述差異確定器包括異或功能。
7.權(quán)利要求6的系統(tǒng),其中所述量化器包括一個查找表,所述查找表基于識別的差異來提供一個量值,以及所述量化器基于所述量值來確定量化測量。
8.權(quán)利要求5的系統(tǒng),其中所述量化器包括一個查找表,所述查找表基于識別的差異來提供一個量值,以及所述量化器基于所述量值來確定量化測量。
9.權(quán)利要求1的系統(tǒng),還包括一個存儲器控制器,所述存儲控制器被配置成當(dāng)確定不匹配時,將目標(biāo)指紋存儲為多個指紋的其中之一。
10.權(quán)利要求9的系統(tǒng),其中存儲器控制器被配置成使用先進(jìn)先出策略來將目標(biāo)指紋存儲在存儲器中。
11.一種用于搜索多個指紋以發(fā)現(xiàn)與目標(biāo)指紋相對應(yīng)的選定指紋的系統(tǒng),包括一個比較器,所述比較器被配置成比較一個給定指紋與目標(biāo)指紋,并且當(dāng)確定一個匹配時,將給定指紋識別為選定指紋,一個序列發(fā)生器,所述序列發(fā)生器將來自多個指紋的所述給定指紋提供給比較器,一個存儲器,所述存儲器被配置成包含多個指紋,和一個存儲器控制器,所述存儲器控制器被配置成當(dāng)確定不匹配時,使用一種先進(jìn)先出(FIFO)的策略來將目標(biāo)指紋作為多個指紋的其中之一存儲在存儲器中。
12.權(quán)利要求11的系統(tǒng),其中所述多個指紋以排序次序被存儲在存儲器中。
13.權(quán)利要求12的系統(tǒng),其中所述比較器被配置成當(dāng)在給定指紋和目標(biāo)指紋之間差異的數(shù)量小于一個閾值時確定匹配,所述閾值大于1,由此當(dāng)在給定指紋和目標(biāo)指紋之間存在一個或多個差異時允許確定匹配。
14.一種用于搜索多個指紋以發(fā)現(xiàn)與目標(biāo)指紋相對應(yīng)的選定指紋的方法,包括選擇性地將來自多個指紋的給定指紋與目標(biāo)指紋進(jìn)行比較以確定給定指紋是否是匹配指紋,其中,當(dāng)給定指紋和目標(biāo)指紋之間差異的數(shù)量小于一個閾值時,給定指紋被確定為匹配指紋,所述閾值大于1,從而當(dāng)在給定指紋和目標(biāo)指紋之間存在一個或多個差異時,允許給定指紋被確定為匹配指紋。
15.權(quán)利要求14的方法,其中給定指紋與目標(biāo)指紋的比較包括識別給定指紋和目標(biāo)指紋之間的差異,以及基于所識別的差異來量化差異的數(shù)量。
16.權(quán)利要求15的方法,其中識別差異包括實現(xiàn)給定指紋和目標(biāo)指紋的異或。
17.權(quán)利要求16的方法,其中量化差異的數(shù)量包括訪問一個查找表以基于所識別的差異來獲得一個量值。
18.權(quán)利要求17的方法,其中量化差異的數(shù)量包括訪問一個查找表以基于所識別的差異來獲得一個量值。
19.權(quán)利要求14的方法,進(jìn)一步包括當(dāng)在多個指紋中沒有發(fā)現(xiàn)匹配指紋時,將目標(biāo)指紋存儲為多個指紋的其中之一。
20.權(quán)利要求19的方法,其中存儲目標(biāo)指紋包括應(yīng)用先進(jìn)先出策略來將目標(biāo)指紋存儲在有限大小的存儲器中。
全文摘要
認(rèn)識到各種不同的指紋可以對應(yīng)同一數(shù)據(jù)集,用斷定兩個指紋匹配的寬松準(zhǔn)則來執(zhí)行指紋數(shù)據(jù)庫搜索以發(fā)現(xiàn)與目標(biāo)指紋的匹配。通過匹配“相似的”、而不是“原樣的”指紋,對于每個數(shù)據(jù)集就不需要存儲冗余的指紋。當(dāng)發(fā)現(xiàn)一個新的指紋時,使用“先進(jìn)先出(FIFO)”策略在有限的存儲空間中為存儲新的條目分配空間。
文檔編號G06F17/30GK1799049SQ200480014982
公開日2006年7月5日 申請日期2004年5月24日 優(yōu)先權(quán)日2003年5月30日
發(fā)明者M·A·埃普斯泰恩, R·J·克拉辛斯基 申請人:皇家飛利浦電子股份有限公司