G.723.1在DSP數(shù)字對講機(jī)基帶系統(tǒng)中的應(yīng)用
②高速率的脈沖激勵編碼(MP-MLQ)函數(shù)Find_Best()中計算預(yù)測殘差信號時需要進(jìn)行卷積碼預(yù)算,對其進(jìn)行優(yōu)化。計算誤差信號的均方值時,式中先通過加減運(yùn)算完成,最后做1次增益G的乘法運(yùn)算即可得到r'[n],這樣計算1次殘差矢量最多需要60×6=360次加減運(yùn)算,而優(yōu)化前的預(yù)算量為4×8×(1+2L+58+59)=56 640。由此可見優(yōu)化減少了大量的運(yùn)算。
③基本運(yùn)算庫函數(shù)優(yōu)化。G.723.1代碼的基本運(yùn)算庫函數(shù)Basop.c中,存在大量數(shù)字信號處理功能的函數(shù),而且占據(jù)絕大部分運(yùn)算,如L_mac()、L_mull()、L_add()、sature()等,所以還需在這幾個函數(shù)上進(jìn)行一些優(yōu)化工作。本文引用地址:http://www.ex-cimer.com/article/152348.htm
5 調(diào)試結(jié)果分析
最終在TMS320C5509A上實(shí)時實(shí)現(xiàn)G.723.1標(biāo)準(zhǔn)。對于1幀語音在高速率6.3 kbps模式下,編解碼算法占用時間7.42 ms,算法復(fù)雜度為49.5 MIPS;低速率5.3 kbps模式下,編解碼占用時間5.34 ms,算法復(fù)雜度35.6 MIPS。
其主要模塊代碼優(yōu)化前后占用的時間對比如表1所列。
整個程序優(yōu)化后,G.723.1算法占用CPU的資源不到20%,即DSP還有足夠的資源對后續(xù)的基帶算法進(jìn)行處理。
結(jié) 語
在工作頻率為200 MHz的C5509A自制硬件電路上,實(shí)現(xiàn)了對G.723.1標(biāo)準(zhǔn)的實(shí)時處理。將2塊板子串口相連,收端揚(yáng)聲器可以傳出發(fā)端傳來的實(shí)時、連續(xù)和清晰的語音。最后優(yōu)化驗(yàn)證以及整體基帶系統(tǒng)的調(diào)試結(jié)果證明,語音壓縮編碼方案選用正確,代碼優(yōu)化結(jié)果良好,硬件電路設(shè)計合理,在頻譜帶寬、DSP資源有限的條件下,圓滿地實(shí)現(xiàn)了G.723.1語音壓縮編碼在對講機(jī)基帶數(shù)字化系統(tǒng)設(shè)計中的應(yīng)用。從DSP的CPU負(fù)載情況看,G.723.1的代碼還可進(jìn)一步優(yōu)化。若想進(jìn)一步降低功耗,可采用全匯編實(shí)現(xiàn)。
評論