摘 要: 提出了H.264標(biāo)準中插補" title="插補">插補運算的硬件設(shè)計方法,。對亮度1/2像素插補,,采用易于硬件實現(xiàn)" title="硬件實現(xiàn)">硬件實現(xiàn)的4抽頭濾波器取代6抽頭濾波器,;對色度1/8像素的插補,,利用移位器和加法器實現(xiàn)了乘法運算,。提出一種可重用的基于4×4塊的插補流水線結(jié)構(gòu),。
關(guān)鍵詞: 插補 濾波器 VLSI設(shè)計 H.264標(biāo)準
H.264/AVC[1]是由ITU和ISO/IEC的專家共同組成的聯(lián)合視頻小組JVT(Joint Video Team)發(fā)展和制定的新一代視頻編碼國際標(biāo)準,。在相同的視覺感知質(zhì)量下,H.264的傳輸碼率比以往的H.263,、MPEG-4等降低了50%左右[2],。
運動矢量位移的精度越高,則幀間剩余誤差越小,,壓縮比越高,。H.263中采用了半像素估計,在H.264中則進一步采用1/4像素精度的運動估計,。分數(shù)運動估計和運動補償用到的非整數(shù)像素點必須通過插補(interpolation)運算來實現(xiàn),,因而插補運算的硬件加速對整個H.264編解碼系統(tǒng)性能的提高有重要意義。在H.264中采用了6抽頭FIR濾波器的內(nèi)插" title="內(nèi)插">內(nèi)插獲得1/2像素位置的值,,則1/4像素值可通過線性內(nèi)插獲得,。而對于常用的4:2:0的視頻格式,亮度信號的1/4像素精度對應(yīng)于色度的1/8像素的運動矢量,,因此需要對色度信號進行1/8像素的插補運算,。在H.264的幀間預(yù)測中,4×4是最基本的處理單元,,其7種模式都可以劃分為4×4塊來進行處理,,因而基于面積和時間考慮的4×4模塊的插補電路具有良好的可重用性。
文獻[3]提出了使用4抽頭濾波器取代6抽頭濾波器的算法來實現(xiàn)亮度的1/2像素插補,,利于硬件實現(xiàn),。本文在4抽頭濾波器的基礎(chǔ)上提出了可以處理4×4塊的流水線結(jié)構(gòu),可以在一個時鐘內(nèi)完成27個1/2像素位置的插補運算,。對色度1/8像素的插補,,本文提出的兩級處理的結(jié)構(gòu),巧妙地利用移位器和加法器取代了乘法器" title="乘法器">乘法器,,節(jié)省了硬件開支,。
1 插補算法原理
插補原理示意圖如圖1所示。2個整數(shù)像素位置之間的1/2像素點像素如圖1(a)中的a,、b,、aa等,是利用一個帶權(quán)重的6抽頭有限沖擊響應(yīng)(FIR)濾波器對相鄰整數(shù)位置的像素值進行內(nèi)插得到的,,權(quán)重值是(1/32,,-5/32,5/8,,5/8,,-5/32,1/32),。如:
a=round((A-5*B+20*C+20*D-5*E+F)/32) (1)
h=round((A-5*G+20*H+20*I-5*J+K)/32) (2)
aa=round((a-5*b+20*c+20*d-5*e+f)/32) (3)
=round((h-5*i+20*j+20*k-5*l+m)/32)
由于6抽頭FIR的結(jié)構(gòu)比較復(fù)雜,,文獻[3]提出的權(quán)重值為(-1/8,5/8,,5/8,,-1/8)4抽頭FIR在對圖像質(zhì)量" title="圖像質(zhì)量">圖像質(zhì)量和比特率影響很小的情況下,可以很大程度地節(jié)省硬件資源,。如圖1(b)中:
a=round((-1*B+5*C+5*D-1*E)/8) (4)
h=round((-1*G+5*H+5*I-1*J)/8) (5)
aa=round((-1*b+5*c+5*d-1*e)/8) (6)
=round((-1*i+5*j+5*k-1*l)/8)
最匹配的1/2像素位置確定以后,,1/4像素位置的像素由周圍的整數(shù)像素位置像素和1/2像素位置像素線性插補得到。
在常用的4:2:0采樣中,,亮度分量1/4像素精度的運動矢量應(yīng)用到色度分量需要1/8的像素精度,。在色度空間,對整數(shù)位置的像素值進行線性插補可以得到1/8像素精度的插補值,。如圖1(b)所示,,1/8像素位置的像素a是周圍整數(shù)位置像素A,B,,C,,D的線性組合:
a=round(8-x)*(8-y)*A+x*(8-y)*B+y*(8-x)*C+x*y*D/64 (7)
2 硬件結(jié)構(gòu)
2.1 亮度1/2像素插補電路
4抽頭FIR與6抽頭FIR結(jié)構(gòu)比較如圖2所示。由圖2可以看出,,4抽頭FIR的結(jié)構(gòu)比6抽頭FIR易于硬件實現(xiàn),。實驗表明前者的電路面積和關(guān)鍵路徑延時比后者分別減少了36.2%和16.0%。
4×4塊的1/2像素精度插補電路的流水線結(jié)構(gòu)圖如圖3所示,,共有16個4抽頭FIR,,利用一個6×4的整數(shù)像素點陣列作為緩沖區(qū),每次從存儲器中讀出8個整數(shù)像素點,,分別用于5個水平4抽頭FIR的輸入,。每個時鐘所有的像素點都會向下傳送一級,圖中虛線框處已經(jīng)計算出了整數(shù)像素點周圍的所有27個1/2像素值,,可以輸出到并行處理單元同時計算9個半像素位置的SAD(Sum of Absolute Difference),。該架構(gòu)處理一個4×4單元需要8個時鐘,處理一個具有相同運動矢量的4×16塊需要20個時鐘,。
2.2 亮度1/4像素插補電路
亮度1/4像素的線性插補可以用一個加法器和一個移位器實現(xiàn),。圖4為4×4塊1/4像素插補電路的結(jié)構(gòu)圖,, 采用兩級流水線,輸入部分為18個像素點,,利用線性插補生成所需要的1/4像素位置像素,。在圖中虛線框部分可以計算出最佳1/2像素點周圍的所有1/4像素點,輸出給并行處理單元計算9個1/4像素位置的SAD,。該架構(gòu)完成一個4×4單元需要6個時鐘,,完成一個具有相同運動矢量的4×16塊需要18個時鐘。
H.264的幀間預(yù)測中,,一個宏塊(MB)可劃分成16×16,、16×8、8×16,、8×8,、8×4、4×8,、4×4不同模式,。這7種模式都可以劃分為16個4×4塊分別進行處理。具有相同整像素運動矢量的縱向相鄰4×4塊可以連續(xù)處理以節(jié)省時鐘數(shù),。表1列出了亮度為1/2像素插補和1/4像素插補時流水線處理一個宏塊不同模式分別需要的時鐘數(shù),。
2.3 色度1/8像素插補電路
如果利用乘法器來實現(xiàn)色度1/8像素精度的插補電路,對每一個點的插補運算都要用到8個乘法器,,無論是面積還是時間都會有很大的開銷,。變換公式(7)可得公式(8),可以看出其中含有如(9)式所示的公共運算單元,。
a=round{{(8-y)[(8-x)×A+x×B]+y[(8-x)×C+x×D]}/64} (8)
cf=(8-h)×M+h×N (9)
硬件設(shè)計采用兩級處理的結(jié)構(gòu),,采用圖5所示的CU單元處理公式(9),色度1/8插補電路結(jié)構(gòu)如圖6所示,。由于該結(jié)構(gòu)的兩級間比較平衡,,非常容易插入寄存器以減少關(guān)鍵路徑的延時。
3 實驗結(jié)果
使用VerilogHDL對本文中提到的設(shè)計進行了實現(xiàn),,仿真工具使用VCS7.2,,綜合工具使用Synopsys Design Compiler(SMIC 0.18μm工藝)。
文獻[4]中使用6抽頭FIR的4×4塊插補電路流水線結(jié)構(gòu),,與本文使用的4抽頭FIR結(jié)構(gòu)進行了比較,,其電路性能如表2所示。本文的設(shè)計在速度和面積方面均具有非常明顯的優(yōu)勢,。使用H.264參考軟件JM7.3分別對亮度1/2像素插補運算中使用6抽頭FIR和4抽頭FIR進行仿真比較,,采用了4個視頻序列Container、Foreman、News和Tenis,。其中每個序列由30個QCIF(Quarter Common Intermediate Format)幀組成,,序列形式為IBBPBBPBBP。H.264主要檔次,,搜索半徑16,,使用5個參考幀。4抽頭FIR與6抽頭FIR圖像質(zhì)量比較如表3所示,。表中△b為平均碼率的增加,△P為峰值信噪比(PSNR)的增加,??梢钥闯觯褂?抽頭FIR對圖像質(zhì)量和比特率的影響非常小,。
與其他的設(shè)計方法相比較,,本文提出的色度1/8像素的插補電路可以很大程度上節(jié)省硬件資源。其性能比較如表4所示,。與文獻[5]中的設(shè)計相比,,本文的設(shè)計關(guān)鍵路徑延時僅增加了1.5%,門數(shù)減少了26%,。
本文介紹了亮度1/4像素精度下,,最常用的4:2:0采樣模式時插補電路的硬件設(shè)計,通過4抽頭FIR代替6抽頭FIR來實現(xiàn)亮度1/2像素插補,,通過移位器和加法器組成的兩級處理結(jié)構(gòu)來實現(xiàn)色度1/8像素插補,,設(shè)計的電路具有面積小、速度快的優(yōu)點,。在此基礎(chǔ)上基于功耗和性能考慮的4×4塊的流水線結(jié)構(gòu)具有良好的可重用性,,可作為硬件加速器用于基于H.264的編解碼系統(tǒng)。
參考文獻
1 Joint Video Team.Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification.ITU-T Rec.H.264 and ISO/IEC 14496-10 AVC,,2003
2 Wiegand T.Rate-constrained coder control and comparison of video coding standards.IEEE Trans on Circuits and Systems for Video Technology,,2003;13(7):688~703
3 Lie, W N.Hardware-Efficient computing architecture for motion compensation interpolation in H.264 video coding. ISCAS′05,,2005:2136~2139
4 Chen T C,,Huang Y W,Chen L G.Fully utilized and reusable architecture for fractional motion estimation of H.264/AVC.In:Proc of ICASSP,,2004
5 Wang S Z.A new motion compensation design for H.264/AVC decoder.In:IEEE international symposium on ISCAS′05,, 2005