H264中插補算法的VLSI設計與實現_第1頁
H264中插補算法的VLSI設計與實現_第2頁
H264中插補算法的VLSI設計與實現_第3頁
H264中插補算法的VLSI設計與實現_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、    H.264/AVC是由ITU和ISO/IEC的專家共同組成的聯合視頻小組JVT(JointVideoTeam)發(fā)展和制定的新一代視頻編碼國際標準。在相同的視覺感知質量下,H.264的傳輸碼率比以往的H.263、MPEG-4等降低了50%左右。運動矢量位移的精度越高,則幀間剩余誤差越小,壓縮比越高。H.263中采用了半像素估計,在H.264中則進一步采用1/4像素精度的運動估計。分數運動估計和運動補償用到的非整數像素點必須通過插補(interpolation)運算來實現,因而插補運IEC的專家共同組成的聯合視頻小組JVT(Joint Video T

2、eam)發(fā)展和制定的新一代視頻編碼國際標準。在相同的視覺感知質量下,H.264的傳輸碼率比以往的H.263、MPEG-4等降低了50%左右。FIR濾波器的內插獲得1/2像素位置的值,則1/4像素值可通過線性內插獲得。而對于常用的4:2:0的視頻格式,亮度信號的1/4像素精度對應于色度的1/8像素的運動矢量,因此需要對色度信號進行1/8像素的插補運算。在H.264的幀間預測中,4×4是最基本的處理單元,其7種模式都可以劃分為4×4塊來進行處理,因而基于面積和時間考慮的4×4模塊的插補電路具有良好的可重用性。文獻提出了使用4抽頭濾波器取代6抽頭濾波器的算法來實現亮度的

3、1/2像素插補,利于硬件實現。本文在4抽頭濾波器的基礎上提出了可以處理4×4塊的流水線結構,可以在一個時鐘內完成27個1/2像素位置的插補運算。對色度1/8像素的插補,本文提出的兩級處理的結構,巧妙地利用移位器和加法器取代了乘法器,節(jié)省了硬件開支。1 插補算法原理插補原理示意圖如圖1所示。2個整數像素位置之間的1/2像素點像素如圖1(a)中的a、b、aa等,是利用一個帶權重的6抽頭有限沖擊響應(FIR)濾波器對相鄰整數位置的像素值進行內插得到的,權重值是(1/32,-5/32,5/8,5/8,-5/32,1/32)。如:a=round(A-5*B+20*C+20*D-5*E+F)/3

4、2)(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的結構比較復雜,文獻提出的權重值為(-1/8,5/8,5/8,-1/8)4抽頭FIR在對圖像質量和比特率影響很小的情況下,可以很大程度地節(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)=r

5、ound(-1*i+5*j+5*k-1*l)/8)最匹配的1/2像素位置確定以后,1/4像素位置的像素由周圍的整數像素位置像素和1/2像素位置像素線性插補得到。在常用的4:2:0采樣中,亮度分量1/4像素精度的運動矢量應用到色度分量需要1/8的像素精度。在色度空間,對整數位置的像素值進行線性插補可以得到1/8像素精度的插補值。如圖1(b)所示,1/8像素位置的像素a是周圍整數位置像素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 硬件結構2.1 亮度1/2像素插補電路4抽頭FIR與6抽頭FIR結構比較如圖2

6、所示。由圖2可以看出,4抽頭FIR的結構比6抽頭FIR易于硬件實現。實驗表明前者的電路面積和關鍵路徑延時比后者分別減少了36.2%和16.0%。4×4塊的1/2像素精度插補電路的流水線結構圖如圖3所示,共有16個4抽頭FIR,利用一個6× 4的整數像素點陣列作為緩沖區(qū),每次從存儲器中讀出8個整數像素點,分別用于5個水平4抽頭FIR的輸入。每個時鐘所有的像素點都會向下傳送一級,圖中虛線框處已經計算出了整數像素點周圍的所有27個1/2像素值,可以輸出到并行處理單元同時計算9個半像素位置的SAD(Sumof Absolute Difference)。該架構處理一個4×4

7、單元需要8個時鐘,處理一個具有相同運動矢量的4×16塊需要20個時鐘。亮度1/4像素的線性插補可以用一個加法器和一個移位器實現。圖4為4×4塊1/4像素插補電路的結構圖,采用兩級流水線,輸入部分為18個像素點,利用線性插補生成所需要的1/4像素位置像素。在圖中虛線框部分可以計算出最佳1/2像素點周圍的所 有1/4像素點,輸出給并行處理單元計算9個1/4像素位置的SAD。該架構完成一個4×4單元需要6個時鐘,完成一個具有相同運動矢量的4×16塊需要18個時鐘。H.264的幀間預測中,一個宏塊(MB)可劃分成16×16、16×8、8

8、15;16、8×8、8× 4、4×8、4×4不同模式。這7種模式都可以劃分為16個4×4塊分別進行處理。具有相同整像素運動矢量的縱向相鄰4×4塊可以連續(xù)處理以節(jié)省時鐘數。表1列出了亮度為1/2像素插補和1/4像素插補時流水線處理一個宏塊不同模式分別需要的時鐘數。2.3 色度1/8像素插補電路如果利用乘法器來實現色度1/8像素精度的插補電路,對每一個點的插補運算都要用到8個乘法器,無論是面積還是時間都會有很大的開銷。變換公式(7)可得公式(8),可以看出其中含有如(9)式所示的公共運算單元。a=round(8-y)(8-x)×

9、A+x×B+y(8-x)×C+x×D/64(8)cf=(8-h)×M+h×N(9)硬件設計采用兩級處理的結構,采用圖5所示的CU單元處理公式(9),色度1/8插補電路結構如圖6所示。由于該結構的兩級間比較平衡,非常容易插入寄存器以減少關鍵路徑的延時。3 實驗結果使用VerilogHDL對本文中提到的設計進行了實現,仿真工具使用VCS7.2,綜合工具使用Synopsys Design Compiler(SMIC 0.18m工藝)。文獻中使用6抽頭FIR的4×4塊插補電路流水線結構,與本文使用的4抽頭FIR結構進行了比較,其電路性能如表2

10、所示。本文的設計在速度和面積方面均具有非常明顯的優(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圖像質量比較如表3所示。表中b為平均碼率的增加,P為峰值信噪比(PSNR)的增加??梢钥闯?,使用4抽頭FIR對圖像質量和比特率的影響非常小。與其他的設計方法相比較,本文提出的色度1/8像素的插補電路可以很大程度上節(jié)省硬件資源。其性能比較如表4所示。與文獻中的設計相比,本文的設計關鍵路徑延時僅增加了1.5%,門數減少了26%。本文介紹了亮度1/4像素精度下,最常用的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論