Algorithm description of Versatile Video Coding and Test Model
VVC coding architecture
As in most preceding standards, VVC has a block-based hybrid coding architecture, combining inter-picture and intra-picture prediction and transform coding with entropy coding. Figure 1 shows a general block diagram of the VTM14 encoder.
在许多之前的标准中,VVC有基于块的混合编码结构帧内帧间预测,变换编码和熵编码。
图的划分,首先对输入的视频分割成块 CTU。一个CTU单元通过四叉树(QT)和多种树型结构二叉树(BT),三叉树(TT)将CTU分割为更小的CU单元(注:一旦应用二叉树或三叉树划分,就不允许进行四叉树的划分了),同一个叶编码单元共享相同的预测模式。二叉树(BT),三叉树(TT)统称MT(multi-type tree)
3.2.分块
3.21将图片分割为CTU单元
Pictures are divided into a sequence of coding tree units (CTUs). The CTU concept is same to that of the HEVC [11][12]. For a picture that has three sample arrays, a CTU consists of an N×N block of luma samples together with two corresponding blocks of chroma samples.Figure 2 shows the example of a picture divided into CTUs.
The maximum allowed size of the luma block in a CTU is specified to be 128×128 (although the maximum size of the luma transform blocks is 64×64).
图像被划分为一系列编码树单元,每一个编码树单元(CTU)都由三个相同位置相同NXN大小的方形编码树块(CTB),即一个亮度CTB和两个色度CTB和相应的语法元素组成。
CTU中允许的最大亮度块大小被指定为128×128(尽管最大亮度转换块大小为64×64)。
图像被分为CTU块
3.22将图片分割为CTU单元
A picture is divided into one or more tile rows and one or more tile columns. A tile is a sequence of CTUs that covers a rectangular region of a picture.
一个片(tile)是一组CTU在图上覆盖的矩形区域,一幅图片可被分割成一个或多个tile行列。
A slice consists of an integer number of complete tiles or an integer number of consecutive complete CTU rows within a tile of a picture.
一个条(slice)由整数个完整的片或一个片内整数个完整的连续CTU行组成。
Two modes of slices are supported, namely the raster-scan slice mode and the rectangular slice mode. In the raster-scan slice mode, a slice contains a sequence of complete tiles in a tile raster scan of a picture. In the rectangular slice mode, a slice contains either a number of complete tiles that collectively form a rectangular region of the picture or a number of consecutive complete CTU rows of one tile that collectively form a rectangular region of the picture. Tiles within a rectangular slice are scanned in tile raster scan order within the rectangular region corresponding to that slice.
支持两种条(slice)模式,分别是按光栅扫描(raster-scan)顺序处理的模式和矩形(rectangular)模式。光栅扫描模式,在对图像的片(tile)光栅扫描中一个条包含一系列的连续完整的片.矩形模式,一个条包含多个完整的片在图片上形成的矩形区域或是一个由多个完整连续的CTU行形成的片在图片上形成的一个矩形区域。一个矩形条(slice)中的片(tile)会在光栅扫描时条所对应的矩形区域中排序。
A subpicture contains one or more slices that collectively cover a rectangular region of a picture.
一个包含一个或多个条的子图块会在图片上形成一个矩形区域。
图3 shows an example of raster-scan slice partitioning of a picture, where the picture is divided into 12 tiles and 3 raster-scan slices.
光栅扫描分割图片,图片分别由12个片和三个光栅扫描模式的条组成。
图(3)
图4 shows an example of rectangular slice partitioning of a picture, where the picture is divided into 24 tiles (6 tile columns and 4 tile rows) and 9 rectangular slices.
矩形模式的条分割图片,图片由24个片(6个列片和4个行片)和9个矩形条组成。
图4
图 5 shows an example of a picture partitioned into tiles and rectangular slices, where the picture is divided into 4 tiles (2 tile columns and 2 tile rows) and 4 rectangular slices.
图片由片和矩形条分割,由4个片(2个列片和2个行片)和4个条组成。
图 5
图 6 shows an example of subpicture partitioning of a picture, where a picture is partitioned into 18 tiles, 12 on the left-hand side each covering one slice of 4 by 4 CTUs and 6 tiles on the right-hand side each covering 2 vertically-stacked slices of 2 by 2 CTUs, altogether resulting in 24 slices and 24 subpictures of varying dimensions (each slice is a subpicture).
被组图分割的图片,由18个片组成,12个在左边的片各自由一个16个CTU组成的条组成,右边的6个片 每个包含2个由4个CTU组成的条组成,总体由24个条,24个子图组成。
图 6
3.23 CTU的树状结构分割
In HEVC, a CTU is split into Cus by using a quaternary-tree structure denoted as coding tree to adapt to various local characteristics. The decision whether to code a picture area using inter-picture (temporal) or intra-picture (spatial) prediction is made at the leaf CU level. Each leaf CU can be further split into one, two or four Pus according to the PU splitting type. Inside one PU, the same prediction process is applied and the relevant information is transmitted to the decoder on a PU basis. After obtaining the residual block by applying the prediction process based on the PU splitting type, a leaf CU can be partitioned into transform units (Tus) according to another quaternary-tree structure similar to the coding tree for the CU. One of key feature of the HEVC structure is that it has the multiple partition conceptions including CU, PU, and TU.
在HEVC中,通过使用四叉树结构分割处理一个CTU,表示为编码树以适应各种局部特征。一幅图片的编码使用帧内预测还是帧间预测取决于叶CU的水平。每个叶CU可继续被分割成一个或最多4个PU,PU(预测单元)是预测运算的基本单元。在一个PU中采用相同的预测过程,并以PU为基础将相关信息传输给解码器。在通过应用基于PU的预测过程得到残差块后,可根据另一种类似于CU编码树的四叉树结构将CU划分为TU(变换单元)。HEVC 结构的关键特征之一是它具有多个分区概念,包括 CU、PU 和 TU。
In VVC, a quadtree with nested multi-type tree using binary and ternary splits segmentation structure replaces the concepts of multiple partition unit types, i.e. it removes the separation of the CU, PU and TU concepts except as needed for CUs that have a size too large for the maximum transform length, and supports more flexibility for CU partition shapes. In the coding tree structure, a CU can have either a square or rectangular shape. A coding tree unit (CTU) is first partitioned by a quaternary tree (a.k.a. quadtree) structure. Then the quaternary tree leaf nodes can be further partitioned by a multi-type tree structure. As shown in Figure 7, there are four splitting types in multi-type tree structure, vertical binary splitting (SPLIT_BT_VER), horizontal binary splitting (SPLIT_BT_HOR), vertical ternary splitting (SPLIT_TT_VER), and horizontal ternary splitting (SPLIT_TT_HOR). The multi-type tree leaf nodes are called coding units (CUs), and unless the CU is too large for the maximum transform length, this segmentation is used for prediction and transform processing without any further partitioning. This means that, in most cases, the CU, PU and TU have the same block size in the quadtree with nested multi-type tree coding block structure. The exception occurs when maximum supported transform length is smaller than the width or height of the colour component of the CU.
在VVC中,四叉树,二叉树,三叉树划分的方法替换了多个分区单元类型的概念。除非CU的大小对于最大转换长度来说太大,CU、PU和TU可以直接预测和变换且有相同尺寸,而且支持更加灵活地CU划分。在编码树结构中,一个CU可以是正方形也可以是长方形。一个CTU首先被四叉树划分,然后四叉树的叶节点可被多类型树结构分割。图 7显示,多类型树结构有四种,垂直二叉树划分(SPLIT_BT_VER),水平二叉树划分(SPLIT_BT_HOR),垂直三叉树划分(SPLIT_TT_VER),水平三叉树划分(SPLIT_TT_HOR)。多类型树结构的叶节点被称为CU,并且除了CU的大小对于最大转换长度来说太大,可直接做预测和变换而且不必再做分割的情况。这意味着,大多数情况下,CU,PU,TU在四叉树中的多类型树编码块结构中有相同的块大小,注意,当最大转换长度小于色度CU的长或宽时,此情况不成立。
在VTM中,一个CU包含了一个亮度分量CB和两个色度CBs分量(除非视频是单色的,仅仅拥有一个颜色分量)。
图7 四种多类型树结构
Figure 8 illustrates the signalling mechanism of the partition splitting information in quadtree with nested multi-type tree coding tree structure. A coding tree unit (CTU) is treated as the root of a quaternary tree and is first partitioned by a quaternary tree structure. Each quaternary tree leaf node (when sufficiently large to allow it) is then further partitioned by a multi-type tree structure. In quadtree with nested multi-type tree coding tree structure, for each CU node, a first flag (split_cu_flag) is signalled to indicate whether the node is further partitioned. If the current CU node is a quadtree CU node, a second flag (split_qt_flag) whether it's a QT partitioning or MTT partitioning mode. When a node is partitioned with MTT partitioning mode, a third flag (mtt_split_cu_vertical_flag) is signalled to indicate the splitting direction, and then a fourth flag (mtt_split_cu_binary_flag) is signalled to indicate whether the split is a binary split or a ternary split. Based on the values of mtt_split_cu_vertical_flag and mtt_split_cu_binary_flag, the multi-type tree slitting mode (MttSplitMode) of a CU is derived as shown in Table 3-1.
图 8 解释了在四叉树及嵌套的多类型编码树结构下的信号传递划分分区机制。一个CTU被当作四叉树的根且首先被四叉树结构划分。紧接着任意一个四叉树的叶节点(足够大的情况)会被多类型树结构划分。对四叉树及嵌套多类型编码树结构中的任意一个CU节点,第一个标志(split_cu_flag)表示节点是否进一步分区。如果当前的CU是四叉树CU节点,第二个标志(split_qt_flag)决定继续是QT分区模式还是MTT分区模式。当选择使用MTT分区模式对节点进行分区时,第三个标志(mtt_split_cu_vertical_flag)表示分裂方向(垂直还是水平),然后,第四个标志(mtt_split_cu_binary_flag)被发送,以指示划分是二叉树划分还是三叉树划分。根据mtt_split_cu_vertical_flag和mtt_split_cu_binary_flag的值,可以推到出CU的多类型树分切模式MttSplitMode,如表3-1所示。
00,01,10,11代表四种情况
Figure 9 shows a CTU divided into multiple CUs with a quadtree and nested multi-type tree coding block structure, where the bold block edges represent quadtree partitioning and the remaining edges represent multi-type tree partitioning. The quadtree with nested multi-type tree partition provides a content-adaptive coding tree structure comprised of CUs. The size of the CU may be as large as the CTU or as small as 4×4 in units of luma samples. For the case of the 4:2:0 chroma format, the maximum chroma CB size is 64×64 and the minimum size chroma CB consist of 16 chroma samples.
In VVC, the maximum supported luma transform size is 64×64 and the maximum supported chroma transform size is 32×32. When the width or height of the CB is larger the maximum transform width or height, the CB is automatically split in the horizontal and/or vertical direction to meet the transform size restriction in that direction.
图9显示一个CTU可被四叉树和多类型树结构划分为许多个CU,其中粗体块边表示四叉树分区,其余边表示多类型树分区。嵌套的多类型树分区四叉树提供了由CU组成的内容自适应编码树结构。在亮度采样样本中CU的大小可以像CTU一样大,也可以像4×4一样小。在YUV 4:2:0色度格式下,最大色度CB值为64×64,最小色度CB值由16个色度样本组成。
图9套多类型树编码块结构的四叉树示例
The following parameters are defined for the quadtree with nested multi-type tree coding tree scheme. These parameters are specified by SPS syntax elements and can be further refined by picture header syntax elements.
– CTU size: the root node size of a quaternary tree
– MinQTSize: the minimum allowed quaternary tree leaf node size
– MaxBtSize: the maximum allowed binary tree root node size
– MaxTtSize: the maximum allowed ternary tree root node size
– MaxMttDepth: the maximum allowed hierarchy depth of multi-type tree splitting from a quadtree leaf
– MinCbSize: the minimum allowed coding block node size
以下参数是为四叉树和嵌套多类型树编码树方案定义的。这些参数由SPS语法元素指定,可以通过图片头语法元素进一步细化。
– CTU size: 四叉树根节点的大小
– MinQTSize: 四叉树叶节点所允许的最小尺寸
– MaxBtSize: 允许的二叉树根节点最大尺寸
– MaxTtSize: 允许的三叉树根节点最大尺寸
– MaxMttDepth:从四叉树叶节点中分离多类型树时允许的最大层深
– MinCbSize: 允许的最小编码块CB节点尺寸
In one example of the quadtree with nested multi-type tree coding tree structure, the CTU size is set as 128×128 luma samples with two corresponding 64×64 blocks of 4:2:0 chroma samples, the MinQTSize is set as 16×16, the MaxBtSize is set as 128×128 and MaxTtSize is set as 64×64, the MinCbsize (for both width and height) is set as 4×4, and the MaxMttDepth is set as 4. The quaternary tree partitioning is applied to the CTU first to generate quaternary tree leaf nodes. The quaternary tree leaf nodes may have a size from 16×16 (i.e., the MinQTSize) to 128×128 (i.e., the CTU size). If the leaf QT node is 128×128, it will not be further split by the binary tree since the size exceeds the MaxBtSize and MaxTtSize (i.e., 64×64). Otherwise, the leaf qdtree node could be further partitioned by the multi-type tree. Therefore, the quaternary tree leaf node is also the root node for the multi-type tree and it has multi-type tree depth (mttDepth) as 0. When the multi-type tree depth reaches MaxMttDepth (i.e., 4), no further splitting is considered. When the multi-type tree node has width equal to MinCbsize, no further horizontal splitting is considered. Similarly, when the multi-type tree node has height equal to MinCbsize, no further vertical splitting is considered.
举个例子,在四叉树及嵌套的多类型编码树结构下。当采样格式为4:2:0时,CTU的尺寸由一个128X128的亮度分量和其相对应的两个64X64的色度分量共同形成, MinQTSize被设置为16X16,MaxBtSize为64X64,MaxTtsize为64X64,MinCbSize(宽和高)都确定为4X4,MaxMttDepth为4.首先将四叉树结构应用于CTU生成四叉树的叶节点。这个四叉树的叶节点的尺寸从16X16( MinQTSize)到128X128(CTUsize)。如果四叉树的叶节点为128X128,由于大小超过了MaxBtSize和MaxTtSize(即64×64),它将不会被二叉树或三叉树进一步分割。否则,四叉树叶节点将被多类型树进一步划分,因此,四叉树的叶节点也是多类型编码树的根节点,其多类型树层深(MttDepth)为0。当多类型树层深达到MaxMttDepth(即4)时,不再被允许进一步拆分。当多类型树节点的宽度等于MinCbsize时,不再考虑进一步的水平拆分。类似地,当多类型树节点的高度等于MinCbsize时,不再考虑进一步的垂直拆分。
In VVC, the coding tree scheme supports the ability for the luma and chroma to have a separate block tree structure. For P and B slices, the luma and chroma CTBs in one CTU have to share the same coding tree structure. However, for I slices, the luma and chroma can have separate block tree structures. When separate block tree mode is applied, luma CTB is partitioned into CUs by one coding tree structure, and the chroma CTBs are partitioned into chroma CUs by another coding tree structure. This means that a CU in an I slice may consist of a coding block of the luma component or coding blocks of two chroma components, and a CU in a P or B slice always consists of coding blocks of all three colour components unless the video is monochrome.
在VVC中,编码树方案支持亮度和色度具有各自独立的块状树结构。对于P与B片(slice),同个CTU中的亮度与色度CTB必须用相同的编码树结构。然而对于I片,亮度和色度分量可以用不同的编码树结构,亮度CTB通过一种编码树结构划分为亮度CU,而色度CTB通过另一种编码树结构划分为色度CU。也就是说I slice中的CU可能仅包含一个亮度分量的CB,或者仅包含两个色度分量的CB。而P slice和 B slice中的CU始终会包含一个亮度分量的CB和两个色度分量的CB(除非为黑白视频)。
3.24 CU在图片边界上的划分
Similar to HEVC, when a portion of a tree node block exceeds the bottom or right picture boundary, the tree node block is forced to be split until the all samples of every coded CU are located inside the picture boundaries. The following splitting rules are applied in the VVC:
与HEVC相似,当CU的一部分超过图片的底部或右侧边界时,此CU将被直接划分,直到划分出的CU都包含在图片边界中。以下拆分规则应用于VVC:
– If any portion of a tree node block exceeds the bottom or the right picture boundaries, TT splitting is not allowed.
如果CU的任何部分超过底部或右侧图片边界,则不允许三叉树(TT)划分。
– If any portion of a tree node block exceeds the bottom or the right picture boundaries, and any of QT and BT splitting is not allowed due to block size restriction, the block is forced to be split with QT split mode.
如果CU的任何部分超过底部或右侧图片边界,且因为块大小限制而不能QT,BT划分的情况(大于四叉树节点允许的最小尺寸也大于最大允许的二叉树根节点尺寸),这个块将被强制进行QT划分。
– Otherwise if a portion of a tree node block exceeds both the bottom and the right picture boundaries,
If the block is a QT node and the size of the block is larger than the minimum QT size, the block is forced to be split with QT split mode.
Otherwise, the block is forced to be split with SPLIT_BT_HOR mode
CU的任何部分同时超过底部和右侧图片边界,
如果该块是一个四叉树节点且尺寸大于最小四叉树节点尺寸,则该块被强制进行四叉树划分。否则该块被强制进行SPLIT_BT_HOR(二叉树水平)模式划分
– Otherwise if a portion of a tree node block exceeds the bottom picture boundaries,
If the block is a QT node, and the size of the block is larger than the minimum QT size, and the size of the block is larger than the maximum BT size, the block is forced to be split with QT split mode.
Otherwise, if the block is a QT node, and the size of the block is larger than the minimum QT size and the size of the block is smaller than or equal to the maximum BT size, the block is forced to be split with QT split mode or SPLIT_BT_HOR mode and a flag split_qt_flag is signalled to specify the parititioning mode for this case.
Otherwise (the block is a BTT node or the size of the block is smaller than or equal to the minimum QT size), the block is forced to be split with SPLIT_BT_HOR mode.
CU的一部分超过了图片的底部边界
如果该CU是一个四叉树节点,且尺寸大于四叉树节点允许的最小尺寸也大于最大允许的二叉树根节点尺寸,这个块将被强制进行QT划分。
否则,如果该CU是一个四叉树节点,尺寸大于四叉树节点允许的最小尺寸并且小于等于最大允许的二叉树根节点尺寸,则这个块将被强制进行四叉树划分或SPLIT_BT_HOR模式划分,标志split_qt_flag用于指定这种情况下的分区模式。
– Otherwise if a portion of a tree node block exceeds the right picture boundaries,
If the block is a QT node, and the size of the block is larger than the minimum QT size, and the size of the block is larger than the maximum BT size, the block is forced to be split with QT split mode.
Otherwise, if the block is a QT node, and the size of the block is larger than the minimum QT size and the size of the block is smaller than or equal to the maximum BT size, the block is forced to be split with QT split mode or SPLIT_BT_VER mode and a flag split_qt_flag is signalled to specify the parititioning mode for this case.
Otherwise (the block is a BTT node or the size of the block is smaller than or equal to the minimum QT size), the block is forced to be split with SPLIT_BT_VER mode.
CU的一部分超过了图片的右部边界。
如果该CU是一个四叉树节点,且尺寸大于四叉树节点允许的最小尺寸也大于最大允许的二叉树根节点尺寸,这个块将被强制进行QT划分。
否则,如果该CU是一个四叉树节点,尺寸大于四叉树节点允许的最小尺寸并且小于等于最大允许的二叉树根节点尺寸,则这个块将被强制进行四叉树划分或SPLIT_BT_VER模式划分,标志split_qt_flag用于指定这种情况下的分区模式。
此外(如果这个CU是个BTT节点或CU尺寸小于等于四叉树节点允许的最小尺寸)该CU将强制进行SPLIT_BT_VER模式划分。
3.25 CU冗余划分限制
The quadtree with nested multi-type tree coding block structure provides a highly flexible block partitioning structure. Due to the types of splits supported the multi-type tree, different splitting patterns could potentially result in the same coding block structure. In VVC, some of these redundant splitting patterns are disallowed.
四叉树和多类型树相结合的划分方式使得VVC块划分更加灵活,但也可能造成不同划分方式相结合导致相同的划分结果,这种冗余的划分应该被禁止。
Figure 10 illustrates the redundant splitting patterns of binary tree splits and ternary tree splits. As shown in Figure 10, two levels of consecutive binary splits in one direction could have the same coding block structure as a ternary tree split followed by a binary tree split of the central partition. In this case, the binary tree split (in the given direction) for the central partition of a ternary tree split is prevented by the syntax. This restriction applies for CUs in all pictures.
图10显示了二叉树划分BT和三叉树划分TT导致的一些冗余划分。如图所示,在同一方向进行两次连续的二叉树划分与先进行一次三叉树划分再在中间进行一次二叉树划分的结果相同。在这个例子中,三叉树划分中心的二叉树划分(在给定方向)是被语法所阻止的。此限制适用于所有图片中的CU。
图10
When the splits are prohibited as described above, signalling of the corresponding syntax elements is modified to account for the prohibited cases. For example, when any case in Figure 10 is identified (i.e. the binary split is prohibited for a CU of a central partition), the syntax element mtt_split_cu_binary_flag which specifies whether the split is a binary split or a ternary split is not signalled and is instead inferred to be equal to 0 by the decoder.
当划分如图示一样被阻止后,相应语法元素的信令被修改,以解释禁止的情况。举个例子,任意如图10那样的情况被识别到后(二叉树在中间的划分被阻止),一个指定是BT还是TT划分的语法元素 mtt_split_cu_binary_flag将不再发出信号,而是被解码器推断等于0.
3.26 Virtual pipeline data units (VPDUs)
Virtual pipeline data units (VPDUs) are defined as non-overlapping units in a picture. In hardware decoders, successive VPDUs are processed by multiple pipeline stages at the same time. The VPDU size is roughly proportional to the buffer size in most pipeline stages, so it is important to keep the VPDU size small. In most hardware decoders, the VPDU size can be set to maximum transform block (TB) size. However, in VVC, ternary tree (TT) and binary tree (BT) partition may lead to the increasing of VPDUs size.
VPDU被定义为图像中互不重叠的单元。在硬件解码器中,可以在流水线的不同阶段同时处理多个连续的VPDU。在大多数流水线阶段VPDU的尺寸和缓冲区的尺寸近似成比例,所以保持VPDU的较小尺寸很重要。在绝大部分硬件解码器中,VPDU的尺寸被设置为最大变换块(TB)的尺寸。然而,在VVC中,BT,TT划分会使得VPDU的尺寸变大。
In order to keep the VPDU size as 64x64 luma samples, the following normative partition restrictions (with syntax signaling modification) are applied in VTM, as shown in Figure 11:
为了使VPDU保持与64X64亮度分量相同的尺寸大小,需要进行以下限制,如图 11:
TT split is not allowed for a CU with either width or height, or both width and height equal to 128.
当CU的宽或高等于128,或者为128X128时,不允许使用三叉树划分。
For a 128xN CU with N ≤ 64 (i.e. width equal to 128 and height smaller than 128), horizontal BT is not allowed.
对于一个128XN的CU,N(高)小于等于64(宽等于128,高小于128),不允许使用二叉树水平划分
For an Nx128 CU with N ≤ 64 (i.e. height equal to 128 and width smaller than 128), vertical BT is not allowed.
对于一个NX128的CU,N(高)小于等于64(高等于128,宽小于128),不允许使用二叉树垂直划分
图11 vtm中禁止BT,QT划分情况
3.27 帧内色度划分和预测限制
In typical hardware video encoders and decoders, processing throughput drops when a picture has more small intra blocks because of sample processing data dependency between neighbouring intra blocks. The predictor generation of an intra block requires top and left boundary reconstructed samples from neighbouring blocks. Therefore, intra prediction has to be sequentially processed block by block.
在典型的硬件视频编解码器中,因为数据采样过程依赖于相邻内部块,所以当一幅图片内部有许多小的内部块时(帧内预测),处理速度会下降。一个内部块的预测器生成需要从邻近块的顶部和左侧边界获得重建样本。因此,帧内预测必须逐块顺序处理。
In HEVC, the smallest intra CU is 8x8 luma samples. The luma component of the smallest intra CU can be further split into four 4x4 luma intra prediction units (Pus), but the chroma components of the smallest intra CU cannot be further split. Therefore, the worst case hardware processing throughput occurs when 4x4 chroma intra blocks or 4x4 luma intra blocks are processed. In VVC, in order to improve worst case throughput, chroma intra CBs smaller than 16 chroma samples (size 2x2, 4x2, and 2x4) and chroma intra CBs with width smaller than 4 chroma samples (size 2xN) are disallowed by constraining the partitioning of chroma intra CBs.
在HEVC中,最小的帧内CU 是8X8的亮度分量。最小的帧内CU的亮度分量也可被分为4个4X4的亮度帧内预测单元(PU),但最小色度分量的CU不能继续划分。因此,最坏的情况下的硬件数据吞吐量发生在4x4色度内部块或4x4亮度内部块。在VVC中,为了提高最坏情况下的吞吐量,通过限制帧内色度CB的继续分割。
不允许存在小于16个色度样本(2x2, 4x2, and 2x4)的色度帧内CB和宽度小于4个色度样本(大小为2xN)的色度帧内CB
In single coding tree, a smallest chroma intra prediction unit (SCIPU) is defined as a coding tree node whose chroma block size is larger than or equal to 16 chroma samples and has at least one child luma block smaller than 64 luma samples, or a coding tree node whose chroma block size is not 2xN and has at least one child luma block 4xN luma samples. , i.e, either intra or intra block copy (IBC). In case of a non-inter SCIPU, it is further required that chroma of the non-inter SCIPU shall not be further split and luma of the SCIPU is allowed to be further split. In this way, the small chroma intra CBs with size less than 16 chroma samples or with size 2xN are removed. In addition, chroma scaling is not applied in case of a non-inter SCIPU. Here, no additional syntax is signalled, and whether a SCIPU is non-inter can be derived by the prediction mode of the first luma CB in the SCIPU. The type of a SCIPU is inferred to be non-inter if the current slice is an I-slice or the current SCIPU has a 4x4 luma partition in it after further split one time (because no inter 4x4 is allowed in VVC); otherwise, the type of the SCIPU (inter or non-inter) is indicated by one flag before parsing the Cus in the SCIPU.
在一个单独编码树(亮度与色度有相同的编码树结构)中,最小帧内色度预测单元(SCIPU)被定义为一个编码树节点,满足色度块的尺寸大于等于16个色度采样样本并且有至少一个子亮度块小于64个亮度样本。或者是其色度块大小不为2xN且具有至少一个子亮度块有4xN 亮度样本的编码树节点。要求在每个SCIPU中,所有cb都是inter,或者所有cb都是非inter(intra block copy),即inter或IBC。如果是非inter-SCIPU,则进一步要求 非inter-SCIPU 的色度不应进一步划分,并且允许SCIPU的亮度进一步划分。这样,尺寸 小于16个色度样本 或 大小为2xN的小色度 intra CB块被去除。此外,对于 非inter-SCIPU,不应用色度缩放。这里,不需要传输额外的语法,并且 SCIPU是否是非inter 可以由SCIPU中的第一个亮度 CB的预测模式得知。如果当前是 I Slice或者 当前SCIPU 在进一步划分一次 后有 一个4x4 亮度分量(因为VVC中不允许inter 4x4),则推断SCIPU的类型为非inter;否则,在解析SCIPU中的CU之前,SCIPU的类型(inter或non inter)由一个标志指示。
For the dual tree in intra picture, the 2xN intra chroma blocks are removed by disabling vertical binary and vertical ternary splits for 4xN and 8xN chroma partitions, respectively. The small chroam blocks wtihsize 2x2, 4x2, and 2x4 are also removed by partitioning restrictions.
对于intra图像中的dual tree (亮色度具有不同的编码树结构),通过让分别为4xN和8xN色度分区 禁止使用垂直二叉和垂直三叉划分 来 移除2xN色度块。大小为2x2、4x2和2x4的小chroam块也通过分区限制被移除。
In addition, a restriction on picture size is considered to avoid 2x2/2x4/4x2/2xN intra chroma blocks at the corner of pictures by considering the picture width and height to be multiple of max (8, MinCbSizeY).
此外,考虑到图片宽度和高度是max(8,MinCbSizeY)的倍数,需要对图片大小进行限制以避免图片边角处出现2x2/2x4/4x2/2xN intra 色块。