基于DSP的G.729語(yǔ)音編解碼器設(shè)計(jì)
摘要:設(shè)計(jì)了基于DSP的G.729語(yǔ)音編解碼器,并針對(duì)G.729算法標(biāo)準(zhǔn)源碼代碼效率低、執(zhí)行時(shí)間長(zhǎng)的不足,從算法精簡(jiǎn)、代碼優(yōu)化等方面進(jìn)行了優(yōu)化。優(yōu)化后的算法在保證了高質(zhì)量語(yǔ)音輸出的同時(shí),提高了編碼效率,實(shí)現(xiàn)了對(duì)語(yǔ)音信號(hào)的實(shí)時(shí)處理。最后對(duì)系統(tǒng)性能進(jìn)行了測(cè)試,結(jié)果滿足設(shè)計(jì)要求。
關(guān)鍵詞:G.729;DSP;語(yǔ)音編碼;算法優(yōu)化
0 引言
語(yǔ)音信號(hào)處理是現(xiàn)代通信研究的重要內(nèi)容之一,語(yǔ)音壓縮編碼作為其關(guān)鍵技術(shù),如今已得到了極大的發(fā)展。G.729是國(guó)際電信聯(lián)盟(ITU)于1996年提出的采用共軛結(jié)構(gòu)代數(shù)碼激勵(lì)線性預(yù)測(cè)(CS-ACELP)的語(yǔ)音編碼算法,由于其具有低速率、低延時(shí)、高質(zhì)量等優(yōu)點(diǎn),被廣泛應(yīng)用于數(shù)字通信系統(tǒng),如IP電話、視頻會(huì)議、移動(dòng)通信等。數(shù)字信號(hào)處理器(DSP)價(jià)格低廉,并具有強(qiáng)大的運(yùn)算能力,用它來(lái)實(shí)現(xiàn)G.729算法具有很大的現(xiàn)實(shí)意義。近年來(lái),國(guó)內(nèi)外研究基于DSP的G.729語(yǔ)音編碼算法的學(xué)者很多,但隨著無(wú)線通信系統(tǒng)用戶越來(lái)越多,以及DSP在結(jié)構(gòu)、性能上的巨大變化,怎樣使該算法在DSP上最高效的實(shí)現(xiàn),依然是一個(gè)很重要的課題。
本文首先對(duì)G.729算法進(jìn)行了分析,然后結(jié)合DSP的特點(diǎn),分別進(jìn)行了系統(tǒng)的硬件和軟件設(shè)計(jì)。該系統(tǒng)不但滿足G.729算法要求,還可以作為其他語(yǔ)音編譯碼平臺(tái);在此基礎(chǔ)上,本文針對(duì)ITU提供的標(biāo)準(zhǔn)源碼代碼效率低、執(zhí)行時(shí)間長(zhǎng)等不足,提出了算法的具體優(yōu)化技術(shù),并對(duì)優(yōu)化結(jié)果進(jìn)行了比較分析。結(jié)果表明,優(yōu)化后的算法在保證語(yǔ)音質(zhì)量的同時(shí),提高了編碼效率,實(shí)現(xiàn)了對(duì)語(yǔ)音信號(hào)的實(shí)時(shí)處理。
1 ITU-T G.729原理分析
ITU-T G.729算法以自適應(yīng)預(yù)測(cè)編碼技術(shù)為基礎(chǔ),采用矢量量化、合成分析和感覺(jué)加權(quán)等技術(shù)。其編碼速率達(dá)到8 Kb/s,合成語(yǔ)音質(zhì)量不低于32 Kb/sADPCM的水平。
該算法要求輸入信號(hào)為8 kHz取樣、16 b線性PCM信號(hào)。在編碼器端,每80樣點(diǎn)為一幀(每幀再分為兩個(gè)子幀),分析并提取語(yǔ)音信號(hào)各種參數(shù)(LPC濾波器系數(shù)、自適應(yīng)碼書和固定碼書的編號(hào)、自適應(yīng)碼字增益和固定碼字增益),把這些參數(shù)進(jìn)行80 b編碼發(fā)送。
在解碼端,把收到的比特流恢復(fù)成參數(shù)編碼,解碼后得到各個(gè)參數(shù),用自適應(yīng)碼書編號(hào)從自適應(yīng)碼書中得到自適應(yīng)碼字,用固定碼書編號(hào)從固定碼書中得到固定碼字,分別乘以它們的增益,按點(diǎn)相加后構(gòu)成激勵(lì)序列。激勵(lì)LPC綜合濾波器重構(gòu)語(yǔ)音(綜合濾波器由LPC系數(shù)構(gòu)成)。重構(gòu)語(yǔ)音信號(hào)在輸出前經(jīng)過(guò)后置處理,包括長(zhǎng)時(shí)后置濾波、短時(shí)綜合濾波和高通濾波。
2 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件結(jié)構(gòu)圖如圖1所示。其中DSP芯片采用TI公司的TMS320VC5416,音頻接口采用16位音頻編解碼芯片TLV320AIC23,SRAM和FLASH分別采用芯片CY7C1041CV33和SST39VF400。此外,系統(tǒng)還配有電源芯片、電壓轉(zhuǎn)換芯片、CPLD(EPM3128ATC100)等。
系統(tǒng)編碼流程為:由音頻接口芯片TLV320AIC23將模擬信號(hào)轉(zhuǎn)換成8K×16 b/s的數(shù)字信號(hào),采樣后的數(shù)字信號(hào)通過(guò)多通道緩沖串口McB-SP0傳送到DSP的內(nèi)部緩沖區(qū),當(dāng)緩沖區(qū)內(nèi)的數(shù)據(jù)積累到一幀(80×16 b)時(shí)啟動(dòng)編碼程序,編碼完成后將8 Kb/s的壓縮碼流通過(guò)數(shù)字接口(Mc-BSP2)輸出至信道。
系統(tǒng)解碼流程為:由McBSP2將信道發(fā)送來(lái)的數(shù)字碼流接收至DSP的內(nèi)部接收緩沖區(qū),然后經(jīng)DSP進(jìn)行解碼處理,解碼后的數(shù)字語(yǔ)音通過(guò)Mc-BSP0發(fā)送給TLV320AIC23,經(jīng)過(guò)D/A轉(zhuǎn)換恢復(fù)出原始語(yǔ)音信號(hào)。由此,該系統(tǒng)最終實(shí)現(xiàn)了語(yǔ)音的采集、編碼、發(fā)送和接收、解碼、播放的功能。
評(píng)論