<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芯片的MELP聲碼器的算法設計方案

采用DSP芯片的MELP聲碼器的算法設計方案

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

4 軟件及其關(guān)鍵問(wèn)題

軟件包括編碼流程和解碼流程,編碼流程圖如圖3所示。由于解碼過(guò)程相對簡(jiǎn)單,故此處只給出編碼流程圖。

此軟件流程完全按照原理,在實(shí)際編程過(guò)程中需要注意以下幾個(gè)關(guān)鍵問(wèn)題。

圖3 編碼流程圖

⑴存儲器分配問(wèn)題

由于TMS320VC5416雙總線(xiàn)結構,提供了許多多功能指令,在實(shí)際實(shí)現時(shí)要充分考慮到這些特點(diǎn),盡量用多功能指令,并且合理分配使用各個(gè)寄存器和指針。例如:MAC指令可以在一個(gè)指令周期內完成乘加操作,還可以結合寄存器的合理安排實(shí)現連續乘加,而不需要緩存中間數據,從而大大提高了運算效率。另外,要充分利用TMS320VC5416提供的專(zhuān)用的硬件結構、尋址方式及特殊指令。如:環(huán)形存儲器尋址方式、雙操作數尋址方式、EXP指令和NORM指令、舍入操作等,恰當使用這些方式和指令可以大大提高軟件效率。

⑵ 數的定標

TMS320VC5416定點(diǎn)數進(jìn)行數值運算,其操作數一般整型數表示。但它的指令支持小數模式和整數模式兩種運算模式。對而言,參與數值運算的數就是16位的整型數。在多數情況下,數學(xué)運算過(guò)程中的數不一定都是整數,這就需要程序員來(lái)確定小數點(diǎn)的位置,即數的定標。TMS320VC5416中數的定標有兩種表示法:Q表示法和S表示法。在此軟件中用Q表示法表示。

在程序中需要經(jīng)常判斷運算結果是否溢出。TMS320VC5416本身設有溢出保護功能,溢出的處理是通過(guò)設置中PMST寄存器的OVM位自動(dòng)執行的??梢栽诔绦虻拈_(kāi)始就設置溢出功能有效,一旦出現溢出異常,則累加器ACC的結果置為最大的飽和值(上溢位7FFFH,下溢位8001H),從而達到防止溢出引起精度嚴重惡化的目的。

⑶防止流水線(xiàn)沖突

流水線(xiàn)是TMS320VC5416最具特色的部分,它大大的提高了TMS320VC5416的性能,但當資源同時(shí)被不在同一流水線(xiàn)階段的指令使用,或在存取某些寄存器時(shí)容易引起流水線(xiàn)沖突。編譯時(shí)會(huì )編譯器將自動(dòng)插入一個(gè)或幾個(gè)空操作,從而增加了所需的計算量,降低了軟件效率,因此軟件設計開(kāi)發(fā)中需要避免流水線(xiàn)沖突。

5 測試結果

目前該編解碼器已通過(guò)的全部測試矢量驗證。系統實(shí)時(shí)實(shí)現編解碼時(shí),經(jīng)過(guò)非正式的主觀(guān)測試結果表明,MELP的MOS分在3.3左右,其清晰度、自然度和抗噪聲性能明顯優(yōu)于傳統LPC。表1和2分別給出了在定點(diǎn)TMS320VC5416上實(shí)時(shí)實(shí)現MELP的編解碼器所需的存儲量和計算量。

從表1可見(jiàn),程序和數據存儲區總存儲量共25.2K字,由于TMS320VC5416內部RAM的大小為128K字,因此,程序boot時(shí),可以一次將所有程序和數據直接搬移到芯片內部RAM里運行。表2顯示了對該聲碼器所用資源的統計結果。在全雙工時(shí),最大運算量為39.9MIPS,完成滿(mǎn)足實(shí)時(shí)實(shí)現的要求。

以上分析結果顯示,單片TMS320VC5416芯片最多可實(shí)現4路語(yǔ)音編解碼,片上剩余的資源還可以實(shí)現其它附加功能。

表1 編解碼器占用存儲器資源

表2 編解碼器運算量分析

7 總結

創(chuàng )新點(diǎn):本文介紹了混合激勵線(xiàn)性預測(MELP)聲碼器算法,簡(jiǎn)要分析了該算法的編解碼原理。同時(shí),本文選用TI公司的TMS320VC5416 DSP芯片進(jìn)行了實(shí)時(shí)實(shí)現,指出了在軟件實(shí)現中需要注意的關(guān)鍵問(wèn)題。經(jīng)非正式主觀(guān)測試結果表明,該算法自然度、清晰度和抗噪聲性能明顯優(yōu)于傳統LPC算法,適用于短波窄帶數字保密通信、無(wú)線(xiàn)通信等需要低速率的語(yǔ)音編碼場(chǎng)合,具有廣闊的應用前景。


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

關(guān)鍵詞: 設計 方案 算法 MELP 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>