一种基于运动补偿的h.264快速插值方法

文档序号:8480552阅读:561来源:国知局
一种基于运动补偿的h.264快速插值方法
【技术领域】
[0001]本发明属于视频编码技术领域,涉及一种基于运动补偿的H.264快速插值方法。
【背景技术】
[0002]随着信息网络技术的迅速发展,视频会议、可视电话、数字电视等对高清视频的需求日益增加,视频压缩成为数据存储和传输的关键技术。目前,ISO/IEC图像运动专家组与ITU-T视频编码专家组制定了最新一代的视频压缩标准H.264。与先前的JPEG、MPEG-2/4、H.261和H.263等视频压缩标准相比,H.264提出了很多新的思想和算法,大幅度提高了视频压缩的效率和图像质量。
[0003]H.264编码器具有优良的性能,但是它是以高运算复杂度为代价的,而帧间预测就是其中复杂度最高的部分,也是耗时最多的部分。它的目的在于消除视频图像中的时间冗余,直接影响了编码性能和图像的质量。因此提高帧间预测的编码效率成为需要解决的问题。
[0004]运动补偿是H.264/AVC视频编码标准中重要的组成部分,而分数像素的运动补偿是其中最复杂的部分。因此提高分数像素的运算时间,减小运算的复杂度尤为重要。H.264/AVC新一代视频编解码标准,是由ITU-TVCEG和ISO/IEC MPEG的专家共同组成的联合视频小组JVT(Joint Video Team)发展和制定的新一代视频编国际标准。与以往的编码标准相比,H.264/AVC采用了许多新特性,包括可变块大小的运动补偿,四分之一像素的运动补偿,多参考帧的运动补偿等等。这些新特点使的H.264/AVC在不同的比特率和视频分辨率上的压缩效率比之前的标准提高了 50%。
[0005]在H.264的编码过程中,运动补偿占据了整个编码时间的绝大部分,而运动补偿的时间大部分都消耗在子像素的插值过程中。H.264/AVC支持二分之一像素和四分之一像素的插值运算,增加了插值运算时间和整数位置参考像素的读取量。而参考像素读取量的增加使得外部存储的访问量增多,这就增加了整个编码过程的实时性和功耗等性能。分数像素运动补偿计算复杂大,阻碍了 H.264的编码效率的提高。在其他专利中有提出了采用6阶FIR滤波器来设计半像素插值,其权重值选取为(1/32,-5/32,5/8,5/8,-5/32,1/32)。也有对6阶FIR滤波器进行了三级流水线设计,从而进一步减小了关键路径,提高系统的运行速度。而对插值算法硬件结构的优化,在一定程度上是优化了它的性能,提高了运算的准确性;可是,大量的硬件消耗,造成了运算速度的降低,运算时间周期的延长,这些问题都有待于解决。

【发明内容】

[0006]有鉴于此,本发明的目的在于提供一种基于运动补偿的H.264快速插值方法,该方法可以在提高运算时间的同时,减少计算复杂度,减小硬件的资源消耗。
[0007]为达到上述目的,本发明提供如下技术方案:
[0008]一种基于运动补偿的H.264快速插值方法,该方法将传统的运动补偿插值算法中的计算半像素所用的6阶滤波改进为4阶滤波,并使用了并行流水线的输入的方式,一次性可以处理输入的12个像素,能提高整个算法的效率;
[0009]具体包括以下步骤:
[0010]步骤一:用系数为(-1,5,5,-1)的4阶滤波器对水平方向上相邻的4个整数像素点进行插值,先得到中间值,然后经过加法、移位运算,得到预测值;
[0011]步骤二:对于垂直方向的二分之一像素,用系数为(-1,5,5,-1)的4阶滤波器对垂直方向上相邻的4个整数像素点进行插值,先得到中间值,然后经过加法、移位运算,得到预测值;
[0012]步骤三:对于对角线方向的二分之一像素,用系数为(-1,5,5,-1)的4阶滤波器对水平或垂直方向上对相邻的4个二分之一像素点中间值进行插值,先得到中间值,然后再对中间值进行加法、移位处理得到预测值。
[0013]本发明的有益效果在于:相比于传统方法,本方法可以在提高运算时间的同时,减少计算复杂度,减小硬件的资源消耗。
【附图说明】
[0014]为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:
[0015]图1为H.264中亮度分数像素的插值图;
[0016]图2为H.264中亮度半像素的插值;
[0017]图3为H.264中亮度1/4像素的插值。
【具体实施方式】
[0018]通过对比,原始算法的工作流程如下:首先,执行在整数像素上的运动补偿寻找最佳匹配的整数位置;其次,半像素的运动补偿根据它周围的最佳整数像素寻找最佳匹配的半像素;第三,1/4像素的运动补偿根据周围最佳的半像素寻找最佳匹配的1/4像素。
[0019]本发明所述的方法将传统的运动补偿插值算法中的计算半像素所用的6阶滤波改进为4阶滤波,并使用了并行流水线的输入的方式,一次性可以处理输入的12个像素,能提高整个算法的效率。
[0020]本方法具体包括以下步骤:步骤一:用系数为(-1,5,5,-1)的4阶滤波器对水平方向上相邻的4个整数像素点进行插值,先得到中间值,然后经过加法、移位运算,得到预测值;步骤二:对于垂直方向的二分之一像素,用系数为(-1,5,5,-1)的4阶滤波器对垂直方向上相邻的4个整数像素点进行插值,先得到中间值,然后经过加法、移位运算,得到预测值;步骤三:对于对角线方向的二分之一像素,用系数为(-1,5,5,-1)的4阶滤波器对水平或垂直方向上对相邻的4个二分之一像素点中间值进行插值,先得到中间值,然后再对中间值进行加法、移位处理得到预测值。
[0021]本发明提供了运动补偿的插值单元设计方法,具体如下:
[0022](I)H.264/AVC 包含 7 个可变块(16X16,16X8,8 X 16,8X8,8X4,4X8,4X4)和四分之一像素精度的运动矢量。
[0023](2)H.264/AVC在执行的过程中首先执行在整数像素上的运动补偿寻找最佳匹配的整数位置。第二,半像素的运动补偿根据它周围的最佳整数像素寻找最佳匹配的半像素。第三,四分之一像素的运动补偿根据周围最佳的半像素寻找最佳匹配的四分之一像素。
[0024](3)半像素和四分之一像素并不是一开始就存在于原始帧中的,必须由插值滤波计算得到。在H.264/AVC的标准中,半像素是通过一个6抽头的维纳滤波器分别在水平和垂直方向计算得到。
[0025](4)水平和垂直方向的半像素根据它邻近的6个整数像素由6抽头FIR滤波器计算出来它的中间值,再将取值范围限定在[0,255]之间。
[0026]bi= E-5F+20G+20H-5I+J.
[0027]hi= A-5C+20G+20M-5R+T.
[0028]b = Clip((b1+16) >>5)
[0029]h = Clip ((hi+16) >>5).
[0030](5)对角线方向的半像素根据它临近的半像素进行水平或垂直方向6阶滤波插值计算得到。
[0031]J1= cc-5dd+20h 1+20m1-5ee+ff.
[0032]J1= aa_5bb+20b 1+20s1~5gg+hh
[0033]j = Clip((j1+512) >> 10)
[0034](6)为了降低系统的复杂度,对于二分之一水平方向上的像素的插值算法的改进,用系数为(_1,5,5,-1)的4阶滤波器对水平方向上相邻的4个整数像素点进行插值,先得到中间值:
[0035]bi= (-1) XF+5XG+5XH+ (-1) XR
[0036]然后经过加法、移位运算,得到预测值:
[0037]b = Clip ((b!+4) >>3)
[0038](7)垂直方向的二分之一像素,用系数为(-1,5,5,-1)的4阶滤波器对垂直方向上相邻的4个整数像素点进行插值,先得到中间值:
[0039]hi= (-1) XC+5XG+5XM+ (-1) XR
[0040]然后对中间值进行加法、移位得到预测值:
[0041 ] h = Cl ip ((hi+4) >>3)
[004
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1