运动补偿

来源:互联网 发布:人工智能观后感500字 编辑:程序博客网 时间:2024/04/28 19:56
二、运动补偿

1. 树结构的运动补偿

H.264采用了不同大小和形状的宏块分割与亚分割的方法。一个宏块的16×16亮度值可以按照16×16、16×8、8×16或8×8进行分割;而如果选择了8×8分割,还可以按照8×8、8×4、4×8或4×4进行亚分割,如图5所示。这些宏块分割与亚分割的方法将会使得每个宏块中包含有许多不同大小块。利用各种大小的块进行运动补偿的方法我们将称为树结构的运动补偿(tree structured motion compensation)。宏块分割与亚分割所产生的每一个亮度块都有自己独立的运动矢量。对于宏块中色度值,分割方法是和亮度一样的,但是由于4∶2∶0采样的关系,色度分割块的大小是亮度分割块的一半,而且当色度块在利用运动矢量时,必须要将它各个分量除以2。其次,H.264可以达到1/4像素的运动精度,这是通过利用整像素点的亮度值进行内插得到的。内插过程先是通过6抽头的滤波器来获得半像素精度,然后用线性滤波器来获得1/4像素的精度。又由于4∶2∶0采样的关系,色度的运动精度就达到1/8像素,这也是通过线性滤波器插值得到的。由于运动矢量之间也有一定的相关性,所以H.264就利用已经编码块的运动矢量对当前未编码块的运动矢量进行预测,最后只需要编码和传输实际运动矢量与预测值的差值即可。

再次,H.264还可以采用多参考图像(最多前向和后向各5帧)来进行运动预测,这样可以对周期性运动,平移封闭运动和不断在两个场景间切换的视频流有效果非常好的运动预测。使用了多参考图像,H.264不仅能够提高编码效率,同时也能实现更好的码流误码恢复,但需要增加额外的时延和存储容量。

最后,H.264也在B图像中利用后向运动预测,这和以前的标准是一致的,但不同的是B图像通过加权也能作为其他图像的参考图像。

在H.264/AVC标准中获得运动补偿的块结构大小不再局限于在宏块的基础上,可以从宏块的分块或子分块中获取运动矢量。

每个运动矢量都将会被编码、传送,另外分块方式也必须被编码在数据流中。选择大的分块方式(16×16、16×8或8×16)也许只需要传送很少的比特用于说明运动矢量和分块方式,但是运动补偿后抽样点差值也许将会比较大。选择小的分块方式(8×4或4×4)也许能得到很小运动补偿后抽样点差值,但是要花费很多比特去传输运动矢量和分块方式。因此对于分块的选择将会对压缩效果有着重大的影响。通常,大的分块方式用于帧内均匀的部分,而小的分块方式将有利于图像中细节描述,每个色度块将按照亮度的分块方式进行分块。由于宏块中色度分辨率是亮度分辨率的一半,因此色度块的大小不管在水平还是垂直方向上都只是亮度块的一半。同时,色度块上垂直运动向量和水平运动向量也只是亮度块的一半。

2. 在P类型片中的帧间预测

以往,一般的视频压缩的最高运动估计精度为半像素(half pixel),比如在14496-2标准(即MPEG-4视频编码部分)中的基本补偿技术就是采用半像素精度,采用的内插方法也是简单的双线性内插法,其补偿的质量也是相对于较低的。与上述不同的是,在H.264/AVC标准中的运动估计精度要求达到1/4(quarter pixel)精度。

在H.264/AVC标准中,对于P类型的片编码时可以采用多帧运动补偿预测,也就是超过一个先前编码帧可作为当前帧运动补偿的参考帧。

多帧预测需要解码器和编码器在缓冲中存贮多帧图像作为参考帧。解码器则利用比特流中参数设置信息内存管理控制操作(memory management control operation)去复制编码器相同的多帧缓冲。同时对于每个运动补偿的16×16、16×8、8×16或8×8块及其子块需传送参考索引参数,用于确定该块或子块参考帧在缓存中的位置。P类型片预测方式是与宏块中块相对应的,也即是与前面所介绍宏块中分块相对的。在P类型片中预测模式不仅仅只有表中所描述6种类型,还可以包括帧内预测模式。另外对于P_8×8类型预测方式,它是对应于8×8块的预测,还可以有子分块上预测模式。

对于P帧中不同预测模式分类可见JM中函数interpret_mb_mode_P,在其中它把当前宏块的分块方式及其模式存入到currMB数据结构中,以便在函数readMotionInfoFromNAL获取当前块的运动矢量,在readCBPandCoeffsFromNAL函数中获得预测差值。

3. 在B类型的片中帧间预测

与先前图像编码标准相比,在H.264/AVC标准中B类型片的概念得到推广,最大特点是由B类型片所组成B帧可以作为其他图像的参考帧。B类型片与P类型片最本质的区别是在B类型片中宏块或其子块的预测值是通过两个不同运动补偿值加权平均后取得的。B类型片使用两组不同参考图像,分别为list0(前向参考图像集)和list1(后向参考图像集)。

在B类型片中,四组不同的宏块预测方式将支持下面四种模式:①直接方式(direct mode):这种方式不需要传送运动矢量等附加信息(side information)。②单向预测方式(inter mode):只需传送1个宏块预测信息。③多假设预测方式(multihypothesis mode):需传送两个宏块预测信息。④帧内预测方式(intra mode)。下面我们分别具体介绍直接预测方式和多假设预测方式。

(1)直接预测方式(direct mode)

直接方式使用双向预测方式,传送预测差值。这种方式前向和后向运动矢量(mv0,mv1)是通过随后的参考图像(RL1)上公共确定宏块(co-located macroblock)的运动矢量(mvc)计算得到的。使用直接预测方式的宏块与公共确定宏块应具有相同的分块。

其中MV0为前向运动矢量,MV1为后向运动矢量,MVC代表着随后帧间图像公共确定块运动矢量。对于先前B帧概念而言,TDD为当前帧前一帧与后一帧相差的时间。TDB为当前B帧图像与前一帧的时差。当使用多帧预测后,这种概念发生变化。TDB为当前帧与其前向参考帧RL0之间的时差,而TDD为前向参考帧RL0与后向参考帧RL1之间的时差。在H.264/AVC标准中,直接预测方式因对预测信号进行混合加权运算,比先前标准中使用平均加权方式得到改善。这种技术最适合音乐电视和电影结尾的使用,它们通常是场景慢慢衰弱的。特别是在电影的结尾,场景逐渐衰弱成黑幕。在先前标准中没有好的压缩方式这种情况很难编码。如果把这种现象编码成PBBB模式,由于平均加权将使得第一和第三个B帧相对于周围的帧内、帧间帧及第二个B帧有较大的图像恶化,而基于帧间相对距离的混合加权方式却可以大大改善。

其中c为当前B帧中宏块或块中抽样值,cp为前向参考图像预测宏块或块中抽样值,cs为后向参考图像预测宏块或块中抽样值。

(2)多假设预测方式(multihypothesis mode)

多假设预测方式需要叠加由两个运动矢量所预测两个宏块预测值。我们把每个块预测值称为假设(hypotheses)。最后预测块通过两个假设的运动矢量得到的预测值平均后得到。多假设预测与双向预测方式不同。双向预测方式只允许前后向预测对线性组合而成。见图8。而多假设预测方式取消这种限制,它可以一个方向上预测对来获取最终的预测值。可以(前向,前向)或(后向,后向)进行预测。

当第一个假设来源于先前参考图像而第二个假设来源于后向参考图像时,多假设预测方式也可以成为双向预测方式。
原创粉丝点击