H.266/VVC技术描述_3-帧间预测_10-三角划分TPM

1、三角划分模式-TMP概述

  VTM6中,帧间预测可以使用三角划分模式TPM。TPM只对大于等于8x8的块使用,在CU级使用一个标志位表示,可以看作是一种merge模式。使用TPM时,CU被沿对角线分割为两个三角形,每个三角形都是通过单向预测得到,也就是说,每个三角形分别有一个运动矢量和参考帧索引。和双向预测一样,为了得到TPM结果,需要进行两次单向运动补偿。
  如果CU使用TPM,需要一个标志位表示三角划分方向,并且需要发送两个merge列表索引(每个三角形对应一个merge索引)。TPM候选列表长度在slice级发送,并且根据列表长度指定候选列表索引的二值化方法。得到两部分预测值后,将两部分按照指定权重进行加权混合,得到CU预测值。

H.266/VVC技术描述_3-帧间预测_10-三角划分TPM

2、单向预测候选列表构建

单向预测候选列表的构建与merge列表构建方式相同。由于merge列表是双向预测,每个候选有两个运动矢量,而TPM的两个部分都是单向预测,所以需要根据merge列表构建单向候选列表,构建方法是按照merge索引依次选择一个运动矢量,如下图。

H.266/VVC技术描述_3-帧间预测_10-三角划分TPM

3、三角形边缘的混合方法

在接近对角线的区域,两个部分进行加权平均。远离对角线的部分分别使用两个部分的预测值。
H.266/VVC技术描述_3-帧间预测_10-三角划分TPM

4、运动矢量存储

当前CU的MV可能会被用来预测其他CU的MV,因此需要考虑如果当前CU使用了TPM,那么该如何定义此CU的MV。体现到实现中,就是CU的MV0和MV1应该设为多少。规则如下:
1、如果两个MV分别来自不同参考列表,那么当前CU被看作是双向预测,直接存两个MV。
2、如果两个MV来自同一参考列表,当前CU被看作使用了单向预测,只存储MV2。