【八】 H.266/vvc中对称MVD模式(SMVD)

一、前言

对称MVD模式(symmetric MVD mode ,SMVD)是VVC提出的一种双向预测时MVD语法单元传输模式。在使用对称MVD模式,传输双向预测信息时不需要传list 0和list 1中参考图像的索引和list 1的MVD,这些运动信息可以在解码端生成。

关于list 0和list 1的解释:参考图像列表0和参考图像列表1


二、对称MVD模式(symmetric motion vector difference mode)解码

1、在slice层,变量BiDirPreFlag,RefIdxSymL0 和 RefIdxSymL1 (它们指定list 0 和list 1作为SMVD的参考图像索引)按如下方式生成

  • 如果mvd_11_zero_flag=1,则BiDirPredFlag=0(没有使用双向预测)
  • 如果在list 0中离当前图像最近的参考图像和在list 1中离当前图像最近的参考图像分别是前向参考图像和后向参考图像或者分别是后向参考图像和前向参考图像则BiDirPredFlag=1 .且RefIdxSymL0 和 RefIdxSymL1分别设为list 0和list 1中参考图像的索引

2、在CTU层,如果CU是双向预测且BiDirPredFlag=0=1,则需要在码流中传输一个对称模式表示符来表明是否使用对称模式。

当对称模式表示符为真时,在码流中只需要传输mvp_10_flag,mvp_11_flag和MVD0,list 0和list 1的参考图像索引分别等于RefIdxSymL0 和 RefIdxSymL1,MVD1=(-MVD0)

在解码端MVD1由MVD0的相反数生成,具体示意如下图所示:

【八】 H.266/vvc中对称MVD模式(SMVD)_第1张图片

最终的运动向量可由下列公式推导出:

{ ( m v x 0 , m v y 0 ) = ( m v p x 0 + m v d x 0 , m v p y 0 + m v p d 0 ) ( m v x 1 , m v y 1 ) = ( m v p x 1 + m v d x 1 , m v p y 1 + m v p d 1 ) \begin{cases} \left( mvx_0,mvy_0 \right) =\left( mvpx_0+mvdx_0,mvpy_0+mvpd_0 \right)\\ \left( mvx_1,mvy_1 \right) =\left( mvpx_1+mvdx_1,mvpy_1+mvpd_1 \right)\\\end{cases} {(mvx0,mvy0)=(mvpx0+mvdx0,mvpy0+mvpd0)(mvx1,mvy1)=(mvpx1+mvdx1,mvpy1+mvpd1)

注意:在编码端进行对称MVD模式的运动估计时需要一个初始MV,这个初始MV是从单向运动搜索MV、双向运动搜索MV和AMVP list中选择的具有最小率失真代价值的MV


【参考】:

​ [1] Dillon2015博主的博文.帧间预测(三)symmetric MVD mode

​ [2] VVC标准制定会议文档.JVET-L0370

​ [3] VVC标准制定会议文档.JVET-M0444

​ [4] VVC标准制定会议文档.JVET-N1002

​ [5] VVC标准草案8.0文档.JVET-Q2001


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

你可能感兴趣的:(VVC/H.266)