新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于 TMS320DM6446 的 H.264 編碼器的設計與優化

        基于 TMS320DM6446 的 H.264 編碼器的設計與優化

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

        2 DSP端的內存配置
        由于視頻編碼的數據存取量較大,而 DAVINCI_EVM提供了256MB的外部存儲器DDR2,因此通過對DSP/BIOS的設置將外部存儲器設置為DDR2,并將可執行的C代碼及C代碼的堆存入外部存儲器中。

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


        3 對DSP端的BOOT的設置
        由于TM320DM6446采用雙核的設計,ARM端只負責對整個工程的控制而不參與編碼算法的具體實現。為了保證編碼算法能在DSP端無中斷的全速運行,需要對ARM端進行屏蔽,并通過對DAVINCI_EVM跳線的設置使DSP端自BOOT。


        通過以上步驟編碼器效率雖然有所提高,但仍無法滿足實時性的要求,因此必須結合DM6446本身的特點對編碼器算法進行進一步的優化。

        編碼器的優化
        本文對H.264算法的優化主要有兩個方面:1)對算法中耗時較多的運動估計模塊進行優化。2)對DSP的數據搬移進行優化。


        1 對編碼器算法運動估計模塊的優化
        由于DSP硬件資源有限,因此有必要對H.264編碼器中所耗時間較多的模塊進行優化,表1為H.264各模塊復雜度比較。


        由表1可見運動估計占了一半左右的時間,運動估計復雜度高的主要原因是采用了全搜索算法,雖然精度非常高,但帶來了大量的計算量。針對這一問題,本文在已有的快速算法菱形搜索算法基礎上進行進一步的優化。


        為了減少靜止宏塊被編碼以及大模板搜索所帶來的運算量,首先在用菱形算法進行運動搜索之前以待編碼宏塊周圍已編碼宏塊的運動矢量信息及SKIP狀況為依據預測當前宏塊是否使用SKIP模式編碼。當待編碼宏塊為非靜止宏塊時,再根據周圍已編碼宏塊的SAD值預測當前宏塊的運動劇烈程度,若是運動平緩的宏塊則直接使用小模板進行搜索。只有當待編碼宏塊被判定為劇烈運動的宏塊時才進行大模板搜索。由于多次的大模板搜索循環帶來較大的計算量,因此在進行大模板搜索之前首先根據周圍宏塊的信息對最大搜索次數MaxNum進行預估值,當大模板的搜索次數大于MaxNum時直接跳轉至小模板搜索。此流程設計可使靜止宏塊和運動平緩的宏塊不進入運算量大的大模板搜索環節。優化后的菱形算法的流程如圖3所示。

        圖3 優化算法流程圖



        關鍵詞: 編解碼器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 锡林郭勒盟| 晋城| 乐亭县| 厦门市| 罗源县| 太白县| 武穴市| 彭水| 汝阳县| 双流县| 三都| 贡山| 嘉义市| 元江| 大邑县| 琼海市| 漯河市| 周口市| 五大连池市| 海盐县| 三门县| 榆社县| 广西| 临沧市| 东阳市| 平塘县| 高青县| 唐海县| 韶关市| 阿坝| 黎川县| 永昌县| 建始县| 福建省| 城固县| 讷河市| 苍南县| 龙山县| 长寿区| 汉阴县| 晴隆县|