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