新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于DSP的G.729語音編解碼器設(shè)計

基于DSP的G.729語音編解碼器設(shè)計

作者: 時間:2011-05-31 來源:網(wǎng)絡(luò) 收藏

所謂零開銷循環(huán)是指處理器在執(zhí)行循環(huán)時,不用在循環(huán)終止的判斷、循環(huán)的跳轉(zhuǎn)及循環(huán)計數(shù)器的遞減上額外花費時間。但這就要求編譯器必須知道初始值、更新和結(jié)束條件;循環(huán)體內(nèi)部不能調(diào)用函數(shù);循環(huán)體內(nèi)不能包含break語句;循環(huán)表達(dá)式中不能含有隨循環(huán)體中的條件變化而變化的循環(huán)變量;循環(huán)計數(shù)應(yīng)該遞減等。為了實現(xiàn)零開銷循環(huán),本文對標(biāo)準(zhǔn)C代碼進行了大量優(yōu)化,如在文件Qua_lsp.c中有如下循環(huán):
f.jpg
優(yōu)化前后本段代碼所消耗的時鐘周期數(shù)對比見表1。

本文引用地址:http://2s4d.com/article/150672.htm

g.jpg


3.2.4 使用LIB庫優(yōu)化
TMS320C54X系列提供的通用數(shù)字信號處理算法庫(LIB庫)包含有50多個通用的信號處理程序,全部由匯編語言編寫,并可由C語言調(diào)用,方便C語言與匯編語言混合編程。在計算量大、對實時性要求又高的G.729中調(diào)用LIB庫函數(shù),對于提高代碼效率具有很大的意義。
DSPLIB幾乎包括了當(dāng)前已經(jīng)成熟的數(shù)字信號處理的大部分算法。如:FFT運算、濾波與卷積運算、自適應(yīng)濾波運算、相關(guān)運算、數(shù)學(xué)函數(shù)運算、三角函數(shù)運算、矩陣運算等。
3.2.5 指針尋址
在G.729算法中包含了大量數(shù)組元素的存取操作,ITU提供的標(biāo)準(zhǔn)代碼直接對數(shù)組進行操作,使得浪在地址計算上的時間開銷很大。若對數(shù)組采用指針尋址方式,可節(jié)省很多時間。而通常情況下數(shù)組又都應(yīng)用在循環(huán)內(nèi)部,指針尋址方式更加凸顯出了它的必要性。
除了以上幾種優(yōu)化方法外,使用內(nèi)聯(lián)函數(shù),合理利用暫存器,使用宏定義等也都對代碼的優(yōu)化起到很好的作用。

4 測試結(jié)果及性能分析
利用CCS提供的性能分析工具(profiler)對優(yōu)化前后的代碼進行分析,在TMS320VC5416上實現(xiàn)一幀數(shù)據(jù)編碼所用的時間分別為96 ms與8 ms,其中TMS320VC5416的CPU時鐘頻率為160 MHz。對幾個主要函數(shù)優(yōu)化前后的運行時間進行比較,對比如表2所示。

h.jpg


分析結(jié)果表明,優(yōu)化后的時間比優(yōu)化前大大縮短,并嚴(yán)格控制在了10 ms以內(nèi),保證了系統(tǒng)的實時性。同時,將原始和重建波形進行對比,如圖4所示。觀察對比波形可知,編碼前后語音波形差別很小,重建語音基本保持了原始語音的信息。通過主觀聽覺測試,重建語音清晰易懂,質(zhì)量較高,MOS主觀評分在4.0以上,并且整個系統(tǒng)運行穩(wěn)定。

i.jpg



5 結(jié)語
本文實現(xiàn)了DSP的語音編譯碼器,該對ITU提供的G.729源代碼進行了算法精簡和代碼優(yōu)化,優(yōu)化后的代碼具有編碼效率高、占用資源少、實時性強等優(yōu)點。與源代碼相比,它的編碼效率提高了10倍以上,克服了源代碼難以應(yīng)用在實時語音通信系統(tǒng)的缺點。
目前,該已經(jīng)應(yīng)用在本實驗室的語音通信實驗系統(tǒng)中,與傳統(tǒng)語音實驗系統(tǒng)相比,為學(xué)生提供了更先進的語音編碼實驗,模塊化的軟件設(shè)計也更適合學(xué)生的參與。同時,該系統(tǒng)采用通用的DSP硬件平臺,具有可擴展性強的特點,可實現(xiàn)多種語音編碼算法,為學(xué)生自主性學(xué)習(xí)提供了良好的條件。


上一頁 1 2 3 4 下一頁

關(guān)鍵詞: 設(shè)計 解碼器 語音 DSP 基于

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉