《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > H.264中插补算法的VLSI设计与实现

H.264中插补算法的VLSI设计与实现

2008-05-06
作者:李 欣,赵 为,赵兴亮,葛海

  摘 要: 提出了H.264标准中插补" title="插补">插补运算的硬件设计方法。对亮度1/2像素插补,采用易于硬件实现" title="硬件实现">硬件实现的4抽头滤波器取代6抽头滤波器;对色度1/8像素的插补,利用移位器和加法器实现了乘法运算。提出一种可重用的基于4×4块的插补流水线结构。
  关键词: 插补 滤波器 VLSI设计 H.264标准


  H.264/AVC[1]是由ITU和ISO/IEC的专家共同组成的联合视频小组JVT(Joint Video Team)发展和制定的新一代视频编码国际标准。在相同的视觉感知质量下,H.264的传输码率比以往的H.263、MPEG-4等降低了50%左右[2]
  运动矢量位移的精度越高,则帧间剩余误差越小,压缩比越高。H.263中采用了半像素估计,在H.264中则进一步采用1/4像素精度的运动估计。分数运动估计和运动补偿用到的非整数像素点必须通过插补(interpolation)运算来实现,因而插补运算的硬件加速对整个H.264编解码系统性能的提高有重要意义。在H.264中采用了6抽头FIR滤波器的内插" title="内插">内插获得1/2像素位置的值,则1/4像素值可通过线性内插获得。而对于常用的4:2:0的视频格式,亮度信号的1/4像素精度对应于色度的1/8像素的运动矢量,因此需要对色度信号进行1/8像素的插补运算。在H.264的帧间预测中,4×4是最基本的处理单元,其7种模式都可以划分为4×4块来进行处理,因而基于面积和时间考虑的4×4模块的插补电路具有良好的可重用性。
  文献[3]提出了使用4抽头滤波器取代6抽头滤波器的算法来实现亮度的1/2像素插补,利于硬件实现。本文在4抽头滤波器的基础上提出了可以处理4×4块的流水线结构,可以在一个时钟内完成27个1/2像素位置的插补运算。对色度1/8像素的插补,本文提出的两级处理的结构,巧妙地利用移位器和加法器取代了乘法器" title="乘法器">乘法器,节省了硬件开支。


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)/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的结构比较复杂,文献[3]提出的权重值为(-1/8,5/8,5/8,-1/8)4抽头FIR在对图像质量" title="图像质量">图像质量和比特率影响很小的情况下,可以很大程度地节省硬件资源。如图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像素位置的像素由周围的整数像素位置像素和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所示。由图2可以看出,4抽头FIR的结构比6抽头FIR易于硬件实现。实验表明前者的电路面积和关键路径延时比后者分别减少了36.2%和16.0%。


  4×4块的1/2像素精度插补电路的流水线结构图如图3所示,共有16个4抽头FIR,利用一个6×4的整数像素点阵列作为缓冲区,每次从存储器中读出8个整数像素点,分别用于5个水平4抽头FIR的输入。每个时钟所有的像素点都会向下传送一级,图中虚线框处已经计算出了整数像素点周围的所有27个1/2像素值,可以输出到并行处理单元同时计算9个半像素位置的SAD(Sum of Absolute Difference)。该架构处理一个4×4单元需要8个时钟,处理一个具有相同运动矢量的4×16块需要20个时钟。


2.2 亮度1/4像素插补电路
  亮度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×16、8×8、8×4、4×8、4×4不同模式。这7种模式都可以划分为16个4×4块分别进行处理。具有相同整像素运动矢量的纵向相邻4×4块可以连续处理以节省时钟数。表1列出了亮度为1/2像素插补和1/4像素插补时流水线处理一个宏块不同模式分别需要的时钟数。


2.3 色度1/8像素插补电路
  如果利用乘法器来实现色度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)
  硬件设计采用两级处理的结构,采用图5所示的CU单元处理公式(9),色度1/8插补电路结构如图6所示。由于该结构的两级间比较平衡,非常容易插入寄存器以减少关键路径的延时。

3 实验结果
  使用VerilogHDL对本文中提到的设计进行了实现,仿真工具使用VCS7.2,综合工具使用Synopsys Design Compiler(SMIC 0.18μm工艺)。


  文献[4]中使用6抽头FIR的4×4块插补电路流水线结构,与本文使用的4抽头FIR结构进行了比较,其电路性能如表2所示。本文的设计在速度和面积方面均具有非常明显的优势。使用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像素的插补电路可以很大程度上节省硬件资源。其性能比较如表4所示。与文献[5]中的设计相比,本文的设计关键路径延时仅增加了1.5%,门数减少了26%。


  本文介绍了亮度1/4像素精度下,最常用的4:2:0采样模式时插补电路的硬件设计,通过4抽头FIR代替6抽头FIR来实现亮度1/2像素插补,通过移位器和加法器组成的两级处理结构来实现色度1/8像素插补,设计的电路具有面积小、速度快的优点。在此基础上基于功耗和性能考虑的4×4块的流水线结构具有良好的可重用性,可作为硬件加速器用于基于H.264的编解码系统。
参考文献
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

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。