新聞中心

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

        基于DSP的G.729語音編解碼器設計

        作者: 時間:2011-05-31 來源:網絡 收藏

        圖3是該算法精簡后的流程圖。

        d.jpg


        實驗證明,在10幀信號的編碼過程中,這部分算法優化后平均可減少15 000次左右的L_mac運算的調用。
        3.2.2 去除不必要的溢出判斷
        使用CCS中的profiler工具對ITU提供的標準C源碼進行分析,結果表明,該算法大部分運算都集中在basic_op.c文件中的L_add()、L_mult()等幾個基本函數上。進一步分析發現,這些函數在溢出判斷上花費了大量的時間,而實際運算中真正會產生溢出的地方非常少。因此,為了進一步提高代碼效率,在完全不會產生溢出的地方用簡單的基本運算取代函數的調用,這樣即能大大縮短運算時間,還能節省調用函數的開銷。例如:
        e.jpg
        這段程序中,由于-215≤a[i]≤215-1,-215≤b[i]≤215-1,那么a[i]*b[19-i]顯然不會超出區間[-231,231-1],即這一部分不會產生溢出問題,因此這里的L_mult函數便可簡單替換為:
        j.jpg
        這雖是一段極小的程序,但經過這樣簡單的置換后卻能減少數十個時鐘周期。在整個代碼中類似的例子很多,優化后的效果非常明顯。
        3.2.3 循環優化
        對循環的優化一直是代碼優化的重點,一般的循環優化包括:循環合并、循環展開、循環內部的指令盡可能移到循環外等。這些方法在文獻中有詳細的介紹,這里就不再贅述。TMS320C54X系列芯片采用6級流水線結構,可以并行執行多條指令,并在一定條件下可以實現零開銷循環處理。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 买车| 海安县| 依兰县| 秦安县| 曲松县| 托克逊县| 当雄县| 灵石县| 隆林| 故城县| 汉川市| 玉树县| 邯郸县| 弋阳县| 沂源县| 福州市| 梅州市| 民权县| 梁河县| 罗山县| 商城县| 阜阳市| 阿拉善左旗| 古蔺县| 云霄县| 阿图什市| 元朗区| 马龙县| 樟树市| 漳州市| 措勤县| 岳池县| 新乐市| 井研县| 密云县| 绩溪县| 项城市| 洪湖市| 射洪县| 犍为县| 白水县|