声明:本系列博文均为原创,转载请注明出处,谢谢!https://blog.csdn.net/xiangxiazaif/article/details/89375077
1.Extended merge prediction
HEVC中,merge候选列表最大值为5(空域4+时域1),候选集为5个空域,2个时域以及候选集总数小于最大值时增加的组合双向预测(只针对B帧)和零MV;
VTM4中,merge候选列表最大值为6(空域4+时域1+HMVP1),候选集包括5个空域,2个时域,6个HMVP(同一个CTU中,前一个块的运动信息作为当前块的MVP,新的CTU到来时HMVP表会被清空),Pair-wise average MVP(对现有merge候选列表中已定义的候选对求平均)以及未达到最大值时补零MV
2.Merge mode with MVD (MMVD)
MMVD又叫做UMVE,在选择MV candidate之后,UMVE会以此为起点做更精细的运动搜索,而在码流中只需要传送器对应的index即可。
表3-6代表起始点的index,表3-7代表运动信息大小,表3-8代表MVD相对于起始点的方向
参考JVET-K0115和JVET-L0054
3.Affine motion compensated prediction
在HEVC中,只有平动模型被用于运动补偿预测。然而在真实世界中,有各种各样的运动,比如放大/缩小,旋转,透视运动和其他非规则运动。
在VTM4中,使用了一种基于块的仿射运动补偿预测。如下图所示,一个块的仿射运动域由两个control point(4参数)或三个control point(6参数)运动矢量表示
对于4参数和6参数的仿射运动模型,(x,y)点处的mv分别表示为式3-7和3-8
为了简化运动补偿计算,仿射运动补偿只用在块级别,对于4x4的子块,根据上述等式计算出每个子块的中心样本的运动矢量,并舍入到1/16分像素精度,然后利用内插滤波器生成每个子块的mv。
两种仿射模型:
(1)Affine merge prediction(AF_MERGE)
应用于宽高都大于等于8的CU,当前CU的control point motion vector prediction (CPMVP)基于空域相邻CU生成,形成一个CPMV的候选列表,CPMVP候选列表最大值为5个,包含三种类型,分别为
1)Inherited affine merge candidates that extrapolated from the CPMVs of the neighbour CUs(最多2个,按一定顺序选择,见图23)
2)Constructed affine merge candidates CPMVPs that are derived using the translational MVs of the neighbour CUs(由邻域CU的平移变换MV融合得到,见图25)
3)Zero MVs
2) Affine AMVP mode
应用于宽高都大于等于16的CU,Affine AMVP 候选列表大小为2,由以下四种类型顺序得到
1)Inherited affine AMVP candidates that extrapolated from the CPMVs of the neighbour CUs(原理同AF_MERGE的Inherited affine merge,不同处在于只考虑相同参考帧的affine CU)
2)Constructed affine AMVP candidates CPMVPs that are derived using the translational MVs of the neighbour CUs
3)Translational MVs from neighboring CUs
4)Zero MVs
4.Subblock-based temporal motion vector prediction (SbTMVP)
和HEVC中的TMVP相似,SbTMVP利用同位帧得到MVP,不同于TMVP的有以下几点:
(1)TMVP基于CU级别,SbTMVP是基于sub-CU级别的。
(2)TMVP的同位块在同位帧的右下或中间区域,而SbTMVP在从同位帧获取运动信息时会做一个转换(motion shift),这种转换由当前CU的一个空域相邻块的MV得到。
SbTMVP包括两步(图27):
第一步,如果(a)中A1有一个以同位帧作参考的MV时,这个MV就会作为motion shift,如果不存在这样的MV,则motion shift设为(0,0);
第二步,图(b)为应用第一步中的motion shift可以得到sub-CU运动信息的一个例子,假设设motion shift为A1‘块的运动,那么对于每个sub-CU的运动信息
可以由其同位帧的对应块运动信息导出。
5.Adaptive motion vector resolution (AMVR)
在HEVC中,用1/4像素精度来表示MVD(非整像素模式下),在VVC中,引入了CU级别的自适应运动矢量分辨率方法(AMVR),AMVR允许CU的MVD以不同的精度编码,根据当前CU的模式(包括常规AMVP和仿射AMVP模式),按照以下方式自适应选择MVD:
常规AMVP模式:1/4亮度采样,整像素,4像素
仿射AMVP模式:1/4亮度采样,整像素,1/16像素
编码端通过RDcheck来决定MV的精度,为了避免每个MVD做三次RD check,在VTM4中,除了1/4精度外的其他精度的MVD都是有条件的进行RD check的。
对于常规AMVP,首先做1/4和整数像素精度的MVD RD check,然后比较1/4和整数精度的RD cost,来决定是否需要进一步计算4像素精度的RD cost,当1/4精度的RD cost远远小于整像素精度的RD cost,则4像素精度的RD check 跳过。
对于仿射AMVP,如果仿射帧间模式未被选择(在affine merge/skip,merge/skip,1/4精度的常规AMVP,1/4精度的affine AMVP模式之后),则1/16和1像素精度的affine inter mode不再需要做RD check。
此外,在1/4精度仿射帧间模式中获得的仿射参数被用作1/16亮度样本和1/4MV精度仿射帧间模式中的起始搜索点。
6.Motion field storage
在VTM4中,显式的标识运动矢量的最高精度是四分之一亮度样本。在诸如仿射模式的一些帧间预测模式中,运动估计和补偿的精度为1/16像素精度。就内部运动场存储而言,所有运动矢量以1/16亮度采样精度存储。
对于VCC的TMVP和ATVMP以8x8的大小进行,而HEVC中为16x16(此处不知翻译是否正确,原文是:For temporal motion field storage used by TMVP and ATVMP, motion field compression is performed at 8x8 granularity in contrast to the 16x16 granularity in HEVC.)。
7.Bi-prediction with weighted averaging (BWA)
HEVC的双向预测值由两个不同的参考帧或不同MV的预测值的平均得到,VTM4中,双向预测模块可以扩展为3-9式的加权预测平均
权重w可以有5个权重值,
W的决策方式如下:
(1)对于non-merge CU,权重系数索引在MVD之后标识
(2)对于merge CU,权重系数由相邻块基于merge candidate index得到。
BWA仅可以应用于CU样点值大于等于256的CU块。对于low-dalay图片,5个权重系数全部使用,对于non-low-delay图片使用3个权重系数。
加权预测(WP)和BWA是为不同视频内容设计的两种方法,为了避免WP和BWA的相互影响(会造成解码端的设计变得复杂),因此当CU采用WP时,BWA的权重系数将不再被标识,w被推断为4。
参考JVET-L0646
8.Bi-directional optical flow (BDOF)
VTM4中的双向光流(BDOF,JEM中叫BIO)可以对CU的4x4的sub-block level的双向预测信号做更精细的预测。BDOF的适用条件如下:
(1)CU的高不为4,且CU size不为4x8
(2)CU的编码模式不能是仿射模式或ATMVP merge模式
(3)CU的编码参考帧必须是真正意义上的双向,即当前帧之前的某一帧和之后的一帧,且只能用于亮度分量预测。
9.Decoder side motion vector refinement (DMVR)
为了提高merge mode的MV精度,VTM4引入了基于双边匹配(bilateral-matching)的解码端MV refinement算法(DMVR)。双向预测时,在L0和L1的起始MV附近搜索refined mv。
DMVR在以下模式编码的CU中使用
(1)双向预测MV的CU级别merge模式
(2)两个参考帧分别位于当前帧的前后两帧
(3)两个参考帧与当前帧的距离是一样的
(4)CU的样本点多余64个,且CU的高大于8
10.Triangle partition for inter prediction
VTM4的帧间预测支持三角划分方式,如图32.实用场景为(1)CU等于8x8;(2)CU大于8x8且以skip或merge模式中的非MMVD或CIIP模式的编码的块。
Triangle partition通过对角分割或反对角分割将CU均匀分割为两个三角形分区(图32)。 CU中的每个三角形分区使用其自身的运动进行帧间预测;每个分区仅允许单向预测,即每个分区具有一个运动矢量和一个参考索引。单预测运动的约束是保证与常规双预测相同,即每个CU仅需要两个运动补偿预测。
每个分区的单向预测运动是从一种单预测候选列表导出的,其构建过程如下:
单向预测候选列表由5个单向预测MV候选构成。他由5个空域相邻块(图33中的1~5)和2个时域同位块(6~7)共7个相邻块导出,具体的MV按照一定的顺序选择。
11.Combined inter and intra prediction (CIIP)
样点值至少为64个的CU就可以标识为联合帧内帧间预测模式(CIIP),首先帧内预测模式可以由两个额外的语法元素导出(可以为DC,planner,水平或垂直预测模式),然后利用常规的帧内帧间解码导出预测值,最后对两个预测值做加权平均得到CIIP预测值。
12.Miscellaneous inter prediction aspects
为了减少存储器带宽,VVC中的4x4 CU不允许进行双向预测。