新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DSP芯片的MELP聲碼器的算法方案設計

        基于DSP芯片的MELP聲碼器的算法方案設計

        作者: 時間:2012-01-02 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/149912.htm

        4 軟件設計及其關鍵問題

        軟件設計包括編碼流程和解碼流程,編碼流程圖如圖3所示。由于解碼過程相對簡單,故此處只給出編碼流程圖。

        此軟件流程設計完全按照原理,在實際編程過程中需要注意以下幾個關鍵問題。

        圖3 編碼流程圖

        ⑴存儲器分配問題

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

        ⑵ 數的定標

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

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

        ⑶防止流水線沖突

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

        5 測試結果

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

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

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

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

        表2 編解碼器運算量分析

        7 總結

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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 彝良县| 永泰县| 汾西县| 台南县| 云梦县| 隆昌县| 沙河市| 和平区| 临西县| 侯马市| 象山县| 玉环县| 阳城县| 刚察县| 莱芜市| 绍兴县| 涿州市| 资中县| 宁波市| 郁南县| 郧西县| 策勒县| 巢湖市| 开远市| 大同县| 长葛市| 建水县| 怀仁县| 涿州市| 清远市| 大同县| 宜丰县| 卢氏县| 遂平县| 平凉市| 澳门| 仁寿县| 莆田市| 宜春市| 淅川县| 宁波市|