H.266/VVC相关技术学习笔记21:帧间预测中五种Merge模式的熵编码方式

今天主要详细讲一下帧间预测中五种Merge模式的熵编码方式,以及对应的VTM的代码中的编码方式的实现。现阶段VTM6.0中Merge模式大致上分为五种,分别是Subblock_Merge、MMVD_Merge、regular_Merge、CIIP、TPM。这五种Merge模式的编码方式大致上可以由如下树状图清晰的表示出来。左图是VTM5.0中的编码方式,右图是VTM6.0中的编码方式。
在这里插入图片描述上述的树状图我们可以用一个二进制表来表示。如下表所示:
(1) 第一个比特位(采用subblock_Merge_flag上下文模型)标志是否是subblock_Merge模式,若是,则编1;否则编0。
(2) 第二个比特位(采用regular_Merge_flag上下文模型)标志是否是regular_Merge模式或MMVD_Merge模式,是则编1;否则编0。
(3)
①如果第二个比特位为1(regular_Merge模式或MMVD_Merge模式),则编码第三位的时候判断是MMVD_Merge模式还是regular_Merge模式,是MMVD_Merge则编1;是regular_Merge则编0。
②如果第二个比特位为0(CIIP模式或TPM模式),则编码第三位的时候判断是CIIP模式还是TPM模式,是CIIP则编1;是TPM则编0。

在这里插入图片描述
红色的编码位用:Ctx:subblock_Merge.
绿色的编码位用:Ctx:regular_Merge_flag
黄色的编码位用:Ctx:mmvdMerge_flag(黄色太晃眼了,就没上色)
蓝色的编码位用:Ctx:MHintra_flag

Merge候选索引的编码方式采用不等长编码方式,Merge候选列表中的候选从前往后的顺序在一定程度上表示了该索引对应的MV能够表示当前CU的运动信息的概率,索引越小,即越靠前的MV,代表当前CU的运动信息的可能性越大,所需的编码bit越少;越靠后的MV,可能性较低,需要使用较长的码字来表示。如下图所示:
在这里插入图片描述
白色的编码位用:Ctx:Mergeidx
黑色的编码位用:EP(旁路编码)

每种Merge模式的后面都需要编码其对应的Merge候选索引信息以及有些模式额外的头信息。下面我分别介绍一下:

① subblock_Merge:没有额外的头信息,在Mode_flag的binIdx=0编完之后,剩余的位数编码Merge候选MV的索引。
② MMVD:有额外的头信息,在Mode_flag的binIdx=0、1、2编完之后,还需要以此编MMVD的2个初始MV的索引、8种搜索步长、4种搜索方向。三种头信息编码方式如下注意:不需要再编Merge候选的索引。
在这里插入图片描述初始MV的索引的这一位使用ctx:mmvdMergeIdx,其余位都使用EP。
在这里插入图片描述步长索引的第一位使用ctx:mmvdstepMvpIdx,其余位使用EP
在这里插入图片描述
方向索引的所有位都使用EP编码器。

③regular_Merge:没有额外的头信息,在Mode_flag的binIdx=0、1、2编完之后,剩余的位数编码Merge候选MV的索引。
④CIIP:没有额外的头信息,在Mode_flag的binIdx=0、1、2编完之后,剩余的位数编码Merge候选MV的索引。
⑤TPM:有额外的头信息,在Mode_flag的binIdx=0、1、2编完之后,还需要依次编码三角预测的划分方向,再去编码Merge候选索引。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值