一種基于m碼字分裂的矢量量化碼本生成方法
【專利摘要】本發(fā)明公開了一種基于M碼字分裂的矢量量化碼本生成方法,該方法是在每次迭代前的碼本初始化階段,根據(jù)目標碼本大小,自適應(yīng)地選取分裂碼字數(shù)為2、4或5,在一個碼字分裂為4個或5個碼字時,其中兩對碼字的增量部分具有正交特性,在一個碼字分裂為5個碼字時,原碼字將保留在新碼字中;在最后一次碼字分裂前,若需要生成的新碼字數(shù)量不足,則選取碼本中的若干個碼字使用二分法進行碼字補償,使最后一次分裂得到的總碼字數(shù)達到目標碼本大小。本發(fā)明在不改變碼本量化性能的同時縮短了碼本生成時間,適用于圖像壓縮、模式識別、視頻編碼等領(lǐng)域,特別適用于語音編碼領(lǐng)域。
【專利說明】一種基于M碼字分裂的矢量量化碼本生成方法【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及碼本生成方法研究領(lǐng)域,特別涉及一種基于M碼字分裂的矢量量化碼本生成方法。
【背景技術(shù)】
[0002]隨著計算機和大規(guī)模集成電路的發(fā)展,數(shù)字信號的分析和處理已廣泛應(yīng)用于圖像壓縮、模式識別、語音編碼、視頻編碼等領(lǐng)域。數(shù)字信號,特別是數(shù)字音頻信號與數(shù)字圖像信號,雖然具有抗干擾能力強、無噪聲積累、便于加密等優(yōu)點,但是在數(shù)字通信中由于其龐大的數(shù)據(jù)量也會導(dǎo)致高碼率問題,影響傳輸速率的同時增加設(shè)備存儲和處理負擔(dān)。數(shù)據(jù)壓縮成為解決此問題的關(guān)鍵技術(shù)。
[0003]量化是數(shù)據(jù)壓縮的常用技術(shù),量化方法可分為兩種:標量量化和矢量量化。標量量化是指每次量化一個采樣,所有采樣采用特性相同的量化器,采樣間量化彼此無關(guān)。矢量量化是把k個(k>2)標量數(shù)據(jù)構(gòu)成k維空間Rk中的一個矢量,然后在矢量空間中進行整體量化。矢量量化屬于一種有效的有損壓縮技術(shù),具有壓縮比大、編解碼簡單等優(yōu)點。
[0004]矢量量化的理論基礎(chǔ)是Shannon的率失真定理,其基本原理是使用碼本中與輸入矢量之間失真誤差最小碼字的索引代替輸入矢量進行存儲或傳輸,在解碼端進行簡單的查表操作對矢量進行重構(gòu)。矢量量化主要包括三大關(guān)鍵技術(shù),即碼本生成算法、碼字搜索算法以及碼字索引分配算法,其中最重要是碼本生成算法,它是設(shè)計矢量量化器成功與否的關(guān)鍵。20世紀80年代初,Linde等人提出了 LBG(Linde-Buz0-Gray)算法,用于解決矢量量化器的碼本生成問 題。
[0005]傳統(tǒng)LBG算法包括碼本初始化和聚類迭代兩個過程。算法使用二分法(即按2的冪)對碼本進行分裂初始化,初始化后進入聚類迭代,每次迭代使用最小失真準則,對訓(xùn)練樣本重新分類,使每次迭代后的平均失真度減小。它是一個由初始碼本尋找最佳碼本的過程。LBG算法簡單且容易實施,現(xiàn)有的矢量量化算法絕大多數(shù)使用LBG算法生成矢量碼本。但使用傳統(tǒng)LBG算法生成碼本存在兩個問題:一是對初始碼本的選取會影響碼本性能以及算法的收斂速度。二是計算量大,碼本生成時間長。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的主要目的在于克服現(xiàn)有技術(shù)的缺點與不足,提供一種基于M碼字分裂的矢量量化碼本生成方法,該方法克服了因迭代次數(shù)過多和收斂速度過慢導(dǎo)致的生成碼本時效性不足問題,比常規(guī)的LBG矢量碼本生成方法可以更快地生成碼本,而不降低碼本的量化性能。
[0007]本發(fā)明的目的通過以下技術(shù)方案實現(xiàn):一種基于M碼字分裂的矢量量化碼本生成方法,對碼本進行分裂初始化時,根據(jù)目標碼本大小,自適應(yīng)地選取分裂碼字數(shù)為2、4或5,在一個碼字分裂為4個或5個碼字時,其中兩對碼字的增量部分具有正交特性,在一個碼字分裂為5個碼字時,原碼字將保留在新碼字中;在最后一次碼字分裂前,若需要生成的新碼字數(shù)量不足,則選取碼本中的若干個碼字使用二分法進行碼字補償,使最后一次分裂得到的總碼字數(shù)達到目標碼本大小。
[0008]具體包括以下步驟:
[0009](I)給定目標碼本大小N、迭代計算停止門限Θ以及訓(xùn)練樣本集,計算所有訓(xùn)練樣本集的中心,將此中心作為第一個碼字釘即初始碼本;
[0010](2)根據(jù)目標碼本大小N,確定各次分裂碼字數(shù)M,總分裂次數(shù)I以及最后一次分裂前的碼字補償個數(shù)S ;
[0011](3)對碼本進行M分裂初始化;
[0012](4)按最近鄰原則對訓(xùn)練樣本集進行量化分類,劃分胞腔,根據(jù)得到的胞腔更新碼字;
[0013](5)計算碼本的平均失真度和相對失真度,判斷相對失真度是否符合迭代計算停止門限Θ,如果是,進入步驟(6),否則,重新進行步驟(4);
[0014](6)判斷當前碼字數(shù)是否等于目標碼本大小N,如果是,則結(jié)束退出;否則執(zhí)行步驟(3)。
[0015]具體的,所述步驟(3)中,對碼本進行分裂初始化,當一個碼字X分裂為M個新碼字Yi(i=l,…,M,M=2,4,5)時,第1、2個碼字分布在原矢量方向上,而第3、4個碼字的坐標點分布在與原矢量正交的一個平面上,且關(guān)于原始矢量點對稱,設(shè)X1和X2分別為碼字X的一對相鄰的奇偶維分量,ε為 分裂尺度控制系數(shù),Yi為分裂的第i個碼字,對碼字的奇偶維分量在正交方向上進行分裂,則:
[0016]當M=2 時,Y1=X+Δ X,Y2=X-Δ X,其中 ΔΧ=(εχ” ε χ2);
[0017]當Μ=4 時,Υ1>2=Χ± Δ X, Υ3,4=Χ 土 Δ ' X,其中 ΔΧ=(εχ”εχ2),Λ' Χ=(-εχ2,εΧι),其中 ΛΧ.Λ' Χ=0,滿足正交性;
[0018]當Μ=5時,X分裂為5個碼字,除包含Μ=4所分裂的4個碼字外,保留原碼字作為第5個碼字。
[0019]更進一步的,對于一個k維的矢量,當k為偶數(shù)時,通過相鄰的奇偶維分量成對或隔位元素成對來構(gòu)建碼字分裂所需要的矢量增量ΛΧ和Λ ' X,使之滿足ΛΧ.Λ ' Χ=0;如果k為奇數(shù),則選出矢量ΔΧ中的絕對值最小的元素Axi,該元素不參加Δ' X構(gòu)建的元素對配置,從而保證ΛΧ.Λ ' X=| AXi|2達到最小,使得ΛΧ和Λ' X接近正交。
[0020]更進一步的,當碼本進行最后一次分裂前,若最后一次分裂前的碼字補償個數(shù)δ不等于0,則對碼本進行碼字補償,碼字補償方法如下:設(shè)置另一分裂控制系數(shù)ε',把碼本中歸屬訓(xùn)練樣本最多的S個碼字進行二分,從而得到補償碼字,然后進入最后一次的分裂初始化。
[0021]優(yōu)選的,所述第一個碼字ylO為所有訓(xùn)練樣本集的中心,作為固定碼字始終保留在碼本中,每次通過選取不同的矢量元素對進行正交分裂,M=2或者M=4時,由W代替分裂出的任意一個碼字。W參與后續(xù)聚類迭代,但不參與迭代過程中的碼字更新,通過選取不同的矢量元素對構(gòu)建上述ΛΧ和Λ' X,使得W每次分裂出的新碼字與前面分裂產(chǎn)生的碼字不同。
[0022]優(yōu)選的,所述步驟(4)中,按最近鄰原則對訓(xùn)練樣本集進行量化分類所使用平方失真度公式為:
[0023]
【權(quán)利要求】
1.一種基于M碼字分裂的矢量量化碼本生成方法,其特征在于,對碼本進行分裂初始化時,根據(jù)目標碼本大小,自適應(yīng)地選取分裂碼字數(shù)為2、4或5,在一個碼字分裂為4個或5個碼字時,其中兩對碼字的增量部分具有正交特性,在一個碼字分裂為5個碼字時,原碼字將保留在新碼字中;在最后一次碼字分裂前,若需要生成的新碼字數(shù)量不足,則選取碼本中的若干個碼字使用二分法進行碼字補償,使最后一次分裂得到的總碼字數(shù)達到目標碼本大小。
2.根據(jù)權(quán)利要求1所述的基于M碼字分裂的矢量量化碼本生成方法,其特征在于,包括以下步驟: (1)給定目標碼本大小N、迭代計算停止門限Θ以及訓(xùn)練樣本集,計算所有訓(xùn)練樣本集的中心,將此中心作為第一個碼字計,即初始碼本; (2)根據(jù)目標碼本大小N,確定總分裂次數(shù)I,各次分裂碼字數(shù)M以及最后一次分裂前的碼字補償個數(shù)δ ; (3)對碼本進行M分裂初始化; (4)按最近鄰原則對訓(xùn)練樣本集進行量化分類,劃分胞腔,根據(jù)得到的胞腔更新碼字; (5)計算碼本的平均失真度和相對失真度,判斷相對失真度是否符合迭代計算停止門限Θ,如果是,進入步驟(6),否則,重新進行步驟(4); (6)判斷當前碼字數(shù)是否等于目標碼本大小N,如果是,則結(jié)束退出;否則執(zhí)行步驟(3)。
3.根據(jù)權(quán)利要求2所述的基于M碼字分裂的矢量量化碼本生成方法,其特征在于,所述步驟(3)中,對碼本進行分裂初始化,當一個碼字X分裂為M個新碼字Yi (i=l,…,M,M=2,4,5)時,第1、2個碼字分布在原矢量方向上,而第3、4個碼字的坐標點分布在與原矢量正交的一個平面上,且關(guān)于原始矢量點對稱,設(shè)X1和X2分別為碼字X的一對相鄰的奇偶維分量,ε為分裂尺度控制系數(shù),Yi為分裂的第i個碼字,對碼字的奇偶維分量在正交方向上進行分裂,則:
當 M=2 時,Y1=X+Λ X,Y2=X-AX,其中 ΔΧ=( ε X1, ε χ2);
當 Μ=4 時,Υ1;2=Χ土 Δ X, Υ3,4=Χ± Δ ' X,其中 AX=Gx1, ε χ2) , Δ ' X= (- ε χ2, ε X1),其中ΛΧ.Λ' X=0,滿足正交性; 當Μ=5時,X分裂為5個碼字,除包含Μ=4所分裂的4個碼字外,保留原碼字作為第5個碼字。
4.根據(jù)權(quán)利要求3所述的基于M碼字分裂的矢量量化碼本生成方法,其特征在于,對于一個k維的矢量,當k為偶數(shù)時,通過相鄰的奇偶維分量成對或隔位元素成對來構(gòu)建碼字分裂所需要的矢量增量ΛΧ和Λ ' X,使之滿足ΛΧ.Λ' X=0;如果k為奇數(shù),則選出矢量ΔΧ中的絕對值最小的元素Axi,該元素不參加Δ' X構(gòu)建的元素對配置,從而保證ΛΧ.Λ' Χ=| ΛΧ?|2達到最小,使得ΛΧ和Λ ' X接近正交。
5.根據(jù)權(quán)利要求3所述的基于M碼字分裂的矢量量化碼本生成方法,其特征在于,當碼本進行最后一次分裂前,若最后一次分裂前的碼字補償個數(shù)S不等于0,則對碼本進行碼字補償,碼字補償方法如下:設(shè)置另一分裂控制系數(shù)ε',把碼本中歸屬訓(xùn)練樣本最多的δ個碼字進行二分,從而得到補償碼字,然后進入最后一次的分裂初始化。
6.根據(jù)權(quán)利要求2所述的基于M碼字分裂的矢量量化碼本生成方法,其特征在于,所述M為所有訓(xùn)練樣本集的中心,作為固定碼字始終保留在碼本中,每次通過選取不同的矢量元素對進行 正交分裂,M=2或者M=4時,由^代替分裂出的任意一個碼字。
【文檔編號】G10L19/038GK103794219SQ201410036779
【公開日】2014年5月14日 申請日期:2014年1月24日 優(yōu)先權(quán)日:2014年1月24日
【發(fā)明者】賀前華, 何偉俊, 李嘉安娜 申請人:華南理工大學(xué)