基于H.264的Exp-Golomb解碼器ASIC設(shè)計
該模塊的主要組成部件是一個16位的首一檢測器,其功能是檢測出輸入序列中第一個1之前連續(xù)0的個數(shù)。碼長(2M+1)的獲取只需將首一檢測的結(jié)果與一個1位進(jìn)行位拼接即可實現(xiàn),無需額外電路。另外,考慮到響應(yīng)速度和路徑延時,首一檢測器的設(shè)計采用分組并行探測方式,其硬件結(jié)構(gòu)如圖2所示。輸入的16位碼流分成4組,每組4位均通過一個4輸入與門,得到4位輸出信號后送至優(yōu)先編碼器1,從而判斷出首1所在區(qū)間。同時與門的四個輸出還作為選擇器MUX的控制信號,片選出存在首1的4位數(shù)據(jù),并將其送至優(yōu)先編碼器2,判斷出首1的具體位置。最后將兩個編碼器的輸出進(jìn)行位拼接即可得到首 1前連續(xù)O的個數(shù)M。
codenum計算模塊和句法元素映射模塊
codenum計算模塊用于實現(xiàn)公式1的功能,設(shè)計中采用一個16位的桶形移位器結(jié)合一個16位減法器實現(xiàn)。桶形移位器根據(jù)首一檢測結(jié)果,重新定位碼流指針,正確輸出碼字中[1][INFO]部分,最后將[1][INFO]減去1即可得到codenum值。
關(guān)于句法元素映射模塊,由于H.264中定義了四種:Exp-Golomb碼,如前文表2所描述,存在四種不同的映射方式,本設(shè)計中采用四塊組合映射邏輯加一個多選器實現(xiàn),具體結(jié)構(gòu)如圖1右端所示。其中ue直接等于codenum,se與te的映射則分別采用包含二選一電路的簡單組合邏輯實現(xiàn),而me的實現(xiàn)較復(fù)雜,需查找H.264標(biāo)準(zhǔn)中定義的運動矢量、量化參數(shù)的映射表格,設(shè)計中采用ROM結(jié)構(gòu)實現(xiàn)查表。
綜合、仿真結(jié)果與性能分析
在上述硬件架構(gòu)下,使用Verilog HDL進(jìn)行Exp-Golomb解碼器電路設(shè)計,并在Xilinx公司的ISE 8.2開發(fā)環(huán)境下進(jìn)行了功能驗證,選擇Virtex 2系列的XC2V250器件。使用Synplify 7.7軟件進(jìn)行邏輯優(yōu)化與綜合,系統(tǒng)時鐘頻率可達(dá)104MHz。ISE完成布局布線后,通過ModelSim 5.8調(diào)用JM86生成的測試向量進(jìn)行后仿真,最后與軟件的計算結(jié)果相比較,驗證了設(shè)計的正確性。
使用Synopsys公司的Design Compiler工具在0.18μm的SIMC CMOS工藝條件下,對RTL代碼進(jìn)行綜合優(yōu)化,時鐘頻率最高可以達(dá)到200MHz。通過設(shè)置不同的面積、時序及功耗約束條件,縮短關(guān)鍵路徑的延時,綜合出等效門數(shù)2276門、時鐘頻率為162MHz的最優(yōu)設(shè)計。在此工作頻率下,該Exp-Golomb硬件解碼器電路解出一個句法元素只需耗用單個時鐘周期,因此本設(shè)計可滿足H.264高清晰度視頻實時解碼的要求。本文引用地址:http://m.butianyuan.cn/article/155711.htm
結(jié)語
本文在分析H.264標(biāo)準(zhǔn)中Exp-Golomb解碼算法的基礎(chǔ)上,提出了一種高效、省面積的Exp-Golomb解碼器架構(gòu)。在Xilinx公司的 ISE 8.2開發(fā)環(huán)境下使用Virtex 2平臺對設(shè)計進(jìn)行了驗證,使用Synopsys公司的DC工具在SMIC 0.18μm CMOS工藝條件下,對設(shè)計進(jìn)行了面積和時間的優(yōu)化,在162MHz時鐘頻率下工作時,電路等效門數(shù)為2276門,達(dá)到了預(yù)期目標(biāo),為下一步工作打下了良好的基礎(chǔ)。
評論