VVC学习之二:VTM中CU划分结构QTMTT(1)

QTMTT简介

VTM采用了更为复杂的编码单元划分结构,在HEVC四叉树(QT)划分的基础上增加了两种二叉树(BT)划分和两种三叉树(TT)划分。其中BT和TT统称为MT(multi-type tree),见下图。
VVC学习之二:VTM中CU划分结构QTMTT(1)_第1张图片
CTU首先使用四叉树进行划分,然后四叉树的叶子结点可以进一步采用MTT)进行划分。如图一所示。MTT包括四种划分类型,两类水平划分,两种垂直划分。MTT的叶子节点现在被称为编码单元(coding units,CU)。除非CU的尺寸超过了最大变换长度,否则此CU可以直接进行预测和变换。这意味着大多数情况下,VVC中的CU、PU和TU有着相同的尺寸,除非当前CU的长或者宽超出了最大变换长度(Maximum supported transform length)。

为准确描述CU划分成subCU的划分方式,最多需要4个划分标志进行说明,如下:
VVC学习之二:VTM中CU划分结构QTMTT(1)_第2张图片
首先一个标识是进行四叉树划分的标记。其次,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

你可能感兴趣的:(VVC/H.266学习日记)