<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 基于TMS320DM6446的H.264編碼器實現(xiàn)與優(yōu)化

          基于TMS320DM6446的H.264編碼器實現(xiàn)與優(yōu)化

          作者: 時間:2009-06-22 來源:網(wǎng)絡 收藏

          幀間預測模式的改進:將當前的16×16宏塊劃分為4個8×8宏塊,分別預測其運動矢量,然后以左右相鄰、上下相鄰的2個8×8塊的運動矢量的差值和閾值相比較為依據(jù),判定是否進行16×8、8×16等分塊模式的預測,最后選擇開銷最小的劃分模式為最佳幀間劃分模式。
          (3)指令級優(yōu)化 DM一個時鐘周期內(nèi)可并行運行8條指令,一次可存取64位數(shù)據(jù),內(nèi)部擁有64個32位通用寄存器,并且支持對寄存器中的4個8位字節(jié)或2個16位字節(jié)分別進行運算處理,這些使得DM具有很強的并行運算能力。視頻圖像的像素尺寸一般是4的倍數(shù),X中像素的值是用8位或16位數(shù)據(jù)按矩陣形式有規(guī)律的存儲,這種數(shù)據(jù)存儲結構與DM的并行處理方式很契合。因此對X程序進行指令優(yōu)化充分發(fā)揮DM6446的并行運算能力,是提高編碼器速度的關鍵。主要分為以下兩部分:①使用內(nèi)聯(lián)函數(shù)優(yōu)化;C6000編譯器提供了許多內(nèi)聯(lián)函數(shù)intrinsics,它們是匯編指令映射的在線函數(shù),不宜用C語言實現(xiàn)其功能的匯編指令都有對應的intrinsics函數(shù)。這樣就可在C語言結構中直接使用內(nèi)聯(lián)函數(shù)實現(xiàn)對多個數(shù)據(jù)的并行運算操作。如:未使用內(nèi)聯(lián)函數(shù)優(yōu)化前X程序調(diào)用一次雙線性內(nèi)插函數(shù)只能計算一個亞像素點的值,而使用內(nèi)聯(lián)函數(shù)_mem4()、_avgu4()等進行優(yōu)化后,一次可以計算4個亞像素點的值,大大提高了運算速度。②使用線性匯編語言優(yōu)化:由于線性匯編不需要考慮寄存器分配、指令延遲、并行指令安排等因素。因此可以利用CCS提供的profile分析工具將使用頻率高、耗時多的函數(shù)抽取出來,根據(jù)事先已知的數(shù)據(jù)間的相關性等信息,在程序中直接改寫函數(shù)匯編,人工優(yōu)化。涉及的算法有:SAD、SSD的計算;DCT變換;反DCT變換、亞像素搜索等。

          4 實驗結果
          選取具有代表性的視頻序列carphone(人物運動幅度較大)、news(背景變化,人物運動幅度不大)、container(背景簡單,景物運動緩慢)進行編碼。視頻為YUV 4:2:0格式.QCIF,量化步長定為26,共50幀,采用IPPP…編碼模式。DM6446的時鐘頻率為600 MHz。表1為優(yōu)化后峰值信噪比、消耗時鐘周期、碼率等實驗結果。表2為優(yōu)化前后編碼時鐘周期對比,I幀編碼速度平均提高了9倍,P幀編碼速度平均提高了11倍。

          以視頻Miss-America為例,研究、對比移植優(yōu)化后的編碼器在不同的量化步長值(QP)下,圖像的壓縮質量,如圖4所示。

          5 結論
          移植優(yōu)化后的X264編碼器在CCS環(huán)境下可正確編碼,在量化步長值26下編碼圖像質量較高,優(yōu)化后編碼速度較優(yōu)化前有明顯提升。介紹的H.264視頻編碼系統(tǒng)的硬件設計,和X264編碼器針對DM6446平臺移植、優(yōu)化的思路和方法,對構建高效的視頻應用平臺具有一定的參考價值。


          上一頁 1 2 下一頁

          關鍵詞: 6446 TMS 320 264

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();