H.264中二進(jìn)制化編碼器的FPGA實(shí)現(xiàn)
第2級(jí)流水線包含6個(gè)模塊,分別代表6種二進(jìn)制化方法。其中U編碼、mb_type/sub_mb_type語法元素編碼模塊較易實(shí)現(xiàn)。因?yàn)檩斎胝Z法元素的位寬為6位,數(shù)據(jù)量不大,分別按照其編碼方法制成碼表,且此碼表所耗資源不多,在硬件實(shí)現(xiàn)時(shí)以RAM的方式實(shí)現(xiàn),速度較快。對于UEGK0和UEGK3 編碼模塊的實(shí)現(xiàn),則需采用U編碼和EGK編碼相結(jié)合的硬件方式完成,具體基本結(jié)構(gòu)如圖4所示。本文引用地址:http://www.ex-cimer.com/article/191909.htm
圖4中,首先由預(yù)處理器判斷目前比特所進(jìn)行的編碼,在EGK編碼中,主要采用首一檢測及桶形移位技術(shù)實(shí)現(xiàn),最后將兩種編碼相加輸出。
對于UEGK0和UEGK3編碼模塊,只需選取不同閾值可實(shí)現(xiàn)。對于語法元素mb_qp_delta,采用有正負(fù)符號(hào)的EGK編碼,正負(fù)號(hào)由語法元素值的奇偶性決定。對于語法元素coded_block_patterm,則采用FL與TU相結(jié)合的編碼方式,因FL與TU編碼的數(shù)據(jù)量均不大,故采用查表方式實(shí)現(xiàn),這樣可提高速度,其中FL編碼的界限值為15,TU編碼的界限值為2。
第3級(jí)流水線的主要功能是選擇。第2級(jí)輸出包括已編元素(binary_value)和上下文模型參量(ctxOffset0、ctxOff-set),在第3級(jí)中,通過選擇信號(hào)(selector)對不同輸出作以選擇。第4級(jí)流水線為32位先進(jìn)先出(FIFO)存儲(chǔ)器。對結(jié)果進(jìn)行緩存,有利于下一級(jí)處理。
第5級(jí)為串行化器,主要對二進(jìn)制化的數(shù)據(jù)進(jìn)行處理,使其按位輸出,并將二進(jìn)制化后的每一位加入其對應(yīng)的上下文模型,以便后續(xù)處理。整個(gè)系統(tǒng)的輸出即為二進(jìn)制化后的每位數(shù)據(jù)(sda)及其偏移(ctxIdxl)。
5 電路仿真及性能分析
該算法經(jīng)VC++仿真驗(yàn)證,可對H.264標(biāo)準(zhǔn)中的主要檔次視頻碼流進(jìn)行編碼,其結(jié)果與H.264標(biāo)準(zhǔn)程序JM8.6相同。電路結(jié)構(gòu)采用Verilog語言進(jìn)行RTL級(jí)描述,并用mod-elsim6.0軟件仿真,后仿真波形如圖5所示。
由圖5可看出,每個(gè)周期中,在使能信號(hào)有效的情況下,在時(shí)鐘的上升沿,可產(chǎn)生1 bit數(shù)據(jù)sda及相應(yīng)的偏移量ctx-Idx1,滿足設(shè)計(jì)時(shí)序要求。電路在Spartan3 FPGA上綜合、布局布線,使用Synplify丁具進(jìn)行綜合,最高時(shí)鐘頻率為100 MHz,影響時(shí)鐘頻率的關(guān)鍵路徑為先進(jìn)先出存儲(chǔ)器模塊。將綜合好的edif電路網(wǎng)表文件輸入到后端FPGA廠商Xilinx的Foundation軟件進(jìn)行布局布線,生成二進(jìn)制流文件,邏輯單元為171,占總資源的4%。使用設(shè)計(jì)的電路對H.264標(biāo)準(zhǔn)中一些標(biāo)準(zhǔn)視頻序列進(jìn)行測試,序列質(zhì)量為QP=28,并與H.264標(biāo)準(zhǔn)程序JM8.6中二進(jìn)制化部分的編碼時(shí)間比較,結(jié)果如表2所示。
綜上,本文對H.264編碼器二進(jìn)制化部分的優(yōu)化使其在速度上較軟件實(shí)現(xiàn)有較大提升,資源占用率也較少。二進(jìn)制化部分的硬件設(shè)計(jì)不僅能完成H.264標(biāo)準(zhǔn)中基本檔次的編碼,還有望應(yīng)用于更大尺寸更高質(zhì)量的實(shí)時(shí)視頻壓縮編碼。
6 結(jié)論
在對H.264標(biāo)準(zhǔn)中二進(jìn)制化部分研究和分析的基礎(chǔ)上,提出其FPGA電路結(jié)構(gòu),采用并行結(jié)構(gòu)及流水線方式設(shè)計(jì)電路。該結(jié)構(gòu)經(jīng)Spartan3 FPGA實(shí)現(xiàn),其吞吐量為每周期1 bit,最大時(shí)鐘頻率為100 MHz,能夠滿足H.264中第3級(jí)及其以上檔次實(shí)時(shí)視頻編碼的要求。
評論