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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > H.264_AVC視頻編碼變換量化核實現(xiàn)

          H.264_AVC視頻編碼變換量化核實現(xiàn)

          作者: 時間:2012-07-23 來源:網(wǎng)絡(luò) 收藏

          2003年推出新的視頻壓縮標(biāo)準(zhǔn)H.264 /MPEG-4 -10AVC,簡稱H.264/AVC。H.264/AVC采用一系列新的壓縮方法[1],可獲得更好的壓縮效果,其壓縮率達(dá)到以往標(biāo)準(zhǔn)的1.5~2倍。因此,基于這一標(biāo)準(zhǔn)的相關(guān)研究和硬件實現(xiàn)具有重要的意義。視頻壓縮硬件實現(xiàn)的關(guān)鍵是編解碼模塊,其中尤以編碼模塊最為核心。本文主要研究編碼模塊中的4×4整數(shù)核,提出硬件實現(xiàn)的優(yōu)化方法,并采用Verilog HDL語言進(jìn)行硬件設(shè)計和綜合。

            1 4×4整數(shù)核的原理

            在以前的標(biāo)準(zhǔn)如MPEG-2和H.263中,對于預(yù)測的殘差數(shù)據(jù)都是采用8×8離散余弦變換(DCT)[1]作為變換的基本運(yùn)算操作;而在H.264/AVC編碼標(biāo)準(zhǔn)中,則采用類似DCT變換形式的基于4×4 像素塊的整數(shù)變換。由于變換塊的尺寸縮小,運(yùn)動物體的劃分更精確,而且運(yùn)動物體邊緣處的銜接誤差大為減小。

            對于整數(shù)變換方式,4×4像素塊的變換公式[3]為:

            

          H.264_AVC視頻編碼變換量化核實現(xiàn)

            式中,(CXCT)是二維變換核,Ef是縮放因子矩陣,符號表示CXCT矩陣?yán)锏拿總€元素和Ef矩陣中相同位置的元素相乘,a=1/2,b=

          H.264_AVC視頻編碼變換量化核實現(xiàn)

          。為了更有效地壓縮數(shù)據(jù),需要利用量化的方法對變換后的數(shù)據(jù)進(jìn)行有損壓縮。同時,由于整數(shù)變換需要利用矩陣行向量的歸一化因子進(jìn)行系數(shù)縮放處理,為降低變換的運(yùn)算量,在H.264/AVC標(biāo)準(zhǔn)中將變換的系數(shù)縮放并進(jìn)行量化運(yùn)算處理,避免了復(fù)雜的實數(shù)運(yùn)算和除法運(yùn)算,更有利于硬件的實現(xiàn)。

            對于量化方式,正向量化運(yùn)算可由如下公式[3]實現(xiàn):

            

          H.264_AVC視頻編碼變換量化核實現(xiàn)

            式中, Zij為量化后的系數(shù);Wij為變換矩陣W=CXCT中的元素;MF=

          H.264_AVC視頻編碼變換量化核實現(xiàn)

          ·2q,PF 稱為縮放系數(shù),根據(jù)元素在陣列塊中的不同位置,其取值如表1所示,Qstep為量化步長,由0至51共52個量化參數(shù)QP決定,QP增加1, Qstep增加12.5%; q=15+QP/6,QP/6取整數(shù);對于幀內(nèi)宏塊f取2q/3,幀間宏塊f取2q/6。需要指出的是,MF的值可根據(jù)PF和QP的取值經(jīng)簡單計算得到,并可形成


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: H.264_AVC 視頻編碼 變換量化

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();