熱心網友

一種自適應預測柵格編碼量化語音編碼算法李太杰, 胡光銳摘 要:提出了一種新的基于自適應預測柵格編碼量化算法的話音壓縮模型。論述了在均方誤差意義上最優量化器的設計原理,并在研究柵格編碼量化算法的基礎上,探討了模型的編、譯碼器的工作原理,其中著重研究了擴展的量化器的集合劃分和卷積碼柵格圖的支路標注問題。根據計算機模擬結果,論證了模型的有效性和可行性。關鍵詞:語音編碼;方差估計;線性預測;柵格編碼量化中圖分類號:TN 911   文獻標識碼:A  隨著通信技術和數字信號處理技術的發展,語音壓縮技術越來越受到重視。目前,中、低速率的語音編碼普遍采用混合編碼,其中波形編碼起著關鍵作用。然而普通的波形編碼算法在編碼率低于16 kb/s時,性能急劇下降,如何改善波形編碼在中速率時的性能,正日益被人們所關注。因此,本文在柵格編碼量化算法[1]的基礎上,提出了一種自適應預測柵格編碼量化(APTCQ)算法模型,它基于集合劃分方法[2],使用一個具有擴展的量化電平的結構性碼書,以獲得較低的編碼率。1 APTCQ算法模型1。1 訓練部分  訓練過程如圖1所示。由于語音信號樣本間存在著相關性,為了減小量化器的動態范圍,首先采用線性預測(LP)技術去除樣本間的相關性。對得到的殘差序列,利用自適應方差估計[3]進行歸一化以進一步縮小信號樣本幅度的動態范圍,最后對歸一化殘差序列進行訓練,得到在均方誤差意義上最優的量化器——Lloyd-Max量化器。 圖1 訓練過程Fig。1 Training processLP部分傳遞函數為      (1)式中,αi(i=1,…,p)為預測系數。濾波器輸出序列e(n)可近似看作服從拉普拉斯分布的白噪聲。方差估計的表達式為      (2)這是一種一碼字有記憶方差估計,一般來說,它具有偏估計。式(2)右邊第一項表示前一樣本方差估計對當前方差估計的貢獻,第二項表示前一信號樣本對當前信號樣本方差估計的貢獻。方差估計隨輸入樣本值的改變而迅速改變,從而可以跟蹤輸入信號的快速變化。因此,這是一種瞬時自適應。    由于殘差信號近似呈拉普拉斯分布,樣本幅度值又大部分集中于零值附近,為了加快訓練過程的收斂,可以設置一門限幅度。當信號樣本幅度大于此門限幅度時,令其等于門限幅度。另外,信號幅度近似呈對稱分布,可以只對正(或負)量階進行訓練。訓練過程參見文獻[4]。1。2 編碼部分  在TCM中,為了在每個碼元間隔內傳輸2m個符號中的一個,傳統的2m個點的信號星座將被加倍(達到2m+1個),并被分成2+1個子集。其中正整數≤m。用編碼率為/(+1)的卷積碼對輸入的 bit進行擴展,用來確定當前碼元間隔內的信道符號取自哪個子集,剩下的(m-)bit用來在所選子集中從2m-個信道符號中選出一個。假設信道存在加性高斯白噪聲干擾,用Viterbi譯碼尋找和發送序列不同和概率最小的符號序列。對應于信源編碼,給定一種卷積碼,可以將信源序列看作一個帶噪序列,用Viterbi算法尋找與其最接近的序列。因此,從編碼調制公式得到的所有可允許的信道序列集合與其對應的Viterbi算法編碼器,可用作信源空間和相應的信源編碼器。  在本模型中,編碼率為2 bit/樣本,即m=2。采用(2,1)卷積碼,即=1。相應的量化器量階總數為8,并被分為4個子集D0、D1、D2、D3。為了使量化誤差最小,子集內元素間的距離應為最大。因此,子集劃分圖如圖2所示,在坐標軸上自左至右量階值逐漸變大。圖2 子集劃分Fig。2 Set partition  這樣,APTCQ編碼器的編碼算法如下。設待編碼的數據序列為X={x1,x2,…,xn},編碼過程處于第i步,稱終止于第k個結點(時刻i-1)的路徑為幸存路徑k。設ki-j(k=1,…,N;j=1,2,…)是k上xi-j的近似值(編碼值),其中N是柵格狀態數。令ki|i-1表示當前數據的預測值,給定ki|i-j(j=1,2,…)。令dki=(xi-ki|i-1)/i為k上的歸一化預測殘差,其中,(ki)2=α(ki-1)2+β(ki-1)2。最后,令ρi-1(X,k)為k上的失真。在所有Ungerboeck幅度調制柵格中,有兩條標注著子集名字的支路進入和離開每個結點。這里標注離開結點k且進入結點l的支路上的子集為Dkl,對這樣的每個子集,做一次標量量化,以確定最靠近dki的元素,稱之為kl。除了這個通過標量量化選擇的元素外,子集中其他的元素被丟棄。然后,下面的每個結點都有兩條支路進入。當下一個結點是l時,這兩條支路被標注為k1l和k2l,其中k1和k2是這兩條支路出發的結點。最后有ρi(X,l)=mink∈{k1,k2}[ρi-1(X,k)+(dki-kl)2]  (3)    li=k′i|i-1+k′lki  (4)式中k′是使ρi(X,l)取得最小值的那個k值。這個循環過程直到數據序列的終點。  在編碼過程中,有兩種形式的輸出序列:第一種是比特序列,用來確定到達每個結點的路徑(或子集);第二種是符號序列,用來確定在每個結點所選子集中的某個元素,這兩個序列被送到接收端用于譯碼。這種形式的編碼提高了系統的抗噪聲性能。卷積碼的狀態轉移示于圖3。 圖3 狀態轉移Fig。3 State transition1。3 譯碼部分  譯碼部分的框圖如圖4所示。譯碼部分的工作原理是:首先用卷積碼對比特序列進行擴展,用于確定量化器符號空間中相應的子集,符號序列在所確定的子集中選取合適的元素。然后,將所確定的元素乘以其方差估計后送入標準DPCM解碼器,得到重建語音序列。DPCM解碼器的轉移函數為V(z)=pi=1αiz-i。其中αi(i=1,2,…,p)為訓練過程的預測系數。圖4 譯碼框圖Fig。4 Decoder diagram2 實驗結果  本文在微機上模擬了上述APTCQ編、譯碼算法。所用的數字語音序列是通過TMS320C25數字處理系統得到的。抽樣率為8 kHz,每個語音樣本用12 bit線性表示。所采用的卷積碼的狀態轉移如圖3所示。自適應參數α=0。85,β=0。25。采用三階預測器的預測系數為α1=-1。74,α2=1。22,α3=0。30。在Viterbi算法中數據序列長度為64,卷積碼初始狀態為(0,0)。當采用PTCQ算法時,平均分段信噪比為10。41 dB,而采用APTCQ算法時為14。91 dB。非正式試聽表明其主觀質量有明顯的提高。3 結 論  本文在對PTCQ算法進行研究的基礎上,對其進行了改進,得到如下結論:  (1) 自適應方差估計的引進不僅提高了整體的處理效果,而且大大提高了小信號的質量。  (2) 模擬實驗表明,在同等速率的情況下,APTCQ算法比PTCQ算法重建語音質量更好。  (3) 由于在編碼過程中采用了TCQ技術,系統抗干擾能力比對應的DPCM系統要好。作者簡介:李太杰(1974~),男,博士生。 作者單位:李太杰, 胡光銳  (上海交通大學 電子工程系,上海 200030)。