欧美激情综合一区二区三区,青柠影院免费观看电视剧高清8,无码人妻精品一区二区蜜桃老年人,亚洲最大成人网站,亚洲中文字幕无码一区在线

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > H.264編解碼器在C6416 DSP上的實現與優化

H.264編解碼器在C6416 DSP上的實現與優化

——
作者:魏振宇 時間:2005-09-27 來源:電子產品世界

   我們選取ITU-T公布的JM6.1e參考軟件作為我們的優化對象,目標是實現一個base-line profile的實時編解碼算法。但是JM6.1e代碼復雜,冗余度很大,需要在PC機端對其進行較大調整,涉及工作有:去除冗余代碼、規范程序結構、全局和局部變量的調整和重新定義、結構體的調整等。 

       2. 代碼移植 

       代碼移植,就是將在PC端跑通的程序,移植到DSP端,使其能夠初步運行。需要考慮的問題主要是一些內存分配,語法規則等問題。 

       3. DSP端代碼的優化 

       通過把PC機H.264代碼DSP化,可以在DSP上實現H.264的編解碼算法,但是,這樣實現的算法運行效率很低

,因為所有的代碼都是由C語言編寫,并沒有完全利用DSP的各種性能。所以必須結合DSP本身的特點,對其進一步優化,才能實現H.264視頻解碼器算法對視頻圖像的實時處理。 
       代碼的優化分為三個層次:項目級優化,算法級優化,指令級優化。 

       * 項目級優化       項目級優化,是對項目的整體優化,主要手段有以下幾點:       

       首先是利用CCS編譯器提供的優化功能,對優化選項進行選擇和配置,如打開O-3選項等。       

       其次對程序結構進行調整,對不適合DSP執行的語句進行改寫,以提高代碼的并行性。       

       最后是對內存進行合理分配,因為DSP資源有限,我們把一些常用數據,如全局變量,程序等數據分配到訪問速度高的片內內存,把占用空間較大的數據分配在片外,如幀存等。  

       * 算法級優化 

       是利用H.264的自身特點,提出快速高效算法,從算法上挖掘潛力,提高運行速度,達到優化目的。這部分工作主要集中在編碼器優化方面。 

       視頻編碼中,運動估計部分是運算量最大的一塊,研究顯示,對于H.264,單幀參考,運動估計占總運算量的70%,5幀參考,這個比例能達到90%,因此,提出有效快速的運動估計算法非常有必要,我們通過研究提出了基于預測和早停止技術的運動估計算法,主要方法是利用周邊鄰塊對當前塊運動矢量進行預測,并設定自適應閾值,使搜索提前停止。我們提出的算法,在搜索窗32時,每塊平均搜索點數3-4個左右,和全搜索算法的4225余個點相比,提高速度1000多倍。和一些經典快速算法相比,優勢也很明顯, H.264算法中,亞象素運動估計采用全搜索,1/4精度下,需要搜索16個點。我們提出了自己的亞象素快速搜索算法,平均搜索點數7個,節省運算量60%以上。我們提出的新算法提高編碼速度很明顯,而且質量也較好,PSNR損失不到0.06dB,碼率增大2%左右。這對于運動估計算法基本可以忽略不計。 

       此外,我們針對幀間編碼7中塊大小匹配模式,以及幀內預測13中模式太過復雜,運算量太大的問題,提出了我們自適應模式選擇算法,不需要將所有模式全部計算,就能找到一種相對最優的模式。這些算法,都大大提高了代碼的運行速度,在速度與質量上達到較好的折中。 

       * 指令級優化 

       如果上述優化方法無法達到實時要求,就需要進行指令級優化了,主要手段有。 

       * 循環拆解,將C語言中的for循環打開,排流水線,提高并行性 

       * 調用系統提供的豐富的內聯函數 

       * 調整數據結構,將需要大規模訪問的數據,在內存中將它們放置在一起,方便DMA機制的訪問,或并行指令的處理,如插值函數模塊。 

       * 將耗時函數抽取出來,用線性匯編改寫,充分利用豐富的媒體處理指令【5】,最大限度的利用DSP的并行性。例如,運動估計中頻繁調用的SAD計算,是對相應象素點做差,并對殘差場求絕對值和的計算。原始算法是對每一對象素點分別求差,再對其絕對值累加。我們對其進行了線性匯編的改寫,使用了SUBABS4(一次對兩對4字節數據做差并求絕對值),DOTPU4(一次對兩對4字節數據做內積),LDWLDNW(一次讀取4字節數據)等指令,使代碼并行性有了很大提高。對16

評論


相關推薦

技術專區

關閉