H.264/AVC, H.265/HEVC, H.266/VVC技术对比整理-帧间预测

1、 H.264/AVC帧间预测

1.1 多参考帧

  从264开始引用了多参考帧技术,两个方向上各自建立参考帧列表,最多15帧,编码时可以通过运动估计在所有参考帧中搜索匹配块。HEVC和VVC中使用了类似的技术。

1.2 运动矢量精度

  MV描述了块中内容的运动关系,由于实际物体运动是连续的,帧间的运动矢量不一定是整数。为了提高预测精度,264使用了1/4精度运动矢量(色度1/8),因此在运动估计中,需要对参考像素进行插值。编码中根据周边块(空域)的MV对当前块的MV进行预测,仅传输预测误差MVD到解码端。

1.3 预测模式

  设B帧的参考帧列表为L0和L1,那么可以将B帧分为4种预测模式,分别是直接模式(不传输MVD)、利用L0模式、利用L1模式、利用L0和L1模式。

1.4 加权预测

  264中加入了slice级的加权预测,分为显性预测和隐性预测。对于显性预测,权重和偏置在编码端根据两帧的亮度变化程度计算出,并传输到解码端。当仅使用L0或L1进行预测时,单向预测值为匹配的参考帧块乘一个权重加一个偏置,使用L0和L1预测时预测值为加权后的两个单向预测值的平均值。隐性预测的权重和偏置不需要传输,仅根据poc距离计算。

2、 H.265/HEVC帧间预测

2.1 运动矢量精度

  HEVC利用了与264相似的运动矢量精度,也需要对亮度进行1/4内插,色度进行1/8内插,但是插值方式有所不同,根据不同的分像素位置,使用不同抽头数的插值滤波器。另外,为了提高精度,HEVC进行插值时将像素值放大了64倍,预测值再缩小到1/64。

2.2 预测模式(MV编码模式)

  HEVC有3种预测模式,分别是AMVP(又称Inter)模式,merge模式,skip模式。三种模式均需要构造出MV候选列表,候选列表中有来自空域和时域的MV(时域MV需要按比例缩放)。AMVP模式搜索到MV后,在候选列表中选择最佳候选,在编码中传输MV和候选的差值MVD。merge模式不传输MVD,直接将最佳候选作为当前块的MV(也可以认为将MVD置零)。skip模式 不传输MVD也不传输预测残差(也可以认为预测残差全部置零),实际上时CBF(编码块标志)为0时的merge模式。

2.3 加权预测

  隐形预测在HEVC中表现不佳,可能时由于同一slice中不同块的参考帧poc差别太大,导致权重相差过大,因此HEVC去除了隐性预测。显性预测与264中类似。

3、 H.266/VVC帧间预测

  VVC的帧间预测中添加了很多工具,增加了很多新的预测模式,尤其是Q次会议新加GEO对merge模式进行了很大调整,另外添加了自适应运动矢量精度、CU级加权预测等工具。

3.1 运动矢量精度

  增加运动矢量精度会使得预测更加准确,但是会增加码流中MV比特数和编解码时间。VVC中使用了自适应运动矢量精度,每个CU选择最合适的精度。常规模式4种精度(1/4,1/2,1,4),Affine模式3种精度(1/4,1,1/16)。编码端设计了一些快速算法决策MV精度,MV精度索引传输到解码端。

3.2 预测模式
3.2.1 仿射运动补偿预测Affine

  目前的帧间预测都是基于分块进行平移运动模型,但是实际中的物体运动可能非常复杂,包括平移、缩放、旋转等。VVC中的Affine模式通过两个或三个控制点CP来描述运动场,实际上就是通过控制点的MV计算出每个子块的MV。
H.264/AVC, H.265/HEVC, H.266/VVC技术对比整理-帧间预测_第1张图片
  Affine也有merge模式和AMVP模式,需要产生候选列表来预测CP的MV。merge模式候选列表的构建顺序是:继承相邻Affine模式的CP->利用相邻CU其他模式块的MV构建CP的MV->填充0MV。AMVP模式候选列表的构建顺序是:继承相邻Affine模式的CP->利用相邻CU其他模式块的MV构建CPMV->直接使用相邻CU的MV作为作为CPMV->使用填充0MV。为了降低复杂度,当上方CU时Affine模式,但是来自上一行的CTU时,CPMV不再继承上方CU的CPMV,二而是将上方CU左下和右下子块的MV作为当前块MV。
  CU编解码结束后需要将运动信息存储,用于被其他CU参考。在VTM中Affine模式的MV分为两部分,一部分是控制点的MV,用于Affine模式的构造候选列表,另一部分是子块的MV,用于构建常规模式候选列表。

3.2.2 对称MVD

  对称MVD字面意思很好理解,就是两个方向的MVD是对称的,这样只传输一组MVD0就可以,MVD1为MVD0的相反数。CU必须满足双向预测,MVD1非0,两个参考列表中最近的帧方向相反,且两帧都是临近帧几个条件,才可使用对称MVD模式。

3.2.3 BDOF

  BDOF指双向光流,VVC中按照光流概念对双向预测值做出调整。BDOF是根据光流假设,对每个样点的轨迹做出预测,从而对预测值做出修正。VVC中BDOF基于分块进行,无需传输语法元素,根据条件判断是否使用。

3.2.4 Merge

  VVC中对merge模式进行了非常多的扩展,一方面是增加了候选列表中候选MV的种类,一方面增加了例如CIIP、TPM等预测模式。
1、历史MVP、平均MVP
  H.264的直接模式只有空间MVP,到HEVC加入了时间MVP,在VVC加入了历史MVP和平均MVP。时空MVP与HEVC类似。VVC会维持一个历史MVP列表,每编码一个CU就会将MV加入历史MVP列表并去除最旧的MV。如果时空MV没有将候选列表填满,那么会使用历史MVP填充。如果列表还是未满,使用已经加入候选列表的候选MV的平均值作为新的候选。
2、DMVR
  DMVR在解码端对MV进行调整,原则是两参考块尽可能相似,无需添加语法元素。DMVR分为整像素搜索和分像素搜索两个阶段,当整像素搜索后SAD低于阈值时不再进行分像素搜索。DMVR仅用于当前帧在两个参考帧之间且距离相等时使用,另外需要CU宽高大于等于8、BCW默认权重,不使用WP、不使用CIIP。
3、MMVD
  MMVD模式允许merge模式增加一个MVD索引语法元素表示MVD。可选择位置有以下几种,MVD索引表示MV指向的位置。

H.264/AVC, H.265/HEVC, H.266/VVC技术对比整理-帧间预测_第2张图片
4、TPM
  使用TPM时,CU被沿对角线分割为两个三角形,划分方式有2中,每个三角形都是根据一组MV和参考帧,通过单向预测得到,两部分单向预测值结合得到TPM预测值。TPM与merge的双向预测类似,区别是TPM对于不同的位置,两个单向预测值有不同权重。

H.264/AVC, H.265/HEVC, H.266/VVC技术对比整理-帧间预测_第3张图片  储存TPM的MV时,如果两个MV分别来自不同参考列表,那么当前CU被看作是双向预测,直接存两个MV,如果两个MV来自同一参考列表,当前CU被看作使用了单向预测,只存储MV2。
5、GEO/GPM
  GEO可以看作是TPM的扩展,根据分割线的角度和距离中心距离,提供了更多的划分模式。与TPM类似,需要得到两组单向预测值,不同位置的单向预测值权重不同。目前GEO和TPM技术合并为GPM技术。
在这里插入图片描述

3.3 加权预测

  除了类似HEVC的slice级加权预测(WP)外,VVC加入了CU级加权预测BCW。LD条件下权重有5种,包括(-0.25/1.25,0.375/0.625,0.5/0/5,0.625/0.375,1.25-0.25),非LD条件下权重有3种,包括(0.375/0.625,0.5/0/5,0.625/0.375)。BCW与WP不同时使用,权重索引也需要传输到解码端。

你可能感兴趣的:(H.266/VVC,视频编码)