【十】 基于子块的时域运动向量预测(SbTMVP)和自适应运动向量分辨率(AMVR)
一、基于子块的时域运动向量预测技术(SbTMV)
在H.266/VVC中提出了基于子块的时域运动向量预测技术(Subblock-based temporal motion vector prediction,SbTMVP),该技术和Merge 候选列表构建过程中,时域候选向量预测(TMVP)类似,但两者也存在一些区别,具体如下所示:
- TMVP技术在CU级预测运动矢量,而subTMVP在子块级进行运动矢量预测
- TMVP技术直接使用同位图像的同位块计算时域MV,而SbTMVP技术在计算同位块前需要进行一个运动偏移,这个运动偏移来自当前CU的空域邻块的运动矢量(MV)
SbTMVP技术计算当前编码块的子块的MV的算法如下:
1、参照下图,检查当前编码块的空域邻块A,如果A的参考图像正好是当前图像的同位图像则使用A的运动矢量作为运动偏移,否则运动偏移量设为(0,0)
2、使用步骤1得到的运动偏移(将当前块的坐标加上运动偏移)从同位图像中获得子块的运动信息(MV和参考图像索引),图中假设使用A块的MV作为运动偏移,然后对每个子块CU获取其在同位图像中的运动信息,然后按照TMVP的处理方法将获得的MV进行缩放得到子块的MV
总结:
-
首先利用邻块的运动信息得到当前块在同位图像中的偏移量,然后利用同位块中的子块运动信息缩放得到当前CU子块的运动信息(具体缩放方法参考Merge list时域候选的构造方法)
-
在VTM中,基于子块的mrege list 内即包含SbTMVP候选项也包含affine merge候选项。在序列参数集(SPS)中标志位表明是否使用了SbTMVP模式,如果允许使用SbTMVP模式那么在基于子块的merge list中SbTMVP候选项在affine merge候选项前面,该候选项的数在SPS中指定,VTM8.0规定最多的候选数量为5
-
在SbTMVP中子块的CU的大小固定为8 * 8,且和affine merge模式一样只有当CU的宽高都大于8时才使用SbTMVP模式
-
从本质是来说,无论是SbTMVP技术还是Affine merge技术都是Merge list中候选项形成的一种方法
二、自适应运动矢量精度(AMVR)
前言:在HEVC中当slice header中use_interger_mv_flag=0时,编码块的MVD(运动矢量差)按照1/4亮度像素精度进行传输。在H.266/VVC中,提出了CU级的AMVR,AMVR允许编码块的运动矢量差使用不同精度进行编码
说明:
- 在CU级,只有当MVD至少有一个非零向量时才需要传输其精度。如果所有的MVD分量(水平分量和垂直分量)都是0,则MVD默认使用1/4亮度像素精度
- 当一个CU至少有一个非零MVD分量时,有一个标志位表示该CU的MVD是否使用1/4亮度像素精度,如果该标志位为0则表示使用1/4亮度像素精度不需要在传其他标志位;否则对于传统的运动矢量预测模式的CU需要第二个标志位表示是否使用其他亮度像素精度。对于Affine AMVP模式的CU也需要第二个标志位表示是否使用其他亮度像素精度
- 为了保证重建后得到的MV具有同样的精度,预测得到的向量(MVP)会四舍五入到和MVD同样的亮度像素精度。负的MVP朝着正无穷的方向进行四舍五入,正MVP朝着负无穷的方向进行四舍五入(也就是MVP朝着0的方向进行四舍五入)
文章参考
【1】 VVC标准会议文档J VET-N1002
【2】 VVC标准会议文档J VET-M0246
【3】 VVC标准会议文档J VET-M0165
【4】博主Dillon2015.VVC帧间预测(五)SbTMVP和AMVR.2020.01.08
更多关于视频编码知识和资源的分享,更精致的文章排版,欢迎关注博主微信公众号,一起交流、学习、进步!!!