<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

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

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

g.jpg


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

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

h.jpg


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

i.jpg



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


上一頁(yè) 1 2 3 4 下一頁(yè)

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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>