專利名稱:矢量量化代碼本產(chǎn)生方法
技術(shù)領(lǐng)域:
本發(fā)明涉及矢量量化數(shù)據(jù)壓縮,特別涉及一種用于矢量量化數(shù)據(jù)壓縮的代碼本構(gòu)成方法,以及所構(gòu)成的代碼本。
當(dāng)存儲或發(fā)送大量數(shù)字?jǐn)?shù)據(jù)時,通常需要能夠把該數(shù)據(jù)有效地壓縮到最大程度以減少存儲空間或傳輸時間。當(dāng)要處理數(shù)字視頻圖像時,這通常涉及必須以高速度處理的極大量的數(shù)據(jù),則對壓縮的需要就特別強烈(特別對于象可視電話通信這樣的實時應(yīng)用中)。
一種用于壓縮數(shù)字視頻的技術(shù)稱為“矢量量化”,其中使用了參考插入塊(referance patches)(例如,從一個或多個“庫”或“原型”圖像中所取的相對較小的部分)的代碼本。在該技術(shù)的最簡單形式中,每個要被壓縮的圖像被分區(qū)為多個圖像塊,并通過按像素接像素地與為每個圖像塊而從代碼本中選擇的參考塊相匹配(即,近似比較)。存儲用于每個所選擇的參考塊的代碼本索引,以及該圖像塊的相應(yīng)位置矢量(即,它們在原始圖像中的位置),以提供該圖像的壓縮表示。如果該代碼本的副本可用的話,則可以通常利用所存儲的代碼本索引來構(gòu)成該原始圖像的近似圖像以恢復(fù)所需的一組參考塊,并利用分別存儲的圖像塊位置矢量把這些參考塊插入到一個圖像幀中。所獲得的壓縮比是該圖像被分區(qū)成的圖像塊的尺寸的一個函數(shù),較大的圖像塊則可以獲得更大的壓縮。
簡單的矢量量化技術(shù)要求為每個圖像塊對代碼本進行窮舉搜索,這是一個計算量極大的過程,其中采用大的代碼本來使壓縮圖像的質(zhì)量盡管可能的好,并且產(chǎn)生更大的圖像塊以盡管可能的提供壓縮比,這需要大量的像素比較操作。一種用于減少這種搜索過程的技術(shù)被稱為“分級矢量量化”(HVQ)。這種技術(shù)在1995年IEEE(電氣和電子工程師協(xié)會)出版的《數(shù)據(jù)壓縮處理會議》中第3-12頁由N Chadda、M Vishwanath、以及P A Chou所著的“透視加權(quán)塊變換的分級矢量量化”中有具體描述。
為了說明HVQ,考慮要壓縮黑白視頻序列的各個數(shù)字化圖像幀的情況,其中每個幀由一個分別具有字節(jié)整數(shù)形式的量度值的像素的陣列所構(gòu)成。假設(shè)該幀被分為由垂直相鄰的像素對所形成的圖像塊(這樣每對像素由一對亮度值或2維矢量[i,j]所表示),并提供一個包含多個參考塊的代碼本B0,每個參考塊由一對水平相鄰的像素所構(gòu)成,并且在該代碼本中的參考塊的數(shù)目(例如,256)遠(yuǎn)小于可能的像素對圖像塊的總數(shù)。提供一個索引表T0把該2維矢量的每個可能值映射到相關(guān)的代碼本地址中,使得T0[i,j]把在B0中的最接近的一條(即,B0[T0[i,j]])對應(yīng)于矢量[i,j]。在該代碼本中查找最接近于一個給定的輸入矢量的條目可以簡單地通過查找表格T0而確定。
現(xiàn)在考慮這種情況,即要被壓縮的圖像幀被分為2×2像素的圖像塊、使得每個塊由一個亮度值的4維矢量[i,j,k,l]所表示。這些4維矢量中的每個被分為兩個2維矢量,并且可以利用表格T0映射到另外的2維矢量[T0[i,j],T0[k,l]]。假設(shè)第二代碼本B1包含多個對應(yīng)于一組4像素的圖像塊的4維矢量[p,q,r,s](其中該圖像塊的數(shù)目遠(yuǎn)小于可能的4位圖像塊的總數(shù))。一個第二級的索引表T1這樣構(gòu)成,使得B1[T1[T0[i,j],T0[k,l]]]是在B1中最接近于[B0[T0[i,j]],B0[T0[k,l]]]的一項。在代碼本B1中查找最接近于某個給定輸入矢量的一項可以通過在表格T0中查找像素對[i,j]和[k,l]來實現(xiàn),然后把所得的2維矢量T0[i,j]、T0[k,l]應(yīng)用到表格T1中。這一過程在圖1中示出。
在非HVQ過程中,需要提供一個包含4維矢量的代碼本,并且對每個要被壓縮圖像中的4維矢量(或圖像塊),把在該矢量中的每一項與在代碼本中的每個矢量的對應(yīng)項相比較。當(dāng)n是矢量中的元素的數(shù)目,并且m是在該代碼本中條目的數(shù)目,則這種窮舉搜索過程需要n×m次比較操作以查找一個匹配的矢量。相反,該HVQ過程需要n-1次查找步驟以找出一個匹配矢量。假設(shè)比較和查找的計算量相似,可以看出對于合理的數(shù)值m來說,n×m比n-1大得多,這樣HVQ查找過程大約比窮舉搜索快m倍。
對于每個加在HVQ過程中的更高的索引表級別(T2,T3等等),壓縮比進一步增大。請注意,由于中間過程的代碼本對執(zhí)行HVQ過程來說并不重要,在實踐中只有最后級別的代碼本B需要保留。
分級矢量量化可以被用于壓縮彩色圖像,這通過把彩色圖像中的三個成份分出來(例如,紅、藍、綠)并把它們分別壓縮,然后把三組代碼本參考塊合并產(chǎn)生一個解壓縮圖像。
顯然為了有效的使用HVQ,需要構(gòu)造一系列表格T0,1...m以及代碼本B0,1...m,其中m是對在用于壓縮的最大圖像塊中的像素數(shù)目取以2為底的對數(shù)。常規(guī)的HVQ方法首先產(chǎn)生代碼本,例如,通過從多個原型圖像幀中提取參考塊,然后從該代碼本中產(chǎn)生表格。
由于在最后級別m中的圖像塊是級別m-1中的圖像塊尺寸的兩倍,并且通過在級別m中對代碼本內(nèi)的圖像塊進行窮舉搜索以識別出最相近的在級別m中的圖像塊。這樣,如果級別m-1圖像塊7和13放置在一起時最接近級別m圖像塊100,則Tm[7,13]將被設(shè)為100。這一過程在各級別中向后傳遞以產(chǎn)生在每個級別中的代碼本和索引表。
在此方法中,從原型圖像幀中選取的級別m代碼本圖像塊的過程基本上任意的。其結(jié)果是這些圖像塊中的特定一個可能不會或很少被選擇作為對來自要被壓縮的圖像的一個圖像塊的匹配圖像,從而造成代碼本的效率低下。
本發(fā)明的第一個目的是克服或者至少減輕常規(guī)矢量量化代碼本的缺點。
本發(fā)明的第二個目的是提供一種產(chǎn)生矢量量化代碼本的方法,其中當(dāng)壓縮統(tǒng)計屬性反映被用于構(gòu)成該代碼本的訓(xùn)練數(shù)據(jù)(training data)的統(tǒng)計屬性的數(shù)據(jù)時,該代碼本中的條目的使用頻率基本相同。
根據(jù)本發(fā)明的第一個方面,在此提供一種從至少一個由一組數(shù)據(jù)值所構(gòu)成的原型數(shù)據(jù)陣列構(gòu)成一個矢量量化代碼本的方法,該方法包括1)從該數(shù)據(jù)陣列中選擇n維采樣矢量的第一階,每個采樣矢量包括一組在陣列中相鄰的數(shù)據(jù)值并且每個采樣矢量確定在一個有限n維空間中的一個點;2)把所述空間分為預(yù)定數(shù)目的區(qū)域,每個區(qū)域基本包括相同數(shù)目的采樣矢量;3)對每個所述的區(qū)域分配一個唯一的索引,其中該索引被選擇來對在步驟2)中執(zhí)行的分級過程進行編碼;
4)對所述空間內(nèi)的基本上所有可能點確定這些點所在的區(qū)域,以及構(gòu)成把基本上所有點映射到各區(qū)域索引的一個查找索引表;5)從該數(shù)據(jù)陣列中選擇n維采樣矢量的第二階,每個采樣矢量包括一組相鄰的數(shù)據(jù)值,并且用通過查找在步驟4)中所產(chǎn)生的索引表而獲得的相關(guān)的區(qū)域矢量來替代每個采樣矢量,以創(chuàng)建另一個數(shù)據(jù)陣列或多個陣列;6)迭代執(zhí)行步驟1)至5)以獲得進一步的數(shù)據(jù)陣列以及任何后續(xù)產(chǎn)生的數(shù)據(jù)陣列,其中每個在最后一次迭代中產(chǎn)生的索引是從在原型數(shù)據(jù)陣列中的一組nm維采樣矢量中推導(dǎo)出來的,其中m是迭代執(zhí)行的次數(shù);7)對每個在最后一次迭代中產(chǎn)生的索引創(chuàng)建一個表示在原型數(shù)據(jù)陣列中的相關(guān)一組nm維采樣矢量的nm維參考矢量;以及8)構(gòu)成包含該參考矢量的代碼本,其中每個在最后一次迭代中產(chǎn)生的索引指向?qū)?yīng)參考矢量在代碼本中的位置。
所采用的方法是查找在一個n維空間中的一小組點的集合,這些點代表一個大得多的總體。為了有效地編碼,所有這些代表點的使用頻率應(yīng)當(dāng)基本相同。假設(shè),我們具有關(guān)于要被表達的總體的某些信息,例如在n維空間中在規(guī)則網(wǎng)格上的概率密度函數(shù)的編碼。該任務(wù)可以被分兩個部分a)把該n維空間分為子空間,使得在整個子空間的概率密度函數(shù)的積分基本相等;以及b)查找每個子空間的“重心”,并用其表示該空間的總體。當(dāng)對用于圖像壓縮的高維空間(大于等于16維)進行操作時,在計算上會發(fā)生困難。在本發(fā)明之后的原理是步驟a)如果對低維空間(一般是2維)進行操作會比較容易,這意味著如果用某種方式把n維的問題分割為一系列在低維中的問題,則整個任務(wù)將變得容易。如果作為對所述2維空間執(zhí)行分區(qū)的結(jié)果,我們能夠執(zhí)行從原始n維空間2維子流形(sub-manifold)到作為度量空間的1維代碼空間投影,則該分割方法成為可能。這樣通過減少子流形的重復(fù)成對應(yīng)用,我們可以把16維度量空間變換為8維代碼空間。重復(fù)應(yīng)用子流形減少處理過程,可以使得16空間映射到1維代碼空間。
最好,在步驟1)中,被選擇矢量基本上均勻地分布在所述數(shù)據(jù)陣列中。最好,每個數(shù)據(jù)值至少包含一個矢量。
最好,步驟5)中包括將該數(shù)據(jù)陣列再分割為所述采樣矢量的第二階,使得每個條目包含至少一個矢量。但是,另外所選擇矢量可以只包含該數(shù)據(jù)陣列的一部分。該部分與這些區(qū)域一致,采樣矢量的第一階基本被選擇。
在本發(fā)明的一個實施例中,步驟2)包括(a)對所述空間的每一維確定矢量分布的平均值和偏差;(b)確定具有最大偏差的矢量的維度;以及(c)把該空間分為兩個區(qū)域,第一區(qū)域包含具有用于所選維度超過該平均值的數(shù)值的矢量,并且第二區(qū)域包含不具有所選維度超過該平均值的數(shù)值的矢量。對于每個區(qū)域,重復(fù)迭代執(zhí)行步驟(a)-(c),直到獲得所需數(shù)目的區(qū)域。該數(shù)目由查找索引表的所需尺寸所確定。
在本發(fā)明的另一個實施例中,步驟2)包括確定矢量分布的主要部分(或回歸線),然后確定該主要分量的重心。然后通過垂直于該主要分量并穿過其重心的直線把該空間一分為二,產(chǎn)生兩個區(qū)域或子空間。通過連續(xù)遞歸操作對每個區(qū)域繼續(xù)分割直到獲得理想數(shù)目的區(qū)域。
上述兩個分割操作涉及重復(fù)應(yīng)用相同的分割步驟,這不是本發(fā)明本質(zhì)特征。在另一個實施例中兩個不同的分割步驟可以每個分割操作中交替應(yīng)用。
由分割操作所產(chǎn)生的區(qū)域的數(shù)目一般小于1000-4000,例如128或256。對于更高的區(qū)域數(shù)目,該計算的復(fù)雜度可能難以控制。
最好,對于步驟1)-4)的每次重復(fù),該區(qū)域所創(chuàng)建的序列被用于確定索引的分配。特別地(對于二進制索引),第一分割確定該索引的最高有效位,第二分割確定下一個最高有效位,等等。對于包含超過該平均值的矢量的區(qū)域,適當(dāng)位被設(shè)為1,對于包含低于該平值的矢量的區(qū)域,該適當(dāng)位被設(shè)為0??梢钥闯鐾ㄟ^把1替換為0并且把0替換為1可以獲得類似的結(jié)果。
最好,在步驟3),分配該索引的結(jié)果是該索引保留對于構(gòu)成每個區(qū)域的矢量的數(shù)據(jù)值的平均值的區(qū)域的次序。
本發(fā)明特別應(yīng)用于產(chǎn)生用于壓縮數(shù)字圖像的代碼本,該數(shù)字圖像包括像素陣列,每個像素由一個亮度值確定。在第一級的矢量表示在原型圖像中的相鄰像素的塊,而在更高級的矢量對應(yīng)于在收縮圖像中的塊。在每一級中,該區(qū)域被分配給保留區(qū)域的主觀次序的索引。例如,包含相對暗的色調(diào)的區(qū)域被分配相對低的索引,包含相對量的色調(diào)的區(qū)域被分配相對高的索引。
最好,在上述方法的步驟1)中,n=2。最好,在第一次迭代中,在原始數(shù)據(jù)陣列中的每對水平相鄰數(shù)據(jù)值被選擇以提供用于在步驟2)中的矢量,使得基本所有數(shù)據(jù)值出現(xiàn)在兩個數(shù)據(jù)值對中。在步驟5)中,該數(shù)據(jù)陣列或每個數(shù)據(jù)陣列被分為水平相鄰的數(shù)據(jù)值對,使得每對與相鄰對連接。在第二次迭代中,在步驟1)中,每對垂直相鄰的數(shù)據(jù)值被提取,而在步驟5)中(如果該過程包括3次或更多次迭代),該進一步的數(shù)據(jù)陣列或者每個進一步的數(shù)據(jù)陣列被再分割為垂直相鄰的數(shù)據(jù)值對。對每個相繼的迭代,水平和垂直相鄰的數(shù)據(jù)值對被交替選擇。
而第一和第二階的采樣矢量(最好所有階的采樣矢量)具有相同的方向,這并非本質(zhì)的。例如,在每個階中,水平和垂直塊可以相混合。
上述方法能夠產(chǎn)生用于每個矢量量化過程的最佳代碼本。但是,假設(shè)對于HVQ所必須的每個級別的索引查找表是該代碼本產(chǎn)生方法的內(nèi)在產(chǎn)物,它特別適用于產(chǎn)生用于分級矢量量化(HVQ)過程的代碼本。
在上述方法的特定實施例中,最好在每次迭代結(jié)束時另外執(zhí)行步驟7)和8),以在每個級別產(chǎn)生代碼本。這對于要用可變大小參考矢量壓縮圖像的情況可能是必須的。
根據(jù)本發(fā)明的第二個方面,在此提供一種從至少一個有一組數(shù)據(jù)數(shù)值組成的原始數(shù)據(jù)陣列構(gòu)成矢量量化代碼本的方法,該方法包括1)從該數(shù)據(jù)陣列選擇n維采樣矢量的第一階,每個采樣矢量包括一組在該陣列中相鄰的數(shù)據(jù)數(shù)值,并且每個采樣矢量在有限n維空間中確定一個點;2)把包含所述采樣矢量的所述n維空間分區(qū)為基本上包含相同數(shù)目的矢量的預(yù)定數(shù)目的區(qū)域;3)對每個所述區(qū)域分配一個唯一的索引,其中該索引被選擇以對在步驟2)執(zhí)行的分區(qū)過程代碼化;4)對在所述空間中的基本上所有可能點確定這些點所處于的區(qū)域,并且構(gòu)成一個把基本上所有可能點映射到各區(qū)域索引的查找索引表;5)對每個區(qū)域確定代表在該組中的采樣矢量的參考矢量;以及6)構(gòu)成包含該參考矢量的代碼本,其中每個索引指向在該代碼本中相應(yīng)參考矢量的位置。
根據(jù)本發(fā)明的第三個方面,在此提供一種構(gòu)成用于分級矢量化過程中的一組索引表的方法,該表格從至少一個由一組數(shù)據(jù)數(shù)值組成的原始數(shù)據(jù)陣列所構(gòu)成,該方法包括1)從該數(shù)據(jù)陣列選擇n維采樣矢量的第一階,每個采樣矢量包括一組在該陣列中相鄰的數(shù)據(jù)值,并且每個采樣矢量在有限n維空間中確定一個點;2)把包含所述采樣矢量的所述n維空間分區(qū)為基本上包含相同數(shù)目的矢量的預(yù)定數(shù)目的區(qū)域;3)對每個所述區(qū)域分配一個唯一的索引,其中該索引被選擇以對在步驟2)執(zhí)行的分區(qū)過程代碼化;4)對在所述空間中的基本上所有可能點確定這些點所處于的區(qū)域,并且構(gòu)成一個把基本上所有可能點映射到各區(qū)域索引的找查索引表;5)從該數(shù)據(jù)陣列選擇n維采樣矢量的第二階,每個采樣矢量包括一組相鄰的數(shù)據(jù)數(shù)值,并且用通過查找在步驟4)中產(chǎn)生的索引表而獲得的相關(guān)區(qū)域索引替代每個采樣矢量,以創(chuàng)建進一步的數(shù)據(jù)陣列;以及6)對進一步的數(shù)據(jù)陣列和任何后續(xù)產(chǎn)生的數(shù)據(jù)陣列迭代重復(fù)執(zhí)行步驟1)-5),其中每個在最后迭代中產(chǎn)生的索引是從一組在該原始數(shù)據(jù)陣列中的nm維采樣矢量中推導(dǎo)而得,其中m是迭代執(zhí)行的次數(shù)。
上述本發(fā)明第三個方面的方法能夠產(chǎn)生一組索引表,它用于需要對數(shù)據(jù)編碼的情況,但不適用能夠從該編碼數(shù)據(jù)重構(gòu)原始數(shù)據(jù)的情況,即不需要代碼本的情況。
上文中所用的術(shù)語“原型”包括所捕獲的實際圖像,例如用照像機拍攝。但是該術(shù)語還包括人工產(chǎn)生的圖像,例如預(yù)先存在的代碼本。
為了更好地理解本發(fā)明,并且為了示出本發(fā)明如何生效,下面將參照附圖通過實例進行說明,其中
如下圖1簡要示出兩層分級矢量量化過程。
圖2示出用于壓縮的2維數(shù)據(jù)圖像幀;圖3示出從圖2中的圖像幀獲得的第一級頻率圖;圖4示出用圖3的頻率圖從圖2的圖像幀中獲得的第一級收縮圖像幀;
圖5示出從圖4的圖像中獲得的第2級頻率圖;以及圖6示出用圖5的頻率圖從圖2的圖像幀中獲得的第二級收縮圖像。
在圖2中示出由320×200像素所構(gòu)成的2維黑白數(shù)字圖像。每個像素的亮度級或強度定義在0-256的范圍內(nèi)(即,由8位二進制整數(shù)所表示)。假設(shè),要用分級矢量量化過程把圖2的圖像壓縮4的倍數(shù)。該過程在圖1中示出,并已經(jīng)在上文中描述。該圖像首先被分割為相等的2×2像素圖像塊。每個圖像塊被分割為上部或下部像素對。交替地對每個圖像塊把上部或下部像素對平行地饋送到相同的第一級查找表T0,以推出用于每對的第一級索引。然后所獲得的索引對被饋送到第二級查找表T1,以推出指向在一代碼本中的參考塊的第二級索引。通過只存儲在每個圖像塊中的圖像的一部分和各個索引以創(chuàng)建該圖像的壓縮表示。為了對該數(shù)據(jù)解壓縮,只需要訪問該代碼本,或者該代碼本的副本,利用該索引并且對所得的參考塊正確排序。
它來自于信息理論中的一個基本概念,即,最有效的代碼本是只包含有很可能在被用相同頻率壓縮的圖像中出現(xiàn)的圖像塊的代碼本。相反,包含在壓縮圖像中從未用到或只是很少用到的圖像塊的代碼本是極其沒有效率的。如上文所述,代碼本通常用一組作為被壓縮的典型圖像的測試或原型圖像所產(chǎn)生。因此,如果在該代碼本中的圖像塊以基本上相同的頻率在測試圖像中出現(xiàn),則很可能這些圖像塊也以相同頻率在要被壓縮的圖像中出現(xiàn)。
在構(gòu)成適用于壓縮圖2的圖像幀的2×2像素塊的代碼本的第一步驟是從一數(shù)字原型圖像(在此種情況中圖2的圖像幀可以被認(rèn)為是一幅原型圖像)提取每對水平相鄰的像素,使得每個除了在圖像幀的邊緣的像素之外的每個像素以兩個不同的像素對出現(xiàn)。如上文所述,該被選擇的原型圖像具有與要被壓縮的圖像相似的屬性。然后,每對像素的左邊和右邊像素的亮度在2維空間中被相對地標(biāo)示,以獲得示出該像素對的亮度分布的第一級頻率圖(或者出現(xiàn)率圖)。對于圖2的圖像的映象在圖3中示出,為了便于說明,亮區(qū)對應(yīng)于高密度的相似像素對,而暗區(qū)對應(yīng)于低密度的相似像素對。在典型圖像中,相鄰像素對趨向于具有相似的亮度(除了跨越銳邊的像素對之外),結(jié)果高亮度的頻帶從頻率圖的左下角到右上角橫穿過該頻率圖的對角線。
然后對該圖的兩條軸確定亮度分布。對于x軸的分布沿著x軸示出。從該分布可以確定平均值,以及相對于每條軸的分布的偏差。頻率圖被平行于具有最小偏差并且穿過另一條軸的平均亮度的分割線(在此種情況下該線由A表示)分為兩個區(qū)域以產(chǎn)生兩個新的子圖。顯然這些子圖基本上包含相同數(shù)目的像素對。通過分別取每個新的子圖,并且通過對圖3中所示的一個子圖的y軸示出其亮度分布,該過程被重復(fù)執(zhí)行以產(chǎn)生分別包含基本相同數(shù)目的像素對的進一步的頻率子圖(通過沿著適當(dāng)?shù)姆指罹€B,C和D進行分割)。該過程重復(fù)進行直到子圖或組的數(shù)目等于在第一級代碼本中的條目的數(shù)目,例如256個。
隨著子圖產(chǎn)生過程的進行,索引或標(biāo)識符被動態(tài)分配給該子圖,以對該分區(qū)過程代碼化。對于要產(chǎn)生256個子圖的情況,需要8位二進制索引。在該過程的第一分割決定該索引的最高有效位,第二分割決定下一個最高有效位,等等。另外,當(dāng)發(fā)生水平分割時,例如通過分割線A,用于上部子圖的相關(guān)位被設(shè)為1,并且用于下部子圖的相關(guān)位被設(shè)為0。當(dāng)發(fā)生垂直分割時,例如通過分割線D,用于右側(cè)子圖的相關(guān)位被設(shè)為1,而用于左側(cè)子圖的相關(guān)位被設(shè)為0。結(jié)果得到一組趨于保留該圖的主要亮度的索引。例如,在圖3的右上角的子圖具有最高的索引,對應(yīng)于高亮度,而在左下角的子圖具有最低的索引,對應(yīng)于低亮度。
每個子圖或組包括該頻率圖的一個區(qū)域,并且在整個空間中的每個點落入一個子圖中。產(chǎn)生包含在該空間中的每個可能點的第一級查找索引表T0,在該空間中的每個點被映射到用于該點所在的子圖的索引。例如,像素亮度的范圍從0到255,該索引表T0將包含256×256個條目。
對于每個子圖,通過獲得構(gòu)成該子圖的所有像素對的左右像素的平均亮度值產(chǎn)生2×1像素參考塊。這些參考塊然后被作為第一級代碼本B0而存儲,在參考塊的代碼本中所存儲的位置由相關(guān)索引所指向。
在代碼本產(chǎn)生過程的下一個步驟是把該測試圖像再分割為水平相鄰的像素對,并用相關(guān)的第一級索引代替這些像素對中的每一個。結(jié)果是圖像從左邊向右邊收縮,如圖4中所示。需要注意的重要一點是,由于該索引保持子圖的亮度次序,則第一級收縮圖像仍然可以辨認(rèn)。
接著從第一收縮圖像產(chǎn)生第二級頻率圖,只有在此時垂直相鄰的每個像素對被抽取,并且上部和下部像素的亮度互成對比。這在圖5中示出,其中也示出按上文所述的方式對該圖進行分割的結(jié)果。索引被再次動態(tài)分配。
可以理解在第一級收縮圖像中的每個像素是映射到在第一級代碼本B0中的兩個像素參考塊,并且在第二級頻率圖中的每個條目對應(yīng)于2×2的像素塊。因此,對于第二級頻率圖的每個子圖,可以通過對來自該圖中的每個塊的四個像素確定平均值而產(chǎn)生2×2像素參考塊。構(gòu)成包含垂直相鄰的第一級索引與相關(guān)第二級索引之間的每個可能組合的第二級索引查找表T0。然后構(gòu)成包含該參考塊的第二級代碼本,其中參考塊的位置由相關(guān)第二級索引所指向。
如果要獲得比能夠由2×2像素代碼本塊所獲得的壓縮比更高的壓縮比,該過程可以重復(fù)進行以產(chǎn)生第二級代碼本(4×2像素塊)和第四級代碼本(4×4像素塊),等等。
本發(fā)明的一個優(yōu)點是它可以提供能夠允許最低有效位數(shù)據(jù)從索引字節(jié)整數(shù)中丟失的數(shù)據(jù)陣列的壓縮表示。這是因為這些索引保留它們所代碼的代碼本塊的主要次序。因此,由索引00110010和00110011所指向的塊趨于類似,使得在索引的最低有效位中出現(xiàn)錯誤,從而使得為解壓縮圖像選擇不正確的塊不會明顯對該圖像造成失真。在許多數(shù)字傳輸系統(tǒng)中,通常只為數(shù)字?jǐn)?shù)據(jù)的最高有效位傳輸糾錯碼(例如,GSM移動電話)。因此顯然本發(fā)明方法適用于這種傳輸系統(tǒng)。另外,從本發(fā)明所獲得的壓縮表示的容錯性使得僅僅從該索引除去一個或多個最低有效位就能夠增加壓縮比。
上述方法涉及利用水平或垂直軸在每一級重復(fù)把頻率圖分割為兩個部分。通過沿著最大偏差的軸執(zhí)行分割,保證映射條目與新的子圖的平均值之間的期望距離小于該子圖被沿著最小偏差的軸分割的情況。該原則可以通過確定沿著多于兩條軸的偏差而進一步應(yīng)用。實現(xiàn)原則的一個實踐方法是計算該頻率圖的主要成分。這在英國Strathclyde大學(xué)的Thesis博士所著的《做為用于人工神經(jīng)網(wǎng)絡(luò)的組織原則的負(fù)反饋》中描述。該圖被在右角向著主要成分延伸并穿過該成分的平均值的分割線所分割。該過程對每個子圖重復(fù)進行。
可以看出能夠?qū)ι鲜鰧嵤├龀龈鞣N改變而不脫離本發(fā)明的范圍。例如,彩色圖像幀可以通過考慮每個分離的主要顏色而被壓縮。
在一些矢量量化方法中,可以對平均值和偏差值已經(jīng)被預(yù)先標(biāo)準(zhǔn)化之后的圖像塊進行壓縮。為了重構(gòu)原始圖像,沿著原始圖像塊的平均值和偏差值的代碼本索引被存儲/發(fā)送。用于這些方法的代碼本包括具有被標(biāo)準(zhǔn)化的平均值和偏差值的參考塊。由于當(dāng)?shù)推顖D像塊被發(fā)送時,大多數(shù)被發(fā)送的信息被編碼于該圖像塊的平均值中,因此,當(dāng)預(yù)先制備這種類型的代碼本時,最好避免從具有低偏差的圖像塊中提取的多數(shù)條目偏離該頻率圖。因此該代碼本的結(jié)構(gòu)可以通過預(yù)先處理該訓(xùn)練的集合而改進,以除去具有低偏差的圖像塊。通過使圖像塊保留在訓(xùn)練集合中的概率成為其變量的遞增函數(shù),可以易于實現(xiàn)上述操作。
對某些應(yīng)用,可能只需要構(gòu)成該查找索引表,而不需要實際代碼本??紤]到需要為安全目的識別別人的相貌的情況。按照上述方式產(chǎn)生一組索引表。利用HVQ過程,具有安全性的人的相貌圖像被編碼,對于每個圖像的結(jié)果是在最終級別的索引的陣列。(如果代碼本被產(chǎn)生,這些索引將分別指向代碼本中的各個圖像塊。)這些陣列存儲在一個數(shù)據(jù)庫中。當(dāng)一個人需要安全檢查時,他們的相貌圖像被獲得并且在HVQ過程中進行編碼。然后該索引的結(jié)果陣列被與存儲在數(shù)據(jù)庫中的陣列相比較。
權(quán)利要求
1.一種從至少一個包括一組數(shù)據(jù)值的原型數(shù)據(jù)陣列構(gòu)成一矢量量化代碼本的方法,其特征在于,該方法包括1)從該數(shù)據(jù)陣列中選擇n為采樣矢量的第一階,每個采樣矢量包括一組在陣列中相鄰的數(shù)據(jù)值并且每個采樣矢量確定在一個有限n維空間中的一個點;2)把所述空間分為預(yù)定數(shù)目的區(qū)域,每個區(qū)域基本包括相同數(shù)目的采樣適量;3)對每個所述的區(qū)域分配一個唯一的索引,其中該索引被選擇來對在步驟2)中執(zhí)行的分級處理進行編碼;4)對所述空間內(nèi)的基本上所有可能點確定這些點所在的區(qū)域,以及構(gòu)成把基本上所有點映射到各區(qū)域索引的一個查找索引表;5)從該數(shù)據(jù)陣列中選擇n維采樣矢量的第二階,每個采樣矢量包括一組相鄰的數(shù)據(jù)值,并且用通過查找在步驟4)中所產(chǎn)生的索引表而獲得的相關(guān)的區(qū)域矢量來替代每個采樣矢量,以創(chuàng)建另一個數(shù)據(jù)陣列或多個陣列;6)迭代執(zhí)行步驟1)至5)以獲得進一步的數(shù)據(jù)陣列以及任何后續(xù)產(chǎn)生的數(shù)據(jù)陣列,其中每個在最后一次迭代中產(chǎn)生的索引是從在原型數(shù)據(jù)陣列中的一組nm維采樣矢量中推導(dǎo)出來的,其中m是迭代執(zhí)行的次數(shù);7)對每個在最后一次迭代中產(chǎn)生的索引創(chuàng)建一個表示在原型數(shù)據(jù)陣列中的相關(guān)一組nm維采樣矢量的nm維參考矢量;以及8)構(gòu)成包含該參考矢量的代碼本,其中每個在最后一次迭代中產(chǎn)生的索引指向?qū)?yīng)參考矢量在代碼本中的位置。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,被選擇矢量基本上在所述數(shù)據(jù)陣列中均勻分布。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟5)包括把該數(shù)據(jù)陣列再分割為相同矢量的所述第二階,使得每個條目包含于至少一個矢量中。
4.根據(jù)上述任何一項權(quán)利要求所述的方法,其特征在于,步驟2)包括(a)對所述空間的每一維確定矢量分布的平均值和偏差;(b)確定具有最大偏差的矢量的維度;以及(c)把該空間分為兩個區(qū)域,第一區(qū)域包含具有用于所選維度超過該平均值的數(shù)值的矢量,并且第二區(qū)域包含不具有所選維度超過該平均值的數(shù)值的矢量。
5.根據(jù)權(quán)利要求1-3中的任何一項所述的方法,其特征在于,步驟2)包括確定在該空間中矢量分布的主要部分(或回歸線),然后確定該主要部分的重心,然后通過垂直于該主要部分并穿過其重心的直線把該空間一分為二,產(chǎn)生兩個區(qū)域或子空間。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,在交替重復(fù)中,步驟2)包括確定在該空間中矢量分布的主要部分(或回歸線),然后確定該主要部分的重心,然后通過垂直于該主要部分并穿過其重心的直線把該空間一分為二,產(chǎn)生兩個區(qū)域或子空間。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,在交替重復(fù)中,步驟2)包括(a)對所述空間的每一維確定矢量分布的平均值和偏差;(b)確定具有最大偏差的矢量的維度;以及(c)把該空間分為兩個區(qū)域,第一區(qū)域包含具有用于所選維度超過該平均值的數(shù)值的矢量,并且第二區(qū)域包含不具有所選維度超過該平均值的數(shù)值的矢量。
8.根據(jù)上述任何一項權(quán)利要求所述的方法,其特征在于,對于步驟1)-4)的每次重復(fù),該區(qū)域所創(chuàng)建的序列被用于確定索引的分配。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,在對于二進制索引的交替重復(fù)中第一分割確定該索引的最高有效位,第二分割確定下一個最高有效位,等等。
10.一種從至少一個由一組數(shù)據(jù)數(shù)值組成的原始數(shù)據(jù)陣列構(gòu)成矢量量化代碼本的方法,該方法包括1)從該數(shù)據(jù)陣列選擇n維采樣矢量的第一階,每個采樣矢量包括一組在該陣列中相鄰的數(shù)據(jù)數(shù)值,并且每個采樣矢量在有限n維空間中確定一個點;2)把包含所述采樣矢量的所述n維空間分區(qū)為基本上包含相同數(shù)目的矢量的預(yù)定數(shù)目的區(qū)域;3)對每個所述區(qū)域分配一個唯一的索引,其中該索引被選擇以對在步驟2)執(zhí)行的分區(qū)過程代碼化;4)對在所述空間中的基本上所有可能點確定這些點所處于的區(qū)域,并且構(gòu)成一個把基本上所有可能點映射到各區(qū)域索引的查找索引表;5)對每個區(qū)域確定代表在該組中的采樣矢量的參考矢量;以及6)構(gòu)成包含該參考矢量的代碼本,其中每個索引指向在該代碼本中相應(yīng)參考矢量的位置。
11.一種構(gòu)成用于分級矢量化過程中的一組索引表的方法,該表格從至少一個由一組數(shù)據(jù)數(shù)值組成的原始數(shù)據(jù)陣列所構(gòu)成,該方法包括1)從該數(shù)據(jù)陣列選擇n維采樣矢量的第一階,每個采樣矢量包括一組在該陣列中相鄰的數(shù)據(jù)值,并且每個采樣矢量在有限n維空間中確定一個點;2)把包含所述采樣矢量的所述n維空間分區(qū)為基本上包含相同數(shù)目的矢量的預(yù)定數(shù)目的區(qū)域;3)對每個所述區(qū)域分配一個唯一的索引,其中該索引被選擇以對在步驟2)執(zhí)行的分區(qū)過程代碼化;4)對在所述空間中的基本上所有可能點確定這些點所處于的區(qū)域,并且構(gòu)成一個把基本上所有可能點映射到各區(qū)域索引的找查索引表;5)從該數(shù)據(jù)陣列選擇n維采樣矢量的第二階,每個采樣矢量包括一組相鄰的數(shù)據(jù)數(shù)值,并且到達每個采樣矢量替換為通過查找在步驟4)中產(chǎn)生的索引表而獲得的相關(guān)區(qū)域索引,以創(chuàng)建進一步的數(shù)據(jù)陣列;以及6)為進一步的數(shù)據(jù)陣列和任何后續(xù)產(chǎn)生的數(shù)據(jù)陣列迭代重復(fù)執(zhí)行步驟1)-5),其中每個在最后迭代中產(chǎn)生的索引從一組在該原始數(shù)據(jù)陣列中的nm維采樣矢量中推導(dǎo)而得,其中m是迭代執(zhí)行的次數(shù)。
12.一種用上述權(quán)利要求1-10中任何一項的方法所構(gòu)成的數(shù)據(jù)比較代碼本。
13.一組用權(quán)利要求11所述的方法所構(gòu)成的索引表。
全文摘要
采用矢量量化的數(shù)據(jù)比較系統(tǒng)利用通過查找在一個n維空間中的一小組點的集合而構(gòu)成的代碼本所索引表,這些點代表一個大得多的總體。把該空間分區(qū),使得在整個子空間的概率密度函數(shù)的積分基本相等,并且然后用每個子空間的“重心”表示該空間的總體。依次應(yīng)用該分區(qū)把n維空間映射到一維代碼空間。
文檔編號H04N7/28GK1238100SQ9719986
公開日1999年12月8日 申請日期1997年10月15日 優(yōu)先權(quán)日1996年10月23日
發(fā)明者威廉·保羅·科克肖特, 羅伯特·巴塞洛繆·蘭伯特 申請人:斯特拉斯克萊德大學(xué)