專利名稱:基于分類和排列組合的碼本索引編碼方法
技術領域:
本發(fā)明涉及一種碼本索引編碼方法,更具體的說,涉及一種基于分類和 排列組合的碼本索引編碼方法。
背景技術:
3GPPAMR—WB +編碼器框架是一種ACELP (代數編碼受激線性系統) 和TCX的混合模型,ACELP模塊中,在每個軌道所有最佳脈沖搜索完成以后, 對最佳脈沖的位置和符號采用了一種方法進行索引編碼。這種方法在一個軌 道上脈沖個數較少時,能夠達到很好的效果,在一個軌道脈沖個數較多時, 比理論所需編碼比特數要多。在AMR(聲音/調制解調器插卡)、AMR WB(寬 帶語音編解碼器)和AMR WB +中采用的都是這種代數碼書索引編碼方法方 法。
假設經過搜索已經得到最佳代數碼書脈沖的位置和符號信息。為了進行 有效的編碼,需要對脈沖位置和符號進行編碼。針對每個軌道脈沖個數的不 同,最終所用比特數也有所區(qū)別。根據編碼碼率的不同,在每個軌道上可以 編碼1 N個脈沖,假定每個軌道有2M個位置,AMR—WB+中每個軌道上編 碼1~6個脈沖的過程分別描述如下
①每個軌道編碼l個脈沖
由于每個軌道有2M個位置,因此,每個軌道上脈沖的位置索引需要用 M個比特進行編碼,脈沖的符號索引需要用1比特編碼。編碼1個帶符號脈 沖的索引值為
Ilp(M) = p + Sx2M
其中pe[O, 2M-1]為脈沖的位置索引;s為脈沖的符號索引,當脈沖符 號為正時,s設置為0,當脈沖符號為負時,s設置為l; llpe
分別為2個脈沖的位置索引;s為pO脈沖的符 號索引;pi脈沖符號的具體表示規(guī)則為p(Xpl表示2個脈沖符號相同, p0〉pl表示2個脈沖符號相反;I2pE
。
每個軌道編碼2個脈沖所需的比特凄t為2M+1。
③ 每個軌道編碼3個脈沖
將每個軌道分為兩個部分Section A和Section B,每個部分各包含2M" 個位置。某個部分中至少包含2個脈沖,才艮據②的結果,編碼該部分需要 2x(M - 1) + 1 = 2M - 1個比特;另一個脈沖則在整個軌道上搜索,4艮據①的 結果,需要M+1個比特;此外,還需要用1個比特來指示包含2個脈沖的 部分。編碼3個脈沖的索引值為
I3p(M) = I2p(M-1) + kx22M" + Iip(M)x22M,其中k為Section的索引; l3pe
。
每個軌道編碼3個脈沖所需的比特數為3M+1。
④ 每個4九道編碼4個"永沖
將每個軌道分為兩個部分Section A和Section B,每個部分各包含2M" 個位置。
可以得出,每個軌道編碼4個脈沖所需的比特數為4M。
⑤ 、每個軌道編碼5個脈沖
將每個軌道分為兩個部分Section A和Section B,每個部分各包含2M" 個位置。某個部分中至少包含3個脈沖,根據③的結果,編碼該部分需要3x(M-1)+1 = 3M-2個比特;剩下兩個脈沖則在整個軌道上搜索,根據② 的結果,需要2M+1個比特;此外,還需要用1個比特來指示包含3個脈 沖的部分。編碼5個脈沖的索引值為
I5p(M) = I3p(M - 1) + kx2脂+ 1 2駒
每個軌道編碼5個脈沖所需的比特數為5M。
⑥每個軌道編碼6個脈沖
將每個軌道分為兩個部分section A和Section B,每個部分各包含2則 個位置。
可以得出,每個軌道編碼6個脈沖所需的比特數為6M-2。
現有技術的索引編碼算法雖然能夠在各種碼率情況下獲得良好的語音 質量,但是,其編碼所需要使用的比特數比較多。在一個軌道上脈沖個數較 多時,其所需比特數比理論編碼比特數要多。
發(fā)明內容
本發(fā)明要解決的技術問題是提供一種基于分類和排列組合的碼本索引 編碼方法,能夠在高碼率情況下,降低碼本索引的比特數。
為了解決上述問題,本發(fā)明一種基于分類和排列組合的碼本索引編碼方 法,包括以下步驟
(1) 對軌道上需要編碼的脈沖按照位置進行統計,獲得有脈沖位置的 數目、有脈沖位置在軌道上的分布和各個有脈沖位置的脈沖數目;
(2) 按照有脈沖位置的數目確定第一索引,按照有脈沖位置在軌道上 的分布確定第二索引,按照各個有脈沖位置的脈沖數目確定第三索引;
(3) 生成包含所述第一索引、第二索引和第三索引信息的編碼索引。
進一步的,步驟(l)中,所述軌道上需要編碼的脈沖總數根據碼率來 確定。
進一步的,步驟(l)中,按照位置進行統計時,對于帶有符號的需要 編碼的脈沖,要獲得各個有脈沖位置的脈沖符號信息。
5進一步的,步驟(2)中,通過采取計算方法或者查詢方法來確定所述 有脈沖位置的脈沖總數與所述第三索引之間的對應關系。
進一步的,步驟(3)中,在編碼索引中,第一索引為起始值,疊加第 一索引和第二索引的信息,第一索引的取值對應于編碼索引的一個獨立的取
值范圍;在解碼過程中,根據所述編碼索引的取值范圍直接確定所述有脈沖 位置的數目。
本發(fā)明的有益效果
的編碼脈沖數目可一致采用,避免了遞歸方式下編碼索引冗余度的累加,從 總的邏輯構思上保證充分利用編碼比特。同時由于避免了對同 一位置的多個 脈沖進行分別編碼,使得本提案進行位置合并后編碼的方法具有節(jié)省編碼比 特的優(yōu)勢,并且隨著軌道上編碼脈沖數目的增加,脈沖位置發(fā)生重疊的幾率 也隨之增加,本發(fā)明方法的優(yōu)勢愈加明顯。
圖1為本發(fā)明優(yōu)選實施例的編碼流程圖。
具體實施例方式
本發(fā)明給出了一種基于分類和排列組合的碼本索引編碼方法,通過與現 有技術中的AMR—WB+編碼器中的編碼方法進行性能比較,試驗證明,本 發(fā)明在一個軌道上脈沖個數較少(1~4個)時,與AMR一WB+中的方法所 用比特相同,在一個軌道脈沖個數較多(5個以上)時,本發(fā)明所用比特數 比AMI^WB+中方法要少(l個以上)。
下面參考附圖,對本發(fā)明的優(yōu)選實施例作詳細說明。
步驟S101:對軌道上需要編碼的脈沖按照位置進行統計,獲得有脈沖 位置的數目、有脈沖位置在軌道上的分布和各個有脈沖位置上的脈沖數目。
軌道上需要編碼的脈沖總數通常根據碼率來確定。
本發(fā)明中,以pulse—num表示需要編碼的脈沖總數,假設pulse—nim^co ;以pos—num表示有脈沖位置的數目,由于N個脈沖在軌道上的分布可 能出現位置重疊,假設pos—num = N, N為自然數,顯然有N6[1, co];以 脈沖位置矢量P(N)-{p(0), p(l), ..., p(N-1)}表示有脈沖位置在軌道上的 分布;其中,p(n)表示有脈沖位置在軌道上的位置序號,nG[O, N-1], p(n) 6
, M在本文中表示軌道上的位置總數, 一般M可以為8, 16 等等;以脈沖數目矢量SU(N)-(su(O), su(l),…,su(N- 1)}表示各個有脈 沖位置上的脈沖數目;其中,su(n)表示p(n)位置的脈沖數目,顯然有su(O) + su(l)+…+su(N- 1)= co。
此外,需要編碼的脈沖還可能帶有符號,此時在對軌道上需要編碼的脈 沖按照位置進行統計時,還需要獲得各個有脈沖位置的脈沖符號信息。
以脈沖符號矢量S(N)= {s(0), s(l),…,s(N-1)}表示各個有脈沖位置 的脈沖符號信息;其中,s(n)表示p(n)位置的脈沖符號,稱為p(n)位置的符 號索引,基于s(n)所代表的脈沖符號或正或負的特性, 一般可采用如下簡單 的編碼方式用s(n) = 0表示正脈沖,s(n) = 1表示負脈沖。 顯然,P(N)、 SU(N)、 S(N)中的值具有——對應的關系。 在統計獲得需要編碼的脈沖的各項參數N、 P(N)、 SU(N)、 S(N)后,就 需要將各項參數編碼為索引,建立參數與索引之間的對應關系,使得解碼方 能夠根據索引恢復出對應的參數。
步驟S102:按照有脈沖位置的數目pos—num-N確定第一索引Il,第一 索引Il對應于相同pos—num下,有脈沖位置在軌道上全部可能的分布情況。 pos一num的數值N變化范圍不大,在建立pos—num與Il的對應關系時, 一般可 令他們與具有——對應的關系;當然,若某些pos—num數值下,其他參數的 索引只需要較少比特數,這些pos—num也可以合并使用一個Il,再通過額外 的標記比特進行區(qū)分。
pos一num的數值N決定了P(N)全部可能情況的總數W(N), W(N) = C5 , "C"表示求組合數;因此一個I1對應于W(N)個可能的P(N)。
步驟S103:按照有脈沖位置在軌道上的分布P(N)確定第二索引I2,第二 索引12從第一索引Il對應的全部可能的分布情況中,指示與當前有脈沖位置 的分布對應的分布情況。
7P(N)的總可能數為W(N)-數據量較大,因此與第二索引I2的對應 比較適合采用計算關系,顯然W(N)即是I2全部可能的取值數目,若I2的值從 0開始計數,則有12 6
。
12的計算方法是,按照設定的順序,對第一索引I1對應的有脈沖位置的 數目N下,P(N)全部可能的情況進行排列,以排列的序號作為指示相應分布 情況的第二索引I2。
"設定的順序,,可理解為編解碼雙方按照同樣的排序計算規(guī)則,所確定 的P(N)全部可能情況的順序。本實施例中提供如下排序計算規(guī)則
由于P(N)不同的情況是通過所包含的不同數值組合來體現,因此不妨對 P(N)中包含的各個位置序號進行排列,令
p(O) <p(l) <…<p(N - 1),或者p(O) 〉p(l)〉 ... >p(N - 1);
假設采用前者,則有p(O)E[O, M-N], p(n)E[p(n-1)+1, M-N + n], M為軌道上的位置總數。然后對P(N)不同的情況依次比較各個維度的大 小,按照從小到大或者從大到小的順序對所有可能的P(N)進行排序。
假設采用從小到大的排序方式,并從O開始對排序后的P(N)進行編號,
則
N-l
丁9 = 「N — rN 丄V「「N—n _ 「N-n i
1Z — — ^M—p(O)十ZjL^M-p(n-l)-l — ^M-p(n)J
n=l
其中"C"表示求組合數;Z表示求和。上式的含義可解釋為C顯-C:p(Q) 表示第l個脈沖位于p(O)之前的P(N)情況總數;C^p(QH -C^pd)表示第l個 脈沖位于p(O)時,第2個脈沖位于p(l)之前的P(N)情況總數;
C^np(n—1H - cj;-—np(n)的含義可類推。
步驟S104:按照各個有脈沖位置上的脈沖數目SU(N)確定第三索引I3。 SU(N)雖然是與P(N)同維度的矢量,但受限于811(0) + 811(1) + ... +su(N - 1)= N,且N的數值通常不大, 一般為1~6,因此SU(N)的總可能數不大,與第三 索引I3的對應采用計算關系或查詢關系都是可行的。并且,鑒于其矢量形式, 在高維度情況下采用查詢關系較為適宜;在低維度情況下計算關系的設計較 為容易,則兩種方式均可采用。需要說明的是,在某些極端情況下,例如N -l或N-",此時SU(N)只有一種可能情況,無須由具體的I3進行指示,可將I3視為不影響最終編碼索引生成的任意值。
步驟S105:生成編碼索引Index(oo),編碼索引Index(co)包括第一索引、 第二索引、第三索引的信息,分別記作n、 12、 13。
11、 12、 13可以用任何能夠被解碼方識別的方式放置到編碼索引中,例 如,最簡單的,可分別單獨存放在固定的字段中??紤]到在需要編碼的脈沖 總數pulse—num—定的前提下,II指示的pos—num的數值N決定了 12和13的變 化范圍,即,決定了I2和I3需要的編碼比特數,因此可采用如下方式來構造 編碼索引
(1) 以第一索引I1為起始值,再疊加從I2和I3中得到的信息(即在下一 步中得到的I23) ; Il的一個取值對應于編碼索引的一個獨立的取值范圍;
這樣,解碼方就可以根據編碼索引的取值范圍直接確定?08_皿111的數值化
(2) 進一步的,在I1劃定的取值范圍中(通常對應于一定的字段長度), 12、 13可以用任何能夠被解碼方識別的方式進行放置,例如,最簡單的,可 分別單獨存放。由于12、 13—般不能表示為2的整數次方,為盡量節(jié)省編碼 比特,可將12、 13組合為如下形式放置到I1劃定的取值范圍中
123 = 13xW(N) + 12 = I3x《+ 12
12、 13均從0開始編碼,I2G
, I3G
, Class(N) 為SU(N)的總可能數。顯然,這種方式相當于將I1劃定的取值范圍分成 Class(N)個長度為W(N)的部分,每個部分對應SU(N)的一種分布情況。
(3) 當然,在所編碼的脈沖為帶符號脈沖的情況下,Index(N)還需要包 括各個脈沖符號索引s(n)的信息,可簡單地將脈沖符號矢量S(N)作為長度為 N的字段放置到編碼索引的固定位置上,例如末尾。
綜上,編碼索引Index(N)的一種構造方式可表示為
Index(N) = II + I23x2N + s,^1 + s(l)x2N—2 + ... + s(N - 1)。
9
權利要求
1、一種基于分類和排列組合的碼本索引編碼方法,其特征在于,包括以下步驟(1)對軌道上需要編碼的脈沖按照位置進行統計,獲得有脈沖位置的數目、有脈沖位置在軌道上的分布和各個有脈沖位置的脈沖數目;(2)按照所述有脈沖位置的數目確定第一索引,按照所述有脈沖位置在軌道上的分布確定第二索引,按照所述各個有脈沖位置的脈沖數目確定第三索引;(3)生成包含所述第一索引、第二索引和第三索引信息的編碼索引。
2、 根據權利要求1所述的方法,其特征在于,步驟(l)中,所迷軌道上需要編碼的脈沖總數根據碼率來確定。
3、 根據權利要求1所述的方法,其特征在于,步驟(l)中,按照位置進行統計時,對于帶有符號的需要編碼的脈沖,要獲得各個有脈沖位置的脈沖符號信息。
4、 根據權利要求1所述的方法,其特征在于,步驟(2)中,通過采取計算方法或者查詢方法來確定所述有脈沖位置的脈沖總數與所述第三索引之間的對應關系。
5、 根據權利要求1所述的方法,其特征在于,步驟(3)中,在所述編碼索引中,所述第一索引為起始值,疊加所述第一索引和第二索引的信息,第一索引的取值對應于所述編碼索引的一個獨立的取值范圍;在解碼過程中,根據所述編碼索引的取值范圍直接確定所述有脈沖位置的數目。
全文摘要
本發(fā)明公開了一種基于分類和排列組合的碼本索引編碼方法,包括以下步驟對軌道上需要編碼的脈沖按照位置進行統計,獲得有脈沖位置的數目、有脈沖位置在軌道上的分布和各個有脈沖位置的脈沖數目;按照有脈沖位置的數目確定第一索引,按照有脈沖位置在軌道上的分布確定第二索引,按照各個有脈沖位置的脈沖數目確定第三索引;生成包含所述第一索引、第二索引和第三索引信息的編碼索引。采用本發(fā)明提出的方法,能夠在高碼率情況下,降低碼本索引的比特數。
文檔編號G10L19/00GK101483043SQ200810000339
公開日2009年7月15日 申請日期2008年1月7日 優(yōu)先權日2008年1月7日
發(fā)明者偉 王, 毅 高 申請人:中興通訊股份有限公司