H.264/MPEG-4 Part 10 White Paper 译(三) Inter Prediction

来源:互联网 发布:奇门排盘软件 编辑:程序博客网 时间:2024/05/18 03:49

H.264/MPEG-4 Part 10 White Paper 译(三) Inter Prediction

P片帧间预测

1. 引言

联合视频工作组(JVT)正在定案一个新的自然视频图像编码(压缩)标准。新标准[1]被称为H.264或称作MPEG-4 Part 10、“高级视频编码(AVS)”。这篇文档描述了H.264中以P-片来进行帧间预测编码的方法。

帧间预测从一个或多个之前已经编码的视频帧中生成一个预测模型。这个模型由对参考帧中的采样进行漂移产生(运动补偿预测)。AVC CODEC 使用基于块的运动补偿,与从H.261以来的主要编码标准中采用的规则相同。然而,它与早期标准有着重要的区别:(1 支持多种块大小(最小4X4)的预测;(2 细粒度的次像素运动矢量(量度分量可精确到1/4像素)。


2           树结构的运动补偿

AVC对亮度采样支持16X164X4之间多种块大小的运动补偿。每个宏块(16X16采样)的亮度分量能以Figure 2-1中所示的4种方式分割:16X1616X88X168X8.每个细分区域是一个宏块分区。如果选择8X8分割模式,宏块内的四个8X8宏块分区都能够以4种方式再次分割,如图Figure 2-2所示:8X88X44X84X4(称作宏块子分区)。这些分区和子分区使得每个宏块内都可以有很多种组合方式。这种将宏块分割成不同大小运动补偿子块的方法称作树结构运动补偿。





每个分区或子分区都有一个独立的运动矢量。每个运动矢量必须编码并传输;另外,分区(分割方式)的选择也必须被编码到压流的比特流中。选择大的分区(如16X16,16X8,8X16)意味着只需很少的比特来标记运动矢量的选择和分区的类型;然而,运动补偿残差可能包含了大量的帧中高细节部分信息。选择一个小的分区大小(8X44X4等等)可以在运动补偿后得到一个较小的残差,但它需要更多的比特来标记运动矢量和分区的类型。因此分区大小的选择对压缩效果有着很大的影响。通常情况下,一个大的分区适用于帧内分布均匀的区域而一个小的分区将有利于细节区域的描述。

 

宏块(CrCb)中每个色度分量的分辨率为亮度分量的一半。每个色度块和亮度块的分割方式相同,只是分区大小是水平和垂直方向的分辨率的一半(如一个8X16亮度分区对应一个4X8的色度分区;一个8X4亮度分区对应一个4X2的色度分区)。每个运动矢量(每个分区一个)的水平和垂直分量运用到色度块上时减半。

 

例:Figure 2-3显示了一个残留帧(未经过运动补偿)。AVC参考编码器为帧的每个部分选择了“最好的”分区大小。这种分区大小尽量减小编码残差和运动矢量。为每个区域选择的宏块分区显示在残留帧上(图示)。在帧间变化很小的区域(残留帧上显示为灰色)采用16X16分区方式;在运动的细节描述部分(残留帧上显示为黑色或白色)采用较小的分区效果更好。



3 次像素运动矢量

帧间编码宏块的每个分区根据参考图片中的一个相同大小的区域预测。两个区域间的偏移(运动矢量)的分辨率(亮度分量)为1/4像素。次像素位置的亮度和色度采样在参考图片中不存在,所以它们必须通过对附近的图像采样进行插补来创建。Figure 3-1给出了一个例子。当前帧(a)中的一个4X4的子分区根据参考图像的一个邻近区域来预测。如果运动矢量的水平和垂直分量为整数(b,则参考块中的相关采样实际已经存在(灰点)。如果一个或两个向量分量都为分数值(c,预测采样(灰点)根据参考帧中相邻采样(白点)间的插补产生。



次像素运动补偿的效果明显优于整数像素补偿,但是却增加了复杂性。1/4像素精度效果优于半像素精度。

 

在亮度分量中,半像素位置的次像素采样首先产生,它使用一个6头有限脉冲响应滤波器(6-tap Finite Impulse Response filter)从邻近的整数像素采样中插值。这意味着每个半像素采样是6个邻近整数采样的加权和。一旦所有的半像素采样可用,每个1/4像素采样通过对相邻的半像素和整数像素使用双线性插值得到。如果视频源采样比是4:2:0,色度分量需使用1/8像素采样(与亮度的1/4像素采样对应)。这些采样通过对整数像素的色度采样进行插值(线性插值)得到。

 

4.    运动矢量预测

为每个分区编码一个运动矢量需要大量的比特,特别是在选择小的分区的时候。通常情况下邻近分区的运动矢量都高度相关,所以每个运动矢量可以通过相邻并且之前已经编码的分区的矢量预测。预测矢量MVp基于之前已计算出的运动矢量产生。当前矢量和预测矢量间的差异MVD被编码并传输。预测矢量MVp的生成方法取决于运动补偿块的大小和相邻矢量是否可用。“基本”预测值是当前分区或子分区相邻上部和对角线方向右下和相邻左侧的宏块分区或子分区的运动矢量的中间值。如果(a)选择16X88X16的分区并且(或者)(b)有些邻近分区不可用作预测值,则预测值会作出改变。如果当前宏块被跳过(未传输),则会产生一个预测矢量,即使宏块以16X16分区模式编码。

 

在解码器中,预测矢量MVp以相同的方式形成并加到解码后的矢量差异MVD中。若有跳过宏块,则这里没有解码矢量(MVD),这时会根据MVp的规模产生一个运动补偿宏块。

 

5.    参考资料

 

1 ITU-T Rec. H.264 / ISO/IEC 11496-10, “Advanced Video Coding”, Final Committee Draft, Document JVTG050,March 2003

 

转载:http://hi.baidu.com/huybin%5Fwang/blog/item/889be082840e9a96f603a6c7.html

原创粉丝点击