QTMTT简介
VTM采用了更为复杂的编码单元划分结构,在HEVC四叉树(QT)划分的基础上增加了两种二叉树(BT)划分和两种三叉树(TT)划分。其中BT和TT统称为MT(multi-type tree),见下图。
CTU首先使用四叉树进行划分,然后四叉树的叶子结点可以进一步采用MTT)进行划分。如图一所示。MTT包括四种划分类型,两类水平划分,两种垂直划分。MTT的叶子节点现在被称为编码单元(coding units,CU)。除非CU的尺寸超过了最大变换长度,否则此CU可以直接进行预测和变换。这意味着大多数情况下,VVC中的CU、PU和TU有着相同的尺寸,除非当前CU的长或者宽超出了最大变换长度(Maximum supported transform length)。
为准确描述CU划分成subCU的划分方式,最多需要4个划分标志进行说明,如下:
首先一个标识是进行四叉树划分的标记。其次,MTT划分有三个标志位,第一个标志表示当前CU是否进行MTT划分,第二个标志表示划分方向,第三个标识划分是二叉树还是三叉树。一个CU的尺寸由QT depth和btdepth/mtdepth确定。除三叉树划分外,btdepth和mtdepth相等,在三叉树划分两端,btdepth额外加1.
需要注意,VTM中帧间亮度和色度共享编码单元划分结构,但是帧内亮度和色度的编码单元划分是分开进行的,也就是说I帧的亮度和色度的划分方式会不一样。
SPS语法结构
- CTU size:QTMTT根节点尺寸,VTM的CTC中默认为128*128.
- MinQtSize:最小可允许四叉树叶子节点尺寸,默认为8*8。
- MaxTtSize:最大可允许三叉树根节点尺寸,帧内默认32*32。
- MaxMttDeoth:最大MT深度,默认为3.
- MinBtSize:最小可允许二叉树叶子节点尺寸,默认4*4.
图片边界CU划分
和HEVC中类似,如果一个CU的位置超过图片的右边界或者下边界,此CU将被直接划分,直到划分出的CU都包含在图片边界中。具体划分规则如下
- 如果CTU横跨右边界和下边界:1.如果此CU是一个QT节点,且尺寸大于最小QT尺寸,直接进行QT划分;2.如果不是QT节点,采用水平BT划分。
- 如果CU横跨图片下边界:1.如果是一个QT节点,尺寸大于最小QT尺寸且大于最大BT尺寸,直接采用QT划分;2.如果是一个QT节点,尺寸大于最小QT尺寸且小于等于最大BT尺寸,直接采用QT划分或者水平BT划分;3.如果是一个MT节点或者尺寸小于等于最小QT尺寸,直接采用水平BT划分。
- 如果CU横跨图片右边界:1.如果是一个QT节点,尺寸大于最小QT尺寸且大于最大BT尺寸,直接采用QT划分;2.如果是一个QT节点,尺寸大于最小QT尺寸且小于等于最大BT尺寸,直接采用QT划分或者垂直BT划分;3.如果是一个MT节点或者尺寸小于等于最小QT尺寸,直接采用垂直BT划分。
需要注意,在图片边界处,mt的深度可能会大于3。