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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于 TMS320DM6446 的 H.264 編碼器的設計與優(yōu)化

          基于 TMS320DM6446 的 H.264 編碼器的設計與優(yōu)化

          作者: 時間:2011-01-02 來源:網(wǎng)絡 收藏

          2003年發(fā)布的H.264視頻壓縮編碼標準在一定程度上解決了要在盡可能低的碼率下獲得盡可能好的圖像質量這一問題。在相同的重建圖像質量下,H.264能夠比H.263節(jié)約50%左右的比特率,此外H.264還增強了其對網(wǎng)絡的適應性,差錯的恢復能力,使其非常適用于數(shù)字視頻存儲、IPTV及手機電視等視頻質量要求高而信道傳輸環(huán)境不穩(wěn)定的場合。

          本文引用地址:http://www.ex-cimer.com/article/151137.htm


          由于加入了多模式位移估計、基于4×4塊的整數(shù)變換等多種新的算法,使H.264算法本身的復雜度大幅增加。因此本文采用基于TI的TMS320DM6446的DAVINCI_EVM平臺作為算法的硬件平臺,提出針對達芬奇平臺對H.264編碼器進行優(yōu)化,在不降低編碼質量的情況下提高程序運行效率,降低運算復雜度的一個實現(xiàn)方案。

          H.264編碼器的算法流程
          H.264編碼器結構如圖1所示,輸入的Fn為當前幀或場,編碼器以宏塊為單位進行處理,每個宏塊可以選擇幀內(nèi)或者幀間預測兩種編碼方式。如果采用幀內(nèi)編碼模式,其預測值PRED(圖中為P)是由本幀之前已經(jīng)經(jīng)過編碼、解碼、重建的一些樣本點生成。而如果采用幀間模式,則P由一個或者多個參考幀的運動補償預測生成。預測值P和當前塊相減后,產(chǎn)生一個殘差塊D,經(jīng)塊變換、量化后產(chǎn)生一組量化后的變換系數(shù)X,再經(jīng)熵編碼,與解碼所需的一些信息一起組成一個壓縮后的碼流,經(jīng)NAL供傳輸和存儲用。

          圖1 H.264編碼器結構

          編碼硬件平臺概況
          本文采用的達芬奇數(shù)字視頻評估模塊DVEVM(Digital Video Evaluation Module)是TI提供的用來評估DaVinci技術和DM644x體系架構的評估模塊,是強調片上能力的一個很好的參考平臺。其硬件資源包括TM320DM6446的DSP和ARM9的雙核芯片、128MB的SDRAM、16MB的NAND Flash以及豐富的外設接口。


          TM320DM6446中用于編碼器具體實現(xiàn)的C64x+ DSP的時鐘頻率達到600MHz。C64x+ DSP的內(nèi)部存儲器的配置包括32KB的程序存儲器L1P、80KB的數(shù)據(jù)存儲器L1D和64KB的二級緩存L2。圖2為TM320DM6446中DSP端的核心C64x+的結構原理圖。

          編圖2 C64x+結構原理圖

          碼器在TM320DM6446上的實現(xiàn)
          由于DSP平臺與PC平臺的差異性,必須對PC上開發(fā)的編碼器程序進行結構上的調整,并進行合理的內(nèi)存分配才能在DSP平臺上正常的運行。主要實現(xiàn)步驟如下。


          1 編碼器C語言結構調整
          PC平臺上用C語言實現(xiàn)的編碼器在DSP平臺上的編碼幀率(fps)非常低,平均2秒才能編完一幀,其主要原因是無法利用DSP的并行處理機制。因此針對C64x+的特點,將程序中對流水線操作影響較大的的循環(huán)拆分成若干小循環(huán)實現(xiàn)。對編碼器運行速度影響較大的模塊如sad的計算,DCT變換等采用CCS自帶的圖像庫以提高編碼效率。


          上一頁 1 2 3 下一頁

          關鍵詞: 編解碼器

          評論


          相關推薦

          技術專區(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); })();