对称MVD模式(symmetric MVD mode ,SMVD)是VVC提出的一种双向预测时MVD语法单元传输模式。在使用对称MVD模式,传输双向预测信息时不需要传list 0和list 1中参考图像的索引和list 1的MVD,这些运动信息可以在解码端生成。
关于list 0和list 1的解释:参考图像列表0和参考图像列表1
1、在slice层,变量BiDirPreFlag,RefIdxSymL0 和 RefIdxSymL1 (它们指定list 0 和list 1作为SMVD的参考图像索引)按如下方式生成
2、在CTU层,如果CU是双向预测且BiDirPredFlag=0=1,则需要在码流中传输一个对称模式表示符来表明是否使用对称模式。
当对称模式表示符为真时,在码流中只需要传输mvp_10_flag,mvp_11_flag和MVD0,list 0和list 1的参考图像索引分别等于RefIdxSymL0 和 RefIdxSymL1,MVD1=(-MVD0)
在解码端MVD1由MVD0的相反数生成,具体示意如下图所示:
最终的运动向量可由下列公式推导出:
{ ( 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
更多关于视频编码知识和资源的分享,更精致的文章排版,欢迎关注博主微信公众号,一起交流、学习、进步!!!