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

发布者:冷漠之心最新更新时间:2008-05-29 来源: EDNchina 手机看文章 扫描二维码
随时随地手机看文章

  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滤波器的内插获得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像素的插补,本文提出的两级处理的结构,巧妙地利用移位器和加法器取代了乘法器,节省了硬件开支。

  

  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在对图像质量和比特率影响很小的情况下,可以很大程度地节省硬件资源。如图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个时钟。

  亮度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 inter national symposium on ISCAS′05, 2005

引用地址:H.264中插补算法的VLSI设计与实现

上一篇:一种新型编码芯片及其驱动程序的设计方案
下一篇:基于ARM-Linux和CDMA的远程视频监控系统

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新安防电子文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 视频监控 智能卡 防盗报警 智能管理 处理器 传感器 其他技术 综合资讯 安防论坛

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved