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