專利名稱::基于變長分裂表的矢量量化高階碼本擴展編碼及解碼系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種音頻編碼
技術(shù)領(lǐng)域:
的系統(tǒng),具體是一種基于變長分裂表的矢量量化高階碼本擴展編碼及解碼系統(tǒng)。
背景技術(shù):
:音頻編碼中常采用矢量量化的技術(shù),一種比較常用的量化技術(shù)是格型矢量量化技術(shù),在低碼率的情況下用得相當(dāng)普及。在3GPP(第三代合作伙伴計劃)組織推薦的AMR-冊+(自適應(yīng)多速率寬帶)音頻編碼標(biāo)準(zhǔn)的TCX(變換碼激勵編碼)部分所運用的量化技術(shù)就是建立在8維高斯格上的多位率格型矢量量化技術(shù)。它作用于預(yù)整形后的頻譜數(shù)據(jù),以八個數(shù)為一組,根據(jù)就近原則將這八個數(shù)量化為8維格集合上的點。之后,選取不同的碼本,輸出相應(yīng)的基礎(chǔ)碼本標(biāo)識位,基礎(chǔ)碼本索引和擴展碼本的值。經(jīng)過對現(xiàn)有技術(shù)文獻的檢索發(fā)現(xiàn),美國專利US2005/0285764《Methodandsystemformulti-ratelatticevectorquantizationofasignal》(多碼率格型矢量量化方法和裝置)中提出的Voronoi擴展(最近鄰擴展)方法己經(jīng)在AMR-WB+標(biāo)準(zhǔn)中采用,即編碼器通過Voronoi擴展裝置來量化大值的矢量,即在矢量量化中遇到較大矢量值的時候,使用Voronoi擴展裝置將基礎(chǔ)碼本按指數(shù)擴大,直到碼本大到能將大矢量值包含進來。求Vorcmoi擴展碼本值時,需要首先對輸入樣點和生成矩陣做乘法運算得到矢量v,然后再通過公式y(tǒng)=mc+v(其中y為待量化矢量,c為其對應(yīng)的基礎(chǔ)碼本中的碼字,m為基礎(chǔ)碼本的放大倍數(shù),v為其對應(yīng)的Voronoi碼本中的碼字)求得擴展后的碼本c,并判斷c是否位于基礎(chǔ)碼本中。這就大量使用了乘法和加法的操作,從而導(dǎo)致計算復(fù)雜度大增。檢索中還發(fā)現(xiàn),中國發(fā)明專利200710064351.9《一種量化編解碼方法及裝置》中量化編碼系統(tǒng)采用分裂處理單元對大值的矢量進行基于分裂表的量化。這一裝置采取將大值碼字分裂成低階碼本與分裂量之和的策略,將碼本設(shè)計成低階碼本與多級分裂表的組合,這樣既避免了大量乘法運算,也達到了高階擴展的目的。但隨著分裂級的升高,對分裂表索引的表示需要花費的比特數(shù)也成倍增加,使得分裂級達到三級以上時,矢量量化的效率不及標(biāo)量量化高,而需要采取標(biāo)量量化裝置來進行量化。
發(fā)明內(nèi)容本發(fā)明針對上述現(xiàn)有技術(shù)的不足,提供了一種基于變長分裂表的矢量量化高階碼本擴展編碼及解碼系統(tǒng),采用變長分裂表進行高階碼本擴展,既保證了對較小值碼字分裂量化的高效性,又節(jié)約了在對大值碼字進行矢量量化時開銷的比特數(shù)。本發(fā)明是通過如下技術(shù)方案實現(xiàn)的本發(fā)明涉及一種基于變長分裂表的矢量量化高階碼本擴展編碼系統(tǒng),包括如下模塊擴展編碼判斷模塊,編碼格矢量分裂模塊,基礎(chǔ)碼本編碼模塊,擴展模式選擇模塊,一級擴展計算模塊,二級擴展計算模塊,打包輸出模塊。其中擴展編碼判斷模塊判斷待編碼格矢量,是否在基礎(chǔ)碼本中,若在,則將,輸出到基礎(chǔ)碼本編碼模塊,同時將編碼模式標(biāo)識信息header輸出到打包輸出模塊;若不在,則將^輸出到編碼格矢量分裂模塊;編碼格矢量分裂模塊利用變長分裂表中的分裂量將待編碼格矢量,中的八個分量y(i)(i=l,…,8)分別作分裂處理,將每個y(i)分裂后形成一個新的碼字分量c(i)與變長分裂表中的一個分裂量y'(i),分裂量y'(i)為變長分裂表中能使c(i)絕對值最小的一個分裂量;其中生成的八個碼字分量c(i)組成的八維矢量為基礎(chǔ)碼本中的某一矢量5,將八個y'(i)輸出到擴展模式選擇模塊,并將5輸出到基礎(chǔ)碼本編碼模塊;基礎(chǔ)碼本編碼模塊計算f或f在基礎(chǔ)碼本中的索引i,將i輸出到打包輸出模塊;擴展模式選擇模塊檢測八個y'(i)值的大小,若均小于等于一級擴展閾值,一級擴展閾值為一級分裂表中最大分裂量的值,則將y'(i)輸出到一級擴展計算模塊,否則將y'(i)輸出到二級擴展計算模塊。同時,將編碼模式標(biāo)識信息header輸出到打包輸出模塊;一級擴展計算模塊計算y'(D…y'(8)在一級擴展分裂表中的分裂表索引k,并將k輸出到打包輸出模塊;二級擴展計算模塊分別計算各個分裂量y'(1)…y'(8)在二級擴展中的分裂表標(biāo)識信息splitheader和在該分裂表中的分裂表索引k,并將八組splitheader和k輸出到打包輸出模塊;打包輸出模塊將接收到的參數(shù)header來將各參數(shù)打包并輸出。若header標(biāo)識編碼方法為基礎(chǔ)碼本編碼,則將header,i打包輸出;若header標(biāo)識編碼方法為一級擴展編碼,則將header,i,k打包輸出;若header標(biāo)識編碼方法為二級擴展編碼,則將header,i,splitheader,k打包輸出。其中,所述編碼模式標(biāo)識信息header,用于識別出編碼端采用的編碼方式;基本索引i,用于索引編碼分裂出的基礎(chǔ)碼本中的碼字部分;分裂表標(biāo)識信息splitheader為二級擴展中分裂表的編號,該信息用于識別所使用的分裂量選用的哪個分裂表;分裂表索引k為每個分裂量在所選用的分裂表中的索引,用于索引該分裂表中的值。本發(fā)明還涉及一種基于變長分裂表的矢量量化高階碼本擴展解碼系統(tǒng),包括如下模塊參數(shù)獲取模塊,編碼方式判斷模塊,基礎(chǔ)碼本解碼模塊,一級擴展分裂量解碼模塊,二級擴展分裂量解碼模塊,矢量合成模塊。其中參數(shù)獲取模塊接收編碼端發(fā)來的數(shù)據(jù)包,并對數(shù)據(jù)包進行解析,讀取編碼端傳過來的所有參數(shù),參數(shù)可包括編碼模式標(biāo)識信息header、基本索引i、分裂表標(biāo)識信息splitheader、分裂表索引k,并將所有參數(shù)輸出到編碼方式判斷模塊;編碼方式判斷模塊根據(jù)編碼模式標(biāo)識信息header的值判斷編碼端采用的編碼方式,若采用的是基礎(chǔ)碼本編碼方式,則將header和i輸出到基礎(chǔ)碼本解碼模塊;若采用的是一級擴展編碼方式,則將header和i輸出到基礎(chǔ)碼本解碼模塊,并將k輸出到一級擴展分裂量解碼模塊;若采用的是二級擴展編碼方式,則將header和i輸出到基礎(chǔ)碼本解碼模塊,并將splitheader和k輸出到二級擴展分裂量解碼模塊;基礎(chǔ)碼本解碼模塊檢測header的值,若其標(biāo)識為基礎(chǔ)碼本編碼,則根據(jù)header和i的值計算碼字,,解碼結(jié)束;若其標(biāo)識為擴展碼本編碼方式,則根據(jù)header和i的值計算碼字5,并將5輸出到矢量合成模塊;一級擴展分裂量解碼模塊根據(jù)分裂表索引k計算分裂量的值y'(i),并將y'(i)輸出到矢量合成模塊;二級擴展分裂量解碼模塊根據(jù)八個分裂表標(biāo)識信息splitheader和其對應(yīng)的分裂表索引k計算八個分裂量的值y'(i),并將y'(i)輸出到矢量合成模塊;矢量合成模塊將5的各個分量c(i)分別與各個分裂量y'(i)對應(yīng)相加,得到還原的矢量,,解碼結(jié)束。與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果本發(fā)明由于采用變長分裂表進行高階碼本擴展,既保證了對較小值碼字分裂量化的高效性,又節(jié)約了在對大值碼字進行矢量量化時開銷的比特數(shù),尤其是對多維矢量中只有少數(shù)幾維需要分裂的情況,比特數(shù)節(jié)省尤為明顯。在低比特率音頻編碼應(yīng)用中,相對于現(xiàn)有技術(shù)各維分裂量等長編碼方法,本發(fā)明采用的方法在10.4kbps編碼時,每幀(80ms)能節(jié)約1030比特,而在24kbps編碼時,每幀(80ms)能節(jié)約40140比特。而對于使用了高階擴展方法編碼的矢量,本發(fā)明所采用的方法能節(jié)省7%_15%的比特數(shù)。圖l為基于變長分裂表的矢量量化高階碼本擴展系統(tǒng)編碼端示意圖;圖2為基于變長分裂表的矢量量化高階碼本擴展系統(tǒng)解碼端示意圖。具體實施例方式下面結(jié)合附圖對本發(fā)明的實施例作詳細說明本實施例在以本發(fā)明技術(shù)方案為前提下進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述的實施例。本實施例中選取點集作為基礎(chǔ)碼本。所述的^A點集的定義為<formula>formulaseeoriginaldocumentpage8</formula>可見,WA集合中所有數(shù)據(jù)之和是4的倍數(shù),并且奇偶性相同,在所述的^A點集中選取如下子集作為基礎(chǔ)碼本,其特征碼本(leader)如表1所示表l特征碼本{o,0,0,0,0,0,0,0},{3,3,3,3,1,1,1,1},{2,0,0,0,0,0,0,0},{5,3,1,1,1,1,1,1},{1,1,1,1,1,1,1,1},{6,2,0,0,0,0,0,0},{2,2,0,0,0,0,0,0},{5,3,3,1,1,1,1,1},{2,2,2,2,0,0,0,0},{5,5,1,1,1,1,1,1},{3,1,1,1,1,1,1,1},{7,1,1,1,1,1,1,1},{4,0,0,0,0,0,0,0},{7,3,1,L1,1,1,1},{3,3,1,1,1,1,1,1},{3,3,3,3,3,3,3,1},{4,2,2,0,0,0,0,0},{3,3,3,3,3,3,3,3},{3,3,3,1,1,1,1,1},{9,1,1,1,1,1,1,1},{4,4,0,0,0,0,0,0},{11,1,1,1,1,1,1,1},{5,1,1,1,1,1,1,1},{13,1,1,1,1,1,1,1},基礎(chǔ)碼本又分為Q。,Q2,Q3,Q眉個碼本,此外,當(dāng)實際需要的是{3,3,3,3,1,1,1}和{3,3,3,3,3,3,1,1}時,則將3和1對調(diào),于是對[3,3,3,3,3,1,1,1}對調(diào)得到{3,3,3,1,1,1,Llh對于{3,3,3,3,3,3,1,1}對調(diào)得到{3,3,1,1,1,1,1,1},這樣,便可以用基礎(chǔ)碼本進行檢索。故在基礎(chǔ)碼本込中不包含{3,3,3,3,3,1,1,1}和{3,3,3,3,3,3,1,1}。將這兩種特征碼本稱作屬于碼本inv—Q4。在表1中,Leader所屬碼本的情況如表2所示表20,0,0,0,0,0,0,0},2,0,0,0,0,0,0,0},1,1,1,1,1,1,1,1},込込込inv_04XXXXX<table>tableseeoriginaldocumentpage10</column></row><table>在編碼過程中,不同的基礎(chǔ)碼本是用一個不同長度的二進制數(shù)列來標(biāo)識的,即數(shù)據(jù)包中的header(頭)信息,具體的表示方式如下Qo—header=0;Q2—header=10;<formula>formulaseeoriginaldocumentpage11</formula>。而對于在上述基礎(chǔ)碼本中找不到的矢量,則對各維分量進行分裂,然后將各維分裂量用變長編碼方法進行編碼。本實施例具體可以應(yīng)用于低碼率編碼方案中,如AVS-M音頻編碼等編碼處理過程中。本實施例編碼過程中所采用的變長分裂表如表3所示,表3變長分列表<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>裂表中的某一個值y'(i),具體為將y(i)減去一個與其同號的分裂量,得到的差c(i)為新的碼字分j即c(0:W)-sgn(^))/(z'),(i=0,1,…,7);選取使c(i)的絕對值最小的分裂量,的每-c(1)二y(1)-4=7-4=3;c(2)=y(2)-(-1)*4=-5-(-4)=c(3)=y(3)-0=1-0=1;分量進行分裂:-1;c(7)=y(7)-0=1_0=1;分裂后得到的新的碼字5為{3,-1,1,1,1,1,1,1},此時,5在基礎(chǔ)碼本Q3中,八個分裂量分別為4,4,0,0,0,0,0,0。將八個分裂量4,4,0,0,0,0,0,0輸出到擴展模式選擇模塊,將f輸出到基礎(chǔ)碼本編碼模塊。基礎(chǔ)碼本編碼模塊計算{3,-1,1,1,1,1,1,1)在Q3中的索引baseindexi,將i輸出到打包輸出模塊。擴展模式選擇模塊檢測八個分裂量的值均<=4,判斷擴展級為一級且{3,-1,1,1,1,1,1,1}在基礎(chǔ)碼本Q3中,得到編碼模式標(biāo)識信息為1111110。將八個分裂量輸出到一級擴展計算模塊,同時將編碼模式標(biāo)識信息1111110輸出到打包輸出模塊。一級擴展計算模塊計算分裂量4,4,0,0,0,0,0,O在一級分裂表中的索引分別為1,1,0,0,0,0,0,0,將這些索引輸出到打包輸出模塊。打包輸出模塊打包輸出編碼參數(shù),具體的輸出格式如下baseindexinQ3其中1111110為header標(biāo)識信息,標(biāo)識此處編碼方式為一級擴展,且對應(yīng)的基礎(chǔ)碼本在Q3中,接下來為5在基礎(chǔ)碼本Q3中的索引,11000000為對應(yīng)的八個分裂量在一級分裂表中的索引。所述的一級擴展編碼采用等比特數(shù)來編碼各維分裂j一個碼字若不在基礎(chǔ)碼本中,則是因其分量的絕對值太大,為此,可將絕對值大的分量減去一個分裂量,得到一個絕對值足夠小的差,使該差成為基礎(chǔ)碼本中的一個碼字,之后,將該差對應(yīng)的碼字在基礎(chǔ)碼本中的索引和分裂量在分裂表中的索引作為輸出,從而實現(xiàn)基于分裂表編碼。其中,所述的一級擴展分裂表kl,如表4所示表4<table>tableseeoriginaldocumentpage14</column></row><table>表4中列出了為一級擴展級時,分裂表kl的數(shù)值定義,表中kl為分裂量,i為分裂量的索引,各個分裂量的大小為4的整數(shù)倍。表4中第三列為用二進制表示的kl在分裂級為1時的編碼定義,即取分裂量0時,編碼輸出為其索引"0",取分裂量4時,編碼輸出為其索引"l"。這樣,對于一個八維矢量中的八個分量,每一個分量都需要1比特來表示其分裂量的索引,共8比特。本實施例中,一級編碼過程中,輸出格式如下,headerBaseindexISplitindexk具體包括header,5在基礎(chǔ)碼本中的索引baseindex和分裂量的索引^組成。其中一級擴展編碼方式的header的定義方式如表5所示表5<table>tableseeoriginaldocumentpage14</column></row><table>(二)編碼端擴展級為二級擴展編碼時,以數(shù)據(jù),={27,-7,1,1,1,1,1,1}為例,基于變長分裂表的二級擴展編碼過程具體如下200810038192.X說明書第11/16頁擴展編碼判斷模塊對f進行檢測,發(fā)現(xiàn)數(shù)據(jù)J不在基礎(chǔ)碼本中,將f輸出到編碼格矢量分裂模塊;編碼格矢量分裂模塊將,中的每一個分量y(i)都分裂為c(i)與變長分裂表中的某一個值y'(i),具體為將y(i)減去一個與其同號的分裂量,得到的差c(i)為新的碼字分量,即<formula>formulaseeoriginaldocumentpage15</formula>選取使C(i)的絕對值最小的分裂量f的每一個分量進行分裂c(1)=y(1)_24=27-24=3;c(2)=y(2)-(-1)*4=-7-(-4)=-3;c(3)=y(3)-0=1-0=1;c(7)=y(7)_0=1-0=1;分裂后得到的新的碼字f為{3,-3,1,1,1,1,1,1},此時,f在基礎(chǔ)碼本Q4中,八個分裂量分別為24,4,0,0,0,0,0,0。將八個分裂量24,4,0,0,0,0,0,0輸出到擴展模式選擇模塊,將f輸出到基礎(chǔ)碼本編碼模塊?;A(chǔ)碼本編碼模塊計算(3,-3,1,1,1,1,1,U在Q4中的索引baseindexi,將i輸出到打包輸出模塊。擴展模式選擇模塊檢測八個分裂量的值并非均<=4,判斷擴展級為二級且{3,-3,1,1,1,1,1,1}在基礎(chǔ)碼本Q4中,得到編碼模式標(biāo)識信息為111110。將八個分裂量輸出到二級擴展計算模塊,同時將編碼模式標(biāo)識信息111110輸出到打包輸出模塊。二級擴展計算模塊計算八個分裂量24,4,0,0,0,0,0,0在二級擴展所使用的分裂表中的索引,它們的索引分別用splitheader與indexk的組合來表示。它們對應(yīng)的splitheader和indexk的組合分別為:110,11;10,0;0;0;0;0;0;0;其中分裂量"0"只有splitheader,無indexk。將這些splitheader和索引k輸出到打包輸出模塊。打包輸出模塊打包輸出編碼參數(shù),具體的輸出格式如下<table>tableseeoriginaldocumentpage16</column></row><table>其中111110為header標(biāo)識信息,標(biāo)識此處編碼方式為二級擴展,且對應(yīng)的基礎(chǔ)碼本在Q4中,接下來為f在基礎(chǔ)碼本Q4中的索引,11011100000000為對應(yīng)的八個分裂量在二級擴展分裂表中的索引??梢?,編碼此八個分裂量信息只需要14比特,若采用等長編碼則需要8*3=24比特(等長分裂表中,分裂量24需要用3比特進行編碼,所有分裂量的編碼長度取八個中最長的那個)。二級擴展編碼采用不等長比特數(shù)來編碼各維分裂量。二級擴展編碼方式的header的定義方式如表6所示表6header(binary/二進制)Headervalue/頭值1111100x3E11111110OxFE11111111110x3FFheader定義r=2,inQ4r=2,inQ3=2,ininvQ4二級擴展編碼對應(yīng)的分裂碼表可以如表7所示:表7<table>tableseeoriginaldocumentpage16</column></row><table><table>tableseeoriginaldocumentpage17</column></row><table>表7中列出了擴展級為2時使用的分裂表k0及k2—k5的數(shù)值定義,k6,k7依此類推。表中k為分裂量,i為分裂量的索引,各個分裂量的大小為4的整數(shù)倍,binary為所對應(yīng)的二進制編碼。在此,各個數(shù)值及級別均為具體舉例示意,并不作為本發(fā)明實施例的限定。由于二級擴展使用的分裂表包括各個不同的級別,固必須給各個級別的分裂表再定義header信息,即splitheader,定義如表8:表8Splitheader(binary/二進制)Headervalue/頭值header定義00x0K0100x2K21100x6K31110OxEK411110OxlEK51111100x3EK611111100x7EK7若取分裂量為0時,即該維數(shù)據(jù)未進行分裂,則輸出一個比特"0"作為splitheader來標(biāo)識,且無需輸出分裂量在分裂表k0中的索引;若取分裂量為4時,該分裂量在k2中,編碼輸出其splitheader索引"10",以及其在k2中的索引"0";若取分裂量為20時,該分裂量在k3中,編碼輸出其splitheader索引"110",以及其在k3中的索引"10"。因此,本實施例中,二級編碼過程中,輸出格式如下,<formula>formulaseeoriginaldocumentpage18</formula>具體包括header,f在基礎(chǔ)碼本中的索引baseindexI和八個分裂量的splitheader,以及對應(yīng)的八個indexk。這里要注意的是,當(dāng)其中某一個splitheader為"0"時,其對應(yīng)的indexk不需要傳,占用0比特。Indexk的長度依據(jù)splitheader來定,不同的splitheader對應(yīng)不同的indexk長度。分裂量在k0,k2-k7中時,所消耗的比特數(shù)如表9所示表9<table>tableseeoriginaldocumentpage18</column></row><table>實際情況中,對于一個八維矢量,往往只有少許幾維需要分裂,且值特別大的數(shù)字往往只有一維,固采用不等長編碼區(qū)別對待,能在實際應(yīng)用中節(jié)省不少比特數(shù)。如圖2所示,本實施例還涉及一種基于變長分裂表的矢量量化高階碼本擴展解碼系統(tǒng),解碼端也包括兩種擴展級編碼方式下的解碼處理過程。(一)在編碼端使用一級擴展編碼時,以數(shù)據(jù),={7,-5,1,1,1,1,1,1}為例,解碼端基于變長分裂表的解碼過程具體如下參數(shù)獲取模塊接收編碼端發(fā)來的數(shù)據(jù)包,對其進行解析,讀取header,i,k等參數(shù),并將這些參數(shù)輸出到編碼方式判斷模塊;編碼方式判斷模塊根據(jù)編碼模式標(biāo)識信息header值1111110,判斷為一級擴展編碼,并可以得知對應(yīng)的f所在基礎(chǔ)碼本為Q3,將header值1111110和i輸出到基礎(chǔ)碼本解碼模塊,并將k的值11000000輸出到一級擴展分裂量解碼模塊;基礎(chǔ)碼本解碼模塊檢測header的值1111110為一級擴展編碼,根據(jù)header和索引i的值計算碼字"得到5={3,-1,1,1,1,1,1,1},并將f輸出到矢量合成模塊;一級擴展分裂量解碼模塊根據(jù)分裂表索引f=11000000,計算得到分裂量的值為{4,4,0,0,0,0,0,0},并將這些分裂量輸出到矢量合成模塊;矢量合成模塊將基礎(chǔ)碼本中的矢量{3,-1,1,1,1,1,1,1}與分裂量{4,4,0,0,0,0,0,0}相加,這里分裂量取與基礎(chǔ)碼本中對應(yīng)分量相同的符號,得到還原的矢量f為{7,-5,1,1,1,1,1,1},解碼結(jié)束。(二)在編碼端使用二級擴展編碼時,以數(shù)據(jù),二{27,-7,1,1,1,1,1,1}為例,在解碼端基于變長分裂表的解碼過程具體如下參數(shù)獲取模塊接收編碼端發(fā)來的數(shù)據(jù)包,對其進行解析,讀取header,I,splitheader,k等參數(shù),并將這些參數(shù)輸出到編碼方式判斷模塊;編碼方式判斷模塊根據(jù)編碼模式標(biāo)識信息header值111110,判斷為二級擴展編碼,并可以得知對應(yīng)的5所在基礎(chǔ)碼本為Q4,將header值111110和i輸出到基礎(chǔ)碼本解碼模塊,并將splitheader和k的值11011100000000輸出到二級擴展分裂量解碼模塊;基礎(chǔ)碼本解碼模塊檢測header的值111110為二級擴展編碼,根據(jù)header和索引i的值計算碼字f,得到5={3,-3,1,1,1,1,1,1},并將5輸出到矢量合成模塊;二級擴展分裂量解碼模塊讀取分裂量索引11011100000000,解析該索引,第一個splitheader為110,接下來往后讀兩位為第一個indexk,即11,査分裂表得第一個分裂量為24;接著往下讀,得到第二個splitheader為10,往后讀一位為0,査分裂表得第二個分裂量為4;接著往下讀,得到第三個splitheader為0,固知第三個分裂量為0;同理接著往下讀,得到第四至八個分裂量均為0。最終得到八維分裂量為{24,4,0,0,0,0,0,0};并將這些分裂量輸出到矢量合成模塊;矢量合成模塊將基礎(chǔ)碼本中的矢量{3,-3,1,1,1,1,1,1}與分裂量{24,4,0,0,0,0,0,0}相加,這里分裂量取與基礎(chǔ)碼本中對應(yīng)分量相同的符號,得到還原的矢量f為{27,-5,1,1,1,1,1,1},解碼結(jié)束。綜上所述,一級擴展采用等長比特編碼分裂量,適應(yīng)于較小且比基礎(chǔ)碼本中矢量稍大的矢量;二級擴展采用不等長比特編碼分裂量,適應(yīng)于較大數(shù)值的矢量,由于實際應(yīng)用中大值矢量中,往往只有l(wèi)-3維需要分裂,故對分裂量采用不等長編碼,給未分裂的幾維用1比特"0"標(biāo)識,有利于高效利用比特數(shù),節(jié)省比特開銷。以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本
技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準(zhǔn)。權(quán)利要求1.一種基于變長分裂表的矢量量化高階碼本擴展編碼系統(tǒng),其特征在于,包括如下模塊擴展編碼判斷模塊,編碼格矢量分裂模塊,基礎(chǔ)碼本編碼模塊,擴展模式選擇模塊,一級擴展計算模塊,二級擴展計算模塊,打包輸出模塊,其中擴展編碼判斷模塊判斷待編碼格矢量id="icf0001"file="S200810038192XC00011.gif"wi="2"he="3"top="76"left="109"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/>是否在基礎(chǔ)碼本中,若在,則將id="icf0002"file="S200810038192XC00012.gif"wi="2"he="3"top="76"left="174"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/>輸出到基礎(chǔ)碼本編碼模塊,同時將編碼模式標(biāo)識信息header輸出到打包輸出模塊;若不在,則將id="icf0003"file="S200810038192XC00013.gif"wi="2"he="3"top="92"left="57"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/>輸出到編碼格矢量分裂模塊;編碼格矢量分裂模塊利用變長分裂表中的分裂量將待編碼格矢量id="icf0004"file="S200810038192XC00014.gif"wi="2"he="3"top="101"left="161"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/>中的八個分量y(i)(i=1,…,8)分別作分裂處理,將每個y(i)分裂后形成一個新的碼字分量c(i)與變長分裂表中的一個分裂量y’(i),分裂量y’(i)為變長分裂表中能使c(i)絕對值最小的一個分裂量;其中生成的八個碼字分量c(i)組成的八維矢量為基礎(chǔ)碼本中的某一矢量id="icf0005"file="S200810038192XC00015.gif"wi="4"he="3"top="135"left="91"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/>將八個y’(i)輸出到擴展模式選擇模塊,并將id="icf0006"file="S200810038192XC00016.gif"wi="2"he="2"top="144"left="35"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/>輸出到基礎(chǔ)碼本編碼模塊;基礎(chǔ)碼本編碼模塊計算id="icf0007"file="S200810038192XC00017.gif"wi="2"he="3"top="153"left="82"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/>或id="icf0008"file="S200810038192XC00018.gif"wi="1"he="2"top="152"left="91"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/>在基礎(chǔ)碼本中的索引i,將i輸出到打包輸出模塊;擴展模式選擇模塊檢測八個y’(i)值的大小,若均小于等于一級擴展閾值,一級擴展閾值為一級分裂表中最大分裂量的值,則將y’(i)輸出到一級擴展計算模塊,否則將y’(i)輸出到二級擴展計算模塊,同時,將編碼模式標(biāo)識信息header輸出到打包輸出模塊;一級擴展計算模塊計算y’(1)…y’(8)在一級擴展分裂表中的分裂表索引k,并將k輸出到打包輸出模塊;二級擴展計算模塊分別計算各個分裂量y’(1)…y’(8)在二級擴展中的分裂表標(biāo)識信息splitheader和在該分裂表中的分裂表索引k,并將八組splitheader和k輸出到打包輸出模塊;打包輸出模塊將接收到的參數(shù)header來將各參數(shù)打包并輸出,若header標(biāo)識編碼方法為基礎(chǔ)碼本編碼,則將header,i打包輸出;若header標(biāo)識編碼方法為一級擴展編碼,則將header,i,k打包輸出;若header標(biāo)識編碼方法為二級擴展編碼,則將header,i,splitheader,k打包輸出。2.根據(jù)權(quán)利要求1所述的基于變長分裂表的矢量量化高階碼本擴展編碼系統(tǒng),其特征是,所述編碼模式標(biāo)識信息header,用于識別出編碼端采用的編碼方式。3.根據(jù)權(quán)利要求1所述的基于變長分裂表的矢量量化高階碼本擴展編碼系統(tǒng),其特征是,所述基本索引i,用于索引編碼分裂出的基礎(chǔ)碼本中的碼字部分。4.根據(jù)權(quán)利要求1所述的基于變長分裂表的矢量量化高階碼本擴展編碼系統(tǒng),其特征是,所述分裂表標(biāo)識信息splitheader為二級擴展中分裂表的編號,該信息用于識別所使用的分裂量選用的哪個分裂表。5.根據(jù)權(quán)利要求1所述的基于變長分裂表的矢量量化高階碼本擴展編碼系統(tǒng),其特征是,所述分裂表索引k為每個分裂量在所選用的分裂表中的索引,用于索引該分裂表中的值。6.—種基于變長分裂表的矢量量化高階碼本擴展解碼系統(tǒng),其特征在于,包括如下模塊參數(shù)獲取模塊,編碼方式判斷模塊,基礎(chǔ)碼本解碼模塊,一級擴展分裂量解碼模塊,二級擴展分裂量解碼模塊,矢量合成模塊,其中參數(shù)獲取模塊接收編碼端發(fā)來的數(shù)據(jù)包,并對數(shù)據(jù)包進行解析,讀取編碼端傳過來的所有參數(shù),參數(shù)可包括編碼模式標(biāo)識信息header、基本索引i、分裂表標(biāo)識信息splitheader、分裂表索引k,并將所有參數(shù)輸出到編碼方式判斷模塊;編碼方式判斷模塊根據(jù)編碼模式標(biāo)識信息header的值判斷編碼端采用的編碼方式,若采用的是基礎(chǔ)碼本編碼方式,則將header和i輸出到基礎(chǔ)碼本解碼模塊;若采用的是一級擴展編碼方式,則將header和i輸出到基礎(chǔ)碼本解碼模塊,并將k輸出到一級擴展分裂量解碼模塊;若采用的是二級擴展編碼方式,則將header和i輸出到基礎(chǔ)碼本解碼模塊,并將splitheader和k輸出到二級擴展分裂量解碼模塊;基礎(chǔ)碼本解碼模塊檢測header的值,若其標(biāo)識為基礎(chǔ)碼本編碼,則根據(jù)header和i的值計算碼字j,解碼結(jié)束;若其標(biāo)識為擴展碼本編碼方式,則根據(jù)header和i的值計算碼字5,并將f輸出到矢量合成模塊;一級擴展分裂量解碼模塊根據(jù)分裂表索引k計算分裂量的值y'(i),并將y'(i)輸出到矢量合成模塊;二級擴展分裂量解碼模塊根據(jù)八個分裂表標(biāo)識信息splitheader和其對應(yīng)的分裂表索引k計算八個分裂量的值y'(i),并將y'(i)輸出到矢量合成模塊;矢量合成模塊將f的各個分量c(i)分別與各個分裂量y'(i)對應(yīng)相加,得到還原的矢量f,解碼結(jié)束。7.根據(jù)權(quán)利要求6所述的基于變長分裂表的矢量量化高階碼本擴展解碼系統(tǒng),其特征是,所述根據(jù)編碼模式標(biāo)識信息header的值判斷編碼端采用的編碼方式。全文摘要一種編解碼
技術(shù)領(lǐng)域:
的基于變長分裂表的矢量量化高階碼本擴展編碼及解碼系統(tǒng),解碼系統(tǒng)包括擴展編碼判斷模塊,編碼格矢量分裂模塊,基礎(chǔ)碼本編碼模塊,擴展模式選擇模塊,一級擴展計算模塊,二級擴展計算模塊,打包輸出模塊,解碼系統(tǒng)包括參數(shù)獲取模塊,編碼方式判斷模塊,基礎(chǔ)碼本解碼模塊,一級擴展分裂量解碼模塊,二級擴展分裂量解碼模塊,矢量合成模塊,對于不在基礎(chǔ)碼本中的碼字,利用基于變長分裂表的兩級擴展方式來進行編碼,一級擴展采用等長比特編碼分裂量;二級擴展采用不等長比特編碼分裂量。這種兩級擴展方案既保證了對較小值碼字量化的高效性,又節(jié)約了在對大值碼字進行矢量量化時開銷的比特數(shù)。文檔編號H03M7/30GK101281750SQ20081003819公開日2008年10月8日申請日期2008年5月29日優(yōu)先權(quán)日2008年5月29日發(fā)明者劉佩林,劉彬彬,司馬婷婷,吉孔,瑾王申請人:上海交通大學(xué)