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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > H.264/AVC中CAVLC編碼器的硬件設(shè)計(jì)實(shí)現(xiàn)

          H.264/AVC中CAVLC編碼器的硬件設(shè)計(jì)實(shí)現(xiàn)

          作者: 時(shí)間:2010-09-18 來源:網(wǎng)絡(luò) 收藏

            (5)寫碼字。

            非零系數(shù)級(jí)的碼字為“前綴碼字+后綴碼字”,前綴碼字為prefix個(gè)0后緊跟一個(gè)1(即前綴碼字為1,碼長(zhǎng)為prefix+1),后綴碼字值為suffix,碼長(zhǎng)為levelsuffixsize。

            依據(jù)圖3編碼流程,level編碼所需的時(shí)鐘周期與TC和T1之差有關(guān),不同的數(shù)據(jù)塊所需的時(shí)鐘周期不同,而編碼前需經(jīng)過掃描和統(tǒng)計(jì)。當(dāng)非零系數(shù)較多時(shí),level編碼采用傳統(tǒng)的串行方式所需的時(shí)鐘周期可能比統(tǒng)計(jì)模塊所耗要多,導(dǎo)致不穩(wěn)定的吞吐量。另一方面,獲得level的碼字需知道該系數(shù)的prefix、suffix以及l(fā)evelsuffixsize,而levelsuffixsize的大小是自適應(yīng)變化的,與上一個(gè)已編碼系數(shù)的絕對(duì)值大小有關(guān),這給并行處理帶來了一定困難。為此,采用并行處理和兩級(jí)流水線相結(jié)合的結(jié)構(gòu)并行處理2個(gè)非零系數(shù),如圖4所示。第一級(jí)初始化suffixlength,求coeffs的絕對(duì)值及中間變量levelcode;第二級(jí)更新suffixlength,計(jì)算prefix,suffix和levelsuffixlength。模塊coeffs SIPO buffer實(shí)現(xiàn)串行輸入并行輸出,輸入輸出關(guān)系如圖5所示。

          H.264/AVC中CAVLC編碼器的硬件設(shè)計(jì)實(shí)現(xiàn)

            3 實(shí)驗(yàn)驗(yàn)證分析

            Level編碼電路結(jié)構(gòu)采用Verilog HDL語言描述,在ModelSim SE 6.0上進(jìn)行仿真,使用Synplicity公司的Synplify Pro完成綜合過程。最后采用Xilinx公司VirtexⅡ系列的xc2v250 FPGA進(jìn)行實(shí)現(xiàn)和驗(yàn)證。

            圖6給出了ModelSim的仿真波形,其結(jié)果與JVT校驗(yàn)軟件模型JM16.2[7]的值一致。從圖6可以看出,并行編碼TC-T1個(gè)level值比串行方式節(jié)省(TC-T1)/2個(gè)時(shí)鐘周期,當(dāng)非零系數(shù)較多時(shí),也能獲得穩(wěn)定的吞吐量。表1給出了Synplify Pro綜合的硬件資源報(bào)告。系統(tǒng)允許的最高時(shí)鐘頻率為158.1 MHz,硬件資源消耗如表1所示。綜上所述,本設(shè)計(jì)滿足實(shí)時(shí)高清視頻編碼的要求。

          H.264/AVC中CAVLC編碼器的硬件設(shè)計(jì)實(shí)現(xiàn)

          H.264/AVC中CAVLC編碼器的硬件設(shè)計(jì)實(shí)現(xiàn)



          關(guān)鍵詞: H.264 AVC CAVLC 編碼器

          評(píng)論


          相關(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); })();