專利名稱::一種建立文件特征庫索引的方法及裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)據(jù)處理技術(shù),特別是涉及一種建立文件特征庫索引的方法及裝置。
背景技術(shù):
:在實際應用中,存在這樣的應用場景由于業(yè)務需要,要對電視臺每天播^:的廣告進行統(tǒng)計,統(tǒng)計出各電視臺每天都^番;^了哪些廣告,每種廣告的播放數(shù)量是多少,等等。目前的統(tǒng)計方法是預先在數(shù)據(jù)庫中存儲要播放的所有廣告的關(guān)鍵字,然后將播放的每個廣告與數(shù)據(jù)庫中存儲的廣告關(guān)鍵字進行匹配,識別出正在播放的廣告是數(shù)據(jù)庫中的哪個廣告,進而確定這個廣告是醫(yī)藥類廣告、化妝品廣告、還是服飾類廣告,等等,便于有關(guān)人員進行統(tǒng)計。這種匹配的方法是建立在比較的基礎(chǔ)上的,在查找的過程中需要進行一系列關(guān)鍵字的比較,查找的效率依賴于查找過程中所進行的比較次數(shù)。但是,在一般的數(shù)據(jù)庫里數(shù)據(jù)的排序是無序的,如果數(shù)據(jù)庫里的第一個廣告正好可以與正在播出的廣告匹配,則花費的時間就會很短,如果數(shù)據(jù)庫里的最后一個數(shù)據(jù)可以與正在播出的廣告相匹配,則花費的時間就會很長,因此,該匹配廣告數(shù)據(jù)的方法的缺點在于,找到匹配的廣告所需的時間不能恒定,隨著廣告數(shù)量的增加,容易造成運算延遲。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題是提供一種建立文件特征庫及索引的方法及裝置,以解決現(xiàn)有技術(shù)中隨著數(shù)據(jù)量的增加,容易造成運算延遲的問題。為解決上述技術(shù)問題,本發(fā)明公開了以下技術(shù)方案一種建立文件特征庫索引的方法,包括從文件中提取至少一個用于建立索引的第一特征數(shù)據(jù);在虛擬根節(jié)點下,建立以各第一特征數(shù)據(jù)為各索引節(jié)點的多層索引結(jié)構(gòu),并由最后一個索引節(jié)點附帶用于文件匹配的第二特征翁:據(jù)。優(yōu)選的,還包括將所述第一特征數(shù)據(jù)作為哈希函數(shù)的參數(shù)計算出哈希值,將所述哈希值作為存儲地址,并將對應的第一層索引節(jié)點保存在所述存儲地址上。優(yōu)選的,還包括提取待匹配文件中用于建立索引的第一特征數(shù)據(jù),并確定第一層索引節(jié)點的存儲地址;在所述虛擬根節(jié)點下,根據(jù)所述存儲地址,將所述待匹配文件中用于建立索引的第一特征數(shù)據(jù)與各層索引數(shù)據(jù)逐層進行比較,直到找到匹配的最后一個索引節(jié)點;提取待匹配文件中用于文件匹配的第二特征數(shù)據(jù),與最后一個索引節(jié)點附帶的特征數(shù)據(jù)進行比較,得到相匹配的第二特征lt據(jù)。優(yōu)選的,所述文件包括視頻文件,則從文件中獲取至少一個用于建立索引的第一特征數(shù)據(jù)的具體實現(xiàn)包括計算每段場景的時間長度,將各時間長度作為用于建立索引的第一特征數(shù)據(jù)。優(yōu)選的,添加新的索引項時,還包括將所述新的索引項的各層節(jié)點與已經(jīng)建立的索引的各層節(jié)點進行逐層匹配,對于每一層,如果匹配成功,則進入下一層進^f亍匹配;如果匹配失敗,則將新索引的該層節(jié)點添加為上一層節(jié)點的后繼節(jié)點。一種建立文件特征庫索引的裝置,包括第一特征數(shù)據(jù)提取單元,用于從文件中提取至少一個用于建立索引的第一特征數(shù)據(jù);索引建立單元,用于在虛擬根節(jié)點下,建立以各第一特征數(shù)據(jù)為各索引節(jié)點的多層索引結(jié)構(gòu),并由最后一個索引節(jié)點附帶用于文件匹配的第二特征數(shù)據(jù)。優(yōu)選的,還包括存儲地址獲取單元,用于將所述第一特征數(shù)據(jù)作為哈希函數(shù)的參數(shù)計算出哈希值,將所述哈希值作為存儲地址;保存單元,用于將對應的第一層索引節(jié)點保存在所述存儲地址上。優(yōu)選的,還包括存儲地址確定單元,用于提取待匹配文件中用于建立索引的第一特征數(shù)據(jù),并確定第一層索引節(jié)點的存儲地址;查找單元,用于在所述虛擬根節(jié)點下,根據(jù)所述存儲地址,將所述待匹配文件中用于建立索引的第一特征數(shù)據(jù)與各層索《1數(shù)據(jù)逐層進行比較,直到找到匹配的最后一個索引節(jié)點;第二特征婆:據(jù)提取單元,用于提取待匹配文件中用于文件匹配的第二特征數(shù)據(jù);匹配數(shù)據(jù)確定單元,用于將所述第二特征數(shù)據(jù)提取單元提取的第二特征數(shù)據(jù)與最后一個索引節(jié)點附帶的第二特征數(shù)據(jù)進行比較,得到相匹配的第二特征數(shù)據(jù)。優(yōu)選的,所述文件包括視頻文件,則所述第一特征數(shù)據(jù)提取單元計算每段場景的時間長度,將各時間長度作為用于建立索引的第一特征數(shù)據(jù)。優(yōu)選的,還包括新索引項添加單元,用于將新的索引項的各層節(jié)點與已經(jīng)建立的索引的各層節(jié)點進行逐層匹配,對于每一層,如果匹配成功,則進入下一層進行匹配;如果匹配失敗,則將新索引項的該層節(jié)點添加為上一層節(jié)點的后繼節(jié)點。根據(jù)本發(fā)明提供的具體實施例,本發(fā)明公開了以下技術(shù)效果該方法4是取文件中至少一個用于建立索引的第一特征數(shù)據(jù);在虛擬^f艮節(jié)點下,將一個所述第一特征數(shù)據(jù)作為第一層索引節(jié)點,其他所述第一特征凄t據(jù)依次作為索引后繼節(jié)點,并由最后一個索引節(jié)點附帶用于文件匹配的第二特征數(shù)據(jù),建立多層索引??梢?,本發(fā)明實施例通過建立多層的索引,使得比較時從每一層都可以過濾掉很大一部分不匹配的數(shù)據(jù),這樣被過濾掉的數(shù)據(jù)不再參與下一層的比較,從而節(jié)省了搜索時間與運算時間,提高了匹配的效率。其次,由于對于每一個文件建立的索引具有相似的形式,因此使得匹配每個文件所需的時間比4交恒定。再次,通過使用哈希函數(shù)來生成第一層索引節(jié)點的地址,匹配時,可以首先在虛擬^f艮節(jié)點下找到第一層索引節(jié)點的地址,在這個地址范圍內(nèi),逐層比較各層索引節(jié)點,從而進一步節(jié)省了匹配所需的時間。另外,哈希函數(shù)的使用比較靈活,可以構(gòu)造適當?shù)腜合希函數(shù),以減少沖突的發(fā)生。圖1是本發(fā)明實施例提供的建立文件特征庫索引的方法的流程圖;圖2是本發(fā)明實施例提供的建立廣告特征庫索引的方法的流程圖;圖3是本發(fā)明實施例提供的查找與待匹配廣告的方法的流程圖;圖4是本發(fā)明實施例提供的添加新索引的方法的流程圖;圖5是本發(fā)明實施例提供的第一裝置的示意圖;圖6是本發(fā)明實施例提供的第二裝置的示意圖;圖7是本發(fā)明實施例提供的第三裝置的示意圖;圖8是本發(fā)明實施例提供的第四裝置的示意圖。具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步詳細的說明。實施例、參見圖1,本發(fā)明實施例提供的方法包括以下步驟S101:從文件中提^^至少一個用于建立索引的第一特征凝:據(jù);需要說明的是,本發(fā)明實施例中,數(shù)據(jù)庫中預先存儲的是所有文件的特征數(shù)據(jù),該數(shù)據(jù)庫稱為文件特征庫,根據(jù)特征數(shù)據(jù)便可以獲知待匹配的文件對應的是哪一個文件。以廣告文件為例,則該數(shù)據(jù)庫可以稱為廣告特征庫,庫中存儲的是所有要播放的廣告的特征數(shù)據(jù),由于廣告為視頻文件,因此其特征數(shù)據(jù)包括廣告的時間長度、切變幀數(shù)量、至少一個切變幀的統(tǒng)計直方圖數(shù)據(jù)、以及廣告的標識等。本發(fā)明實施例的目的是為該文件特征庫建立索引,對于廣告特征庫而言,建立起索引后,便可以根據(jù)該索引快速地查找到與當前播放的廣告相匹配的特征數(shù)據(jù),進而獲知在播放的是哪個廣告。其中,選擇多個用于建立索引的第一特征數(shù)據(jù)的目的是,利用這些特征數(shù)據(jù)建立多層的索引結(jié)構(gòu),使得在搜索比較的時候,在每一層都可以過濾掉一部分不匹配的文件,這樣被過濾掉的文件就不再參與下一層的運算,這樣便可以縮短搜索及運算上的時間。但是并不是所有的特征數(shù)據(jù)都需要參與建立索引,可以選取一些用于建立索引,并由索引的最后一個節(jié)點攜帶相應的特征數(shù)據(jù)即可。S102:在虛擬根節(jié)點下,建立以各第一特征數(shù)據(jù)為各節(jié)點的多層索引結(jié)構(gòu),并由最后一個節(jié)點附帶用于文件匹配的第二特征數(shù)據(jù)。其中,所述虛擬根節(jié)點是本來就存在的,即只要建立索引,就存在一個虛擬根節(jié)點。本發(fā)明實施例中所述的第一層索引節(jié)點可以看作是該虛擬根節(jié)點的孩子。程序讀取的時候總是先找一個根節(jié)點,然后去和這個根節(jié)點的孩子進行比較。所以每一次比較都是通過一個根節(jié)點去找這個根節(jié)點的孩子和根節(jié)點下的孩子進行比較。需要說明的是,本發(fā)明實施例中包括兩種特征數(shù)據(jù),一種是用于文件匹配的,這些特征數(shù)據(jù)對于每一個文件來講具有唯一性,也就是利用這些特征數(shù)據(jù)可以獲知待匹配的文件是哪一個文件;另一種是用于建立索引的,也就是索引的各個節(jié)點是由這種特征數(shù)據(jù)組成的。仍以廣告文件為例,其用于文件匹配的特征數(shù)據(jù)包括廣告的時間長度、切變幀數(shù)量、切變幀的統(tǒng)計直方圖等;而用于建立索引的第一特征數(shù)據(jù)可以是各段場景的時間長度等。因此對于不同的廣告而言,其用于建立索引的特征數(shù)據(jù)有可能是相同的,但是用于文件匹配的特征數(shù)據(jù)一定是不同的。也就是說,用于文件匹配的特征數(shù)據(jù)相當于文件的ID,對于每個文件具有唯一性。雖然索引的最后一個節(jié)點有可能附帶多個文件的特征數(shù)據(jù),但仍然可以根據(jù)特征數(shù)據(jù)進行匹配,獲得最終相匹配的特征數(shù)據(jù)。可見,本發(fā)明實施例提供的方法不一定能夠根據(jù)索引直接找到匹配的特征數(shù)據(jù),但一定可以大大縮小查找的范圍。本發(fā)明實施例選取每段場景的時間長度作為用于建立索引的第一特征數(shù)據(jù)。其中,場景是指由多個鏡頭組成的一個視頻段。劃分場景的時候通過不斷的劃分、重建、優(yōu)化,使得場景的長度盡量唯一,建立的索引盡量分散。需要注意的是,建立的多層索引結(jié)構(gòu)包括只有一層的情況,例如本發(fā)明實施例中將場景的時間長度作為用于建立索引的第一特征數(shù)據(jù)時,允許整個視頻是一個場景,而且就只有這一個場景,這樣建立的索引結(jié)構(gòu)就只有一層。為了克服一般線性表中存儲位置的隨機性,本發(fā)明實施例為每個第一層索引節(jié)點分配存儲地址。在實際應用中,該步驟可以通過函數(shù)來實現(xiàn)。例如采用哈希函數(shù),則可以將用于建立索引的第一特征數(shù)據(jù)作為哈希函數(shù)的參數(shù),計算出對應的哈希值,該哈希值便可以作為該第一層索引節(jié)點的地址。同時利用樹的函數(shù),將第一層節(jié)點及相應的各層索引后續(xù)節(jié)點建立起樹的結(jié)構(gòu),并利用排序函數(shù)進行排序,最終得到排過序的哈希樹。這樣建立起來的索引結(jié)構(gòu),將更力口Y更于進^亍查4戈。采用哈希函數(shù)進行計算時,不同的參數(shù)可能會產(chǎn)生相同的哈希值,而且映射的地址可能是一個范圍,因為是允許有一定的誤差的。例如允許誤差為0.5s,則長度為(10±0.5)s的場景都包括在10s的場景中。因此在一個口合希值下存儲的第一層索引節(jié)點會有很多個,匹配文件時,先根據(jù)虛擬根節(jié)點找到第一層索引節(jié)點的地址,然后再根據(jù)索引各節(jié)點一層一層地查找匹配的特征數(shù)據(jù)。值得注意的是,在數(shù)據(jù)存儲的過程中,經(jīng)常會產(chǎn)生沖突,這里的沖突是指一些地址上存儲了絕大多數(shù)的數(shù)據(jù)(本發(fā)明中是指第一層索引節(jié)點),而其他一些地址上存儲的數(shù)據(jù)較少。本發(fā)明實施例中可以選取均勻的哈希函數(shù),以減少沖突的發(fā)生。如上建立了文件特征庫的索引后,便可以利用該索引進行文件的匹配了,匹配時,可以獲取待匹配文件的特征數(shù)據(jù),并獲取該文件的第一層索引節(jié)點的存儲地址,在虛擬根節(jié)點下,根據(jù)所述地址,將所述待匹配文件的特征數(shù)據(jù)與各層索引數(shù)據(jù)逐層進行比較,將所述待匹配文件的特征數(shù)據(jù)與最后一層索引節(jié)點附帶的各特征數(shù)據(jù)進行比較,最終得到相匹配的特征數(shù)據(jù)。為了更好地理解本發(fā)明實施例提供的方法,下面以廣告特征庫為例進行詳細地說明。參見圖2,可以按照以下步驟為廣告特征庫中廣告A的特征數(shù)據(jù)建立索引S201:將第一段場景的時間長度作為第一個第一特征數(shù)據(jù),并保存記錄,例如第一段場景的時間長度為IOS,則可以記錄為A-1(10S),該時間長度則稱為第一個第一征凄t據(jù);S202:記錄第二段場景的時間長度為A-2(8S),該時間長度則成為第二個第一特征數(shù)據(jù);S203:記錄第三^a場景的時間長度為A-3(6S),該時間長度則成為第三個第一特征數(shù)據(jù);S204:依次進行記錄,例如廣告A—共只有四段場景,則選取該最后一段場景,并記錄其時間長度為A-4(3S),該時間長度則成為第四個第一特征數(shù)據(jù);注意,以上所述第一、第二、第三及第四段第一特征數(shù)據(jù)就是用來建立索引的第一特征數(shù)據(jù)。S205:將獲得的四個第一特征數(shù)據(jù)作為哈希函數(shù)的參數(shù),計算出哈希值,該哈希值則作為該索引的存儲地址;S206:在虛擬根節(jié)點下,將A-1(10S)作為第一層索引節(jié)點,A-2(8S)作為A-1(10S)的索引后繼節(jié)點,A-3(6S)作為A-2(8S)的索引后繼節(jié)點,A-4(3S)作為A-3(6S)的索引后繼節(jié)點,以此形成多級索引結(jié)構(gòu),存儲在所述存儲地址上。其中,A-4(3S)作為最后一個索引節(jié)點,將附帶用于廣告匹配的第二特征數(shù)據(jù)。由于每個廣告都是按照相同的方法生成哈希值,因此同一個廣告產(chǎn)生的哈希值應該是相等的,也就是只要是特征庫里的廣告,則該廣告的第一層索引節(jié)點在特征庫中存儲的地址是唯一的。利用這個特點可以在匹配時,找到待匹配的廣告的第一層索引節(jié)點存儲的地址,然后根據(jù)索S1逐層進行檢索。表1<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>表l給出了同一個哈希值確定的存儲地址下,各索引的存儲情況,可以看出每個哈希值存儲了多個第一層索引節(jié)點,每一個索引的第一層索引節(jié)點可以按照一定的順序排列起來,例如按照時間長度升序排列。每個索引的第一層索引節(jié)點作為索引的第一層數(shù)據(jù),它的子節(jié)點作為索引的第二層數(shù)據(jù),其他的后繼節(jié)點逐層類推,就建立起了一個分層的廣告特征庫索引。下面對為正在播放的廣告B查找匹配的第二特征數(shù)據(jù)的步驟進行詳細地描述參見圖3,為廣告B查找匹配的特征數(shù)據(jù)的方法包括以下步驟S301:利用與建立索引時相同的方法,計算第一段場景的時間長度(假設(shè)為IOS),保存記錄為B-1(IOS),依次類推,選取第二段、第三段、第四段場景的時間長度,并分別記錄為B-2(8S),B-3(6S),B-4(3S);S302:將B-l(10S),B-2(8S),B-3(6S),B-4(3S)作為哈希函凄t的參數(shù),計算哈希值,在廣告特征庫中查找與該哈希值相等的地址,該地址就是廣告B的第一層索引節(jié)點存儲的地址;值得注意的是,步驟S301及S302都是按照前文所述的規(guī)則進行的,因此雖然每個哈希值可能對應多個廣告的第一層索引節(jié)點,但是一個文件只能產(chǎn)生一個哈希值,因此,需要查找廣告B的特征數(shù)據(jù)時,計算出哈希值,便可以找到其第一層索引節(jié)點所在的地址,接下來再根據(jù)索引查找匹配的特征數(shù)據(jù)。S303:開始在廣告特征庫索引的第一層進行比較,找到與B-1(10S)匹配的節(jié)點,例如匹配的節(jié)點為A-1(10S);S304:在A-1(10S)的子節(jié)點中查找與B-2(8S)匹配的節(jié)點,例如匹配的節(jié)點為A-2(8S);注意,第一層索引中,除A-1(10S)之外,還包括其他節(jié)點,但按照本發(fā)明實施例的方法,在第二層索引中,只需要在A-l(10S)的子節(jié)點中進行查找,過濾掉了很大一部分數(shù)據(jù),同理,在每一層查找的時候,都會過濾掉很多的數(shù)據(jù),從而節(jié)省了查找的時間。S305:在A-2(8S)的子節(jié)點中查找與B-3(6S)匹配的節(jié)點,例如匹配的數(shù)據(jù)為A-3(6S);S306:同理,在A-3(6S)的子節(jié)點中查找與B-4(3S)匹配的節(jié)點,例如匹配的節(jié)點為A-4(3S);此時,已經(jīng)到了最后一個節(jié)點,但如前文所述,該節(jié)點可能對應多個文件的用于文件匹配的特征數(shù)據(jù),因此還需要進行以下步驟S307:提取廣告B的用于文件匹配的第二特征數(shù)據(jù);S308:將廣告B中用于文件匹配的特征數(shù)據(jù)與A-4(3S)節(jié)點附帶的特征數(shù)據(jù)進行比較,確定相匹配的特征數(shù)據(jù),這樣就能夠獲知正在播放的廣告B時哪一個廣告了。前文所述是在建立的廣告特征庫中包含了所有可能播出的廣告基礎(chǔ)上的,在實際應用中,當出現(xiàn)的新的廣告C時,則需要將該廣告添加到廣告特征庫中,并建立新的索引項,下面對該添加的步驟進4于詳細地描述。參見圖4,向廣告特征庫中添加廣告C的索引項的步驟包括S401:按照與步驟S201S205相同的方法,記錄各段場景的時間長度,設(shè)為C-1(10S),C-2(8S),C-3(6S),并計算出哈希值,根據(jù)哈希值找到其存儲地址;S402:開始在廣告特征庫索引的第一層開始比較;如果匹配失敗,也就是該層索引中不包括10S的第一層索引節(jié)點,則添加該節(jié)點;如果同一層的各節(jié)點按照時間長度升序排列,則C-l(10S)所在的位置應為在第一段場景時間長度小于10S的廣告之后,且在第一段場景的時間長度大于10S的廣告之前。找到這個位置后,將第一層索引C-1(10S)及其所有后繼節(jié)點添加進去,稱為新的索引;如果匹配成功,則進入S403;S403:匹配成功,也就是第一層索引中已經(jīng)包括了IOS的節(jié)點,如該節(jié)點為A-1(10S),則C-2(8S)在A-1(10S)的子節(jié)點中進行比較;如果匹配失敗,則將C-2(8S)及其所有后繼節(jié)點,添加到以A-l(10S)為根節(jié)點的第二層索引里,添加的位置為在第二段場景時間長度小于8S的廣告之后,且在第二段場景的時間長度大于8S的廣告之前;如果匹配成功,則進入S404;SM4:匹配成功,也就是第二層索引中包括了8S的節(jié)點,如該節(jié)點為A-2(8S),則C-3(6S)在A-2(8S)的子節(jié)點中進行比較;如果匹配失敗,則將C-3(6S)及其所有后繼節(jié)點,添加到以A-2(8S)為雙親節(jié)點的第三層索引里,添加的位置為在第三段場景時間長度小于6S的廣告之后,且在第三段場景的時間長度大于6S的廣告之前,由于該節(jié)點已經(jīng)是廣告C的最后一個節(jié)點,因此將該廣告的第二特征數(shù)據(jù)附帶在該節(jié)點C-3(6S)上;如果匹配成功,如該節(jié)點為A-3(6S),則直接將該廣告的第二特征數(shù)據(jù)附帶在節(jié)點A-3(6S)上。以上介紹了本發(fā)明實施例所提供的建立文件特征庫索引的方法,并對利用該索引進行文件匹配的過程進行了描述,與本發(fā)明實施例提供的方法相對應,本發(fā)明實施例還提供了一種建立文件特征庫索引的裝置,下面結(jié)合附圖對該裝置進行詳細地介紹。參見圖5,本發(fā)明實施例提供的建立文件特征庫索引的裝置包括第一特征數(shù)據(jù)提取單元U501,用于在文件中提取至少一個用于建立索引的第一特征數(shù)據(jù);索引建立單元U502,用于在虛擬根節(jié)點下,建立以各第一特征數(shù)據(jù)為各索引節(jié)點的多層索引結(jié)構(gòu),并由最后一個索引節(jié)點附帶用于文件匹配的第二特征數(shù)據(jù)。第一特征數(shù)據(jù)提取單元U501在文件中提取到用于建立索引的第一特征數(shù)據(jù)后,索引建立單元U502在第一特征數(shù)據(jù)提取單元U501提取的第一特征數(shù)據(jù)中選擇一個作為第一層索引節(jié)點,其他的第一特征數(shù)據(jù)依次作為索引后繼節(jié)點,并由最后一個節(jié)點附帶用于文件匹配的第二特征數(shù)據(jù),建立多層索引。為了進一步加快查找的速度,可以使用哈希函數(shù)為各第一層索引節(jié)點生成一個地址,查找時可以先找到根節(jié)點的地址,再在該地址上按照索引逐層查找。因此,參見圖6,該裝置還可以包括存儲地址獲取單元U603,用于將所述第一特征數(shù)據(jù)作為哈希函數(shù)的參數(shù)計算出哈希值,將所述哈希值作為存儲地址;保存單元U604,用于將對應的第一層索引節(jié)點保存在所述存儲地址上。其中,圖6中的第一特征數(shù)據(jù)才是取單元U601和索引建立單元U602與圖5中的第一特征數(shù)據(jù)提取單元U501和索引建立單元U502相同。建立起索引后,就可以按照建立的索引進行文件的查找了,為了查找與待匹配文件相匹配的特征數(shù)據(jù),參見圖7,該裝置還包括存儲地址確定單元U705,用于提取待匹配文件中用于建立索引的第一特征數(shù)據(jù),并確定第一層索引節(jié)點的存儲地址;查找單元U706,用于在虛擬根節(jié)點下,根據(jù)所述存儲地址,將所述待匹配文件中用于建立索引的第一特征數(shù)據(jù)與各層索引數(shù)據(jù)逐層進行比較,直到找到匹配的最后一個索引節(jié)點;第二特征數(shù)據(jù)提取單元U707,用于提取待匹配文件中用于文件匹配的第二特征數(shù)據(jù);匹配數(shù)據(jù)確定單元U708,用于將所述第二特征數(shù)據(jù)提取單元提取的第二特征數(shù)據(jù)與最后一個索引節(jié)點附帶的第二特征數(shù)據(jù)進行比較,得到相匹配的第二特征數(shù)據(jù)。存儲地址確定單元U705在待匹配文件中提取用于建立索引的第一特征數(shù)據(jù),此時提取的第一特征數(shù)據(jù)與建立索引時提取的特征數(shù)據(jù)相同,因此將這些特征數(shù)據(jù)作為哈希函數(shù)的參數(shù)進行計算得到的哈希值,與第一層索引節(jié)點的存儲地址對應的哈希值相等,以此便可以確定第一層索引節(jié)點的存儲地址;確定好第一層索引節(jié)點的地址后,查找單元U706便可以在虛擬根節(jié)點下,根據(jù)所述存儲地址,將所述待匹配文件中用于建立索引的第一特征數(shù)據(jù)與各層索引數(shù)據(jù)逐層進行比較,找到匹配的最后一個索引節(jié)點;由于最后一個索引節(jié)點可能攜帶有多個文件的特征數(shù)據(jù),因此找到最后一個索引節(jié)點后,還要進行第二特征數(shù)據(jù)的匹配,此時第二特征數(shù)據(jù)提取單元U707提取待匹配文件中用于文件匹配的第二特征數(shù)據(jù),然后匹配數(shù)據(jù)確定單元U708將所述提取的第二特征數(shù)據(jù)與最后一個索引節(jié)點附帶的第二特征數(shù)據(jù)進行比較,得到相匹配的第二特征數(shù)據(jù)。其中,圖7中的第一特征數(shù)據(jù)提取單元U701、索引建立單元U702、存儲地址獲取單元U703和保存單元U704,與圖6中的第一特征數(shù)據(jù)提取單元U601和索引建立單元U602、存儲地址獲取單元U603和保存單元U604相同。當建立索引的文件為廣告文件等視頻文件時,可以選擇各段場景的時間長度作為用于建立索引的第一特征數(shù)據(jù),此時,第一特征數(shù)據(jù)提取單元U701計算每個場景的時間長度,將各時間長度作為用于建立索引的第一特征數(shù)據(jù)。當需要在文件特征庫中添加新的索引項時,參見圖8,該裝置還包括新索引項添加單元U803,用于將新索引項的各層節(jié)點與已經(jīng)建立的索引的各層節(jié)點進行逐層匹配,對于每一層,如果匹配成功,則進入下一層進行匹配;如果匹配失敗,則將新索引項的該層節(jié)點添加為上一層節(jié)點的后繼節(jié)點。其中,圖8中的第一特征數(shù)據(jù)提取單元U801和索引建立單元U802,與圖5中的第一特征數(shù)據(jù)提取單元U501和索引建立單元U502相同。以上對本發(fā)明所提供的一種建立文件特征庫索引的方法及裝置,進行了詳實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應用范圍上均會有改變之處。綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。權(quán)利要求1、一種建立文件特征庫索引的方法,其特征在于,包括從文件中提取至少一個用于建立索引的第一特征數(shù)據(jù);在虛擬根節(jié)點下,建立以各第一特征數(shù)據(jù)為各索引節(jié)點的多層索引結(jié)構(gòu),并由最后一個索引節(jié)點附帶用于文件匹配的第二特征數(shù)據(jù)。2、根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括將所述第一特征數(shù)據(jù)作為哈希函數(shù)的參數(shù)計算出哈希值,將所述哈希值作為存儲地址,并將對應的第一層索引節(jié)點保存在所述存儲地址上。3、根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括提取待匹配文件中用于建立索引的第一特征數(shù)據(jù),并確定第一層索引節(jié)點的存儲地址;在所述虛擬根節(jié)點下,根據(jù)所述存儲地址,將所述待匹配文件中用于建立索引的第一特征數(shù)據(jù)與各層索?1數(shù)據(jù)逐層進行比較,直到找到匹配的最后一個索引節(jié)點;提取待匹配文件中用于文件匹配的第二特征數(shù)據(jù),與最后一個索引節(jié)點附帶的特征數(shù)據(jù)進行比較,得到相匹配的第二特征數(shù)據(jù)。4、根據(jù)權(quán)利要求1所述的方法,其特征在于,所述文件包括視頻文件,則從文件中獲取至少一個用于建立索引的第一特征數(shù)據(jù)的具體實現(xiàn)包括計算每段場景的時間長度,將各時間長度作為用于建立索引的第一特征數(shù)據(jù)。5、根據(jù)權(quán)利要求1所述的方法,其特征在于,添加新的索引項時,還包括將所述新的索引項的各層節(jié)點與已經(jīng)建立的索引的各層節(jié)點進行逐層匹配,對于每一層,如果匹配成功,則進入下一層進行匹配;如果匹配失敗,則將新索引的該層節(jié)點添加為上一層節(jié)點的后繼節(jié)點。6、一種建立文件特征庫索引的裝置,其特征在于,包括第一特征數(shù)據(jù)提取單元,用于從文件中提取至少一個用于建立索引的第一特征數(shù)據(jù);索引建立單元,用于在虛擬根節(jié)點下,建立以各第一特征數(shù)據(jù)為各索引節(jié)點的多層索引結(jié)構(gòu),并由最后一個索引節(jié)點附帶用于文件匹配的第二特征數(shù)據(jù)。7、根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括存儲地址獲取單元,用于將所述第一特征數(shù)據(jù)作為哈希函數(shù)的參數(shù)計算出哈希值,將所述哈希值作為存儲地址;保存單元,用于將對應的第一層索引節(jié)點保存在所述存儲地址上。8、根據(jù)權(quán)利要求7所述的裝置,其特征在于,還包括存儲地址確定單元,用于提取待匹配文件中用于建立索引的第一特征數(shù)據(jù),并確定第一層索引節(jié)點的存儲地址;查找單元,用于在所述虛擬根節(jié)點下,根據(jù)所述存儲地址,將所述待匹配文件中用于建立索引的第一特征數(shù)據(jù)與各層索《1數(shù)據(jù)逐層進行比較,直到找到匹配的最后一個索引節(jié)點;第二特征數(shù)據(jù)提取單元,用于提取待匹配文件中用于文件匹配的第二特征數(shù)據(jù);匹配數(shù)據(jù)確定單元,用于將所述第二特征數(shù)據(jù)提取單元提取的第二特征數(shù)據(jù)與最后一個索引節(jié)點附帶的第二特征數(shù)據(jù)進行比較,得到相匹配的第二特征數(shù)據(jù)。9、才艮據(jù)權(quán)利要求6所述的裝置,其特征在于,所述文件包括視頻文件,則所述第一特征數(shù)據(jù)提取單元計算每段場景的時間長度,將各時間長度作為用于建立索引的第一特征數(shù)據(jù)。10、根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括新索引項添加單元,用于將新的索引項的各層節(jié)點與已經(jīng)建立的索引的各層節(jié)點進行逐層匹配,對于每一層,如果匹配成功,則進入下一層進行匹酉己;如果匹配失敗,則將新索引項的該層節(jié)點添加為上一層節(jié)點的后繼節(jié)點。全文摘要本發(fā)明公開了一種建立文件特征庫索引的方法,該方法從文件中提取至少一個用于建立索引的第一特征數(shù)據(jù);在虛擬根節(jié)點下,建立以各第一特征數(shù)據(jù)為各索引節(jié)點的多層索引結(jié)構(gòu),并由最后一個索引節(jié)點附帶用于文件匹配的第二特征數(shù)據(jù)。本發(fā)明還公開了一種建立文件特征庫索引的裝置。通過本發(fā)明實施例,使得比較時從索引的每一層都可以過濾掉很大一部分不匹配的數(shù)據(jù),這樣被過濾掉的數(shù)據(jù)不再參與下一層的比較,從而節(jié)省了搜索時間與運算時間,提高了匹配的效率。文檔編號G06F17/30GK101388042SQ200810222369公開日2009年3月18日申請日期2008年9月17日優(yōu)先權(quán)日2008年9月17日發(fā)明者蔣亞洪申請人:北京六維世紀網(wǎng)絡技術(shù)有限公司