【三】 VVC理论知识之帧间预测(1)

一、帧内预测的基本原理

帧间预测主要用于去除图像的时间相关性。帧间预测算法是通过将已编码的图像作为当前图像的参考图像,来获得当前图像的各个块在参考图像中的运动信息,通常用运动矢量和参考帧索引表示,如下图所示。这样可以去除时间冗余,提高压缩效率。目前,参考图像可以是前向、后向或者双向的,使用相关的帧间编码技术得到当前块的运动信息,该过程可以使从邻块直接继承运动信息,也可以是通过运动估计在参考图像中搜索匹配的块以得到对应的运动信息。接着通过运动补偿过程得到当前块的预测值,倘若需要得到当前块的残差仅仅需要预测值是不够的,还需要将此预测值与块像素值进行相减操作。最终,通过熵编码相关的运动信息和残差就可以在解码端恢复出当前块的重建值,最终输出视频信号。

在这里插入图片描述

H.266/VVC 的帧间预测编码技术沿用了H.265/HEVC 中的运动估计和运动矢量预测技术,同时在此基础之上,添加了一些更高效的编码技术。


二、HEVC中的帧间预测技术回顾

基础知识:

  • 在 H.265/HEVC 中,帧间预测模块采用了基于块的运动补偿技术。这其中包含一个称为运动估计的技术,具体操作如下:首先选定一个已经编码的图像作为参考图像,用选定的参考图像作为当前图像的编码块的最佳匹配参考块,然后标定参考块的偏移,这个过程中将此偏移量称为运动矢量,将当前编码块与参考块的差值称为预测残差。
  • 早期的视频编码标准如 H.261 定义了两种类型的图像,分别为 I 帧图像和 P 帧图像。其中,I 帧图像仅能使用帧内编码技术进行压缩编码,P 帧图像相比 I帧图像具有更大的选择灵活性,它的编码方式可以在帧内和帧间两种方式中根据需要进行自由选择。在早期标准中,P 帧图像的预测方式必须是将时间域上的前一幅图像作为当前图像的参考图像,但是往往因为图像中会出现一些不可预测的遮挡和运动,而导致当前编码块不能够在前向的参考图像中找到对应的匹配块,这样就降低了编码效率。但实际上,在前向参考图像中难以找到的匹块,往往会在时间域上晚于当前图像的帧上,寻找到对应的匹配块,由此衍生出第三类图像,即 B 图像。该类图像可以对当前图像的编码块同时使用前向和后向两个参考图像,计算对应的两个 MV,最终进行加权得到当前块唯一的预测块。这三类图像的编码如下图所示,H.265/HEVC 和H.266/VVC 都沿用了此三类图像。

在这里插入图片描述

H.265/HEVC 的帧间预测编码关键技术

  • 运动估计

对当前编码块在参考图像中寻找对应的匹配块,这一过程称为运动估计技术。运动估计技术可以找到当前块的MV,并在后续流程编码传输到解码端,在解码端,通过 MV 在参考图像中寻找对应的参考块,处理后便可得到当前块的重建块,这样使用MV 代替了需要传输的当前块的像素值,大大减少了需要传输的信息量。在运动估计的过程中,常用最小均方误差(Mean Square Error,MSE),最小平均绝对误差(Mean Absolute Difference,MAD)等参量作为准则来评估两个块之间的相似度。其中由于MAD 准则存在其自身的弊端,比如运算过于复杂等等,慢慢被 SAD 代替。最小 SAD准则因为不含乘除法,利于硬件实现而应用最为广泛。

在运动估计的过程中,还有一个不可忽视的过程搜索算法。在一些应用领域,通常要求实时性,这就对搜索算法提出了一定的要求,性能完善且效率高的搜索算法得到广泛的研究。这些算法中全搜索算法、二维对数搜索算法、三步搜索法、TZSearch算法等比较常用。在自然界中,物体的运动具有一定的连续性,所以相邻的两幅图像之间的物体运动可能并不是以整数像素为单位的,而有可能是1/2 像素,1/4 像素等等分像素单位。此时若依然使用整数像素进行搜索,则会出现匹配不准确的问题,导致最终的预测值和实际值之间的残差过大,影响编码性能。所以在 H.265/HEVC 中,运动估计的过程都意味着先要对图像进行插值运算,将图像的宽高扩展为原来的 2 倍或者4 倍,这样在运动估计时,使用的就是分像素单位,使用的插值算法为两点临近像素内插方法,如下图 所示;而在 H.266/VVC 中,为了提高运动矢量的精度,通常使用的是 1/16 像素精度,以便于更精确地表示运动。

在这里插入图片描述

  • MV预测技术

    ​ 在自然图像中,往往一个运动的物体可能会覆盖多个编码块,这些编码块可能具有相类似的运动信息,导致编码图像空间相邻的邻块具有较强的空间相关性。如果对于当前编码块使用相邻已编码块的 MV 进行预测,将得到的预测 MV 与实际 MV 的差值进行编码,这样就会大幅度减少需要编码一个 MV 所需的比特数,从而大大减少编码码率。同时,由于运动的物体在空间和时间上可能都具有连续性,所以 MV 预测技术也分为时间和空间预测两种。于是,集时域和空域 MV 预测两种思想于一体的Merge 技术和 AMVP 技术被广泛接受并且被收纳在 H.265/HEVC 标准中。这两种技术的核心思想都是通过建立一个MV 候选列表,选取表中性能最优的一个 MV 作为当前编码块的预测 MV。

    对于 Merge 技术,一个包含5个候选 MV的候选列表是由当前算法自动构造生成的,这 5个候选 MV通常包含空域和时域两种类型。如下图所示:

在这里插入图片描述

图中 A 是当前编码块,B,C,D,E,F 分别是 A 的空间邻块。Merge技术的核心思想是从头到尾一个个地遍历候选列表中的所有MV,然后通过计算比较和选择具有最小率失真代价的MV 作为最优MV。在解码端,以相同的方式构建该MV候选列表,通过编码端传输的最优MV 在列表中的索引,即可得到相同的MV。具体过程是列表:按照 B→C→D→E(→F)的顺序建立,其中 F 为替补块,当前四个中至少有一个无效时,检查 F 是否有效并添加至候选列表中。

MV 候选列表的时域构建使用下图中所示方式构建。时域最多提供1个候选MV,利用当前编码块在相邻已编码图像中的同位置块的运动信息,通过以下公式的缩放得到:

在这里插入图片描述

在这里插入图片描述

公式中的curMV为当前编码块的 MV,colMV 为同位块的MV,Td为当前图像和当前参考图像的距离,Tb为同位图像和同位图像的参考图像之间的距离。

注意:MV候选列表的长度为 5,当所有有效的MV不足5个时,通过补0填满。

AMVP 技术则是为当前编码块进行运动估计之前提供一个预测 MV作为运动估计的起始点。顾名思义,编码器的主要任务是用来编码,在AMVP技术当中选择的编码方式为差分编码,对象便是从自己建立的 MV 候选列表中选一个性能最优的与实际的 MV。在解码端,通过相同的方式建立MV候选列表并通过索引将最优MV选择出来,通过编码端差分编码得到的运动矢量差,便可以得到最终的 MV。建立 MV候选列表的过程和 Merge 模式略有不同,AMVP 在当前编码块的左侧和上侧各产生一个候选 MV,左侧的检查顺序为 E→B→scaled E→scaled B,上方的检查顺为 D→C→F(→scaled D→scaled C→scaled F)。scaled 表示对对应MV 进行缩放。若空域候选没有填满候选列表,检查时域候选,时域候选的检查方法与Merge技术相同,如果最终还没有填满,使用零MV进行填补。

在这里插入图片描述

  • 运动补偿

对于通过帧间预测技术得到的运动矢量MV,通过运动补偿的过程得到当前编码块的预测值,然后与当前块做差值得到当前块的残差,并进行熵编码传输。运动补偿的过程实际上就是通过当前块的MV插值计算得到与当前块宽高一致的预测块,当MV为分像素 MV时,通过插值得到分像素位置的像素值;当MV为整像素时,直接通过在参考图像中寻找对应位置即可得到预测值。当参考图像为单向时,直接进行单向的运动补偿过程;当参考图像为双向时,分别在两个方向进行运动补偿并得到各自的预测值,最终通过一定的权重进行加权得到最终的预测值。


更多关于视频编码的知识和资源,更精致的文章排版,欢迎关注博主微信公众号,一起交流、学习、进步!!!
在这里插入图片描述

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值