曾冬梅


摘? ?要:數字化的語音信號具有非常巨大的數據量,語音信號的存儲、傳輸和處理對計算機的性能、數據傳輸率和信道帶寬提出極高的要求。解決此問題的一種方法是應用語音信號壓縮技術,其重要分支之一是預測編碼。這是一種較早用于信源編碼的技術,利用信源的相關性對數據進行壓縮。文章介紹了預測編碼及兩種相關的壓縮方法:DPCM和ADPCM,并在Matlab中對它們進行仿真,對得到的結果進行分析后得到有關的結論,驗證了ADPCM編碼方法優于DPCM編碼方法。
關鍵詞:語音壓縮;預測編碼;差分脈沖編碼調制;自適應差分脈沖編碼調制
語音是攜帶信息的重要媒體,信息量巨大。為了減少存儲語音時的容量和傳輸語音時占用信道的帶寬,對數字化的語音信號進行編碼十分必要。在對語音信號進行壓縮編碼的過程中應用最早的是預測理論,通過對語音信號進行線性預測來實現語音信號的壓縮傳輸[1]。目前應用較廣泛的一種聲碼器技術是預測編碼,其中,典型的壓縮技術包含脈沖編碼調制(Pulse Code Modulation,PCM)、差分脈沖編碼調制(Differential Pulse Code Modulation,DPCM)和自適應差分脈沖編碼調制(Adaptive Differential Pulse Code Modulation,ADPCM)等。預測編碼是一種主要壓縮統計冗余的有損壓縮方式[2]。本文介紹了預測編碼的基本知識,介紹了DPCM和ADPCM兩種基于預測編碼的語音壓縮技術原理,并在Matlab中對這兩種編碼技術進行仿真,在得出實驗結果以后,對它們進行了比較和分析,并得出了有關結論。
1? ? 預測編碼
預測編碼的主要理論基礎是控制論與現代統計學[3]。所謂預測編碼,就是根據過去的信號樣本值對新的信號樣本值進行預測得到新樣本的預測值,再將新樣本的實際值與預測值相減,得到差值(預測誤差),然后對預測誤差進行量化編碼后通過信道進行傳輸。在接收端,經過和發送端相同的預測操作后得到的預測值與當前樣本相應的差值進行相加的運算就能獲得對原始語音信號的重構。預測得越準確,預測誤差會越小,在同等精度要求的條件下,編碼位數會越少,壓縮率會越高,從而很好地達到數據壓縮的目的。
2? ? DPCM編碼
DPCM是一種利用樣本之間的信息冗余度來壓縮數據的技術[4],其思想是使用過去樣本的幅度值對當前輸入的樣本幅度值進行預測以得到樣本預測值,再將實際樣本的幅度值與預測值相減,并對其結果進行量化編碼就能減少用于表示每一個語音信號樣本點的位數。DPCM是對差值而不是對幅度絕對值進行存儲或傳輸,能極大減少存儲或傳輸的數據量,還可以適應范圍變化大的輸入信號。簡化了的DPCM編碼框架如圖1所示[5]。
xt為8位PCM樣本t,是離散輸入的語音信號,xet是xt的估算值,不是過去語音信號的樣本值,dt是樣本的實際值xt和預測值xet的差值,dt是DPCM系統對dt進行量化編碼后所得到的值,也是在存儲器中存儲的或在信道中傳輸的數據,dqt是對dt進行逆量化后得到的量化差分信號,xrt是引入了量化誤差的重構信號,由xt的預測值xet與量化差分信號dqt相加得到,并且作為預測器的輸入以估算下一個輸入的語音信號的樣本值。因為接收端與發送端的預測器與逆量化器一樣,因此,接收端可以通過發送端傳送過來的數據dt和預測器輸出的預測值獲得重構的語音信號xrt。
3? ? ADPCM編碼
自適應脈沖編碼調制(Adaptive Pulse Code Modulation,APCM)是一種根據輸入的語音信號的幅度值來改變量化區間值的語音編碼技術,包括前向自適應和后向自適應兩種改變量化區間值的方法。
ADPCM是一種結合APCM的自適應特性與DPCM的差分特性的性能的優越的語音編碼技術,由自適應量化和自適應預測兩部分組成[6]。自適應量化指自適應調整量化區間,即用小的量化區間對小的差值進行編碼,用大的量化區間對大的差值進行編碼。自適應預測指在對語音進行編碼的過程中自適應調整與修改預測器參數以達到最佳預測的目的。簡化了的ADPCM編碼框架如圖2所示。
接收端使用的算法和發送端一樣,它使用發送端傳送來的ADPCM碼來確定接收端譯碼器的逆自適應量化器的量化區間的值,對其進行逆量化以后得到量化差分信號,再將它與自適應預測器輸出的當前樣本的預測值相加從而得到重構的PCM信號(可用于輸出或存儲),并使用它來預測下一個接收信號的幅度值。
4? ? 實驗仿真及結果分析
本文使用Matlab對DPCM和ADPCM編碼進行仿真,流程如下:首先,讀入一個語音波形文件(采樣率為8 kHz,編碼位數為8 bit的PCM編碼信號),把它分別輸入到兩種編碼算法對應的編碼器中,并按照用戶指定的編碼位數(分別為2 bit,3 bit,4 bit和5 bit)依次進行壓縮編碼,最終把結果保存到一個文件中,將其稱為壓縮文件。在譯碼的時候,按照相應的編碼位數把壓縮文件中的編碼依次讀取出來進行譯碼,還原出原始語音信號之后再進行保存或播放。得出的仿真結果如下:在編碼位數相同的條件下,ADPCM的信噪比始終大于DPCM的信噪比;隨著編碼位數的增加,DPCM和ADPCM所得的信噪比均呈現上升的趨勢。通過對以上仿真結果進行分析后得出:ADPCM比DPCM在對語音數據進行壓縮的性能方面優越很多。
5? ? 結語
本文基于預測編碼的原理,深入研究了DPCM和ADPCM算法在語音編碼中的原理和應用,并在Matlab中分別進行了使用這兩種算法對同一個語音波形文件進行編/譯碼的仿真,在得出實驗結果以后,對其進行分析,最終驗證了以下結論:在對同一個語音波形文件進行編/譯碼的條件下,ADPCM算法比DPCM算法取得了更加優越的性能,建議使用ADPCM算法實現對語音數據的壓縮和解壓縮。
[參考文獻]
[1]吳恬盈.線性預測在語音信號處理中的應用研究[D].廈門:華僑大學,2006.
[2]楊松.H.264視頻壓縮算法的優化研究[D].重慶:重慶郵電大學,2008.
[3]趙淑芬.多媒體技術教程[M].北京:機械工業出版社,2009.
[4]林福宗.多媒體技術教程[M].北京:清華大學出版社,2009.
[5]林福宗.多媒體技術基礎[M].4版.北京:清華大學出版社,2017.
[6]李小平,趙豐年,徐建強,等.多媒體技術[M].北京:北京理工大學出版社,2008.