波形編碼

波形編碼

在一定程度上降低語音編碼數碼率的同時,保持相對好的語音質量的編碼方法。波形編碼消除語音信號的都分冗餘度,從而既使數碼率有所下降,又保持較好的語音質量,如ADPCM 32kbit/s編碼已應用於通信之中。波形編碼,一般可使數碼率低到16kbit/s尚能有較高的語音質量。

概述介紹


波形編碼是基於對語音信號波形的數字化處理,試圖使處理后重建的語音信號波形與原語音信號波形保持一致。波形編碼的優點是實現簡單、語音質量較好、適應性強等;缺點是話音信號的壓縮程度不是很高,實現的碼速率比較高。常見的波形壓縮編碼方法有脈衝編碼調製(PCM)、增量調製編碼(DM)、差值脈衝編碼調製(DPCM)、自適應差分脈衝編碼調製(ADPCM)、子帶編碼(SBC)和矢量量化編碼(VQ)等。波形編碼的比特率一般在16~64 kbit/s之間,它有較好的話音質量與成熟的技術實現方法。當數碼率低於32 kbit/s的時候,音質明顯降低,低於16 kbit/s時音質就非常差了。
由於波形壓縮編碼的保真度高,目前AV系統中的音頻壓縮都採用這類方案。採用PCM編碼,每個聲道1秒鐘聲音數據在64 kbit以上。由於在多媒體應用中使用立體聲甚至使用更多的聲道數,這樣所產生的數據量仍舊是很大的。若錄製立體聲音樂74分鐘,載體存儲空問大約要70 MB。所以對存儲容量和通道要求嚴格的很多應用場合來說,就要採用比波形編碼低得多的編碼方法,如參量編碼和混合編碼方法。
採用波形編碼時,編碼信號的速率可以用下面的公式來計算:
編碼速率=採樣頻率×編碼比特數
若要計算播放某個音頻信號所需要的存儲容量,可以用下面的公式:
存儲容量=播放時間×速率÷8(位元組)。

過程介紹


波形編碼就是根據語音信號波形導出相應的數字編碼形式,使其在接收端能忠實再現原始語音。最早的也是最著名的波形編碼是PCM(G.711編解碼器)。波形編碼包含3個過程:採樣、量化和編碼。

採樣

模擬信號在時間上和幅度上都是連續的,通過採樣,將時間上連續的模擬信號變為時間上離散的採樣值。即用很窄的脈衝按一定周期讀取模擬信號的瞬時值,將時間上連續的模擬信號變為時間上離散的採樣值。根據採樣定理,為了保證信息不丟失,採樣頻率至少應為模擬信號所含最高頻率的2倍,由於電話系統中傳送的語音的頻帶範圍是300~3400 Hz,其最高頻率為3400 Hz,3400的2倍為6 800,考慮到需留一定的富裕度,因此將採樣頻率取值為8000 Hz,即採樣周期為125 μs。

量化

量化是指用有限個度量值來表示採樣后的信號的幅度值,將信號的幅度值就近歸入鄰近的度量級。即將幅度上連續的採樣值變換為幅度上離散的量化值。由於用量化值表示連續採樣值是近似的,由此必然帶來所謂“量化雜訊”。如果按均勻分段的方式劃分量化區間,就稱為均勻量化或線性量化,其主要問題是小信號的量化雜訊大,在信號過大超過量化範圍時又會產生過載量化雜訊。因此,一般採用非均勻量化。非均勻量化最常用的方法是壓擴法,對於輸入的信號首先進行類似對數函數的壓擴處理,將小信號擴大,大信號壓縮,再進行均勻量化,CCITT曾建議兩種壓擴率——A律和μ律。歐洲和我國均採用A律,在PCM30/32系統中採用;μ律通用於北美和日本,在PCM24系統中採用。

編碼

每個量化值採用數字碼字表示就稱之為編碼。顯然量化級數越多,精度越高,所需編碼位數也越多。在PCM中每個量化值用8 bit碼字表示,最高位為符號位,低7位可表示128個量化級。對於語音信號的PCM編碼來說,由於採樣頻率為8 000 Hz,每個採樣值編碼為8位二進位碼,所以其傳輸速率為64 kbit/s。64 kbit/s是傳統程式控制數字交換機中基本的傳輸和交換單位。

低速率技術


PCM雖然能夠提供相當好的長途通信級語音質量,但是其速率過高,尤其在多媒體應用以及在共享通道的數據網中應用時,採用PCM傳送語音佔用的網路帶寬資源過高。為此,人們提出了許多改進技術,以降低語音編碼的速率。
低速率波形編碼主要採用差分編碼技術、自適應量化和自適應線性預測技術。

差分編碼技術

降低編碼比特率的基本思路是利用語音採樣信號之間的相關性。差分編碼技術不是對採樣值本身進行編碼,而是對相鄰的採樣差值進行編碼,由於採樣差值較小,所需的比特率可以下降,這就是差分脈衝編碼(DPCM)。產生差分信號最簡單的方法是直接存儲前一次的輸入採樣值,然後用模擬減法器獲得差值,經量化編碼后發送出去。這是差分編碼技術的基本思想。
這種方法的缺點是會導致量化雜訊始終在同一方向疊加,使輸出信號越來越偏離正常信號。因此實際是通過反饋的方法由差分值重構生成前一次或幾次採樣值,對重構生成的採樣值進行線性組合作為輸入信號的預測值(相當於前一次的輸入樣值)。選取線性組合係數(也稱預測係數)以使差分信號的方差最小。

自適應量化

在不同的條件下語音能量的差別很大,為了獲得儘可能小的量化信噪比,應該對小信號採用用較小的量化步長,對大信號採用較大的量化步長進行量化。這就要求能根據輸入信號的幅度變化動態地調整量化步長。這樣可使量化器範圍和輸入信號的動態範圍相匹配,減小量化雜訊,從而進一步降低編碼比特率。這就是自適應量化技術。
自適應量化演演算法根據語音信號幅度隨時間的變化可分為兩種:一種是瞬時自適應法,是根據相鄰或相近若干採樣值之間的快變化,稱之為瞬時變化;另一種是音節自適應法,是根據相鄰音節之間的慢變化,稱之為音節變化。自適應量化演演算法首先計算輸入語音信號的幅度或方差,然後據此控制量化步長。另外一種自適應量化方法是採用自動增益控制原理,根據輸入語音信號的幅度或方差來調整量化器輸入信號的大小。

自適應線性預測

差分編碼調製能降低比特率的原因是它編碼的對象是差分信號,其功率較原信號低。
由於差分編碼採用的是固定預測係數,不能很好地適應語音的不平穩特性,為此必須採用自適應技術動態調整預測係數,才能進一步降低編碼比特率。這就是自適應差分脈衝編碼調製(ADPCM)技術。
自適應線性預測的基本原理是根據語音波形的時間相關性確定預測係數,使差分信號的方差為最小,時間相關性則是以自相關函數來度量的。由於語音信號的自相關函數大體是隨音節而變化的,也就是在一個音節時間內自相關函數基本不變,只是從一個音節至另一音節時才有較明顯的變化,因此自適應預測都採用音節適應演演算法。