欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

編碼方法、解碼方法及其裝置的制作方法

文檔序號:2831106閱讀:189來源:國知局
專利名稱:編碼方法、解碼方法及其裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)字信號處理領(lǐng)域,尤其涉及一種編碼方法、解碼方法及其裝置。

背景技術(shù)
在當(dāng)前的語音信號編碼領(lǐng)域,一種非常重要的實現(xiàn)方法就是變換編碼,其主要思想是將待編碼語音信號劃分成若干幀,采用快速傅立葉變換(Fast FourierTransform,F(xiàn)FT)或是離散余弦變換(Discrete Cosine Transform,DCT)等將語音信號從時域轉(zhuǎn)化到頻域,并對頻譜進行量化。而格型矢量量化方法是目前在量化領(lǐng)域的一種常用方法。格型矢量量化方法的設(shè)計主要包括兩個方面的問題選取恰當(dāng)?shù)母褚约霸O(shè)計特定格結(jié)構(gòu)的碼本。
現(xiàn)有技術(shù)提供了一種基于RE8格的格型矢量量化方法。根據(jù)待量化處理的語音數(shù)據(jù)幀的能量,將一定編碼比特數(shù)分配給該語音數(shù)據(jù)幀,確定一個能量縮放因子,并以該能量縮放因子對所述語音數(shù)據(jù)幀中各待量化矢量進行能量縮放,其次,確定語音數(shù)據(jù)幀中各待量化矢量在基于RE8格配置的碼本內(nèi)索引,即將各待量化矢量從絕對引導(dǎo)項生成時的排列方式、符號分布方式、絕對引導(dǎo)項復(fù)合起來,生成語音數(shù)據(jù)幀中各待量化矢量的碼本內(nèi)索引,根據(jù)該碼本內(nèi)索引及對應(yīng)碼本的碼本號即可在解碼端恢復(fù)出語音數(shù)據(jù)幀中的矢量。
但是現(xiàn)有技術(shù)中利用絕對引導(dǎo)項來產(chǎn)生數(shù)據(jù)幀中各待量化矢量的算法以及計算所述排列方式的運算復(fù)雜度高,且存儲空間占用量大,不利于方案的擴展實施。


發(fā)明內(nèi)容
本發(fā)明實施例所要解決的技術(shù)問題在于,提供了一種編碼方法、一種解碼方法及裝置,能在保證編解碼質(zhì)量的前提下,有效地降低編解碼復(fù)雜度,節(jié)約存儲空間。
為了解決上述技術(shù)問題,本發(fā)明實施例提出了一種編碼方法,包括 根據(jù)數(shù)據(jù)幀的能量以及所述數(shù)據(jù)幀的編碼比特數(shù),對所述數(shù)據(jù)幀進行縮放; 將縮放后的數(shù)量幀中各編碼矢量量化為最接近的RE8格點,獲得待編碼矢量; 對所述待編碼矢量分層進行編碼,獲得編碼碼流。
本發(fā)明實施例還提供了一種解碼方法,包括 獲得數(shù)據(jù)幀矢量的分層編碼碼流; 從所述分層編碼碼流中解析出每一編碼層的差分碼本號以及碼本內(nèi)索引信息; 根據(jù)所述每一編碼層差分碼本號解碼得到所述編碼層的碼本號; 根據(jù)所述碼本號以及碼本內(nèi)索引信息,從相應(yīng)的碼本中獲得所述編碼層的RE8格點矢量信號; 依序?qū)γ恳痪幋a層的RE8格點矢量信號進行組合,獲得解碼后的數(shù)據(jù)幀。相應(yīng)地,本發(fā)明實施例還提供了一種編碼裝置,包括 縮放單元,用于根據(jù)數(shù)據(jù)幀的能量以及所述數(shù)據(jù)幀的編碼比特數(shù),對所述數(shù)據(jù)幀進行縮放; 格點量化單元,用于將經(jīng)縮放單元縮放后的數(shù)據(jù)幀中各編碼矢量量化為最接近的RE8格點,獲得待編碼矢量; 編碼處理單元,用于對所述待編碼矢量分層進行編碼,獲得編碼碼流。
相應(yīng)地,本發(fā)明實施例還提供了一種解碼裝置,包括 獲取單元,用于獲得數(shù)據(jù)幀矢量的分層編碼碼流; 解析單元,用于從所述分層編碼碼流中解析出每一編碼層的差分碼本號以及碼本內(nèi)索引信息; 解碼處理單元,用于根據(jù)所述每一編碼層差分碼本號解碼得到所述編碼層的碼本號;并根據(jù)所述碼本號以及碼本內(nèi)索引信息,從相應(yīng)的碼本中獲得所述編碼層的RE8格點矢量信號; 疊加單元,用于依序?qū)γ恳痪幋a層的RE8格點矢量信號進行組合,獲得解碼后的數(shù)據(jù)幀。
本發(fā)明實施例,通過利用RE8格型為基礎(chǔ),采用對待編碼矢量逐層量化的方式,其將待編碼矢量量化到RE8格點上,并將量化到RE8格點上的格點代數(shù)拆解成若干層,對每層分別選用某一碼本進行量化。這樣,通過采用代數(shù)的碼本構(gòu)成和索引方式,在保證編解碼質(zhì)量的前提下,有效地降低編解碼復(fù)雜度,節(jié)約存儲空間。



圖1是本發(fā)明實施例的矢量量化方法的示意圖; 圖2是本發(fā)明實施例的語音解碼方法的示意圖; 圖3是本發(fā)明實施例的矢量量化裝置的示意圖; 圖4是本發(fā)明實施例中量化處理單元的一個實施例的結(jié)構(gòu)示意圖; 圖5是本發(fā)明實施例中差分編碼單元的一個實施例的結(jié)構(gòu)示意圖; 圖6是本發(fā)明實施例中碼本號獲取單元的一個實施例的結(jié)構(gòu)示意圖; 圖7是本發(fā)明實施例的語音解碼裝置的示意圖。

具體實施例方式 本發(fā)明實施例提供了一種編碼方法、一種解碼方法、一種編碼裝置及一種解碼裝置,可實現(xiàn)采用代數(shù)的碼本構(gòu)成和索引方式,在保證編解碼質(zhì)量的前提下,有效地減小運算量、降低運算復(fù)雜度,節(jié)約存儲空間。
下面結(jié)合附圖,對本發(fā)明實施例進行詳細說明。
RE8格是一種基于格型矢量量化的一種格型結(jié)構(gòu),即 RE8=2D8∪{2D8+(1,1,1,1,1,1,1,1)}, 其中,D8是由8維整數(shù)格Z8的格點v=(v1,v2,...,v8)組成,且其坐標(biāo)滿足

即 D8={(x1,x2,...,x8)∈Z8|x1,x2,...,x8為偶數(shù)}, 那么由上可知,RE8格具有如下性質(zhì) 1、RE8格點代表的所有8維矢量,其8個分量的和為4的倍數(shù); 2、RE8格點代表的所有8維矢量,其8個分量全部為奇數(shù)或全部為偶數(shù); 在本發(fā)明實施例中,采用RE8格點作為格型矢量量化的基本單元。
圖1是本發(fā)明實施例的編碼方法的示意圖,參照該圖,該方法主要包括 步驟101,根據(jù)語音數(shù)據(jù)幀中各待量化矢量的能量及分配給語音數(shù)據(jù)幀的編碼比特數(shù),對語音數(shù)據(jù)幀中的各個待量化矢量進行能量縮放,具體地,為了保證語音數(shù)據(jù)幀可以被分配的編碼比特數(shù)量化,需要根據(jù)語音數(shù)據(jù)幀中各待量化矢量的能量以及分配的編碼比特數(shù)對語音數(shù)據(jù)幀中各待量化矢量進行能量縮放,可包括 A、計算語音數(shù)據(jù)幀中各待量化矢量的能量 在一個實施例中,假設(shè)所述語音數(shù)據(jù)幀中包含K個8維待量化矢量,令Bk[i]為K個8維待量化矢量中第k個8維待量化矢量的第i個分量,Rk(1)為第k個8維待量化矢量的能量,計算如下 k=1,2,...K,i=0,1,2,...,7; B、根據(jù)語音數(shù)據(jù)幀中各待量化矢量的能量及分配給語音數(shù)據(jù)幀的編碼比特數(shù)計算語音數(shù)據(jù)幀的縮放因子 首先,初始化變量fac、offsetfac=128,offset=0,NB_BITS是分配給語音數(shù)據(jù)幀的編碼比特數(shù); 其次,按以下步驟迭代多次,直至offset變量不再變化,一般采用經(jīng)驗值10次 offset=offset+fac if nbits≤NB_BITS,then offset=offset-fac fac=fac/2; 迭代完成之后,計算縮放因子g C、利用所述縮放因子g對語音數(shù)據(jù)幀中待量化矢量進行能量縮放 xk[i]=Bk[i]/g,i=0,1,2,...,7,其中Bk[i]是語音數(shù)據(jù)幀中第k個8維待量化矢量第i個分量縮放前的數(shù)據(jù),xk[i]是其縮放后的數(shù)據(jù)。
步驟102,將經(jīng)過所述能量縮放處理后的各個待量化矢量量化到最接近的RE8格點上,獲得待編碼矢量,具體地可包括如下流程 D、將xk量化為2D8上的格點yk d1,計算yk[i]=int(xk[i]/2)×2,i=0,1,2,...,7,其中int表示取整運算(下同),xk[i]為語音數(shù)據(jù)幀中第k個8維待量化矢量第i個分量Bk[i]縮放后的數(shù)據(jù),其數(shù)據(jù)類型為浮點數(shù); d2,計算格點yk的8個分量的和S
d3,判斷S是否為4的倍數(shù),即判斷格點yk是否滿足RE8格的性質(zhì),若是,則量化完成,否則執(zhí)行d4; d4,找出yk[i]中誤差最大的分量yk[max_i],其中

若yk[max_i]<xk[max_i],將yk[max_i]自加2,即yk[max_i]=y(tǒng)k[max_i]+2,否則將yk[max_i]自減2,即yk[max_i]=y(tǒng)k[max_i]-2(對于已經(jīng)全為偶數(shù)的矢量來說,若其各分量之和不是4的倍數(shù),將某一元素加/減2之后,一定會使其各分量之和變?yōu)?的倍數(shù)); E、將xk量化為2D8+(1,1,1,1,1,1,1,1)上的格點y′k e1,計算y′k[i]=int((xk[i]-1)/2)×2,i=0,1,2,...,7,其中xk[i]為語音數(shù)據(jù)幀中第k個8維待量化矢量第i個分量Bk[i]縮放后的數(shù)據(jù),其數(shù)據(jù)類型為浮點數(shù); e2,計算格點y′k8個分量的和S’
e3,判斷S’是否為4的倍數(shù),即判斷格點y′k是否滿足RE8格的性質(zhì),若是,則量化完成,否則執(zhí)行e4; e4,找出y′k[i]中誤差最大的分量y′k[max_i],其中

即若y′k[max_i]<xk[i],將y′k[max_i]自加2,即y′k[max_i]=y(tǒng)′k[max_i]+2,否則將y′k[max_i]自減2,即y′k[max_i]=y(tǒng)′k[max_i]-2; e5,將每個分量自加1,即y′k[i]=y(tǒng)′k[i]+1; F、計算上述D、E處理所得RE8格點的量化誤差eA、eB 若eA≤eB,則將步驟D中處理所得yk[i]作為該xk所量化為的最接近的RE8格點,否則將步驟E中處理所得y′k[i]作為該xk所量化為的最接近的RE8格點; 經(jīng)過上述的量化處理,可以獲得語音數(shù)據(jù)幀的待編碼矢量,即當(dāng)前幀所有量化到RE8格點上的8維矢量。
之后,需要對這些待編碼矢量分層進行編碼,以獲得編碼碼流,具體包括如下步驟 步驟104,根據(jù)能量大小,從所有待編碼矢量中確定一個為當(dāng)前處理層的矢量,例如可以選擇重要性最高的未處理的RE8格點上的8維矢量作為當(dāng)前處理層矢量; 步驟105,所述當(dāng)前層碼本號所對應(yīng)的碼本對當(dāng)前處理層矢量進行量化直到所述量化誤碼差或所述編碼比特數(shù)為0。
具體地,本發(fā)明實施例中提出了一種供上述量化使用的碼本表,如下表1所示 表1 上表1中,碼本號為0的碼本包含元素0;碼本號為1的碼本包含元素±2,0以及元素(1,1,1,1,1,1,1,1);碼本號為2及以上的碼本包含元素±4×(碼本號-1),±2×(碼本號-1),0。
假定當(dāng)前處理層矢量為

上述使用當(dāng)前處理層矢量對應(yīng)碼本對該當(dāng)前處理層矢量進行量化得到該當(dāng)前處理層矢量的矢量編碼信號、量化誤差的步驟可包括如下流程 若該當(dāng)前處理層矢量為最高層矢量時,當(dāng)?shù)?個分量全為奇數(shù)時,以該當(dāng)前處理層矢量8個分量均減1所得矢量作為最高處理層矢量,并執(zhí)行下述g1;當(dāng)該當(dāng)前處理層矢量的8個分量全為偶數(shù)時,以該當(dāng)前處理層矢量作為最高處理層矢量,直接執(zhí)行g(shù)1,以獲得當(dāng)前層碼本號。該根據(jù)當(dāng)前處理層適量獲得當(dāng)前層碼本號的步驟具體為; g1,提取當(dāng)前處理層矢量

的8個分量的絕對值最大的分量(max_value); g2,根據(jù)該最大的分量(max_value),計算所述當(dāng)前處理層矢量

對應(yīng)碼本的碼本號cb_num g3,使用所述碼本號為cb_num的碼本對所述當(dāng)前層矢量

的各分量進行量化 若所述當(dāng)前處理層矢量

的8個分量中第i個分量xi>0時,對其進行第一量化,得到該分量xi的的第一量化結(jié)果,在一個實施例中,該第一量化公式為 i=0,1,2,...7, 若所述當(dāng)前處理層矢量

8個分量中第i個分量xi<0時,對其進行第一量化,得到該分量xi的第二量化結(jié)果,在一個實施例中,該第二量化公式為 i=0,1,2,...7; g4,根據(jù)對所述當(dāng)前處理層矢量8個分量各分量及其量化結(jié)果,計算對所述當(dāng)前處理層矢量進行量化得到的量化誤差
步驟106,判斷是否滿足所述量化誤差

不為0且分配給所述語音數(shù)據(jù)幀的編碼比特數(shù)未用完的條件,當(dāng)滿足所述量化誤差

不為0以及編碼比特數(shù)未用完的條件時,則以所述量化誤差

作為當(dāng)前處理層矢量,并返回執(zhí)行步驟105;當(dāng)所述量化誤差

或編碼比特數(shù)用完時,則輸出編碼碼流。
上述確定所述當(dāng)前處理層矢量

在其對應(yīng)碼本中的索引的步驟可包括如下流程,其中索引一般包括碼本號及碼本內(nèi)索引 h1、當(dāng)所述當(dāng)前處理層矢量

為0時,確定所述當(dāng)前處理層矢量

對應(yīng)碼本號為0,即步驟g2中計算所得的碼本號cb_num,當(dāng)當(dāng)前處理層矢量

對應(yīng)碼本的碼本號為0時,當(dāng)前處理層矢量

在其對應(yīng)碼本中的索引只包括其碼本號0而不包括碼本內(nèi)索引; h2、當(dāng)所述當(dāng)前處理層矢量

不為0時,確定所述當(dāng)前處理層矢量

對應(yīng)碼本的碼本號,即g2中計算所得碼本號cb_num,并確定所述當(dāng)前處理層矢量

8個分量在其對應(yīng)碼本中的索引號(即xi在其對應(yīng)碼本中的索引號),以最高處理層編碼索引標(biāo)識位high_tag記錄所述最高處理層矢量,以奇偶標(biāo)識位記錄所述初始矢量各分量全為奇數(shù)/偶數(shù),索引中的碼本內(nèi)索引包括上述索引號、最高處理層編碼索引標(biāo)識(high_tag)以及奇偶標(biāo)識位,其中 當(dāng)當(dāng)前處理層矢量

為初始矢量,即最高處理層矢量時,所述最高處理層編碼索引標(biāo)識位high_tag置1,否則置0,這樣,在解碼端,該最高處理層編碼索引標(biāo)識位high_tag指示某初始矢量的碼流的開始,當(dāng)然最高處理層編碼索引標(biāo)識位high_tag也可以采用其他的標(biāo)示方式來實現(xiàn)其功能; 當(dāng)當(dāng)前處理層矢量

為初始矢量,即最高處理層矢量時,需要判斷當(dāng)前處理層矢量

各分量是否全為奇數(shù)/偶數(shù),若全為奇數(shù),則所述奇偶標(biāo)識位置1,否則置0,這樣,在解碼端,該奇偶標(biāo)識位可指示是否進行將所述初始矢量的各分量恢復(fù)成全奇數(shù)的處理; 所述確定所述當(dāng)前處理層矢量

8個分量在其對應(yīng)碼本中的索引號的步驟具體可包括如下流程 h21,針對使用碼本號為1的碼本進行量化的當(dāng)前處理層矢量

,該當(dāng)前處理層矢量

中每個分量以一比特位指示其是否非零,當(dāng)非零時以另一比特位指示其符號,由所述比特位的集合形成所述當(dāng)前處理層矢量

8個分量在其對應(yīng)碼本號為1的碼本中的索引號,具體地,對于當(dāng)前處理層矢量

8個分量中前7個分量中的每個分量,用一個比特指示其為0或非零,若為非零再用一個比特指示其符號,經(jīng)過前7個分量的分析并結(jié)合RE8格的性質(zhì),可以推斷出第8個分量為0或非零,若為0,則第8個分量無需比特編碼,否則用一比特指示其符號;另外,對于量化為(1,1,1,1,1,1,1,1)的當(dāng)前處理層矢量

,其索引號指定為7個0; h22,針對使用碼本號為2及以上的碼本進行量化的當(dāng)前處理層矢量

,該當(dāng)前處理層矢量

中每個分量yi,i=0,1,2,...,7先以1/(碼本號-1)進行縮放得到

那么碼本號為2及以上的碼本中即轉(zhuǎn)化為只包括-4,-2,0,2,4五種元素,那么可接著計算所述當(dāng)前處理層矢量

8個分量中前7個分量在其對應(yīng)碼本中的索引號index0-6 y′i∈{-4,-2,0,2,4},ii∈{0,1,2,3,4}’ index0-6=i6×56+i5×55+i4×54+i3×53+i2×52+i1×51+i0×50,index0-6∈
; 再次計算所述當(dāng)前處理層矢量

8個分量中第8個分量在其對應(yīng)碼本中的索引號index7當(dāng)y′7∈{-4,0,4}時,

當(dāng)y′7∈{-2,2}時,

另外,所述當(dāng)前處理層矢量對應(yīng)碼本的碼本號與該當(dāng)前處理層矢量下一處理層矢量對應(yīng)碼本的碼本號之間可以采用差分編碼或其他編碼方式進行處理,即 所述當(dāng)前處理層矢量對應(yīng)碼本的碼本號與該當(dāng)前處理層矢量下一處理層矢量對應(yīng)碼本的碼本號之間采用差分編碼,得到所述當(dāng)前處理層矢量對應(yīng)碼本的差分碼本號cb_num_diff為

其中cb_num′為當(dāng)前處理層矢量的下一處理層矢量對應(yīng)碼本的碼本號; 對該獲得的差分碼本號進行編碼,在具體的實施例中,可根據(jù)各碼本在編碼時所使用的統(tǒng)計概率大小對差分碼本號進行編碼,例如使用概率較大的碼本對應(yīng)差分碼本號位數(shù)較少,使用概率較大的碼本對應(yīng)差分碼本號位數(shù)較多,各差分碼本號組成的碼本號編碼表如下表2所示,但不僅限于此編碼形式 表2 上表2中,從碼本號為0的碼本對應(yīng)的差分碼本號開始,前4個(差分碼本號標(biāo)示為0,1,2,3)差分碼本號采用哈夫曼(huffman)編碼方式編碼,第6個至第11個差分碼本號、第12個至19個差分碼本號采用二進制編碼方式編碼,并以一比特位指示當(dāng)前處理層矢量對應(yīng)碼本的差分碼本號的編碼方式; 圖2是本發(fā)明實施例的解碼方法的示意圖,該解碼方法基于上述圖1所示的本發(fā)明實施例的編碼方法,參照圖2,該方法主要包括 步驟201,獲得前面對圖1進行描述的編碼方法所得到的數(shù)據(jù)幀矢量的分層編碼碼流;從該分層編碼碼流中解析出每一編碼層的差分碼本號以及碼本內(nèi)索引信息,具體地,該碼本內(nèi)索引信息包括所述一個處理層矢量8個分量在其對應(yīng)碼本中的索引號、記錄以所述初始矢量作為最高處理層矢量的最高處理層編碼索引標(biāo)識位high_tag、記錄所述初始矢量8個分量全為奇數(shù)/偶數(shù)的奇偶標(biāo)識位; 步驟202,根據(jù)每一編碼層差分碼本號解碼得到該編碼層的碼本號;并根據(jù)該碼本號以及碼本內(nèi)索引信息,從相應(yīng)的碼本中獲得該編碼層的RE8格點矢量信號,該步驟具體可包括如下流程 當(dāng)一個處理層矢量對應(yīng)碼本的碼本號為0時,在所述最終合成信號中該當(dāng)前處理層矢量對應(yīng)的部分填充舒適噪聲; 當(dāng)一個處理層矢量對應(yīng)碼本的碼本號不為0時,接收到所述最高處理層編碼索引標(biāo)識位high_tag時,使用所述一個處理層矢量8個分量在其對應(yīng)碼本中的索引號,從所述碼本號對應(yīng)的碼本中解碼出該編碼層的RE8格點矢量信號; 步驟203,依序?qū)γ恳痪幋a層的RE8格點矢量信號進行組合,獲得解碼后的數(shù)據(jù)幀,具體地,可疊加各處理層矢量解碼所得RE8格點上的8維矢量信號,再根據(jù)所述奇偶標(biāo)識位選擇進行將所述初級合成信號各分量恢復(fù)成全奇數(shù)的處理,得到所述最終合成的數(shù)據(jù)幀,例如當(dāng)奇偶標(biāo)識位為1時,在疊加各處理層矢量解碼所得RE8格點上的8維矢量信號(全為偶數(shù))后,需要該信號各分量加1,即恢復(fù)為編碼前的矢量信號。
相應(yīng)地,下面對本發(fā)明實施例的裝置進行說明。
圖3是本發(fā)明實施例的編碼裝置的示意圖,參照該圖,該裝置主要包括縮放單元1、格點量化單元2以及編碼處理單元3,其中 縮放單元1,用于根據(jù)數(shù)據(jù)幀的能量以及該數(shù)據(jù)幀的編碼比特數(shù),對該數(shù)據(jù)幀進行縮放;可包括 能量計算單元10,計算語音數(shù)據(jù)幀中各待量化矢量的能量,例如,假設(shè)所述語音數(shù)據(jù)幀中包含K個8維待量化矢量,令Bk[i]為K個8維待量化矢量中第k個8維待量化矢量的第i個分量,Rk(1)為第k個8維待量化矢量的能量,計算 k=1,2,...K,i=0,1,2,...,7; 縮放因子計算單元12,根據(jù)語音數(shù)據(jù)幀的能量及分配給語音數(shù)據(jù)幀的編碼比特數(shù)計算語音數(shù)據(jù)幀的縮放因子,具體地,可進行如下處理 首先,初始化變量fac、offsetfac=128,offset=0,NB_BITS是分配給數(shù)據(jù)幀的編碼比特數(shù); 其次,按以下步驟迭代10次 offset=offset+fac if nbits≤NB_BITS,then offset=offset-fac fac=fac/2 迭代完成之后,計算縮放因子g 能量縮放單元14,利用所述縮放因子g對語音數(shù)據(jù)幀中待量化矢量進行能量縮放,例如,可進行如下的縮放 xk[i]=Bk[i]/g,i=0,1,2,...,7,其中Bk[i]是語音數(shù)據(jù)幀中第k個8維待量化矢量第i個分量縮放前的數(shù)據(jù),xk[i]是其縮放后的數(shù)據(jù)。
格點量化單元2,用于將經(jīng)縮放單元縮放后的數(shù)據(jù)幀中各編碼矢量量化為最接近的RE8格點,獲得待編碼矢量,例如,具體地可作如下處理 (一)將xk量化為2D8上的格點yk 首先,計算yk[i]=int(xk[i]/2)×2,i=0,1,2,...,7,xk[i]為語音數(shù)據(jù)幀中第k個8維待量化矢量第i個分量Bk[i]縮放后的數(shù)據(jù),其數(shù)據(jù)類型為浮點數(shù); 其次,計算格點yk8個分量的和S
再次,判斷S是否為4的倍數(shù),即判斷格點yk是否滿足RE8格的性質(zhì),若是,則量化完成,否則繼續(xù)進行下述處理; 最后,找出yk[i]中誤差最大的分量yk[max_i],其中

若yk[max_i]<xk[max_i],yk[max_i]自加2,即yk[max_i]=y(tǒng)k[max_i]+2,否則yk[max_i]自減2,即yk[max_i]=y(tǒng)k[max_i]-2; (二)將xk量化為2D8+(1,1,1,1,1,1,1,1)上的格點y′k 首先,計算y′k[i]=int((xk[i]-1)/2)×2,i=0,1,2,...,7,其中xk[i]為語音數(shù)據(jù)幀中第k個8維待量化矢量第i個分量Bk[i]縮放后的數(shù)據(jù),其數(shù)據(jù)類型為浮點數(shù); 然后,計算格點y′k8個分量的和S’
其次,判斷S’是否為4的倍數(shù),即判斷格點y′k是否滿足RE8格的性質(zhì),若是,則量化完成,否則繼續(xù)進行下述處理; 再次,找出y′k[i]中誤差最大的分量y′k[max_i],其中
即若y′k[max_i]<xk[i],y′k[max_i]自加2,即y′k[max_i]=y(tǒng)′k[max_i]+2,否則y′k[max_i]自減2,即y′k[max_i]=y(tǒng)′k[max_i]-2; 最后,將每個分量自加1,即y′k[i]=y(tǒng)′k[i]+1; (三)計算上述處理所得RE8格點量化的誤差 若eA≤eB,則將(一)處理所得所述yk[i]作為量化到RE8格點上的語音數(shù)據(jù)幀的初始矢量,否則將(二)處理所得所述y′k[i]量化到RE8格點上的語音數(shù)據(jù)幀的初始矢量; 編碼處理單元3,用于對格點量化單元量化到RE8格點上的待編碼矢量分層進行編碼,獲得編碼碼流。具體可包括 碼本提供單元31,提供對所述量化使用的碼本表,如前文中的表1所示,此處不再贅述; 選擇單元38,用于根據(jù)能量大小,從待編碼矢量中確定一個當(dāng)前處理層矢量,例如,選擇重要性最高的未處理的8維矢量作為當(dāng)前處理層矢量; 碼本號獲取單元32,用于根據(jù)當(dāng)前處理層矢量獲得當(dāng)前層碼本號; 量化處理單元33,用于采用當(dāng)前層碼本號所對應(yīng)的碼本對當(dāng)前處理層矢量進行量化直到所述量化誤碼差或所述編碼比特數(shù)為0。
差分編碼單元36,用于對當(dāng)前層碼本號進行差分編碼獲得差分碼本號,以及獲得當(dāng)前處理層矢量的碼本內(nèi)索引。
假定當(dāng)前處理層矢量為

編碼處理單元33還可包括 預(yù)處理單元,當(dāng)所述最高層處理矢量的8個分量全為奇數(shù)時,以該最高層處理矢量8個分量均減1所得矢量作為當(dāng)前處理層矢量;當(dāng)所述最高層處理矢量的8個分量全為偶數(shù)時,以該最高層處理矢量作為當(dāng)前處理層矢量; 如圖4所示,是本發(fā)明實施例中量化處理單元33的一個實施例的結(jié)構(gòu)示意圖。
該量化處理單元33包括 量化誤差獲取單元330,用于在碼本表中根據(jù)當(dāng)前層碼本號所對應(yīng)的碼本對當(dāng)前處理層矢量進行量化,獲得量化誤差; 判斷處理單元332,用于在判斷所述量化誤碼差不等于0或編碼比特數(shù)不為0時,以所述量化誤差作為當(dāng)前處理層矢量。
該量化誤差獲取單元330進一步包括 第一量化單元334,用于采用對應(yīng)的碼本對大于零的所述當(dāng)前處理層矢量的各分量進行第一量化獲得第一量化結(jié)果,例如,該第一量化所采用的公式可以為 i=0,1,2,...7 第二量化單元336,用于采用所述對應(yīng)的碼本對小于零的所述當(dāng)前處理層矢量的各分量進行第二量化獲得第二量化結(jié)果,例如,該第二量化所采用的公式可以為 i=0,1,2,...7 差值計算單元338,用于根據(jù)當(dāng)前處理層矢量各分量及其所述第一量化結(jié)果和第二量化結(jié)果的差值,獲得對當(dāng)前處理層矢量進行量化的量化誤差,例如,該量化誤差可以為
如圖5所示,是本發(fā)明實施例中差分編碼單元36的一個實施例的結(jié)構(gòu)示意圖。
其中,該差分編碼單元36包括 差分碼本號確定單元360,用于根據(jù)當(dāng)前處理層矢量的碼本號以及下一處理層矢量對應(yīng)碼本的碼本號,獲得當(dāng)前處理層矢量對應(yīng)碼本的差分碼本號,例如,可以以下述方式獲得差分碼本號
其中,cb_num為所述當(dāng)前處理層矢量的碼本號;cb_num′為當(dāng)前處理層矢量的下一處理層矢量對應(yīng)碼本的碼本號,cb_num_diff為當(dāng)前處理層矢量對應(yīng)碼本的差分碼本號; 差分碼本號編碼單元362,用于對所獲得的差分碼本號進行編碼,在一個實例中,可以對于前4個差分碼本號采用哈夫曼編碼方式進行編碼,之后的差分碼本號采用二進制編碼方式進行編碼。
碼本內(nèi)索引確定單元364,用于獲得當(dāng)前處理層矢量的碼本內(nèi)索引,其中碼本內(nèi)索引包括最高層編碼索引標(biāo)識位、奇偶標(biāo)識位以及索引號信息。
如圖6所示,是本發(fā)明實施例中碼本號獲取單元32的一個實施例的結(jié)構(gòu)示意圖。
其中,該碼本號獲取單元32包括 提取單元320,用于提取當(dāng)前處理層矢量中絕對值最大的分量;8維分量的絕對值中最大的值; 計算單元322,用于根據(jù)分量絕對值計算獲得到當(dāng)前處理層矢量對應(yīng)碼本的碼本號。
圖7是本發(fā)明實施例的解碼裝置4的示意圖,參照該圖,該裝置主要包括獲取單元41、合成單元42、疊加單元43,其中各單元功能如下述 獲取單元41,用于數(shù)據(jù)幀矢量的分層編碼碼流; 解析單元42,用于從該分層編碼碼流中解析出每一編碼層的差分碼本號以及碼本內(nèi)索引信息。其中,該碼本內(nèi)索引信息包括記錄以所述初始矢量作為最高處理層矢量的最高處理層編碼索引標(biāo)識位、記錄所述初始矢量8個分量全為奇數(shù)/偶數(shù)的奇偶標(biāo)識位、以及索引號。
解碼處理單元44,用于根據(jù)所述每一編碼層差分碼本號解碼得到所述編碼層的碼本號;并根據(jù)所述碼本號以及碼本內(nèi)索引信息,從相應(yīng)的碼本中獲得所述編碼層的RE8格點矢量信號; 疊加單元46,用于依序?qū)γ恳痪幋a層的RE8格點矢量信號進行組合,獲得解碼后的數(shù)據(jù)幀,具體還可以包括 填充單元47,用于在解碼到的碼本號為0時,在所述最終合成信號中該編碼層的矢量對應(yīng)的部分填充舒適噪聲。
恢復(fù)處理單元48,根據(jù)所述碼本內(nèi)索引信息中奇偶標(biāo)識位,選擇進行將所述8維矢量信號各分量恢復(fù)成全奇數(shù)。
作為一種實施方式,該解碼處理單元還可以包括 差分解碼單元49,當(dāng)所述一個處理層矢量對應(yīng)碼本的碼本號與該處理層矢量相鄰的處理層矢量對應(yīng)碼本的碼本號采用差分編碼時,從所述差分編碼得到的差分碼本號中解碼出所述一個處理層矢量對應(yīng)碼本的碼本號(即實際碼本號),再進行對應(yīng)的處理。
另外,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
以上所述是本發(fā)明的具體實施方式
,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍。
權(quán)利要求
1、一種編碼方法,其特征在于,包括
根據(jù)數(shù)據(jù)幀的能量以及所述數(shù)據(jù)幀的編碼比特數(shù),對所述數(shù)據(jù)幀進行縮放;
將縮放后的數(shù)據(jù)幀中各編碼矢量量化為最接近的RE8格點,獲得待編碼矢量;
對所述待編碼矢量分層進行編碼,獲得編碼碼流。
2、如權(quán)利要求1所述的編碼方法,其特征在于,所述對所述待編碼矢量分層進行編碼,獲得編碼碼流的步驟包括
根據(jù)能量大小從所述待編碼矢量中確定一個為當(dāng)前處理層矢量;
根據(jù)當(dāng)前處理層矢量獲得當(dāng)前層碼本號;
采用所述當(dāng)前層碼本號所對應(yīng)的碼本對當(dāng)前處理層矢量進行量化直到所述量化誤碼差或所述編碼比特數(shù)為0。
3、如權(quán)利要求2所述的編碼方法,其特征在于,所述對所述待編碼矢量分層進行編碼,獲得編碼碼流的步驟還包括
采用所述當(dāng)前層碼本號所對應(yīng)的碼本對當(dāng)前處理層矢量進行量化獲得的量化誤差不為0或所述編碼比特數(shù)不為0時,以所述量化誤差作為當(dāng)前處理層矢量,并返回根據(jù)當(dāng)前處理層矢量獲得當(dāng)前碼本號的步驟。
4、如權(quán)利要求2或3所述的編碼方法,其特征在于,所述采用所述當(dāng)前層碼本號所對應(yīng)的碼本對當(dāng)前處理層矢量進行量化的步驟后還包括
對當(dāng)前層碼本號進行差分編碼獲得差分碼本號,以及獲得當(dāng)前處理層矢量的碼本內(nèi)索引。
5、如權(quán)利要求4所述的編碼方法,其特征在于,所述碼本號對應(yīng)的碼本包括
碼本號為0的碼本包含元素0;
碼本號為1的碼本包含元素±2,0,以及(1,1,1,1,1,1,1,1);
碼本號為2及以上的碼本包含±4×(碼本號-1),±2×(碼本號-1),0。
6、如權(quán)利要求4所述的編碼方法,其特征在于,所述碼本內(nèi)索引包括
最高層編碼索引標(biāo)識位,用于標(biāo)識待編碼適量的最高層;
奇偶標(biāo)識位,用于記錄所述最高層各分量全為奇數(shù)或偶數(shù);以及
索引號,用于記錄所述當(dāng)前層處理層矢量在碼本內(nèi)的索引位置。
7、如權(quán)利要求2所述的編碼方法,其特征在于,根據(jù)當(dāng)前處理層矢量獲得當(dāng)前層碼本號的步驟具體為
提取當(dāng)前處理層矢量中絕對值最大的分量;
根據(jù)所述分量絕對值計算獲得到當(dāng)前處理層矢量對應(yīng)碼本的碼本號。
8、如權(quán)利要求7所述的編碼方法,其特征在于,在碼本表中根據(jù)所述當(dāng)前層碼本號所對應(yīng)的碼本對當(dāng)前處理層矢量進行量化,獲得量化誤差的步驟具體為
采用所述對應(yīng)的碼本對大于零的所述當(dāng)前處理層矢量的各分量進行第一量化獲得第一量化結(jié)果;
采用所述對應(yīng)的碼本對小于零的所述當(dāng)前處理層矢量的各分量進行第二量化獲得第二量化結(jié)果;
根據(jù)所述當(dāng)前處理層矢量各分量及其所述第一量化結(jié)果和第二量化結(jié)果的差值,獲得對所述當(dāng)前處理層矢量進行量化的量化誤差。
9、如權(quán)利要求4所述的編碼方法,其特征在于,所述對當(dāng)前層碼本號進行差分編碼的步驟包括
根據(jù)當(dāng)前處理層矢量的碼本號以及下一處理層矢量對應(yīng)碼本的碼本號,獲得當(dāng)前處理層矢量對應(yīng)碼本的差分碼本號;
對所述獲得的差分碼本號進行編碼。
10、一種解碼方法,其特征在于,包括
獲得數(shù)據(jù)幀矢量的分層編碼碼流;
從所述分層編碼碼流中解析出每一編碼層的差分碼本號以及碼本內(nèi)索引信息;
根據(jù)所述每一編碼層差分碼本號解碼得到所述編碼層的碼本號;
根據(jù)所述碼本號以及碼本內(nèi)索引信息,從相應(yīng)的碼本中獲得所述編碼層的RE8格點矢量信號;
依序?qū)γ恳痪幋a層的RE8格點矢量信號進行組合,獲得解碼后的數(shù)據(jù)幀。
11、如權(quán)利要求10所述的解碼方法,其特征在于,所述根據(jù)所述碼本號以及碼本內(nèi)索引信息,從相應(yīng)的碼本中獲得所述編碼層的RE8格點矢量信號的步驟包括
當(dāng)所述碼本號為0時,在所述最終合成信號中該編碼層的矢量對應(yīng)的部分以舒適噪聲進行填充。
12、如權(quán)利要求10或11所述的解碼方法,其特征在于,進一步包括根據(jù)所述碼本內(nèi)索引信息中奇偶標(biāo)識位選擇進行將所述8維矢量信號各分量恢復(fù)成全奇數(shù)的處理。
13、一種編碼裝置,其特征在于,包括
縮放單元,用于根據(jù)數(shù)據(jù)幀的能量以及所述數(shù)據(jù)幀的編碼比特數(shù),對所述數(shù)據(jù)幀進行縮放;
格點量化單元,用于將經(jīng)縮放單元縮放后的數(shù)據(jù)幀中各編碼矢量量化為最接近的RE8格點,獲得待編碼矢量;
編碼處理單元,用于對所述待編碼矢量分層進行編碼,獲得編碼碼流。
14、如權(quán)利要求13所述的編碼裝置,其特征在于,所述編碼處理單元進一步包括
選擇單元,用于根據(jù)能量大小,從所述待編碼矢量中確定一個當(dāng)前處理層矢量;
碼本號獲取單元,用于根據(jù)當(dāng)前處理層矢量獲得當(dāng)前層碼本號;
量化處理單元,用于采用所述當(dāng)前層碼本號所對應(yīng)的碼本對當(dāng)前處理層矢量進行量化直到所述量化誤碼差或所述編碼比特數(shù)為0。
15、如權(quán)利要求14所述的編碼裝置,其特征在于,所述量化處理單元進一步包括
量化誤差獲取單元,用于在碼本表中根據(jù)所述當(dāng)前層碼本號所對應(yīng)的碼本對當(dāng)前處理層矢量進行量化,獲得量化誤差;
判斷處理單元,用于在判斷所述量化誤碼差不等于0或編碼比特數(shù)不為0時,以所述量化誤差作為當(dāng)前處理層矢量。
16、如要利要求15所述的編碼裝置,其特征在于,所述編碼處理單元進一步包括
差分編碼單元,用于對當(dāng)前層碼本號進行差分編碼獲得差分碼本號,以及獲得當(dāng)前處理層矢量的碼本內(nèi)索引。
17、如權(quán)利要求14所述的編碼裝置,其特征在于,所述編碼處理單元進一步包括
碼本提供單元,用于提供所述量化使用的碼本表,該碼本表為
所述量化使用的碼本表為
碼本號為0的碼本包含元素0;
碼本號為1的碼本包含元素±2,0,以及(1,1,1,1,1,1,1,1);
碼本號為2及以上的碼本包含±4×(碼本號-1),±2×(碼本號-1),0。
18、如權(quán)利要求14所述的編碼裝置,其特征在于,所述碼本號獲取單元進一步包括
提取單元,用于提取當(dāng)前處理層矢量中絕對值最大的分量;
計算單元,用于根據(jù)所述分量絕對值計算獲得到當(dāng)前處理層矢量對應(yīng)碼本的碼本號。
19、如權(quán)利要求15所述的編碼裝置,其特征在于,所述量化誤差獲取單元進一步包括
第一量化單元,用于采用所述對應(yīng)的碼本對大于零的所述當(dāng)前處理層矢量的各分量進行第一量化獲得第一量化結(jié)果;
第二量化單元,用于采用所述對應(yīng)的碼本對小于零的所述當(dāng)前處理層矢量的各分量進行第二量化獲得第二量化結(jié)果;
差值計算單元,用于根據(jù)所述當(dāng)前處理層矢量各分量及其所述第一量化結(jié)果和第二量化結(jié)果的差值,獲得對所述當(dāng)前處理層矢量進行量化的量化誤差。
20、如權(quán)利要求16所述的編碼裝置,其特征在于,所述差分編碼單元進一步包括
差分碼本號確定單元,用于根據(jù)當(dāng)前處理層矢量的碼本號以及下一處理層矢量對應(yīng)碼本的碼本號,獲得當(dāng)前處理層矢量對應(yīng)碼本的差分碼本號;
差分碼本號編碼單元,用于對所獲得的差分碼本號進行編碼。
碼本內(nèi)索引確定單元,用于獲得當(dāng)前處理層矢量的碼本內(nèi)索引,其中碼本內(nèi)索引包括最高層編碼索引標(biāo)識位、奇偶標(biāo)識位以及索引號信息。
21、一種解碼裝置,其特征在于,包括
獲取單元,用于獲得數(shù)據(jù)幀矢量的分層編碼碼流;
解析單元,用于從所述分層編碼碼流中解析出每一編碼層的差分碼本號以及碼本內(nèi)索引信息;
解碼處理單元,用于根據(jù)所述每一編碼層差分碼本號解碼得到所述編碼層的碼本號;并根據(jù)所述碼本號以及碼本內(nèi)索引信息,從相應(yīng)的碼本中獲得所述編碼層的RE8格點矢量信號;
疊加單元,用于依序?qū)γ恳痪幋a層的RE8格點矢量信號進行組合,獲得解碼后的數(shù)據(jù)幀。
22、如權(quán)利要求21所述的解碼裝置,其特征在于,所述碼本內(nèi)索引信息包括記錄以所述初始矢量作為最高處理層矢量的最高處理層編碼索引標(biāo)識位、記錄所述初始矢量8個分量全為奇數(shù)/偶數(shù)的奇偶標(biāo)識位、以及索引號。
23、如權(quán)利要求21或者22所述的裝置,其特征在于,所述解碼處理單元進一步包括
填充單元,用于在所述碼本號為0時,在所述最終合成信號中該編碼層的矢量對應(yīng)的部分填充舒適噪聲。
24、如權(quán)利要求21或者22所述的解碼裝置,其特征在于,所述解碼處理單元進一步包括
恢復(fù)處理單元,根據(jù)所述碼本內(nèi)索引信息中奇偶標(biāo)識位,選擇進行將所述8維矢量信號各分量恢復(fù)成全奇數(shù)。
全文摘要
本發(fā)明實施例公開了一種編碼方法,包括根據(jù)數(shù)據(jù)幀的能量以及所述數(shù)據(jù)幀的編碼比特數(shù),對所述數(shù)據(jù)幀進行縮放;將縮放后的數(shù)量幀中各編碼矢量量化為最接近的RE8格點,獲得待編碼矢量;對所述待編碼矢量分層進行編碼,獲得編碼碼流。本發(fā)明實施例還公開了一種解碼方法、一種編碼裝置及一種解碼裝置。采用本發(fā)明實施例,在保證編解碼質(zhì)量的前提下,有效地降低運算復(fù)雜度,節(jié)約存儲空間。
文檔編號G10L19/00GK101673547SQ20081019841
公開日2010年3月17日 申請日期2008年9月8日 優(yōu)先權(quán)日2008年9月8日
發(fā)明者胡瑞敏, 勇 張, 霖 劉, 馬付偉, 王庭紅 申請人:華為技術(shù)有限公司, 武漢大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
公主岭市| 浦城县| 体育| 佛冈县| 阜阳市| 保定市| 张家川| 大洼县| 清徐县| 罗山县| 饶阳县| 江山市| 巨野县| 昌黎县| 泗阳县| 郓城县| 阳原县| 宜昌市| 望都县| 厦门市| 霍林郭勒市| 绥棱县| 阿拉善右旗| 中阳县| 柘荣县| 陕西省| 房产| 丘北县| 博乐市| 建阳市| 清丰县| 北碚区| 江陵县| 南木林县| 乐亭县| 清苑县| 隆安县| 揭阳市| 铁岭县| 台东市| 吴忠市|