APP下载

一种新型H.264/AVC多参考帧预测方法

2012-03-15峰,姜东,刘

电视技术 2012年15期
关键词:解码时域矢量

姜 峰,姜 东,刘 芳

(中国科学院微电子研究所,北京100029)

H.264/AVC视频压缩标准与早期视频编码标准(如MPEG-4,H.263 等)相比,具有更优异的压缩性能[1-4]。H.264标准中采用了多种新技术提高编码效率,例如多参考帧预测、1/4像素精度的运动补偿、自适应环路去块滤波等。其中多参考帧的使用提高了最匹配编码块的搜索概率,因而对于整体编码效率的提升有很大贡献。几个参考帧共同用于运动估计和运动补偿,在编码端和解码端分别存储多个参考帧。根据码流中指定的存储管理操作在解码端重现编码端设置的参考帧,通过提高运动估计时最佳匹配的检索概率来提升压缩效率。

本文提出了一种新型多参考帧预测方法——基于扩展帧的多参考帧预测:根据已解码帧预测或插入一帧新的数据作为后续图像的参考帧。这样就提高了原始序列的时域分辨率,使后续编码图像和参考图像更加接近,进而提高了运动估计的精确性,提升了编码性能。

1 B帧直接预测模式

在 MPEG-4[5],H.263[6]和 H.264/AVC 中,使用了时域直接(direct)模式来提高B帧图像的编码效率,时域直接模式不需要传输运动矢量,而是通过双向预测的后向参考帧的共同位置块得到运动矢量[7-9]。如图1,假设目标物体匀速运动,通过前向、后向参考帧中共同位置(co-located)块的运动矢量可以得到当前块的运动矢量,而不需要编码该运动矢量。用List0和List1来索引双向预测的参考帧。前向、后向运动矢量可以通过如下公式得到

图1 B帧图像的直接模式

因此,压缩比特流中不需要传输任何运动矢量的信息。解码端使用与编码端相同的算法便可恢复出当前块的运动矢量。对于一些特别情况如未覆盖的图像边界、重叠块等,运动矢量设为零[6]。

这种方法大大节省了传输运动矢量的信息量进而占据了B帧编码的绝大部分。统计结果表明,约40%~50%块的编码模式为直接(direct)模式。

2 基于扩展帧的多参考帧预测方法

受B帧直接预测模式的启发,笔者提出一种新的多参考帧预测方法——基于扩展帧的多参考帧预测。

2.1 基于扩展帧的多参考帧预测方法概述

类似B帧直接(direct)预测模式,可以采取时域上直接预测模式扩展或插入一个新的参考帧,用做后续图像的参考帧。与B帧图像直接模式不同的是,扩展帧预测只从已有帧中扩展一帧新的数据作为参考帧序列中进行运动估计时额外可选的一帧参考数据,在码流中仍然需要传输运动矢量信息。将编码流程进行修改后可以得到使用扩展帧预测的编码器原理图(见图2)。

图2 编码端的扩展帧预测

在解码端采取相同的方法可以得到使用扩展帧预测的解码器原理图(见图3)。

图3 解码端的扩展帧预测

基于扩展帧的多参考帧预测方法主要包括以下几个步骤:首先,进行运动矢量的预处理,由于一些运动矢量不能反映实际的运动情况,所以首先对运动矢量进行滤波;然后,使用处理后的运动矢量扩展出新的一个参考帧;最后,将新的扩展参考帧插入在参考帧列表中进行运动估计。

2.2 运动矢量的中值滤波

多数视频编码标准中,运动估计过程力求得到最小误差(如SAD,MSE)的最小化,虽然这样减少了传输码流的比特率,却并不能完全反映实际的帧间运动情况,尤其是运动非常剧烈的视频序列。同时,编码端过于复杂的运动估计会在解码端引起很大的计算开销。所以,为更加充分利用码流中传输的运动信息,以获得高质量的扩展帧或插入帧,对运动矢量信息进行一次预处理。

对于一些运动矢量非常大的序列,可以使用平滑滤波滤除异常的运动矢量,平滑滤波器不局限于中值滤波器,如图4所示,最简单常用的是中值滤波器,通过相邻的8个运动矢量得到当前的运动矢量MVi,j。即

图4 运动矢量的中值滤波

2.3 扩展帧的获取算法

扩展或插入一帧新的参考帧有不同的几种实现方法,包括使用两个参考帧的直接插入法,使用一个参考帧的直接扩展法和使用两个参考帧的直接扩展法。插入的一帧位于可选的两个参考帧中间。和插入帧相比扩展帧将更接近于相邻的P帧,得到更好的运动估计的结果。本文主要介绍两种基于扩展帧的多参考帧预测的实现方法:

1)基于假设的直接扩展法

如前所述,扩展帧将被放在参考帧序列中作为可选的新的参考帧,扩展帧越接近当前帧则越利于运动估计。基于这样的假设,可以得到直接扩展法如图5所示,扩展帧的运动矢量的计算,首先找到共同位置块,由共同位置块的运动矢量进而得到归一化的运动矢量MV1和MV2。则扩展帧的运动矢量的计算公式为

式中:TD1和TD1+TD2分别代表扩展帧与参考帧1和参考帧2之间的时域距离;MV是共同位置块的运动矢量;MV1和MV2分别代表扩展帧与参考帧1和参考帧2之间的运动矢量。

2)使用反向运动矢量的直接扩展法

这种方法是使用共同位置块的反向运动矢量得到扩展块的运动矢量。如图6虚线所示。扩展块的运动矢量计算公式为

式中:TD1和TD2分别代表扩展帧与参考帧1和参考帧2之间的时域距离。MV是共同位置块的运动矢量,MV1是由MV计算出的反向运动矢量。

需要注意的是使用此方法得到的运动矢量可能会出现如图7所示的一些问题。

图7 闭塞区域和未覆盖区域

例如,扩展帧中的闭塞区域和未覆盖区域。MV1和MV2分别代表指向前一参考帧的A块和B块的运动矢量,通过虚线所示的运动矢量反向以后得到扩展块A’和B’。所以扩展帧中会出现一个未覆盖的区域Ui,同时也会出现一些被覆盖多次或闭塞的区域,例如Oi。本文对未覆盖区域以及重叠、闭塞区域的情况进行了对应的特殊处理。针对未覆盖区域,定义块Ui代表参考帧t和扩展帧t+1中出现的未覆盖区域,当F(t+1)中出现的Ui块被编码为intra类型时表明在F(t-1)中没有对应的匹配块。所以Ui是从F(t-1)到F(t+1)的未覆盖域。因未覆盖区域并没有任何运动信息,可使用启发式算法,如果像素源自Intra类型的块并且没有和其他块进行运动补偿,则可以得到它的表达式

因为该块是intra类型编码,则没有相关运动信息,可得到其运动矢量为0的假设。因为闭塞的区域和重叠的区域经常出现在背景中,而背景往往是静止的。所以将闭塞区域和重叠区域的个别块的运动矢量设为0。针对闭塞区域,定义块Oi表示在F(t+1),F(t-1)以及F(t)帧出现的闭塞区域。闭塞区域外的其他所有区域都可以使用运动补偿。^I(p,t)没有使用任何参考帧数据,这样的闭塞的区域可采取共同位置像素给相应像素赋值。

针对扩展帧中运动补偿后会出现一些重叠的区域,可将其表示为

综上所述,可以得到所提出算法的流程如图8所示。

图8 扩展帧获取算法流程

3 仿真结果与性能分析

采用如下配置对本文提出算法进行测试:测试代码H.264参考软件JM12;测试序列foreman_qcif,silent_qcif,mobile_qcif和container_qcif;帧数为300帧;帧率为30 f/s(帧/秒);编码帧格式为 I…14P;QP 值为24,28,32,36。

表1列出了本文算法与参考软件JM12相比平均PSNR的提升以及比特率的节省。图9是本文提出方法与H.264/AVC参考软件的R-D性能的对比。可以看出,本文算法对于container,silent等运动不剧烈的序列的RD性能提升相比mobile等运动较为剧烈的视频序列来说更加明显,这表明在运动矢量的预处理上进行进一步优化是本文算法进一步提升的方向。

表1 与H.264参考软件相比平均PSNR值提升和比特率的节省

4 结束语

本文提出了一种新型基于扩展帧的多参考帧预测方法,该算法提升了原图像序列的时域分辨率,使得扩展帧与当前编码帧更加接近,增大了运动估计中得到最佳匹配的概率。进而提升了编码效率。测试结果表明,本文算法和H.264/AVC参考软件相比获得了PSNR值的提升和比特率的降低。测试序列的R-D性能均有显著提高,尤其是对运动不剧烈的序列有明显优势。对于运动较为剧烈的序列,对本文扩展帧算法步骤做进一步优化,对运动矢量进行进一步归类筛选后,将会得到更好的性能提升,这也是下一步工作的努力方向。

图9 本文算法对几种常用测试序列的R-D性能提升

[1]WIEGAND T,SULLIVAN G J,BJøNTEGAARD G,et al.Overview of the H.264/AVC video coding standard[J].IEEE Trans.Circuits and Systems for Video Technology,2003,13(7):560-576.

[2]WENGER S.H.264/AVC over IP[J].IEEE Trans.Circuits and Systems for Video Technology,2003,13:645-656.

[3]ITU-T.ITU-T Rec.H.264/ISO/IEC 14496-10 AVC[S].2003.

[4]袁晓雷,魏江,张鹏.嵌入式平台H.264软件解码器的优化[J].电视技术,2010,34(5):36-39.

[5]ISO/IEC JTC1.Coding of audio and visual objects-part:2 visual[S].2000.

[6]ITU-T.Video coding for low bitrate communication[S].1998.

[7]FLIERL M,GIROD B.Generalized B pictures and the draft H.264/AVC video compression standard[J].IEEE Trans.Circuits and Systems for Video Technology,2003,13:587-597.

[8]TOURAPIS A M,WU Feng,LI Shipeng.Direct macroblock coding for predictive(P)pictures in the H.264 standard[J].SPIE Visual Communications and Image Processing(VCIP),2004,5308:364-371.

[9]JI Xiangyang,LU Yan,ZHAO Debin,et al.Enhanced direct mode coding for bi-predictive pictures[C]//Proc.ISCAS 2004.[S.l.]:IEEE Press,2004:785-788.

猜你喜欢

解码时域矢量
《解码万吨站》
一种适用于高轨空间的GNSS矢量跟踪方案设计
矢量三角形法的应用
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
基于时域信号的三电平逆变器复合故障诊断
基于极大似然准则与滚动时域估计的自适应UKF算法
基于矢量最优估计的稳健测向方法
三角形法则在动态平衡问题中的应用