基于TMS320C5416的G.729語(yǔ)音編解碼算法的優(yōu)化和實(shí)現(xiàn)
在G.729軟件仿真時(shí)發(fā)現(xiàn)運(yùn)算量較大的部分是LSP系數(shù)的矢量量化與激勵(lì)碼本(自適應(yīng)碼本和固定碼本)的搜索,這兩個(gè)部分的運(yùn)算量大約占全部編解碼運(yùn)算量的60%以上。所以在優(yōu)化過(guò)程中,著重對(duì)固定碼本Acelp_Code_A()、分?jǐn)?shù)基音分析pitch_fr3()、開(kāi)環(huán)基音分析pitch_ol_fast()、增益量化Qua_gain()等占據(jù)絕大多數(shù)運(yùn)算量的函數(shù)進(jìn)行了優(yōu)化;僅僅簡(jiǎn)化算法不能滿足實(shí)時(shí)要求,還使用了CCS提供的C優(yōu)化器進(jìn)行C語(yǔ)言?xún)?yōu)化,同時(shí)還可以使用內(nèi)聯(lián)函數(shù)和匯編語(yǔ)句。經(jīng)過(guò)以上處理后,輸出的信號(hào)滿足通信要求。通過(guò)分析優(yōu)化前后這些主要模塊的速度對(duì)照表(如表1所示),可以看出各個(gè)主要模塊的優(yōu)化效果是比較明顯的。一幀語(yǔ)音信號(hào)經(jīng)過(guò)處理前后幅頻圖(如圖4所示),可以看出語(yǔ)音信號(hào)經(jīng)過(guò)處理后保持良好的語(yǔ)音質(zhì)量。
系統(tǒng)運(yùn)行主要分為四個(gè)過(guò)程:語(yǔ)音存儲(chǔ),數(shù)據(jù)編碼壓縮,數(shù)據(jù)解壓縮,語(yǔ)音回放。將輸入的語(yǔ)音數(shù)據(jù)首先進(jìn)行抗疊濾波,然后進(jìn)行模數(shù)轉(zhuǎn)換,經(jīng)DSP采集并存入RAM存儲(chǔ)器中,即是語(yǔ)音存儲(chǔ)過(guò)程;接著運(yùn)行編碼程序,將前面存儲(chǔ)的信息進(jìn)行壓縮并存儲(chǔ),這是編碼過(guò)程;然后進(jìn)行解碼,并將數(shù)據(jù)存回原來(lái)的位置;最后DSP執(zhí)行輸出指令,將解碼后的數(shù)據(jù)送到數(shù)模轉(zhuǎn)換器中,實(shí)現(xiàn)模擬輸出。
用C5416最終實(shí)時(shí)實(shí)現(xiàn)了G.729聲碼器,用該聲碼器分別實(shí)時(shí)播放純語(yǔ)音文件、語(yǔ)音加背景音樂(lè)文件。對(duì)重建語(yǔ)音質(zhì)量的主觀測(cè)試結(jié)果表明,恢復(fù)語(yǔ)音保留了很好的說(shuō)話人特征,合成語(yǔ)音的清晰度和自然度均較好。該聲碼器性能測(cè)試數(shù)據(jù)如下:編解碼一幀平均時(shí)鐘周期數(shù)為1 010 350,CPU時(shí)鐘頻率為160MHz,所以編解碼一幀需要7.31ms時(shí)間;程序RAM容量為9.381KB;數(shù)據(jù)和常數(shù)RAM容量為7.146KB。以上數(shù)據(jù)表明,G.729編解碼器在C5416上實(shí)時(shí)實(shí)現(xiàn)的技術(shù),可以很好地應(yīng)用在電話會(huì)議、多媒體通信以及采用寬帶語(yǔ)音編碼的通信系統(tǒng)中。
評(píng)論