專利名稱:矢量量化中碼字搜索方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息技術(shù)領(lǐng)域,具體涉及一種計算機(jī)數(shù)據(jù)壓縮領(lǐng)域中的矢量量化過程 碼字搜索方法。
背景技術(shù):
隨著多媒體應(yīng)用技術(shù)的飛速發(fā)展,數(shù)據(jù)壓縮技術(shù)得到了廣泛的應(yīng)用,其中矢量量 化方法作為一種有效的數(shù)據(jù)壓縮方法而被廣泛使用,例如,華為公司申請的發(fā)明專利“矢量 量化方法及裝置”(專利申請?zhí)?00610164455. 2,公開號CN 101198041A)。該專利申請首 先提出一種矢量量化方法,通過碼書調(diào)整量方法和簡單的矢量量化裝置來降低矢量量化復(fù) 雜度。該專利申請通過利用N個碼書及各碼書的調(diào)整量對輸入矢量進(jìn)行量化處理,從而降 低碼書存儲量,且運(yùn)算量只是遍歷N個碼書所需要的計算量。該專利申請存在的主要不足 是在實際使用中,矢量量化通常以高維向量形式存在,采用上述專利申請所提供的技術(shù)方 案依然有較高時間復(fù)雜度。另外,上述專利申請在碼字搜索的過程中仍然存在過多冗余的 不會被訪問的碼字,進(jìn)而造成數(shù)據(jù)訪問率過高。在矢量量化的碼字搜索過程中廣泛采用的另一種等均值等方差搜索算法 ”Hadamard transform based fast codeword search algorithm for high-dimensional VQ encoding,S. C Chu, Ζ. M Lu,J. S. Pan, Information Sciences,VOL. 177. NO. 3, 2007, 734-746”。該算法使用均值只結(jié)合單參考點(原點)對碼字進(jìn)行搜索,由此造成該算法存 在的不足是采用單參考點對碼字進(jìn)行搜索,由于碼字過濾條件過于單一,仍然存在搜索效 率偏低,磁盤訪問次數(shù)頻繁的問題,而且在高維情況以及大碼書尺寸下顯得尤為突出。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提出一種基于多個參考點(參考點數(shù)量 大于1),根據(jù)多個子空間距離來刪除不匹配的碼字的矢量量化中碼字搜索方法。為實現(xiàn)上述目的,本發(fā)明方法的具體步驟如下(1)基于原始碼書生成一份哈德碼變換后的碼書;(2)利用碼書生成參考點集合;(3)為碼書中的碼字附加相對于參考點集合的方差值;(4)對待量化的輸入向量進(jìn)行哈德碼變換;(5)為變換的向量附加相對于參考點集合的方差值;(6)在碼書中刪除不滿足過濾條件的碼字,搜索匹配碼字;(7)系統(tǒng)輸出匹配碼字在碼書中的對應(yīng)編號。本發(fā)明與現(xiàn)有技術(shù)比較具有以下優(yōu)點第一,在搜索效率方面,由于本發(fā)明采用多參考點集合的方式,與只采用單參考點 的搜索方法相比,能夠過濾掉更多冗余碼字,因此能夠降低計算匹配碼字的時間復(fù)雜度,提 高搜索效率。
第二,在磁盤訪問方面,本發(fā)明采用多參考點集合的方式,與只采用單參考點的搜 索方法相比較,能夠有效減少碼字計算量,較大的減少了磁盤的訪問次數(shù)。第三,在適用范圍方面,本發(fā)明利用參考點集合設(shè)定不同的過濾區(qū)域?qū)Υa書進(jìn)行 過濾,不但能夠適應(yīng)較高維數(shù)的情形,而且還可以滿足大尺寸碼書情況下的編碼。
圖1為本發(fā)明的流程圖。圖2為單參考點下等均值等方差方法的數(shù)據(jù)訪問區(qū)域的示意圖。圖3為本發(fā)明兩個參考點下等均值等方差方法的數(shù)據(jù)訪問區(qū)域的示意圖。
具體實施例方式參照圖1,對本發(fā)明的實現(xiàn)步驟做具體的描述。本發(fā)明采用C++語言,可以在支持C++語言的環(huán)境下實現(xiàn)。在實施本發(fā)明所述的 方法前,使用LBG算法生成一份原始碼書。步驟1,基于原始碼書生成一份哈德碼變換后的碼書,將原始碼書乘以哈德碼變換 矩陣,得到和原始碼書同樣大小的變換后的碼書;步驟2,利用變換后的碼書生成參考點集合,生成集合的具體步驟是2a)將參考點集合中的第一個元素初始為原點,設(shè)循環(huán)變量為i,初始值為1,用來 記錄已生成參考點的個數(shù),設(shè)定參考點集合中元素個數(shù)s,參考點集合s的計算公式如下假定碼書尺寸k = 2n(n > 0),那么參考點數(shù)量s的計算方式為2b)將s作為循環(huán)次數(shù),每次循環(huán)生成一個參考點,每次循環(huán)包括的操作為在除 去第一維剩余的數(shù)據(jù)組成的碼字中找到距離已有參考點最遠(yuǎn)的點,將這個點作為新的參考 點加入到參考點集合中,每次執(zhí)行循環(huán)體后,循環(huán)變量i自增1,如果循環(huán)變量i = s,則循 環(huán)退出,系統(tǒng)輸出生成的參考點集合。步驟3,為變換后碼書中的碼字附加相對于參考點集合的方差值,分別計算變換后 的碼書中的碼字相對于不同的參考點的方差值,并將計算的方差值附于碼書后;步驟4,對待量化的輸入向量進(jìn)行哈德碼變換,將待量化的輸入向量乘以哈德碼變 換矩陣,得到同原始向量同樣大小的變換后的向量;步驟5,為變換后的向量附加相對于參考點集合的方差值,分別對變換后的向量計 算相對于不同的參考點的方差值,并將計算的方差值附于變換后的向量后;步驟6,在碼書中刪除不滿足過濾條件的碼字,搜索匹配碼字,具體步驟如下6a)按照變換后碼書的第一維分量按照升序進(jìn)行排序;6b)根據(jù)變換后的量化向量的第一維在變換后的碼書中進(jìn)行索引,得到初始訪問 碼字作為當(dāng)前訪問碼字,計算當(dāng)前量化向量和初始訪問碼書的距離Dmin,記錄當(dāng)前碼字編 號;6c)從當(dāng)前訪問碼書向前搜索,如果量化向量和查詢碼字的第一維分量的差值大 于當(dāng)前Dmin,則轉(zhuǎn)到步驟6d);否則,分別相對于不同參考點使用等均值等方差算法,如果當(dāng)
2 n<9 n-8 n>9前搜索碼字沒有被刪除準(zhǔn)則刪除,則計算量化向量和當(dāng)前碼字的距離TDmin,將TDmin和Dmin 比較大小,將其中比較小的值賦值給Dmin,記錄具有最小Dmin值的碼書的編號;如果當(dāng)前訪 問碼字為排序后碼書中的第一項,轉(zhuǎn)到步驟6d),否則轉(zhuǎn)到步驟6c);6d)從當(dāng)前訪問碼書向后搜索,如果量化向量和查詢碼字的第一維分量的差值大 于當(dāng)前Dmin,則轉(zhuǎn)到步驟6e);否則,分別相對于不同參考點使用等均值等方差算法,如果當(dāng) 前搜索碼字沒有被刪除準(zhǔn)則刪除,則計算量化向量和當(dāng)前碼字的距離TDmin,將TDmin和Dmin 比較大小,將其中比較小的值賦值給Dmin,記錄具有最小Dmin值的碼書的編號;如果當(dāng)前訪 問碼字為排序后碼書中的最后一項,轉(zhuǎn)到步驟6e),否則轉(zhuǎn)到步驟6d);6e)向前向后搜索完畢后,記錄具有Dmin值的碼字和碼字編號,算法結(jié)束。步驟7,系統(tǒng)輸出步驟6中記錄的碼字編號。圖2是單參考點下使用等均值等方差方法數(shù)據(jù)訪問區(qū)域的示意圖,圖2中的圓環(huán) 陰影部分為一個參考點下搜索的區(qū)域,其中1表示單參考點,2表示需要編碼的碼字,*表示 需要訪問的碼字。圖3是本發(fā)明的兩個參考點下使用等均值等方差方法數(shù)據(jù)訪問區(qū)域的示 意圖,圖3中的兩個圓環(huán)區(qū)域重疊部分為兩個參考點下搜索的區(qū)域,其中3表示第一個參考 點,4表示需要編碼的碼字,5表示第二個參考點,*表示需要訪問的碼字。顯而易見,本發(fā) 明的搜索性能優(yōu)于單參考點下的搜索性能。由于本發(fā)明使用了參考點集合,相同的條件下 本發(fā)明可以過濾掉更多的冗余碼字,減少了數(shù)據(jù)訪問量,提高搜索效率。
權(quán)利要求
矢量量化中碼字搜索方法,包括以下步驟(1)基于原始碼書生成一份哈德碼變換后的碼書;(2)利用碼書生成參考點集合;(3)為碼書中的碼字附加相對于參考點集合的方差值;(4)對待量化的輸入向量進(jìn)行哈德碼變換;(5)為變換的向量附加相對于參考點集合的方差值;(6)在碼書中刪除不滿足過濾條件的碼字,搜索匹配碼字;(7)系統(tǒng)輸出匹配碼字在碼書中的對應(yīng)編號。
2.根據(jù)權(quán)利要求1所述的矢量量化中碼字搜索方法,其特征在于所述第2步利用碼 書生成參考點集合的具體步驟為2a)將參考點集合中的第一個元素初始為原點,設(shè)循環(huán)變量為i,初始值為1,用來記錄 已生成參考點的個數(shù),設(shè)定參考點集合中元素個數(shù)s,參考點集合s的計算公式如下 假定碼書尺寸k = 2n(n > 0),那么參考點數(shù)量s的計算方式為2b)將s作為循環(huán)次數(shù),每次循環(huán)生成一個參考點,每次循環(huán)包括的操作為在除去第 一維剩余的數(shù)據(jù)組成的碼字中找到距離已有參考點最遠(yuǎn)的點,將這個點作為新的參考點加 入到參考點集合中,每次執(zhí)行循環(huán)體后,循環(huán)變量i自增1,如果循環(huán)變量i = s,則循環(huán)退 出,系統(tǒng)輸出生成的參考點集合。
3.根據(jù)權(quán)利要求1所述的矢量量化中碼字搜索方法,其特征在于所述第6步在碼書 中刪除不滿足過濾條件的碼字,搜索匹配碼字的具體步驟如下 6a)按照變換后碼書的第一維分量按照升序進(jìn)行排序;6b)根據(jù)變換后的量化向量的第一維在變換后的碼書中進(jìn)行索引,得到初始訪問碼字 作為當(dāng)前訪問碼字,計算當(dāng)前量化向量和初始訪問碼書的距離Dmin,記錄當(dāng)前碼字編號;6c)從當(dāng)前訪問碼書向前搜索,如果量化向量和查詢碼字的第一維分量的差值大于當(dāng) 前Dmin,則轉(zhuǎn)到步驟6d);否則,分別相對于不同參考點使用等均值等方差算法,如果當(dāng)前搜 索碼字沒有被刪除準(zhǔn)則刪除,則計算量化向量和當(dāng)前碼字的距離TDmin,將TDmin和Dmin比較 大小,將其中比較小的值賦值給Dmin,記錄具有最小Dmin值的碼書的編號;如果當(dāng)前訪問碼 字為排序后碼書中的第一項,轉(zhuǎn)到步驟6d),否則轉(zhuǎn)到步驟6c);6d)從當(dāng)前訪問碼書向后搜索,如果量化向量和查詢碼字的第一維分量的差值大于當(dāng) 前Dmin,則轉(zhuǎn)到步驟6e);否則,分別相對于不同參考點使用等均值等方差算法,如果當(dāng)前搜 索碼字沒有被刪除準(zhǔn)則刪除,則計算量化向量和當(dāng)前碼字的距離TDmin,將TDmin和Dmin比較 大小,將其中比較小的值賦值給Dmin,記錄具有最小Dmin值的碼書的編號;如果當(dāng)前訪問碼 字為排序后碼書中的最后一項,轉(zhuǎn)到步驟6e),否則轉(zhuǎn)到步驟6d); 6e)向前向后搜索完畢后,記錄具有Dmin值的碼字和碼字編號。
全文摘要
本發(fā)明公開一種矢量量化中碼字搜索方法,其步驟為(1)對生成的原始碼書進(jìn)行哈德碼變換,得到變換后的碼書。(2)利用碼書生成參考點集合。(3)為碼書中的碼字附加相對于參考點集合的方差值。(4)對待量化的輸入向量進(jìn)行哈德碼變換。(5)為變換的向量附加相對于參考點集合的方差值。(6)在碼書中刪除不滿足過濾條件的碼字,搜索匹配碼字。(7)系統(tǒng)輸出匹配碼字在碼書中的對應(yīng)編號。本發(fā)明采用多參考點集合的方式,能夠過濾掉更多冗余碼字,從而降低計算匹配碼字的時間復(fù)雜度,提高搜索效率。本發(fā)明能夠有效減少數(shù)據(jù)訪問量,較大的減少磁盤的訪問次數(shù)。本發(fā)明不但能夠適應(yīng)較高維數(shù)的情形,而且還可以滿足大尺寸碼書情況下的編碼。
文檔編號G06F17/30GK101916257SQ20101022544
公開日2010年12月15日 申請日期2010年7月12日 優(yōu)先權(quán)日2010年7月12日
發(fā)明者尹志良, 崔江濤, 張佳琦, 肖斌 申請人:西安電子科技大學(xué)