WO2020182182A1 - Compound triple tree in video coding - Google Patents

Compound triple tree in video coding Download PDF

Info

Publication number
WO2020182182A1
WO2020182182A1 PCT/CN2020/078936 CN2020078936W WO2020182182A1 WO 2020182182 A1 WO2020182182 A1 WO 2020182182A1 CN 2020078936 W CN2020078936 W CN 2020078936W WO 2020182182 A1 WO2020182182 A1 WO 2020182182A1
Authority
WO
WIPO (PCT)
Prior art keywords
partition
ctt
block
depth
sub
Prior art date
Application number
PCT/CN2020/078936
Other languages
French (fr)
Inventor
Weijia Zhu
Li Zhang
Jizheng Xu
Kai Zhang
Hongbin Liu
Yue Wang
Original Assignee
Beijing Bytedance Network Technology Co., Ltd.
Bytedance Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Bytedance Network Technology Co., Ltd., Bytedance Inc. filed Critical Beijing Bytedance Network Technology Co., Ltd.
Priority to CN202080020189.4A priority Critical patent/CN113557746A/en
Publication of WO2020182182A1 publication Critical patent/WO2020182182A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Definitions

  • This patent document relates to video coding techniques, devices and systems.
  • the present document describes various embodiments and techniques for partitioning of video pictures into triple trees for facilitating video coding.
  • a method of video processing includes splitting a current video block into 9 sub-blocks using a compound triple tree partition, and performing a conversion between the current video block and a bitstream representation of the current video block based on the splitting.
  • Another method of video processing includes splitting a current video block into 9 sub-blocks using a compound triple tree partition (CTT) due to the current video block satisfying a size criterion, and performing a conversion between the current video block and a bitstream representation of the current video block based on the splitting.
  • CTT compound triple tree partition
  • Another method of video processing includes determining, for a conversion between a first block of video and a bitstream representation of the first block of video, whether Compound Triple-Tree (CTT) partition is enabled or disabled, wherein CTT partition includes splitting the first block to nine smaller sized sub-blocks of the first block; and performing the conversion based on the determination.
  • CTT Compound Triple-Tree
  • a video encoder apparatus configured to implement one of the above-described methods is disclosed.
  • a video decoder apparatus configured to implement one of the above-described methods is disclosed.
  • a computer-readable medium is disclosed.
  • a processor-executable code for implementing one of the above-described methods is stored on the computer-readable medium.
  • FIG. 1 shows an example of a H. 264-like video encoder.
  • FIG. 2 shows examples of macroblock (MB) partitions in H. 264/AVC.
  • FIG. 3 shows examples of macroblock partitions.
  • FIG. 4 shows an example of subdividing a coding tree unit (CTU) in coding units.
  • CTU coding tree unit
  • FIG. 5 illustrates an example quadtree binary tree (QTBT) structure.
  • FIG. 6 shows various partitioning schemes as follows: (a) quad-tree partitioning (b) vertical binary-tree partitioning (c) horizontal binary-tree partitioning (d) vertical center-side triple-tree partitioning (e) horizontal center-side triple-tree partitioning.
  • FIG. 7A -7K shows examples of extended quadtree (EQT) partitioning.
  • FIGS. 8A-8D show examples of flexible tree (FT) partitions.
  • FIG. 9 shows examples of generalized tertiary tree (GTT) partitions.
  • FIG. 10 shows an example of unchanged syntax and changed semantic for versatile boundary partition.
  • FIG. 11 shows an example of a compound triple tree (CTT) partitioning.
  • CTT compound triple tree
  • FIG. 12 shows an example apparatus for implementing a technique described in the present document.
  • FIG. 13 is a flowchart for an example method of video processing.
  • FIG. 14 is a flowchart for an example method of video processing.
  • the present document provides various techniques that can be used by a decoder of image or video bitstreams to improve the quality of decompressed or decoded digital video or images.
  • video is used herein to include both a sequence of pictures (traditionally called video) and individual images.
  • a video encoder may also implement these techniques during the process of encoding in order to reconstruct decoded frames used for further encoding.
  • Section headings are used in the present document for ease of understanding and do not limit the embodiments and techniques to the corresponding sections. As such, embodiments from one section can be combined with embodiments from other sections.
  • This patent document is related to video coding technologies. Specifically, it is related to candidate list construction in video coding. It may be applied to the existing video coding standard like HEVC, or the standard (Versatile Video Coding) to be finalized. It may be also applicable to future video coding standards or video codec.
  • Video coding standards have evolved primarily through the development of the well-known ITU-T and ISO/IEC standards.
  • the ITU-T produced H. 261 and H. 263, ISO/IEC produced MPEG-1 and MPEG-4 Visual, and the two organizations jointly produced the H. 262/MPEG-2 Video and H. 264/MPEG-4 Advanced Video Coding (AVC) and H. 265/HEVC standards.
  • AVC H. 264/MPEG-4 Advanced Video Coding
  • H. 265/HEVC High Efficiency Video Coding
  • the video coding standards are based on the hybrid video coding structure wherein temporal prediction plus transform coding are utilized.
  • Joint Video Exploration Team JVET was founded by VCEG and MPEG jointly in 2015.
  • JVET Joint Exploration Model
  • the core of the coding layer in previous standards was the macroblock, containing a 16 ⁇ 16 block of luma samples and, in the usual case of 4: 2: 0 color sampling, two corresponding 8 ⁇ 8 blocks of chroma samples.
  • An intra-coded block uses spatial prediction to exploit spatial correlation among pixels.
  • Two partitions are defined: 16x16 and 4x4.
  • An inter-coded block uses temporal prediction, instead of spatial prediction, by estimating motion among pictures.
  • Motion can be estimated independently for either 16x16 macroblock or any of its sub-macroblock partitions: 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 (see FIG. 5) . Only one motion vector (MV) per sub-macroblock partition is allowed.
  • FIG. 2 shows an example of MB partitions in H. 264/AVC.
  • a CTU is split into CUs by using a quadtree 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 CU level.
  • Each 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.
  • a CU can be partitioned into transform units (TUs) according to another quadtree structure similar to the coding tree for the CU.
  • TUs transform units
  • Coding tree units and coding tree block (CTB) structure The analogous structure in HEVC is the coding tree unit (CTU) , which has a size selected by the encoder and can be larger than a traditional macroblock.
  • the CTU consists of a luma CTB and the corresponding chroma CTBs and syntax elements.
  • HEVC then supports a partitioning of the CTBs into smaller blocks using a tree structure and quadtree-like signaling.
  • Coding units and coding blocks (CBs)
  • the quadtree syntax of the CTU specifies the size and positions of its luma and chroma CBs. The root of the quadtree is associated with the CTU. Hence, the size of the luma CTB is the largest supported size for a luma CB.
  • the splitting of a CTU into luma and chroma CBs is signaled jointly.
  • a CTB may contain only one CU or may be split to form multiple CUs, and each CU has an associated partitioning into prediction units (PUs) and a tree of transform units (TUs) .
  • PUs prediction units
  • TUs tree of transform units
  • Prediction units and prediction blocks The decision whether to code a picture area using inter picture or intra picture prediction is made at the CU level.
  • a PU partitioning structure has its root at the CU level.
  • the luma and chroma CBs can then be further split in size and predicted from luma and chroma prediction blocks (PBs) .
  • HEVC supports variable PB sizes from 64 ⁇ 64 down to 4 ⁇ 4 samples.
  • the prediction residual is coded using block transforms.
  • a TU tree structure has its root at the CU level.
  • the luma CB residual may be identical to the luma transform block (TB) or may be further split into smaller luma TBs. The same applies to the chroma TBs.
  • Integer basis functions similar to those of a discrete cosine transform (DCT) are defined for the square TB sizes 4 ⁇ 4, 8 ⁇ 8, 16 ⁇ 16, and 32 ⁇ 32.
  • DCT discrete cosine transform
  • an integer transform derived from a form of discrete sine transform (DST) is alternatively specified.
  • JVET Joint Video Exploration Team
  • the QTBT structure removes the concepts of multiple partition types, i.e. it removes the separation of the CU, PU and TU concepts, and supports more flexibility for CU partition shapes.
  • a CU can have either a square or rectangular shape.
  • a coding tree unit (CTU) is first partitioned by a quadtree structure.
  • the quadtree leaf nodes are further partitioned by a binary tree structure.
  • the binary tree leaf nodes are called coding units (CUs) , and that segmentation is used for prediction and transform processing without any further partitioning.
  • a CU sometimes consists of coding blocks (CBs) of different colour components, e.g. one CU contains one luma CB and two chroma CBs in the case of P and B slices of the 4: 2: 0 chroma format and sometimes consists of a CB of a single component, e.g., one CU contains only one luma CB or just two chroma CBs in the case of I slices.
  • CBs coding blocks
  • CTU size the root node size of a quadtree, the same concept as in HEVC
  • MinQTSize the minimum allowed quadtree leaf node size
  • MaxBTSize the maximum allowed binary tree root node size
  • MaxBTDepth the maximum allowed binary tree depth
  • MinBTSize the minimum allowed binary tree leaf node size
  • the CTU size is set as 128 ⁇ 128 luma samples with two corresponding 64 ⁇ 64 blocks of chroma samples
  • the MinQTSize is set as 16 ⁇ 16
  • the MaxBTSize is set as 64 ⁇ 64
  • the MinBTSize (for both width and height) is set as 4 ⁇ 4
  • the MaxBTDepth is set as 4.
  • the quadtree partitioning is applied to the CTU first to generate quadtree leaf nodes.
  • the quadtree leaf nodes may have a size from 16 ⁇ 16 (i.e., the MinQTSize) to 128 ⁇ 128 (i.e., the CTU size) .
  • the quadtree leaf node is also the root node for the binary tree and it has the binary tree depth as 0.
  • MaxBTDepth i.e., 4
  • no further splitting is considered.
  • MinBTSize i.e., 4
  • no further horizontal splitting is considered.
  • the binary tree node has height equal to MinBTSize
  • no further vertical splitting is considered.
  • the leaf nodes of the binary tree are further processed by prediction and transform processing without any further partitioning. In the JEM, the maximum CTU size is 256 ⁇ 256 luma samples.
  • FIG. 5 illustrates an example of block partitioning by using QTBT
  • FIG. 5 illustrates the corresponding tree representation.
  • the solid lines indicate quadtree splitting and dotted lines indicate binary tree splitting.
  • each splitting (i.e., non-leaf) node of the binary tree one flag is signalled to indicate which splitting type (i.e., horizontal or vertical) is used, where 0 indicates horizontal splitting and 1 indicates vertical splitting.
  • the quadtree splitting there is no need to indicate the splitting type since quadtree splitting always splits a block both horizontally and vertically to produce 4 sub-blocks with an equal size.
  • the QTBT scheme supports the ability for the luma and chroma to have a separate QTBT structure.
  • the luma and chroma CTBs in one CTU share the same QTBT structure.
  • the luma CTB is partitioned into CUs by a QTBT structure
  • the chroma CTBs are partitioned into chroma CUs by another QTBT structure. This means that a CU in an I slice consists of a coding block of the luma component or coding blocks of two chroma components, and a CU in a P or B slice consists of coding blocks of all three colour components.
  • inter prediction for small blocks is restricted to reduce the memory access of motion compensation, such that bi-prediction is not supported for 4 ⁇ 8 and 8 ⁇ 4 blocks, and inter prediction is not supported for 4 ⁇ 4 blocks.
  • these restrictions are removed.
  • TT triple tree
  • FIG. 6 shows the following partitionings.
  • (a) quad-tree partitioning (b) vertical binary-tree partitioning (c) horizontal binary-tree partitioning (d) vertical center-side triple-tree partitioning (e) horizontal center-side triple-tree partitioning.
  • a CTU is firstly partitioned by region tree (RT) .
  • a RT leaf may be further split with prediction tree (PT) .
  • a PT leaf may also be further split with PT until max PT depth is reached.
  • a PT leaf is the basic coding unit. It is still called CU for convenience.
  • a CU cannot be further split.
  • Prediction and transform are both applied on CU in the same way as JEM.
  • the whole partition structure is named ‘multiple-type-tree’ .
  • a extended quad tree (EQT) partitioning structure corresponding to a block partitioning process including an extended quad tree partitioning process for the block of video data, wherein the extended quad partitioning structure represents partitioning the block of video data into final sub-blocks, and when the extended quad tree partitioning process decides to apply extended quad tree partition to one given block, said one given block is always split into four sub-blocks; decoding the final sub-blocks based on the video bitstream; and decoding the block of video data based on the final sub-blocks decoded according to the EQT structure derived.
  • EQT is proposed.
  • the EQT partitioning process can be applied to a given block recursively to generate EQT leaf nodes.
  • EQT when EQT is applied to a certain block, for each of the sub-block due to EQT, it may further be split into BT and/or QT and/or TT and/or EQT and/or other kinds of partition trees.
  • EQT and QT may share the same depth increment process and same restrictions of leaf node sizes.
  • the partitioning of one node could be implicitly terminated when the size of the node reaches a minimum allowed quad tree leaf node size or EQT depth with the node reaches a maximum allowed quad tree depth.
  • EQT and QT may share different depth increment process and/or restrictions of leaf node sizes.
  • the partitioning of one node by EQT is implicitly terminated when the size of the node reaches a minimum allowed EQT leaf node size or EQT depth associated with the node reaches a maximum allowed EQT depth.
  • the EQT depth and/or the minimum allowed EQT leaf node sizes may be signaled in sequences parameter set (SPS) , and/or picture parameter set (PPS) , and/or slice header, and/or CTU, and/or regions, and/or tiles, and/or CUs.
  • SPS sequences parameter set
  • PPS picture parameter set
  • one block may be split equally into four partitions, such as M/4 x N or M x N/4 (examples are depicted in FIG. 7A and 7B) or split equally into four partitions and the partition size is dependent on the maximum and minimum values of M and N.
  • one 4x32 block may be split into four 4x8 sub-blocks while a 32x4 block may be split into four 8x4 sub-blocks.
  • one block may be split unequally into four partitions, such as two partitions are with size equal to (M*w0/w) x (N*h0/h) and the other two are with (M* (w-w0) /w) x (N* (h-h0) /h)
  • w0 and w may be equal to 1 and 2, respectively that is the width is reduced by half while the height could use other ratios instead of 2: 1 to get the sub-blocks. Examples for this case are depicted in FIG. 7C and 7E.
  • h0 and h may be equal to 1 and 2, respectively, that is the height is reduced by half while the width could use other ratios instead of 2: 1. Examples for this case are depicted in FIG. 7D and 7F.
  • FIG. 7G and 7H show two alternative examples of quad tree partitioning.
  • FIG. 7I shows a more general case of quad tree partitioning with different shapes of partitions
  • FIG. 7J and 7K show general examples of FIGS. 7A-7B.
  • a flexible tree (FT) partitioning structure corresponding to a block partitioning process including an FT partitioning process for the block of video data, wherein the FT partitioning structure represents partitioning the block of video data into final sub-blocks, and when FT partitioning process decides to apply FT partition to one given block, said one given block is split into K sub-blocks wherein K could be larger than 4; decoding the final sub-blocks based on the video bitstream; and decoding the block of video data based on the final sub-blocks decoded according to the FT structure derived.
  • FT flexible tree
  • the FT partitioning process can be applied to a given block recursively to generate FT tree leaf nodes.
  • the partitioning of one node is implicitly terminated when the node reaches a minimum allowed FT leaf node size or FT depth associated with the node reaches a maximum allowed FT depth.
  • FT when FT is applied to a certain block, for each of the sub-block due to FT, it may further be split into BT, and/or QT, and/or EQT, and/or TT, and/or other kinds of partition trees.
  • the FT depth or the minimum allowed FT leaf node sizes or the minimum allowed partition size for FT may be signaled in sequences parameter set (SPS) , and/or picture parameter set (PPS) , and/or slice header, and/or CTU, and/or regions, and/or tiles, and/or CUs.
  • SPS sequences parameter set
  • PPS picture parameter set
  • all of the sub-blocks due to FT partitions may be with the same size; alternatively, the sizes of different sub-blocks may be different.
  • K is equal to 6 or 8.
  • FIGS. 8A-8D Some examples are depicted in FIGS. 8A-8D.
  • a generalized TT (GTT) partition pattern may be defined as splitting for both horizontal and vertical. An example is shown in FIG. 9.
  • the proposed methods may be applied under certain conditions. In other words, when the condition (s) are not satisfied, there is no need to signal the partition types.
  • the proposed methods may be used to replace the existing partition tree types. Alternatively, furthermore, the proposed methods may be only used as a replacement under certain conditions.
  • the condition may include the picture and/or slice types; and/or block sizes; and/or the coded modes; and/or whether one block is located at picture/slice/tile boundary.
  • the proposed EQT may be treated in the same way as QT. In this case, when it is indicated that the partition tree type is QT, more flags/indications of the detailed quad-tree partition patterns may be further signaled. Alternatively, EQT may be treated as additional partition patterns.
  • the signaling of partitioning methods of EQT or FT or GTT may be conditional, i.e. one or some EQP/FT/GTT partitioning methods may not be used in some cases, and the bits corresponding to signal these partitioning methods are not signaled.
  • VVC Versatile Video Coding
  • the versatile boundary partition obtains the following rules (both encoder and decoder) :
  • FBP forced boundary partition
  • the forced boundary partition is descripted as follow:
  • forced QT is used to perform the FBP in the current forced partition level
  • QT, BT, TT or CST may refer to “QT split” , “BT split” , “TT split” and “Compound TT split” , respectively.
  • CTT Compound Triple-Tree partitioning
  • a block with dimensions W ⁇ H is split into 9 partitions with dimensions W1 ⁇ H1, W2 ⁇ H2, W3 ⁇ H3 , W4 ⁇ H4, W5 ⁇ H5, W6 ⁇ H7, W7 ⁇ H7, W8 ⁇ H8 and W9 ⁇ H9.
  • W1, W2, W3, W4, W5, W6, W7, W8, W9, H1, H2, H3, H4, H5, H6, H7, H8, and H9 are all integers.
  • h1 ! h2, where w1 and h1 are the width and height of block 1 and w2 and h2 are the width and height of block 2
  • all the parameters are in the form of power of 2.
  • the nine sub-blocks in a CTT partition may have both square blocks and rectangle blocks.
  • FIG. 11 shows the partition example of CTT.
  • the 9 sub-blocks are generated by applying two existing TT partitions together.
  • the horizontal TT and the vertical TT are applied to one block together to get a CTT partition tree.
  • FIG. 11 shows an example of CTT.
  • a block which is split into child blocks by CTT may be split from a parent block by QT or BT or TT or CTT.
  • a block which may allow CTT partitions may be a block generated by QT or BT or TT or CTT partitions.
  • the maximum block that allows CTT partitions may be the largest coding block (coding tree block or coding tree unit) .
  • the maximum block that allows CTT partitions may be the virtual pipeline data unit (VPDU) .
  • VPDU virtual pipeline data unit
  • a block which allows CTT partitions may be split from a parent block by one or some specific kinds of split methods.
  • a block which is split into child blocks by CTT can only be split from a parent block by QT.
  • the maximum/minimum block size that could allow CTT partitions and/or the maximum bit depth that could allow CTT partitions may be signalled in SPS/PPS/VPS/APS/sequence header/picture header/slice header/tile group header/CTU row/regions, etc. al.
  • the maximum/minimum block size that could allow CTT partitions and/or the maximum bit depth that could allow CTT partitions may be dependent of profile/level/tier of a standard.
  • the maximum/minimum block size that could allow CTT partitions and/or the maximum bit depth that could allow CTT partitions may be derived, such as to be the same as that allow QT partitions.
  • a block which is split from a parent block by CTT may be further split into child blocks by QT and/or BT and/or TT and/or CTT.
  • a block which is split from a parent block by CTT may be further split into child blocks by BT.
  • a block which is split from a parent block by CTT may be further split into child blocks by TT.
  • a block which is split from a parent block by CTT may be further split into child blocks by CTT and/or QT.
  • a block which is split from a parent block by CTT cannot be further split into child blocks by QT.
  • the split depth of the child block may be derived from the split depth of the parent block.
  • the splitting due to CTT may be used to update the QT/BT/TT/CTT/MTT depth.
  • the QT depth of one or all of the child blocks is equal to the QT depth of the parent block added by 1.
  • the BT depth of one or all of the child blocks is equal to the BT depth of the parent block added by 1.
  • the TT depth of one or all of the child blocks is equal to the TT depth of the parent block added by 1.
  • the CTT depth of one or all of the child blocks is equal to the C CTT of the parent block added by 1.
  • the MTT depth of one or all of the child block is equal to the MTT depth of the parent block added by 1.
  • the MTT depth of the child block is equal to the MTT depth of the parent block added by 1 if the parent block is split into child blocks by BT.
  • the MTT depth of the child block is equal to the MTT depth of the parent block added by 1 if the parent block is split into child blocks by TT.
  • the MTT depth of one or all of the child block is equal to the MTT depth of the parent block added by K, K>1.
  • K 2.
  • K may be different for different child blocks.
  • K log2 (the size of the parent block/the size of the child block) .
  • the CTT/BT/TT/QT/MTT depth increasement for different child block may be different.
  • the depth increasement is dependent on the ratio of a child block compared to the parent block.
  • CTT may depend on color format (such as 4: 4: 4 or 4: 2: 0) and/or color components.
  • CTT may depend on whether luma and chroma coding trees are separated.
  • CTT can only be applied on luma component when luma and chroma coding trees are separated.
  • Whether to apply CTT and/or which kind CTT is applied may be signaled from encoder to decoder.
  • CTT may be enabled when the indication of screen content video/picture/tile group is true, such as the tile group header tells that current tile group is screen content instead of camera captured content.
  • VPS/SPS/PPS/picture header/slice header/tile group header/tile header may be signaled in VPS/SPS/PPS/picture header/slice header/tile group header/tile header to indicate whether CTT can be applied.
  • VPS/SPS/PPS/picture header/slice header/tile group header/tile header may be signaled in VPS/SPS/PPS/picture header/slice header/tile group header/tile header to indicate which kinds of CTT can be applied.
  • d it may be signaled in a block to indicate whether CTT is used to split that block.
  • it may be signaled in a block to indicate which kind of CTT is used to split that block.
  • an index of partition type may be signaled in a block to indicate whether a block is split by QT, or CTT or non-split.
  • an index of partition type may be signaled in a block to indicate whether a block is split by BT, or TT, or CTT.
  • this index may be conditionally signaled, such as only when at least one of BT, TT and CTT is valid for this block.
  • splitting direction horizontal/vertical
  • splitting patterns may be further signalled.
  • the splitting direction of CTT may not signalled.
  • a binarized code is signaled in a block to indicate which kind of split (BT, TT, or CTT) is used.
  • BT TT
  • CTT CTT
  • a first flag is signaled to indicate whether CTT is used.
  • the binarized codewords orderly to represent BT, TT, CTT are XX, XY, Y.
  • how to signal which kind of split is used in a block may depend on which kinds of split are valid for the block.
  • the candidate BT, TT or CTT to be signaled depending on previously signaled or derived information.
  • the non-allowed or invalid split cannot be signaled from the encoder to the decoder, i.e. there is no codeword to represent the non-allowed or invalid split.
  • the binarized code to indicate which kind of split (BT, TT, or CTT) is used is not signaled.
  • a flag is signaled to indicate which one of the two valid splits is used.
  • the code to indicate which kind of split (BT, TT, or CTT) is binarized as a truncated unary code.
  • the maximum value of the truncated unary code is N-1, where N is the number of valid splits (BT, TT and CTT) .
  • no codeword represents an invalid split.
  • the invalid split is skipped when building the codeword table.
  • the flag indicating whether CTT is used is not signaled and inferred to be false.
  • the binarized codewords orderly to represent BT and TT are X and Y.
  • the binarization and/or signaling method is not changed according to which kinds of split is valid in the block. An invalid split cannot be chosen in a conformance bit-stream.
  • a bin (bit) of a bin string for indications of split types can be coded by arithmetic coding with one or multiple contexts.
  • only partial bins of a bin string may be coded with contexts and remaining bins may be coded with bypass mode (i.e., no context is utilized) .
  • all bins of a bin string may be coded with contexts.
  • all bins of a bin string may be coded with bypass mode.
  • a bin coded with context For a bin coded with context, one or multiple contexts may be used.
  • the current partition depth (e.g., QT depth/BT depth/TT depth/CTT depth/MTT depth) of current block.
  • the partition depth (e.g., QT depth/BT depth/TT depth/CTT depth/MTT depth) of spatial/temporal neighbouring blocks and/or spatial/temporal non-adjacent blocks.
  • CTT may not be allowed if a split child block cross more than one Virtual pipeline data units (VPDUs) .
  • VPDUs Virtual pipeline data units
  • CTT may not be allowed if the width/height of the current block satisfy some conditions. (Suppose the width and height of the current block are W and H, T1, T2 and T are some integers)
  • T1, T2 and T may be signaled from the encoder to the decoder in VPS/SPS/PPS/picture header/slice header/tile group header/tile header.
  • T1, T2 and T may depend on color components.
  • T1, T2 and T may be different for luma and chroma components.
  • T1, T2 and T may depend on whether luma coding tree and chroma coding tree are separated. For example, T1, T2 and T may be different for luma and chroma components if luma coding tree and chroma coding tree are separated.
  • CTT split may not be invalid.
  • CTT split may not be invalid.
  • CTT split is invalid.
  • CTT split may not be invalid.
  • CTT is allowed if the width/height of the current block satisfy some conditions. (Suppose the width and height of the current block are W and H, T1, T2 and T are some integers)
  • T1, T2 and T may be signaled from the encoder to the decoder in VPS/SPS/PPS/picture header/slice header/tile group header/tile header.
  • T1, T2 and T may depend on color components.
  • T1, T2 and T may be different for luma and chroma components.
  • T1, T2 and T may depend on whether luma coding tree and chroma coding tree are separated. For example, T1, T2 and T may be different for luma and chroma components if luma coding tree and chroma coding tree are separated.
  • CTT is not allowed if the depth of the current block satisfy some conditions.
  • the depth of the current block may refer to QT depth, BT depth, TT depth, CTT depth or MTT depth.
  • T may be signaled from the encoder to the decoder in VPS/SPS/PPS/picture header/slice header/tile group header/tile header.
  • n. T may depend on color components.
  • T1, T2 and T may be different for luma and chroma components.
  • T may depend on whether luma coding tree and chroma coding tree are separated. For example, T1, T2 and T may be different for luma and chroma components if luma coding tree and chroma coding tree are separated.
  • CTT may be allowed if the depth of the current block satisfy some conditions.
  • the depth of the current block may refer to QT depth, BT depth, TT depth, CTT depth or MTT depth.
  • T may be signaled from the encoder to the decoder in VPS/SPS/PPS/picture header/slice header/tile group header/tile header.
  • n. T may depend on color components.
  • T1, T2 and T may be different for luma and chroma components.
  • T may depend on whether luma coding tree and chroma coding tree are separated. For example, T1, T2 and T may be different for luma and chroma components if luma coding tree and chroma coding tree are separated.
  • some coding tools may be disallowed in a CU resulted from a CTT partition.
  • the intra modes may be disallowed in a CU resulted from a QT/BT/TT/CTT/MTT partition.
  • the corresponding signalling may be skipped.
  • the inter modes may be disallowed in a CU resulted from a QT/BT/TT/CTT/MTT partition.
  • the corresponding signalling may be skipped.
  • the intra block copy modes may be disallowed in a CU resulted from a QT/BT/TT/CTT/MTT partition.
  • the corresponding signalling may be skipped.
  • whether and how to use CTT may depend on the position of the current block. For example, whether and how to use CTT may depend on the whether the current block crosses the picture/tile/tile group border or not.
  • CTT may not be allowed if the current block crosses the picture/tile/tile group right border.
  • the child block may be omitted in the encoding/decoding process.
  • the part out of the picture may be omitted in the encoding/decoding process.
  • the part inside the picture may be further split.
  • the part inside the picture may be coded as a CU.
  • Whether the part inside the picture is coded as a CU may depend on the width (w) and height (h) of the part.
  • CTT may be disallowed.
  • the signalling of indication of the usage of the patterns is also skipped.
  • FIG. 12 is a block diagram of a video processing apparatus 1000.
  • the apparatus 1000 may be used to implement one or more of the methods described herein.
  • the apparatus 1000 may be embodied in a smartphone, tablet, computer, Internet of Things (IoT) receiver, and so on.
  • the apparatus 1000 may include one or more processors 1002, one or more memories 1004 and video processing hardware 1006.
  • the processor (s) 1002 may be configured to implement one or more methods described in the present document.
  • the memory (memories) 1004 may be used for storing data and code used for implementing the methods and techniques described herein.
  • the video processing hardware 1006 may be used to implement, in hardware circuitry, some techniques described in the present document.
  • FIG. 13 is a flowchart for an example method 1300 of video processing.
  • the method 1300 includes splitting (1302) a current video block into 9 sub-blocks using a compound triple tree partition, and performing (1304) a conversion between the current video block and a bitstream representation of the current video block based on the splitting.
  • Example 1 A method of video processing, comprising:
  • Example 2 The method of Example 1, wherein the current video block is W pixels by H pixels and wherein the 9 sub-blocks comprise sub-blocks with dimensions W1 ⁇ H1, W2 ⁇ H2, W3 ⁇ H3 , W4 ⁇ H4, W5 ⁇ H5, W6 ⁇ H7, W7 ⁇ H7 , W8 ⁇ H8 and W9 ⁇ H9.
  • W1, W2, W3, W4, W5, W6, W7, W8, W9, H1, H2, H3, H4, H5, H6, H7, H8, and H9 are all integers.
  • Example 3 The method of Example 2, wherein at least one sub-block of the 9 sub-blocks has dimensions different from the remaining sub-blocks.
  • Example 4 The method of any of Example s 1-3, wherein the 9 sub-blocks have corresponding four different sub-block sizes.
  • Example 5 The method of Example 1, wherein the current video block is a child block of a parent block obtained by a quadree or a binary tree or a tertiary tree or a compound triple tree partition.
  • Example 6 The method of any of Example 1-5, wherein at least one sub-block from the 9 sub-blocks is further partitioned using a quadree or a binary tree or a tertiary tree or a compound triple tree Example partition.
  • Example 7 The method of any of Example s 1 to 6, wherein the splitting operation is selectively performed only for a certain color format of the current video block.
  • Example 8 The method of any of Example s 1 to 7, wherein the bitstream representation includes a field indicative of a type of the compound triple tree partition used for the current video block.
  • Example 9 The method of any of Example s 1-8, wherein the bitstream representation uses arithmetic coding with one or more contexts based on split types of partitions used for partitioning the current video block.
  • Example 10 A method of video processing, comprising:
  • Example 12 The method of any of Examples 1-11, wherein the conversion includes generating the bitstream representation from the current video block or generating pixel values of the current video block from the bitstream representation.
  • Example 13 A video encoder apparatus comprising a processor configured to implement a method recited in any one or more of Examples 1 to 12.
  • Example 14 A video decoder apparatus comprising a processor configured to implement a method recited in any one or more of Examples 1 to 12.
  • Example 15 A computer-readable medium having code stored thereupon, the code, when executed, causing a processor to implement a method recited in any one or more of Examples 1 to 12.
  • FIG. 14 is a flowchart for an example method 1400 of video processing.
  • the method 1400 includes determining (1402) , for a conversion between a first block of video and a bitstream representation of the first block of video, whether Compound Triple-Tree (CTT) partition is enabled or disabled, wherein CTT partition includes splitting the first block to nine smaller sized sub-blocks of the first block; and performing (1404) the conversion based on the determination.
  • CTT Compound Triple-Tree
  • the first block has a dimension of width W ⁇ Height H
  • the nine sub-blocks have dimensions of W1 ⁇ H1, W2 ⁇ H2, W3 ⁇ H3 , W4 ⁇ H4, W5 ⁇ H5, W6 ⁇ H7, W7 ⁇ H7 , W8 ⁇ H8 and W9 ⁇ H9, respectively, where W, W1, W2, W3, W4, W5, W6, W7, W8, W9, H, H1, H2, H3, H4, H5, H6, H7, H8, and H9 are all integers.
  • At least one sub-block of the nine sub-blocks has a dimension different from the dimensions of the other sub-blocks.
  • the nine sub-blocks have four different dimensions.
  • a first sub-block of the nine sub-blocks has a dimension of W1 ⁇ H1
  • a second sub-block of the nine sub-blocks has a different dimension of W2 ⁇ H2, where W1 is different from W2 and/or H1 is different from H2.
  • all parameters of the dimensions of the nine sub-blocks are in the form of power of 2.
  • the nine sub-blocks in CTT partition have both square blocks and rectangle blocks.
  • the nine sub-blocks in CTT partition are generated by applying two existing triple tree (TT) partitions together.
  • the nine sub-blocks in CTT partition are generated by applying a horizontal TT partition and a vertical TT partition.
  • the first block which is split into sub-blocks by CTT partition is split from the parent block by one or more specific partition types including quarter-tree (QT) or binary-tree (BT) or ternary-tree (TT) and CTT partitions, wherein QT partition splits a block both horizontally and vertically to produce four sub-blocks with an equal size, BT partition splits a block horizontally or vertically to produce two sub-blocks with an equal size, and TT partition splits a block horizontally or vertically to produce three sub-blocks and one sub-block has a height or a width equal to a half of the height or width of the block.
  • QT partition quarter-tree
  • BT binary-tree
  • TT ternary-tree
  • the first block which allows CTT partitions is a block generated by one or more of QT or BT or TT and CTT partitions.
  • the maximum block that allows CTT partitions is the largest coding block, which is coding tree block or coding tree unit.
  • the maximum block that allows CTT partitions is a virtual pipeline data unit (VPDU) .
  • VPDU virtual pipeline data unit
  • the first block which allows CTT partitions is split from the parent block by one or more of quarter-tree (QT) or binary-tree (BT) or ternary-tree (TT) or CTT partitions.
  • QT quarter-tree
  • BT binary-tree
  • TT ternary-tree
  • the first block when the first block is split into the sub-blocks by CTT partition, the first block can only be split from the parent block by QT partition.
  • the maximum and/or minimum block size that allow CTT partitions and/or the maximum bit depth and/or the maximum depth that allow CTT partitions are signalled or parsed in at least one of video parameter set (VPS) , sequence parameter set (SPS) , picture parameter set (PPS) , adaptive parameter set (APS) , sequence header, picture header, slice header, tile group header, tile header, coding tree unit (CTU) row and regions.
  • VPS video parameter set
  • SPS sequence parameter set
  • PPS picture parameter set
  • APS adaptive parameter set
  • sequence header picture header
  • slice header slice header
  • tile group header tile group header
  • CTU coding tree unit
  • the maximum and/or minimum block size that allow CTT partitions and/or the maximum depth that allow CTT partitions depend on at least one of profile, level or tier of a standard.
  • the maximum and/or minimum block size that allow CTT partitions and/or the maximum bit depth and/or the maximum depth that allow CTT partitions are derived to be the same as that allow QT partitions.
  • the sub-block generated by CTT partition can be further split into child blocks by one or more specific partition types including QT, BT, TT and CTT partitions.
  • the sub-block can be further split into child blocks by BT.
  • the sub-block can be further split into child blocks by TT.
  • the sub-block can be further split into child blocks by CTT and/or QT.
  • the sub-block cannot be further split into child blocks by QT.
  • the split depth of the sub-block is derived from the split depth of the first block.
  • the splitting due to CTT partition is used to update the at least one of QT, BT, TT, CTT or Multiple type trees (MTT) depth.
  • MTT Multiple type trees
  • the QT depth of one or all of the sub-blocks is equal to the QT depth of the first block added by 1.
  • the BT depth of one or all of the sub-blocks is equal to the BT depth of the first block added by 1.
  • the TT depth of one or all of the sub-blocks is equal to the TT depth of the first block added by 1.
  • the CTT depth of one or all of the sub-blocks is equal to the CTT depth of the first block added by 1.
  • the MTT depth of one or all of the sub-blocks is equal to the MTT depth of the first block added by 1.
  • the MTT depth of the sub-block is equal to the MTT depth of the first block added by 1 if the first block is split into sub-blocks by BT.
  • the MTT depth of the sub-block is equal to the MTT depth of the first block added by 1 if the first block is split into sub-blocks by TT.
  • the MTT depth of one or all of the sub-blocks is equal to the MTT depth of the first block added by K, K is an integer larger than 1.
  • K is different for different sub-blocks.
  • K log2 (size of the first block/size of the sub-block) .
  • the CTT or BT or TT or QT or MTT depth increasement for different sub-block is different.
  • the depth increasement is dependent on the ratio of a sub-block compared to the first block.
  • whether and/or how to apply CTT partition depend on color format and/or color components.
  • the color format includes 4: 4: 4 or 4: 2: 0.
  • CTT partition can only be applied on luma component when luma and chroma coding trees are separated.
  • whether to apply CTT partition and/or which kind of CTT partition is applied is determined based on information signaled from encoder to decoder.
  • the information includes indication of at least one of screen content video, picture and tile group, and when the indication of at least one of screen content video, picture and tile group is true, CTT partition is enabled.
  • the indication in the tile group header indicates that current tile group is screen content instead of camera captured content.
  • the information is signaled in at least one of video parameter set (VPS) , sequence parameter set (SPS) , picture parameter set (PPS) , sequence header, picture header, slice header, tile group header, tile header, to indicate whether CTT partition can be applied.
  • VPS video parameter set
  • SPS sequence parameter set
  • PPS picture parameter set
  • sequence header sequence header
  • picture header slice header
  • tile group header tile header
  • the information is signaled in at least one of video parameter set (VPS) , sequence parameter set (SPS) , picture parameter set (PPS) , sequence header, picture header, slice header, tile group header, tile header, to indicate which kinds of CTT partition can be applied.
  • VPS video parameter set
  • SPS sequence parameter set
  • PPS picture parameter set
  • sequence header sequence header
  • picture header slice header
  • tile group header tile header
  • the information is signaled in a block to indicate whether CTT partition can be applied.
  • the information is signaled in a block to indicate which kinds of CTT partition can be applied.
  • an index of partition type is signaled in a block to indicate whether a block is split by QT, or CTT or non-split.
  • an index of partition type is signaled in a block to indicate whether a block is split by BT, or TT or CTT.
  • the index is conditionally signaled only when at least one of BT, TT and CTT is valid for the block.
  • splitting direction and/or splitting patterns are further signaled, the splitting direction including at least one of horizonal direction and vertical direction.
  • the splitting direction of CTT partition is not signaled.
  • a binarized code is signaled in a block to indicate which kind of partition is used, the partition being selected from group of BT, TT, and CTT.
  • a first flag is signaled to indicate whether CTT is used.
  • how to signal which kind of partitions is used in a block depends on which kinds of partitions are valid for the block.
  • the partition candidate from group of BT, TT and CTT to be signaled depend on previously signaled or derived information.
  • the non-allowed or invalid partition cannot be signaled from the encoder to the decoder.
  • a binarized code to indicate which kind of partition is used is not signaled.
  • a flag is signaled to indicate which one of the two valid partitions is used.
  • a code to indicate which kind of partition from group of BT, TT, and CTT is binarized as a truncated unary code.
  • the maximum value of the truncated unary code is N-1, where N is the number of valid partitions from group of BT, TT and CTTs.
  • the invalid partition is skipped when building a codeword table.
  • a flag indicating whether CTT is used is not signaled and inferred to be false.
  • the binarization and/or signaling method is not changed according to which kinds of partition is valid in the block.
  • one or more bins of a bin string for indications of partition type is coded by arithmetic coding with one or multiple contexts.
  • only partial bins of the bin string are coded with contexts and remaining bins are coded with bypass mode.
  • all bins of the bin string are coded with contexts.
  • all bins of the bin string are coded with bypass mode.
  • one or multiple contexts are used.
  • the context depends on at least one of the following:
  • the current partition depth including at least one of QT depth, BT depth, TT depth, CTT depth and MTT depth of the first block;
  • the partition depth including at least one of QT depth, BT depth, TT depth, CTT depth and MTT depth of spatial/temporal neighbouring blocks and/or spatial/temporal non-adjacent blocks of the first block;
  • CTT partition is disabled if one of the sub-block crosses more than one Virtual pipeline data units (VPDUs) .
  • VPDUs Virtual pipeline data units
  • CTT partition is disabled if width W and/or height H of the first block satisfy predetermined conditions.
  • T1 and T2 are integers.
  • T1 and T2 are integers.
  • T1 and T2 are integers.
  • T1 and T2 are integers.
  • T is an integer.
  • T is an integer.
  • T1 and T2 are signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
  • T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
  • T1 and T2 depend on color components.
  • T depend on color components.
  • T1 and T2 are different for luma and chroma components.
  • T is different for luma and chroma components.
  • T1 and T2 depend on whether luma coding tree and chroma coding tree are separated.
  • T depend on whether luma coding tree and chroma coding tree are separated.
  • T1 and T2 are different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
  • T is different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
  • CTT partition when transform is not supported for at least one of the sub-blocks generated by CTT partition, CTT partition is disabled.
  • CTT partition is disabled.
  • CTT partition is disabled.
  • CTT partition is disabled when horizontal or vertical TT is not allowed.
  • CTT partition is enabled if width W and/or height H of the first block satisfy predetermined conditions.
  • T1 and T2 are integers.
  • T1 and T2 are integers.
  • T1 and T2 are integers.
  • T1 and T2 are integers.
  • T is an integer.
  • T is an integer.
  • T1 and T2 are signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
  • T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
  • T1 and T2 depend on color components.
  • T depend on color components.
  • T1 and T2 are different for luma and chroma components.
  • T is different for luma and chroma components.
  • T1 and T2 depend on whether luma coding tree and chroma coding tree are separated.
  • T depend on whether luma coding tree and chroma coding tree are separated.
  • T1 and T2 are different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
  • T is different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
  • partition depth of the first block if partition depth of the first block satisfy predetermined conditions, CTT partition is disabled, the partition depth of the first block including at least one of QT partition depth, BT partition depth, TT partition depth, CTT partition depth and MTT partition depth of the first block.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
  • T depends on color components.
  • T is different for luma and chroma components.
  • T depends on whether luma coding tree and chroma coding tree are separated.
  • T is different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
  • partition depth of the first block if partition depth of the first block satisfy predetermined conditions, CTT partition is enabled, the partition depth of the first block including at least one of QT partition depth, BT partition depth, TT partition depth, CTT partition depth and MTT partition depth of the first block.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is an integer.
  • T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
  • T depends on color components.
  • T is different for luma and chroma components.
  • T depends on whether luma coding tree and chroma coding tree are separated.
  • T is different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
  • one or more coding tools are disabled in a coding unit (CU) generated by CTT partition.
  • CU coding unit
  • intra modes are disabled in a coding unit (CU) generated by at least one of QT, BT, TT, CTT and MTT partition.
  • CU coding unit
  • inter modes are disabled in a coding unit (CU) generated by at least one of QT, BT, TT, CTT and MTT partition.
  • CU coding unit
  • intra block copy modes are disabled in a coding unit (CU) generated by at least one of QT, BT, TT, CTT and MTT partition.
  • CU coding unit
  • signaling associated with the one or more coding tools is skipped.
  • whether and/or how to use CTT partition depends on position of the first block.
  • whether and how to use the CTT partition depend on whether the first block crosses the picture, or tile, or tile group border or not.
  • CTT partition is disabled if the first block crosses the picture, or tile, or tile group right border.
  • the sub-block is omitted during the conversion.
  • a sub-block split by CTT partition is partially out of the picture, or tile, or tile group, the part out of the picture is omitted during the conversion.
  • a sub-block split by the CTT partition is partially out of the picture, or tile, or tile group, the part inside the picture is further split.
  • a sub-block split by the CTT partition is partially out of the picture, or tile, or tile group, the part inside the picture is coded as a coding unit (CU) .
  • CU coding unit
  • whether the part inside the picture is coded as a CU which depends on the width (w) and height (h) of the part.
  • CTT partition is disabled if any sub-block split by the CTT partition is partially or fully out of the picture or tile or tile group.
  • the signaling of indication of the usage of CTT pattern is skipped.
  • the conversion generates the first block of video from the bitstream representation.
  • the conversion generates the bitstream representation from the first block of video.
  • the disclosed and other solutions, examples, embodiments, modules and the functional operations described in this document can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this document and their structural equivalents, or in combinations of one or more of them.
  • the disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, data processing apparatus.
  • the computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more them.
  • data processing apparatus encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers.
  • the apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
  • a propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus.
  • a computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
  • a computer program does not necessarily correspond to a file in a file system.
  • a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document) , in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code) .
  • a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
  • the processes and logic flows described in this document can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output.
  • the processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit) .
  • processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
  • a processor will receive instructions and data from a read only memory or a random-access memory or both.
  • the essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data.
  • a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
  • mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
  • a computer need not have such devices.
  • Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks.
  • semiconductor memory devices e.g., EPROM, EEPROM, and flash memory devices
  • magnetic disks e.g., internal hard disks or removable disks
  • magneto optical disks e.g., CD ROM and DVD-ROM disks.
  • the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Compound triple tree in video coding is described. In an exemplary aspect, a method for video processing includes determining, for a conversion between a first block of video and a bitstream representation of the first block of video, whether Compound Triple-Tree (CTT) partition is enabled or disabled, wherein CTT partition includes splitting the first block to nine smaller sized sub-blocks of the first block; and performing the conversion based on the determination.

Description

COMPOUND TRIPLE TREE IN VIDEO CODING
CROSS-REFERENCE TO RELATED APPLICATION
Under the applicable patent law and/or rules pursuant to the Paris Convention, this application is made to timely claim the priority to and benefits of International Patent Application No. PCT/CN2019/077810, filed on March 12, 2019. The entire disclosures of International Patent Application No. PCT/CN2019/077810 is incorporated by reference as part of the disclosure of this application.
TECHNICAL FIELD
This patent document relates to video coding techniques, devices and systems.
BACKGROUND
In spite of the advances in video compression, digital video still accounts for the largest bandwidth use on the internet and other digital communication networks. As the number of connected user devices capable of receiving and displaying video increases, it is expected that the bandwidth demand for digital video usage will continue to grow.
SUMMARY
The present document describes various embodiments and techniques for partitioning of video pictures into triple trees for facilitating video coding.
In one example aspect a method of video processing is disclosed. The method includes splitting a current video block into 9 sub-blocks using a compound triple tree partition, and performing a conversion between the current video block and a bitstream representation of the current video block based on the splitting.
In another example aspect, another method of video processing is disclosed. The method includes splitting a current video block into 9 sub-blocks using a compound triple tree partition (CTT) due to the current video block satisfying a size criterion, and performing a conversion between the current video block and a bitstream representation of the current video block based on the splitting.
In another example aspect, another method of video processing is disclosed. The  method includes determining, for a conversion between a first block of video and a bitstream representation of the first block of video, whether Compound Triple-Tree (CTT) partition is enabled or disabled, wherein CTT partition includes splitting the first block to nine smaller sized sub-blocks of the first block; and performing the conversion based on the determination.
In yet another example aspect, a video encoder apparatus configured to implement one of the above-described methods is disclosed.
In yet another example aspect, a video decoder apparatus configured to implement one of the above-described methods is disclosed.
In yet another aspect, a computer-readable medium is disclosed. A processor-executable code for implementing one of the above-described methods is stored on the computer-readable medium.
These, and other aspects, are described in the present document.
BRIEF DESCRIPTION OF DRAWINGS
FIG. 1 shows an example of a H. 264-like video encoder.
FIG. 2 shows examples of macroblock (MB) partitions in H. 264/AVC.
FIG. 3 shows examples of macroblock partitions.
FIG. 4 shows an example of subdividing a coding tree unit (CTU) in coding units.
FIG. 5 illustrates an example quadtree binary tree (QTBT) structure.
FIG. 6 shows various partitioning schemes as follows: (a) quad-tree partitioning (b) vertical binary-tree partitioning (c) horizontal binary-tree partitioning (d) vertical center-side triple-tree partitioning (e) horizontal center-side triple-tree partitioning.
FIG. 7A -7K shows examples of extended quadtree (EQT) partitioning.
FIGS. 8A-8D show examples of flexible tree (FT) partitions.
FIG. 9 shows examples of generalized tertiary tree (GTT) partitions.
FIG. 10 shows an example of unchanged syntax and changed semantic for versatile boundary partition.
FIG. 11 shows an example of a compound triple tree (CTT) partitioning.
FIG. 12 shows an example apparatus for implementing a technique described in the present document.
FIG. 13 is a flowchart for an example method of video processing.
FIG. 14 is a flowchart for an example method of video processing.
DETAILED DESCRIPTION
The present document provides various techniques that can be used by a decoder of image or video bitstreams to improve the quality of decompressed or decoded digital video or images. For brevity, the term “video” is used herein to include both a sequence of pictures (traditionally called video) and individual images. Furthermore, a video encoder may also implement these techniques during the process of encoding in order to reconstruct decoded frames used for further encoding.
Section headings are used in the present document for ease of understanding and do not limit the embodiments and techniques to the corresponding sections. As such, embodiments from one section can be combined with embodiments from other sections.
1. Brief Summary
This patent document is related to video coding technologies. Specifically, it is related to candidate list construction in video coding. It may be applied to the existing video coding standard like HEVC, or the standard (Versatile Video Coding) to be finalized. It may be also applicable to future video coding standards or video codec.
2. Initial Discussion
Video coding standards have evolved primarily through the development of the well-known ITU-T and ISO/IEC standards. The ITU-T produced H. 261 and H. 263, ISO/IEC produced MPEG-1 and MPEG-4 Visual, and the two organizations jointly produced the H. 262/MPEG-2 Video and H. 264/MPEG-4 Advanced Video Coding (AVC) and H. 265/HEVC standards. Since H. 262, the video coding standards are based on the hybrid video coding structure wherein temporal prediction plus transform coding are utilized. To explore the future video coding technologies beyond HEVC, Joint Video Exploration Team (JVET) was founded by VCEG and MPEG jointly in 2015. Since then, many new methods have been adopted by JVET and put into the reference software named Joint Exploration Model (JEM) . In April 2018, the Joint Video Expert Team (JVET) between VCEG (Q6/16) and ISO/IEC JTC1 SC29/WG11 (MPEG) was created to work on the VVC standard targeting at 50%bitrate reduction compared to HEVC.
2.1 Partition tree structure in H. 264/AVC
The core of the coding layer in previous standards was the macroblock, containing a 16×16 block of luma samples and, in the usual case of 4: 2: 0 color sampling, two corresponding 8×8 blocks of chroma samples.
An intra-coded block uses spatial prediction to exploit spatial correlation among pixels. Two partitions are defined: 16x16 and 4x4.
An inter-coded block uses temporal prediction, instead of spatial prediction, by estimating motion among pictures. Motion can be estimated independently for either 16x16 macroblock or any of its sub-macroblock partitions: 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 (see FIG. 5) . Only one motion vector (MV) per sub-macroblock partition is allowed.
FIG. 2 shows an example of MB partitions in H. 264/AVC.
2.2 Partition tree structure in HEVC
In HEVC, a CTU is split into CUs by using a quadtree 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 CU level. Each 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 CU can be partitioned into transform units (TUs) according to another quadtree 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.
In the following, the various features involved in hybrid video coding using HEVC are highlighted as follows.
1) Coding tree units and coding tree block (CTB) structure: The analogous structure in HEVC is the coding tree unit (CTU) , which has a size selected by the encoder and can be larger than a traditional macroblock. The CTU consists of a luma CTB and the corresponding chroma CTBs and syntax elements. The size L×L of a luma CTB can be chosen as L = 16, 32, or 64 samples, with the larger sizes typically enabling better compression. HEVC then supports a partitioning of the CTBs into smaller blocks using a tree structure and quadtree-like signaling.
2) Coding units (CUs) and coding blocks (CBs) : The quadtree syntax of the CTU specifies the size and positions of its luma and chroma CBs. The root of the quadtree is associated with the CTU. Hence, the size of the luma CTB is the largest supported size for a  luma CB. The splitting of a CTU into luma and chroma CBs is signaled jointly. One luma CB and ordinarily two chroma CBs, together with associated syntax, form a coding unit (CU) . A CTB may contain only one CU or may be split to form multiple CUs, and each CU has an associated partitioning into prediction units (PUs) and a tree of transform units (TUs) .
3) Prediction units and prediction blocks (PBs) : The decision whether to code a picture area using inter picture or intra picture prediction is made at the CU level. A PU partitioning structure has its root at the CU level. Depending on the basic prediction-type decision, the luma and chroma CBs can then be further split in size and predicted from luma and chroma prediction blocks (PBs) . HEVC supports variable PB sizes from 64×64 down to 4×4 samples.
4) TUs and transform blocks: The prediction residual is coded using block transforms. A TU tree structure has its root at the CU level. The luma CB residual may be identical to the luma transform block (TB) or may be further split into smaller luma TBs. The same applies to the chroma TBs. Integer basis functions similar to those of a discrete cosine transform (DCT) are defined for the square TB sizes 4×4, 8×8, 16×16, and 32×32. For the 4×4 transform of luma intra picture prediction residuals, an integer transform derived from a form of discrete sine transform (DST) is alternatively specified.
2.3 Quadtree plus binary tree block structure with larger CTUs in JEM
To explore the future video coding technologies beyond HEVC, Joint Video Exploration Team (JVET) was founded by VCEG and MPEG jointly in 2015. Since then, many new methods have been adopted by JVET and put into the reference software named Joint Exploration Model (JEM) .
2.3.1 QTBT block partitioning structure
Different from HEVC, the QTBT structure removes the concepts of multiple partition types, i.e. it removes the separation of the CU, PU and TU concepts, and supports more flexibility for CU partition shapes. In the QTBT block structure, a CU can have either a square or rectangular shape. As shown in FIG. 5, a coding tree unit (CTU) is first partitioned by a quadtree structure. The quadtree leaf nodes are further partitioned by a binary tree structure. There are two splitting types, symmetric horizontal splitting and symmetric vertical splitting, in the binary tree splitting. The binary tree leaf nodes are called coding units (CUs) , and that segmentation is used for prediction and transform processing without any further partitioning. This means that the CU,  PU and TU have the same block size in the QTBT coding block structure. In the JEM, a CU sometimes consists of coding blocks (CBs) of different colour components, e.g. one CU contains one luma CB and two chroma CBs in the case of P and B slices of the 4: 2: 0 chroma format and sometimes consists of a CB of a single component, e.g., one CU contains only one luma CB or just two chroma CBs in the case of I slices.
The following parameters are defined for the QTBT partitioning scheme.
– CTU size: the root node size of a quadtree, the same concept as in HEVC
– MinQTSize: the minimum allowed quadtree leaf node size
– MaxBTSize: the maximum allowed binary tree root node size
– MaxBTDepth: the maximum allowed binary tree depth
– MinBTSize: the minimum allowed binary tree leaf node size
In one example of the QTBT partitioning structure, the CTU size is set as 128×128 luma samples with two corresponding 64×64 blocks of chroma samples, the MinQTSize is set as 16×16, the MaxBTSize is set as 64×64, the MinBTSize (for both width and height) is set as 4×4, and the MaxBTDepth is set as 4. The quadtree partitioning is applied to the CTU first to generate quadtree leaf nodes. The quadtree leaf nodes may have a size from 16×16 (i.e., the MinQTSize) to 128×128 (i.e., the CTU size) . If the leaf quadtree node is 128×128, it will not be further split by the binary tree since the size exceeds the MaxBTSize (i.e., 64×64) . Otherwise, the leaf quadtree node could be further partitioned by the binary tree. Therefore, the quadtree leaf node is also the root node for the binary tree and it has the binary tree depth as 0. When the binary tree depth reaches MaxBTDepth (i.e., 4) , no further splitting is considered. When the binary tree node has width equal to MinBTSize (i.e., 4) , no further horizontal splitting is considered. Similarly, when the binary tree node has height equal to MinBTSize, no further vertical splitting is considered. The leaf nodes of the binary tree are further processed by prediction and transform processing without any further partitioning. In the JEM, the maximum CTU size is 256×256 luma samples.
FIG. 5 (left) illustrates an example of block partitioning by using QTBT, and FIG. 5 (right) illustrates the corresponding tree representation. The solid lines indicate quadtree splitting and dotted lines indicate binary tree splitting. In each splitting (i.e., non-leaf) node of the binary  tree, one flag is signalled to indicate which splitting type (i.e., horizontal or vertical) is used, where 0 indicates horizontal splitting and 1 indicates vertical splitting. For the quadtree splitting, there is no need to indicate the splitting type since quadtree splitting always splits a block both horizontally and vertically to produce 4 sub-blocks with an equal size.
In addition, the QTBT scheme supports the ability for the luma and chroma to have a separate QTBT structure. Currently, for P and B slices, the luma and chroma CTBs in one CTU share the same QTBT structure. However, for I slices, the luma CTB is partitioned into CUs by a QTBT structure, and the chroma CTBs are partitioned into chroma CUs by another QTBT structure. This means that a CU in an I slice consists of a coding block of the luma component or coding blocks of two chroma components, and a CU in a P or B slice consists of coding blocks of all three colour components.
In HEVC, inter prediction for small blocks is restricted to reduce the memory access of motion compensation, such that bi-prediction is not supported for 4×8 and 8×4 blocks, and inter prediction is not supported for 4×4 blocks. In the QTBT of the JEM, these restrictions are removed.
2.4 Triple-tree for VVC
As proposed, tree types other than quad-tree and binary-tree are supported. In the implementation, two more triple tree (TT) partitions, i.e., horizontal and vertical center-side triple-trees are introduced, as shown in FIG. 6 insets (d) and (e) .
FIG. 6 shows the following partitionings. (a) quad-tree partitioning (b) vertical binary-tree partitioning (c) horizontal binary-tree partitioning (d) vertical center-side triple-tree partitioning (e) horizontal center-side triple-tree partitioning.
There are two levels of trees, region tree (quad-tree) and prediction tree (binary-tree or triple-tree) . A CTU is firstly partitioned by region tree (RT) . A RT leaf may be further split with prediction tree (PT) . A PT leaf may also be further split with PT until max PT depth is reached. A PT leaf is the basic coding unit. It is still called CU for convenience. A CU cannot be further split. Prediction and transform are both applied on CU in the same way as JEM. The whole partition structure is named ‘multiple-type-tree’ .
2.5 Extended Quad Tree
1. A extended quad tree (EQT) partitioning structure corresponding to a block partitioning process including an extended quad tree partitioning process for the block of video data, wherein the extended quad partitioning structure represents partitioning the block of video data into final sub-blocks, and when the extended quad tree partitioning process decides to apply extended quad tree partition to one given block, said one given block is always split into four sub-blocks; decoding the final sub-blocks based on the video bitstream; and decoding the block of video data based on the final sub-blocks decoded according to the EQT structure derived. EQT is proposed.
a. The EQT partitioning process can be applied to a given block recursively to generate EQT leaf nodes. Alternatively, when EQT is applied to a certain block, for each of the sub-block due to EQT, it may further be split into BT and/or QT and/or TT and/or EQT and/or other kinds of partition trees.
b. In one example, EQT and QT may share the same depth increment process and same restrictions of leaf node sizes. In this case, the partitioning of one node could be implicitly terminated when the size of the node reaches a minimum allowed quad tree leaf node size or EQT depth with the node reaches a maximum allowed quad tree depth.
c. Alternatively, EQT and QT may share different depth increment process and/or restrictions of leaf node sizes. The partitioning of one node by EQT is implicitly terminated when the size of the node reaches a minimum allowed EQT leaf node size or EQT depth associated with the node reaches a maximum allowed EQT depth. In one example, furthermore, the EQT depth and/or the minimum allowed EQT leaf node sizes may be signaled in sequences parameter set (SPS) , and/or picture parameter set (PPS) , and/or slice header, and/or CTU, and/or regions, and/or tiles, and/or CUs.
d. Instead of using the current quad tree partition applied to a square block, for a block with MxN (M and N are non-zero positive integer values, either equal or unequal) size, in EQT, one block may be split equally into four partitions, such as M/4 x N or M x N/4 (examples are depicted in FIG. 7A and 7B) or split equally  into four partitions and the partition size is dependent on the maximum and minimum values of M and N. In one example, one 4x32 block may be split into four 4x8 sub-blocks while a 32x4 block may be split into four 8x4 sub-blocks.
e. Instead of using the current quad tree partition applied to a square block, for a block with MxN (M and N are non-zero positive integer values, either equal or unequal) size, in EQT, one block may be split unequally into four partitions, such as two partitions are with size equal to (M*w0/w) x (N*h0/h) and the other two are with (M* (w-w0) /w) x (N* (h-h0) /h)
For example, w0 and w may be equal to 1 and 2, respectively that is the width is reduced by half while the height could use other ratios instead of 2: 1 to get the sub-blocks. Examples for this case are depicted in FIG. 7C and 7E. Alternatively, h0 and h may be equal to 1 and 2, respectively, that is the height is reduced by half while the width could use other ratios instead of 2: 1. Examples for this case are depicted in FIG. 7D and 7F.
FIG. 7G and 7H show two alternative examples of quad tree partitioning.
FIG. 7I shows a more general case of quad tree partitioning with different shapes of partitions
FIG. 7J and 7K show general examples of FIGS. 7A-7B.
FIGS. 7A-7K show partitioning as follows: M x N/4, M/4 x N, sub-block width fixed to be M/2, height equal to N/4 or 3N/4, smaller for top two partitions, sub-block height fixed to be N/2, width equal to M/4 or 3M/4, smaller for left two partitions, sub-block width fixed to be M/2, height equal to 3N/4 or N/4, smaller for bottom two partitions, sub-block height fixed to be N/2, width equal to 3M/4 or M/4, smaller for right two partitions, M x N/4 and M/2 x N/2, N x M/4 and N/2 x M/2, M1xN1, (M-M1) xN1, M1x (N-N1) and (M-M1) x (N-N1) , M x N1, MxN2, MxN3 and MxN4, where and N1+N2+N3+N4=N, M1 x N, M2xN, M3xN and M4xN where M1+M2+M3+M4=M
2. A flexible tree (FT) partitioning structure corresponding to a block partitioning process including an FT partitioning process for the block of video data, wherein the FT partitioning structure represents partitioning the block of video data into final sub-blocks, and when FT partitioning process decides to apply FT partition to one given block, said one given block is split into K sub-blocks wherein K could be larger than 4; decoding the final sub-blocks based on the video bitstream; and decoding the block of video data based on the final sub-blocks decoded according to the FT structure derived.
a. The FT partitioning process can be applied to a given block recursively to generate FT tree leaf nodes. The partitioning of one node is implicitly terminated when the node reaches a minimum allowed FT leaf node size or FT depth associated with the node reaches a maximum allowed FT depth.
b. Alternatively, when FT is applied to a certain block, for each of the sub-block due to FT, it may further be split into BT, and/or QT, and/or EQT, and/or TT, and/or other kinds of partition trees.
c. Alternatively, furthermore, the FT depth or the minimum allowed FT leaf node sizes or the minimum allowed partition size for FT may be signaled in sequences parameter set (SPS) , and/or picture parameter set (PPS) , and/or slice header, and/or CTU, and/or regions, and/or tiles, and/or CUs.
d. Similarly to the proposed EQT, all of the sub-blocks due to FT partitions may be with the same size; alternatively, the sizes of different sub-blocks may be different.
e. In one example, K is equal to 6 or 8. Some examples are depicted in FIGS. 8A-8D.FIG. 8A shows K=8, M/4 *N/2. FIG. 8B shows K=8, M/2 *N/4. FIG. 8C shows K=6, M/2*N/2 and M/4*N/2. FIG. 8D shows K=6, M/2*N/2 and M/2*N/4.
f. For the TT, the restriction of splitting along either horizonal or vertical may be removed.
g. In one example, a generalized TT (GTT) partition pattern may be defined as splitting for both horizontal and vertical. An example is shown in FIG. 9.
3. The proposed methods may be applied under certain conditions. In other words, when the condition (s) are not satisfied, there is no need to signal the partition types.
a. Alternatively, the proposed methods may be used to replace the existing partition tree types. Alternatively, furthermore, the proposed methods may be only used as a replacement under certain conditions.
b. In one example, the condition may include the picture and/or slice types; and/or block sizes; and/or the coded modes; and/or whether one block is located at picture/slice/tile boundary.
c. In one example, the proposed EQT may be treated in the same way as QT. In this case, when it is indicated that the partition tree type is QT, more flags/indications of the detailed quad-tree partition patterns may be further signaled. Alternatively, EQT may be treated as additional partition patterns.
d. In one example, the signaling of partitioning methods of EQT or FT or GTT may be conditional, i.e. one or some EQP/FT/GTT partitioning methods may not be used in some cases, and the bits corresponding to signal these partitioning methods are not signaled.
2.6 Border handling
A boundary handling method is proposed to Versatile Video Coding (VVC) . A similar method is also adopted into AVS-3.0.
Since the forced quadtree boundary partition solution in VVC is not optimized. It proposed the boundary partition method using regular block partition syntax to keep the continuity CABAC engine as well as matching the picture boundary
The versatile boundary partition obtains the following rules (both encoder and decoder) :
● Using exactly same partition syntax of the normal block (non-boundary) (for instance, VTM-1.0 like Figure 10) for boundary located block, the syntax need to be unchanged.
● If the no split mode is parsed for the boundary CU, used forced boundary partition (FBP) to match the picture boundary.
● After forced boundary partition (non-singling boundary partition) , no further partition.
The forced boundary partition is descripted as follow:
● If the size of block is larger than the maximal allowed BT size, forced QT is used to perform the FBP in the current forced partition level;
● Otherwise, if the bottom-right sample of current CU is located below the bottom picture boundary, and not extended the right boundary, forced horizontal BT is used to perform the FBP in the current forced partition level;
● Otherwise, if the bottom-right sample of current CU is located at the right side of the right picture boundary, and not below the bottom boundary, forced vertical BT is used to perform the FBP in the current forced partition level;
● Otherwise, if the bottom-right sample of current CU is located at the right side of the right picture boundary and below the bottom boundary, forced QT is used to perform the FBP in the current forced partition level.
3. Problems
Although the QT/BT/TT coding tree structure in VVC is quite flexible, but it only partitions a block into 4 up to sub blocks. Furthermore, screen content usually needs a more delicate partitions which allows one block into more sub blocks.
4. Examples of techniques and embodiments
To address the problem, several methods are proposed to handle the case of cross split tree.
The detailed listing of techniques below should be considered as examples to explain general concepts. These embodiments should not be interpreted in a narrow way. Furthermore, these embodiments can be combined in any manner.
In the following discussion, QT, BT, TT or CST may refer to “QT split” , “BT split” , “TT split” and “Compound TT split” , respectively.
In the following discussion, “split” and “partitioning” have the same meaning.
1. Compound Triple-Tree (CTT) partitioning is proposed wherein one block may be directly split to 9 sub-blocks (child blocks) .
a. In one example, with CTT, a block with dimensions W×H is split into 9 partitions with dimensions W1×H1, W2×H2, W3×H3 , W4×H4, W5×H5, W6×H7, W7×H7, W8×H8 and W9×H9. where W1, W2, W3, W4, W5, W6, W7, W8, W9, H1, H2, H3, H4, H5, H6, H7, H8, and H9 are all integers.
b. In one example, and at least one of the partitions has different block size compared to others.
c. In one example, 4 different block sizes may be in the nine partitions.
(a) In one example, two blocks with different block sizes is defines as w1 ! = w2 || h1 ! = h2, where w1 and h1 are the width and height of block 1 and w2 and h2 are the width and height of block 2
d. In one example, all the parameters are in the form of power of 2. For example, W1 = 2 N1, W2 = 2 N2, W3 = 2 N3, W4 = 2 N4, W5 = 2 N5, W6 = 2 N6, W7= 2 N7, W8 = 2 N8, W9 = 2 N9, H1 = 2 M1, H2 = 2 M2, H3 = 2 M3, H4 = 2 M4, H5 = 2 M5, H6 = 2 M6, H7 = 2 M7, H8 = 2 M8, H9 = 2 M9.
e. In one example, the nine sub-blocks in a CTT partition may have both square blocks and rectangle blocks.
(a) In one example as shown in Fig. 11 (a) , W1=W/4, H1=H/4, W2 =W/2, H2=H/4, W3=W/4, H3=H/4, W4=W/4, H4=H/2, W5=W/2, H5=H/2, W6 = W/4, H6 =H/2 , W7=W/4, H7=H/4, W8=W/2, H8=H/4, W9=W/4, H9=H/4.
FIG. 11 shows the partition example of CTT.
f. In one example, the 9 sub-blocks are generated by applying two existing TT partitions together.
(a) In one example, the horizontal TT and the vertical TT are applied to one block together to get a CTT partition tree.
(b) FIG. 11 shows an example of CTT.
2. A block which is split into child blocks by CTT, may be split from a parent block by QT or BT or TT or CTT.
a. A block which may allow CTT partitions, may be a block generated by QT or BT or TT or CTT partitions.
b. For example, the maximum block that allows CTT partitions, may be the largest coding block (coding tree block or coding tree unit) .
c. For example, the maximum block that allows CTT partitions, may be the virtual pipeline data unit (VPDU) .
d. For example, a block which allows CTT partitions may be split from a parent block by one or some specific kinds of split methods. For example, a block which is split into child blocks by CTT, can only be split from a parent block by QT.
e. In one example, the maximum/minimum block size that could allow CTT partitions and/or the maximum bit depth that could allow CTT partitions may be signalled in SPS/PPS/VPS/APS/sequence header/picture header/slice header/tile group header/CTU row/regions, etc. al.
f. In one example, the maximum/minimum block size that could allow CTT partitions and/or the maximum bit depth that could allow CTT partitions may be dependent of profile/level/tier of a standard.
g. In one example, the maximum/minimum block size that could allow CTT partitions and/or the maximum bit depth that could allow CTT partitions may be derived, such as to be the same as that allow QT partitions.
3. A block which is split from a parent block by CTT, may be further split into child blocks by QT and/or BT and/or TT and/or CTT.
a. For example, a block which is split from a parent block by CTT, may be further split into child blocks by BT.
b. For example, a block which is split from a parent block by CTT, may be further split into child blocks by TT.
c. For example, a block which is split from a parent block by CTT, may be further split into child blocks by CTT and/or QT.
d. For example, a block which is split from a parent block by CTT, cannot be further split into child blocks by QT.
4. When a parent block is split into child blocks by CTT, the split depth of the child block may be derived from the split depth of the parent block.
a. In one example, the splitting due to CTT may be used to update the QT/BT/TT/CTT/MTT depth.
(a) In one example, the QT depth of one or all of the child blocks is equal to the QT depth of the parent block added by 1.
(b) In one example, the BT depth of one or all of the child blocks is equal to the BT depth of the parent block added by 1.
(c) In one example, the TT depth of one or all of the child blocks is equal to the TT depth of the parent block added by 1.
(d) In one example, the CTT depth of one or all of the child blocks is equal to the C CTT of the parent block added by 1.
(e) In one example, the MTT depth of one or all of the child block is equal to the MTT depth of the parent block added by 1.
1. For example, the MTT depth of the child block is equal to the MTT depth of the parent block added by 1 if the parent block is split into child blocks by BT.
2. For example, the MTT depth of the child block is equal to the MTT depth of the parent block added by 1 if the parent block is split into child blocks by TT.
3. Alternatively, the MTT depth of one or all of the child block is equal to the MTT depth of the parent block added by K, K>1. For example, K =2.
a. In one example, K may be different for different child blocks.
i. In one example, K = log2 (the size of the parent block/the size of the child block) .
b. In one example, the CTT/BT/TT/QT/MTT depth increasement for different child block may be different.
(a) The depth increasement is dependent on the ratio of a child block compared to the parent block.
5. Whether and how to use CTT may depend on color format (such as 4: 4: 4 or 4: 2: 0) and/or color components.
a. Whether and how to use CTT may depend on whether luma and chroma coding trees are separated.
b. In one example, CTT can only be applied on luma component when luma and chroma coding trees are separated.
6. Whether to apply CTT and/or which kind CTT is applied may be signaled from encoder to decoder.
a. In one example, CTT may be enabled when the indication of screen content video/picture/tile group is true, such as the tile group header tells that current tile group is screen content instead of camera captured content.
b. In one example, it may be signaled in VPS/SPS/PPS/picture header/slice header/tile group header/tile header to indicate whether CTT can be applied.
c. In one example, it may be signaled in VPS/SPS/PPS/picture header/slice header/tile group header/tile header to indicate which kinds of CTT can be applied.
d. In one example, it may be signaled in a block to indicate whether CTT is used to split that block.
e. In one example, it may be signaled in a block to indicate which kind of CTT is used to split that block.
f. In one example, an index of partition type may be signaled in a block to indicate whether a block is split by QT, or CTT or non-split.
g. In one example, an index of partition type may be signaled in a block to indicate whether a block is split by BT, or TT, or CTT.
(a) For example, this index may be conditionally signaled, such as only when at least one of BT, TT and CTT is valid for this block.
(b) Alternatively, furthermore, the splitting direction (horizonal/vertical) and/or splitting patterns may be further signalled.
(c) In one example, the splitting direction of CTT may not signalled.
h. In one example, a binarized code is signaled in a block to indicate which kind of split (BT, TT, or CTT) is used. In following examples, X represents 0 or 1 and Y= ~X (Y = 1 if X =0 and Y=0 if X=1) .
(a) In one example, a first flag is signaled to indicate whether CTT is used. For example, the binarized codewords orderly to represent BT, TT, CTT are XX, XY, Y.
7. In one example, how to signal which kind of split is used in a block may depend on which kinds of split are valid for the block. In following examples, X represents 0 or 1 and Y= ~X (Y = 1 if X =0 and Y=0 if X=1) .
a. In one example, the candidate BT, TT or CTT to be signaled depending on previously signaled or derived information.
b. For example, the non-allowed or invalid split cannot be signaled from the encoder to the decoder, i.e. there is no codeword to represent the non-allowed or invalid split.
c. In one example, if there is only one kind of split from BT, TT and CTT is valid, then the binarized code to indicate which kind of split (BT, TT, or CTT) is used is not signaled.
d. In one example, if there are only two kinds of split from BT, TT and CTT are valid, then a flag is signaled to indicate which one of the two valid splits is used.
e. In one example, the code to indicate which kind of split (BT, TT, or CTT) is binarized as a truncated unary code.
(a) For example, the maximum value of the truncated unary code is N-1, where N is the number of valid splits (BT, TT and CTT) .
(b) For example, no codeword represents an invalid split. In other words, the invalid split is skipped when building the codeword table.
f. In one example, if CTT is not valid, the flag indicating whether CTT is used is not signaled and inferred to be false. For example, the binarized codewords orderly to represent BT and TT are X and Y.
g. In one example, if only CTT is valid, no information is signaled. The CTT is used implicitly.
h. In one example, the binarization and/or signaling method is not changed according to which kinds of split is valid in the block. An invalid split cannot be chosen in a conformance bit-stream.
8. A bin (bit) of a bin string for indications of split types can be coded by arithmetic coding with one or multiple contexts.
a. In one example, only partial bins of a bin string may be coded with contexts and remaining bins may be coded with bypass mode (i.e., no context is utilized) .
b. Alternatively, all bins of a bin string may be coded with contexts.
c. Alternatively, all bins of a bin string may be coded with bypass mode.
d. For a bin coded with context, one or multiple contexts may be used.
e. The context may depend on:
(a) The position or index of the bin.
(b) The partitioning of spatial/temporal neighbouring blocks.
(c) The current partition depth (e.g., QT depth/BT depth/TT depth/CTT depth/MTT depth) of current block.
(d) The partition depth (e.g., QT depth/BT depth/TT depth/CTT depth/MTT depth) of spatial/temporal neighbouring blocks and/or spatial/temporal non-adjacent blocks.
(e) The coding modes of spatial/temporal neighbouring blocks.
(f) The width/height of spatial/temporal neighbouring blocks.
(g) The width/height of the current block
(h) Slice types/picture types/tile group type
(i) Color component
(j) Statistical results of partition types from previously coded blocks
9. CTT may not be allowed if a split child block cross more than one Virtual pipeline data units (VPDUs) .
10. CTT may not be allowed if the width/height of the current block satisfy some conditions. (Suppose the width and height of the current block are W and H, T1, T2 and T are some integers)
a. CTT may not be allowed if W>=T1 and H>=T2;
b. CTT may not be allowed if W>=T1 or H>=T2;
c. CTT may not be allowed if W<=T1 and H<=T2;
d. CTT may not be allowed if W<=T1 or H<=T2;
e. CTT may not be allowed if W×H<=T;
f. CTT may not be allowed if W×H>=T;
g. T1, T2 and T may be signaled from the encoder to the decoder in VPS/SPS/PPS/picture header/slice header/tile group header/tile header.
h. T1, T2 and T may depend on color components. For example, T1, T2 and T may be different for luma and chroma components.
i. T1, T2 and T may depend on whether luma coding tree and chroma coding tree are separated. For example, T1, T2 and T may be different for luma and chroma components if luma coding tree and chroma coding tree are separated.
j. Alternatively, when the transform is not supported for at least one child block due to CTT, CTT split may not be invalid.
k. Alternatively, when the depth of one block exceeding the allowed depth for CTT splitting, CTT split may not be invalid.
l. Alternatively, when any of a child block size exceeding the allowed block size due to CTT splitting, CTT split is invalid.
m. Alternatively, when horizontal or vertical TT is not allowed, CTT split may not be invalid.
11. CTT is allowed if the width/height of the current block satisfy some conditions. (Suppose the width and height of the current block are W and H, T1, T2 and T are some integers)
a. CTT is allowed if W>=T1 and H>=T2;
b. CTT is allowed if W>=T1 or H>=T2;
c. CTT is allowed if W<=T1 and H<=T2;
d. CTT is allowed if W<=T1 or H<=T2;
e. CTT is allowed if W×H<=T;
f. CTT is allowed if W×H>=T;
g. T1, T2 and T may be signaled from the encoder to the decoder in VPS/SPS/PPS/picture header/slice header/tile group header/tile header.
h. T1, T2 and T may depend on color components. For example, T1, T2 and T may be different for luma and chroma components.
i. T1, T2 and T may depend on whether luma coding tree and chroma coding tree are separated. For example, T1, T2 and T may be different for luma and chroma components if luma coding tree and chroma coding tree are separated.
12. CTT is not allowed if the depth of the current block satisfy some conditions. The depth of the current block may refer to QT depth, BT depth, TT depth, CTT depth or MTT depth.
a. CTT is not allowed if the split depth <=T;
b. CTT is not allowed if the split depth >=T;
c. CTT is not allowed if the QT split depth <=T;
d. CTT is not allowed if the QT split depth >=T;
e. CTT is not allowed if the BT split depth >=T;
f. CTT is not allowed if the BT split depth <=T;
g. CTT is not allowed if the TT split depth >=T;
h. CTT is not allowed if the TT split depth >=T;
i. CTT is not allowed if the CTT split depth <=T;
j. CTT is not allowed if the CTT split depth >=T;
k. CTT is not allowed if the MTT split depth <=T;
l. CTT is not allowed if the MTT split depth >=T;
m. T may be signaled from the encoder to the decoder in VPS/SPS/PPS/picture header/slice header/tile group header/tile header.
n. T may depend on color components. For example, T1, T2 and T may be different for luma and chroma components.
o. T may depend on whether luma coding tree and chroma coding tree are separated. For example, T1, T2 and T may be different for luma and chroma components if luma coding tree and chroma coding tree are separated.
13. CTT may be allowed if the depth of the current block satisfy some conditions. The depth of the current block may refer to QT depth, BT depth, TT depth, CTT depth or MTT depth.
a. CTT is allowed if the split depth <=T;
b. CTT is allowed if the split depth >=T;
c. CTT is allowed if the QT split depth <=T;
d. CTT is allowed if the QT split depth >=T;
e. CTT is allowed if the BT split depth >=T;
f. CTT is allowed if the BT split depth <=T;
g. CTT is allowed if the TT split depth >=T;
h. CTT is allowed if the TT split depth >=T;
i. CTT is allowed if the CTT split depth <=T;
j. CTT is allowed if the CTT split depth >=T;
k. CTT is allowed if the MTT split depth <=T;
l. CTT is allowed if the MTT split depth >=T;
m. T may be signaled from the encoder to the decoder in VPS/SPS/PPS/picture header/slice header/tile group header/tile header.
n. T may depend on color components. For example, T1, T2 and T may be different for luma and chroma components.
o. T may depend on whether luma coding tree and chroma coding tree are separated. For example, T1, T2 and T may be different for luma and chroma components if luma coding tree and chroma coding tree are separated.
14. In one example, some coding tools may be disallowed in a CU resulted from a CTT partition.
a. Alternatively, furthermore, in one example, the intra modes may be disallowed in a CU resulted from a QT/BT/TT/CTT/MTT partition. The corresponding signalling may be skipped.
b. Alternatively, furthermore, in one example, the inter modes may be disallowed in a CU resulted from a QT/BT/TT/CTT/MTT partition. The corresponding signalling may be skipped.
c. Alternatively, furthermore, in one example, the intra block copy modes may be disallowed in a CU resulted from a QT/BT/TT/CTT/MTT partition. The corresponding signalling may be skipped.
15. In one embodiment, whether and how to use CTT may depend on the position of the current block. For example, whether and how to use CTT may depend on the whether the current block crosses the picture/tile/tile group border or not.
a. In one example, CTT may not be allowed if the current block crosses the picture/tile/tile group right border.
b. In one example, if a child block split by CTT is totally out of the picture/tile/tile group, the child block may be omitted in the encoding/decoding process.
c. In one example, if a child block split by CTT is partially out of the picture/tile/tile group, the following may apply
(a) The part out of the picture may be omitted in the encoding/decoding process.
(b) The part inside the picture may be further split.
(c) The part inside the picture may be coded as a CU.
1. Whether the part inside the picture is coded as a CU may depend on the width (w) and height (h) of the part.
a. In one example, the part inside the picture may be coded as a CU if w=2 nw, h=2 nh, where nw and nh are integers.
d. In one example, if any child block split by CTT is partially/fully out of the picture/tile/tile group, CTT may be disallowed.
e. In one example, when CTT may be disallowed, the signalling of indication of the usage of the patterns is also skipped.
FIG. 12 is a block diagram of a video processing apparatus 1000. The apparatus 1000 may be used to implement one or more of the methods described herein. The apparatus 1000 may be embodied in a smartphone, tablet, computer, Internet of Things (IoT) receiver, and so on. The apparatus 1000 may include one or more processors 1002, one or more memories 1004 and video processing hardware 1006. The processor (s) 1002 may be configured to implement one or more methods described in the present document. The memory (memories) 1004 may be used for storing data and code used for implementing the methods and techniques described herein. The video processing hardware 1006 may be used to implement, in hardware circuitry, some techniques described in the present document.
FIG. 13 is a flowchart for an example method 1300 of video processing. The method 1300 includes splitting (1302) a current video block into 9 sub-blocks using a compound triple tree partition, and performing (1304) a conversion between the current video block and a bitstream representation of the current video block based on the splitting.
Additional embodiments and techniques can as described in the following examples, and further based on the embodiments listed in Section 4.
Example 1. A method of video processing, comprising:
splitting a current video block into 9 sub-blocks using a compound triple tree partition; and
performing a conversion between the current video block and a bitstream representation of the current video block based on the splitting.
Example 2. The method of Example 1, wherein the current video block is W pixels by H pixels and wherein the 9 sub-blocks comprise sub-blocks with dimensions W1×H1, W2×H2, W3×H3 , W4×H4, W5×H5, W6×H7, W7×H7 , W8×H8 and W9×H9. where W1, W2, W3, W4, W5, W6, W7, W8, W9, H1, H2, H3, H4, H5, H6, H7, H8, and H9 are all integers.
Example 3. The method of Example 2, wherein at least one sub-block of the 9 sub-blocks has dimensions different from the remaining sub-blocks.
Example 4. The method of any of Example s 1-3, wherein the 9 sub-blocks have corresponding four different sub-block sizes.
Example 5. The method of Example 1, wherein the current video block is a child block of a parent block obtained by a quadree or a binary tree or a tertiary tree or a compound triple tree partition.
Example 6. The method of any of Example 1-5, wherein at least one sub-block from the 9 sub-blocks is further partitioned using a quadree or a binary tree or a tertiary tree or a compound triple tree Example partition.
Example 7. The method of any of Example s 1 to 6, wherein the splitting operation is selectively performed only for a certain color format of the current video block.
Example 8. The method of any of Example s 1 to 7, wherein the bitstream representation includes a field indicative of a type of the compound triple tree partition used for the current video block.
Example 9. The method of any of Example s 1-8, wherein the bitstream representation uses arithmetic coding with one or more contexts based on split types of partitions used for partitioning the current video block.
Example 10. A method of video processing, comprising:
splitting a current video block into 9 sub-blocks using a compound triple tree partition (CTT) due to the current video block satisfying a size criterion; and
performing a conversion between the current video block and a bitstream representation of the current video block based on the splitting.
Example 11. The method of Example 10, wherein the current video block is W x H pixels and the CTT is allowed due to W>=T1 and H>=T2, where T1 and T2 are integers.
Example 12. The method of any of Examples 1-11, wherein the conversion includes generating the bitstream representation from the current video block or generating pixel values of the current video block from the bitstream representation.
Example 13. A video encoder apparatus comprising a processor configured to implement a method recited in any one or more of Examples 1 to 12.
Example 14. A video decoder apparatus comprising a processor configured to implement a method recited in any one or more of Examples 1 to 12.
Example 15. A computer-readable medium having code stored thereupon, the code, when executed, causing a processor to implement a method recited in any one or more of Examples 1 to 12.
FIG. 14 is a flowchart for an example method 1400 of video processing. The method 1400 includes determining (1402) , for a conversion between a first block of video and a bitstream representation of the first block of video, whether Compound Triple-Tree (CTT) partition is enabled or disabled, wherein CTT partition includes splitting the first block to nine smaller sized sub-blocks of the first block; and performing (1404) the conversion based on the determination.
In some examples, the first block has a dimension of width W × Height H, and the nine sub-blocks have dimensions of W1×H1, W2×H2, W3×H3 , W4×H4, W5×H5, W6×H7, W7×H7 , W8×H8 and W9×H9, respectively, where W, W1, W2, W3, W4, W5, W6, W7, W8, W9, H, H1, H2, H3, H4, H5, H6, H7, H8, and H9 are all integers.
In some examples, at least one sub-block of the nine sub-blocks has a dimension different from the dimensions of the other sub-blocks.
In some examples, the nine sub-blocks have four different dimensions.
In some examples, a first sub-block of the nine sub-blocks has a dimension of W1×H1, and a second sub-block of the nine sub-blocks has a different dimension of W2×H2, where W1 is different from W2 and/or H1 is different from H2.
In some examples, all parameters of the dimensions of the nine sub-blocks are in the form of power of 2.
In some examples, W1 = 2 N1, W2 = 2 N2, W3 = 2 N3, W4 = 2 N4, W5 = 2 N5, W6 = 2 N6,  W7= 2 N7, W8 = 2 N8, W9 = 2 N9, H1 = 2 M1, H2 = 2 M2, H3 = 2 M3, H4 = 2 M4, H5 = 2 M5, H6 = 2 M6, H7 = 2 M7, H8 = 2 M8, H9 = 2 M9, where N1-N9 and M1-M9 are integers.
In some examples, the nine sub-blocks in CTT partition have both square blocks and rectangle blocks.
In some examples, W1=W/4, H1=H/4, W2 =W/2, H2=H/4, W3=W/4, H3=H/4, W4=W/4, H4=H/2, W5=W/2, H5=H/2, W6 = W/4, H6 =H/2 , W7=W/4, H7=H/4, W8=W/2, H8=H/4, W9=W/4, H9=H/4.
In some examples, the nine sub-blocks in CTT partition are generated by applying two existing triple tree (TT) partitions together.
In some examples, the nine sub-blocks in CTT partition are generated by applying a horizontal TT partition and a vertical TT partition.
In some examples, the first block which is split into sub-blocks by CTT partition is split from the parent block by one or more specific partition types including quarter-tree (QT) or binary-tree (BT) or ternary-tree (TT) and CTT partitions, wherein QT partition splits a block both horizontally and vertically to produce four sub-blocks with an equal size, BT partition splits a block horizontally or vertically to produce two sub-blocks with an equal size, and TT partition splits a block horizontally or vertically to produce three sub-blocks and one sub-block has a height or a width equal to a half of the height or width of the block.
In some examples, the first block which allows CTT partitions is a block generated by one or more of QT or BT or TT and CTT partitions.
In some examples, the maximum block that allows CTT partitions is the largest coding block, which is coding tree block or coding tree unit.
In some examples, the maximum block that allows CTT partitions is a virtual pipeline data unit (VPDU) .
In some examples, the first block which allows CTT partitions is split from the parent block by one or more of quarter-tree (QT) or binary-tree (BT) or ternary-tree (TT) or CTT partitions.
In some examples, when the first block is split into the sub-blocks by CTT partition, the first block can only be split from the parent block by QT partition.
In some examples, the maximum and/or minimum block size that allow CTT partitions and/or the maximum bit depth and/or the maximum depth that allow CTT partitions are signalled  or parsed in at least one of video parameter set (VPS) , sequence parameter set (SPS) , picture parameter set (PPS) , adaptive parameter set (APS) , sequence header, picture header, slice header, tile group header, tile header, coding tree unit (CTU) row and regions.
In some examples, the maximum and/or minimum block size that allow CTT partitions and/or the maximum depth that allow CTT partitions depend on at least one of profile, level or tier of a standard.
In some examples, the maximum and/or minimum block size that allow CTT partitions and/or the maximum bit depth and/or the maximum depth that allow CTT partitions are derived to be the same as that allow QT partitions.
In some examples, the sub-block generated by CTT partition can be further split into child blocks by one or more specific partition types including QT, BT, TT and CTT partitions.
In some examples, the sub-block can be further split into child blocks by BT.
In some examples, the sub-block can be further split into child blocks by TT.
In some examples, the sub-block can be further split into child blocks by CTT and/or QT.
In some examples, the sub-block cannot be further split into child blocks by QT.
In some examples, when the first block is split into the sub-blocks by CTT partition, the split depth of the sub-block is derived from the split depth of the first block.
In some examples, the splitting due to CTT partition is used to update the at least one of QT, BT, TT, CTT or Multiple type trees (MTT) depth.
In some examples, the QT depth of one or all of the sub-blocks is equal to the QT depth of the first block added by 1.
In some examples, the BT depth of one or all of the sub-blocks is equal to the BT depth of the first block added by 1.
In some examples, the TT depth of one or all of the sub-blocks is equal to the TT depth of the first block added by 1.
In some examples, the CTT depth of one or all of the sub-blocks is equal to the CTT depth of the first block added by 1.
In some examples, the MTT depth of one or all of the sub-blocks is equal to the MTT depth of the first block added by 1.
In some examples, the MTT depth of the sub-block is equal to the MTT depth of the  first block added by 1 if the first block is split into sub-blocks by BT.
In some examples, the MTT depth of the sub-block is equal to the MTT depth of the first block added by 1 if the first block is split into sub-blocks by TT.
In some examples, the MTT depth of one or all of the sub-blocks is equal to the MTT depth of the first block added by K, K is an integer larger than 1.
In some examples, wherein K=2.
In some examples, K is different for different sub-blocks.
In some examples, K = log2 (size of the first block/size of the sub-block) .
In some examples, the CTT or BT or TT or QT or MTT depth increasement for different sub-block is different.
In some examples, the depth increasement is dependent on the ratio of a sub-block compared to the first block.
In some examples, whether and/or how to apply CTT partition depend on color format and/or color components.
In some examples, the color format includes 4: 4: 4 or 4: 2: 0.
In some examples, CTT partition can only be applied on luma component when luma and chroma coding trees are separated.
In some examples, whether to apply CTT partition and/or which kind of CTT partition is applied is determined based on information signaled from encoder to decoder.
In some examples, the information includes indication of at least one of screen content video, picture and tile group, and when the indication of at least one of screen content video, picture and tile group is true, CTT partition is enabled.
In some examples, the indication in the tile group header indicates that current tile group is screen content instead of camera captured content.
In some examples, the information is signaled in at least one of video parameter set (VPS) , sequence parameter set (SPS) , picture parameter set (PPS) , sequence header, picture header, slice header, tile group header, tile header, to indicate whether CTT partition can be applied.
In some examples, the information is signaled in at least one of video parameter set (VPS) , sequence parameter set (SPS) , picture parameter set (PPS) , sequence header, picture header, slice header, tile group header, tile header, to indicate which kinds of CTT partition can be applied.
In some examples, the information is signaled in a block to indicate whether CTT  partition can be applied.
In some examples, the information is signaled in a block to indicate which kinds of CTT partition can be applied.
In some examples, an index of partition type is signaled in a block to indicate whether a block is split by QT, or CTT or non-split.
In some examples, an index of partition type is signaled in a block to indicate whether a block is split by BT, or TT or CTT.
In some examples, the index is conditionally signaled only when at least one of BT, TT and CTT is valid for the block.
In some examples, splitting direction and/or splitting patterns are further signaled, the splitting direction including at least one of horizonal direction and vertical direction.
In some examples, the splitting direction of CTT partition is not signaled.
In some examples, a binarized code is signaled in a block to indicate which kind of partition is used, the partition being selected from group of BT, TT, and CTT.
In some examples, a first flag is signaled to indicate whether CTT is used.
In some examples, how to signal which kind of partitions is used in a block depends on which kinds of partitions are valid for the block.
In some examples, the partition candidate from group of BT, TT and CTT to be signaled depend on previously signaled or derived information.
In some examples, the non-allowed or invalid partition cannot be signaled from the encoder to the decoder.
In some examples, if there is only one kind of partition from group of BT, TT and CTT is valid, a binarized code to indicate which kind of partition is used is not signaled.
In some examples, if there are only two kinds of partition from group of BT, TT and CTT are valid, a flag is signaled to indicate which one of the two valid partitions is used.
In some examples, a code to indicate which kind of partition from group of BT, TT, and CTT is binarized as a truncated unary code.
In some examples, the maximum value of the truncated unary code is N-1, where N is the number of valid partitions from group of BT, TT and CTTs.
In some examples, the invalid partition is skipped when building a codeword table.
In some examples, if no CTT partition is valid, a flag indicating whether CTT is used  is not signaled and inferred to be false.
In some examples, if only CTT partition is valid, no information is signaled, and the valid CTT partition is used implicitly.
In some examples, the binarization and/or signaling method is not changed according to which kinds of partition is valid in the block.
In some examples, one or more bins of a bin string for indications of partition type is coded by arithmetic coding with one or multiple contexts.
In some examples, only partial bins of the bin string are coded with contexts and remaining bins are coded with bypass mode.
In some examples, all bins of the bin string are coded with contexts.
In some examples, all bins of the bin string are coded with bypass mode.
In some examples, for a bin coded with context, one or multiple contexts are used.
In some examples, the context depends on at least one of the following:
(a) the position or index of the bin;
(b) the partitioning of spatial/temporal neighbouring blocks;
(c) the current partition depth including at least one of QT depth, BT depth, TT depth, CTT depth and MTT depth of the first block;
(d) the partition depth including at least one of QT depth, BT depth, TT depth, CTT depth and MTT depth of spatial/temporal neighbouring blocks and/or spatial/temporal non-adjacent blocks of the first block;
(e) the coding modes of spatial/temporal neighbouring blocks of the first block;
(f) the width/height of spatial/temporal neighbouring blocks of the first block;
(g) the width/height of the first block;
(h) slice types/picture types/tile group type;
(i) color component;
(j) statistical results of partition types from previously coded blocks.
In some examples, if one of the sub-block crosses more than one Virtual pipeline data units (VPDUs) , CTT partition is disabled.
In some examples, if width W and/or height H of the first block satisfy predetermined conditions, CTT partition is disabled.
In some examples, if W>= T1 and H>= T2, CTT partition is disabled, T1 and T2 are  integers.
In some examples, if W>= T1 or H>= T2, CTT partition is disabled, T1 and T2 are integers.
In some examples, if W<= T1 and H<= T2, CTT partition is disabled, T1 and T2 are integers.
In some examples, if W<= T1 or H<= T2, CTT partition is disabled, T1 and T2 are integers.
In some examples, if W×H<= T, CTT partition is disabled, T is an integer.
In some examples, if W×H>= T, CTT partition is disabled, T is an integer.
In some examples, T1 and T2 are signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
In some examples, T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
In some examples, T1 and T2 depend on color components.
In some examples, T depend on color components.
In some examples, T1 and T2 are different for luma and chroma components.
In some examples, T is different for luma and chroma components.
In some examples, T1 and T2 depend on whether luma coding tree and chroma coding tree are separated.
In some examples, T depend on whether luma coding tree and chroma coding tree are separated.
In some examples, T1 and T2 are different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
In some examples, T is different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
In some examples, when transform is not supported for at least one of the sub-blocks generated by CTT partition, CTT partition is disabled.
In some examples, when the depth of the first block exceeds the allowed depth for CTT partition, CTT partition is disabled.
In some examples, when any of a sub-block size due to CTT partition exceeds the allowed block size, CTT partition is disabled.
In some examples, when horizontal or vertical TT is not allowed, CTT partition is disabled.
In some examples, if width W and/or height H of the first block satisfy predetermined conditions, CTT partition is enabled.
In some examples, if W>= T1 and H>= T2, CTT partition is enabled, T1 and T2 are integers.
In some examples, if W>= T1 or H>= T2, CTT partition is enabled, T1 and T2 are integers.
In some examples, if W<= T1 and H<= T2, CTT partition is enabled, T1 and T2 are integers.
In some examples, if W<= T1 or H<= T2, CTT partition is enabled, T1 and T2 are integers.
In some examples, if W×H<= T, CTT partition is enabled, T is an integer.
In some examples, if W×H>= T, CTT partition is enabled, T is an integer.
In some examples, T1 and T2 are signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
In some examples, T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
In some examples, T1 and T2 depend on color components.
In some examples, T depend on color components.
In some examples, T1 and T2 are different for luma and chroma components.
In some examples, T is different for luma and chroma components.
In some examples, T1 and T2 depend on whether luma coding tree and chroma coding tree are separated.
In some examples, T depend on whether luma coding tree and chroma coding tree are separated.
In some examples, T1 and T2 are different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
In some examples, T is different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
In some examples, if partition depth of the first block satisfy predetermined conditions,  CTT partition is disabled, the partition depth of the first block including at least one of QT partition depth, BT partition depth, TT partition depth, CTT partition depth and MTT partition depth of the first block.
In some examples, if the partition depth <= T, CTT partition is disabled, T is an integer.
In some examples, if the partition depth >= T, CTT partition is disabled, T is an integer.
In some examples, if the QT partition depth <= T, CTT partition is disabled, T is an integer.
In some examples, if the QT partition depth >= T, CTT partition is disabled, T is an integer.
In some examples, if the BT partition depth <= T, CTT partition is disabled, T is an integer.
In some examples, if the BT partition depth >= T, CTT partition is disabled, T is an integer.
In some examples, if the TT partition depth <= T, CTT partition is disabled, T is an integer.
In some examples, if the TT partition depth >= T, CTT partition is disabled, T is an integer.
In some examples, if the CTT partition depth <= T, CTT partition is disabled, T is an integer.
In some examples, if the CTT partition depth >= T, CTT partition is disabled, T is an integer.
In some examples, if the MTT partition depth <= T, CTT partition is disabled, T is an integer.
In some examples, if the MTT partition depth >= T, CTT partition is disabled, T is an integer.
In some examples, T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
In some examples, T depends on color components.
In some examples, T is different for luma and chroma components.
In some examples, T depends on whether luma coding tree and chroma coding tree are separated.
In some examples, T is different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
In some examples, if partition depth of the first block satisfy predetermined conditions, CTT partition is enabled, the partition depth of the first block including at least one of QT partition depth, BT partition depth, TT partition depth, CTT partition depth and MTT partition depth of the first block.
In some examples, if the partition depth <= T, CTT partition is enabled, T is an integer.
In some examples, if the partition depth >= T, CTT partition is enabled, T is an integer.
In some examples, if the QT partition depth <= T, CTT partition is enabled, T is an integer.
In some examples, if the QT partition depth >= T, CTT partition is enabled, T is an integer.
In some examples, if the BT partition depth <= T, CTT partition is enabled, T is an integer.
In some examples, if the BT partition depth >= T, CTT partition is enabled, T is an integer.
In some examples, if the TT partition depth <= T, CTT partition is enabled, T is an integer.
In some examples, if the TT partition depth >= T, CTT partition is enabled, T is an integer.
In some examples, if the CTT partition depth <= T, CTT partition is enabled, T is an integer.
In some examples, if the CTT partition depth >= T, CTT partition is enabled, T is an integer.
In some examples, if the MTT partition depth <= T, CTT partition is enabled, T is an integer.
In some examples, if the MTT partition depth >= T, CTT partition is enabled, T is an integer.
In some examples, T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
In some examples, T depends on color components.
In some examples, T is different for luma and chroma components.
In some examples, T depends on whether luma coding tree and chroma coding tree are separated.
In some examples, T is different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
In some examples, one or more coding tools are disabled in a coding unit (CU) generated by CTT partition.
In some examples, intra modes are disabled in a coding unit (CU) generated by at least one of QT, BT, TT, CTT and MTT partition.
In some examples, inter modes are disabled in a coding unit (CU) generated by at least one of QT, BT, TT, CTT and MTT partition.
In some examples, intra block copy modes are disabled in a coding unit (CU) generated by at least one of QT, BT, TT, CTT and MTT partition.
In some examples, signaling associated with the one or more coding tools is skipped.
In some examples, whether and/or how to use CTT partition depends on position of the first block.
In some examples, whether and how to use the CTT partition depend on whether the first block crosses the picture, or tile, or tile group border or not.
In some examples, CTT partition is disabled if the first block crosses the picture, or tile, or tile group right border.
In some examples, if a sub-block split by CTT partition is totally out of the picture, or tile, or tile group, the sub-block is omitted during the conversion.
In some examples, if a sub-block split by CTT partition is partially out of the picture, or tile, or tile group, the part out of the picture is omitted during the conversion.
In some examples, if a sub-block split by the CTT partition is partially out of the picture, or tile, or tile group, the part inside the picture is further split.
In some examples, if a sub-block split by the CTT partition is partially out of the picture, or tile, or tile group, the part inside the picture is coded as a coding unit (CU) .
In some examples, whether the part inside the picture is coded as a CU which depends on the width (w) and height (h) of the part.
In some examples, the part inside the picture is coded as a CU if w=2 nw, h=2 nh, where  nw and nh are integers.
In some examples, if any sub-block split by the CTT partition is partially or fully out of the picture or tile or tile group, CTT partition is disabled.
In some examples, when CTT partition is disabled, the signaling of indication of the usage of CTT pattern is skipped.
In some examples, the conversion generates the first block of video from the bitstream representation.
In some examples, the conversion generates the bitstream representation from the first block of video.
It will be appreciated that the disclosed techniques may be embodied in video encoders or decoders to improve compression efficiency using additional partitioning techniques described herein.
The disclosed and other solutions, examples, embodiments, modules and the functional operations described in this document can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this document and their structural equivalents, or in combinations of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more them. The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus.
A computer program (also known as a program, software, software application,  script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document) , in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code) . A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this document can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit) .
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random-access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
While this patent document contains many specifics, these should not be  construed as limitations on the scope of any subject matter or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular techniques. Certain features that are described in this patent document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Moreover, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.
Only a few implementations and examples are described and other implementations, enhancements and variations can be made based on what is described and illustrated in this patent document.

Claims (169)

  1. A method of video processing, comprising:
    determining, for a conversion between a first block of video and a bitstream representation of the first block of video, whether Compound Triple-Tree (CTT) partition is enabled or disabled, wherein CTT partition includes splitting the first block to nine smaller sized sub-blocks of the first block; and
    performing the conversion based on the determination.
  2. The method of claim 1, wherein the first block has a dimension of width W × Height H, and the nine sub-blocks have dimensions of W1×H1, W2×H2, W3×H3 , W4×H4, W5×H5, W6×H7, W7×H7 , W8×H8 and W9×H9, respectively, where W, W1, W2, W3, W4, W5, W6, W7, W8, W9, H, H1, H2, H3, H4, H5, H6, H7, H8, and H9 are all integers.
  3. The method of claim 1 or 2, wherein at least one sub-block of the nine sub-blocks has a dimension different from the dimensions of the other sub-blocks.
  4. The method of any of claims 1-3, wherein the nine sub-blocks have four different dimensions.
  5. The method of claim 4, wherein a first sub-block of the nine sub-blocks has a dimension of W1×H1, and a second sub-block of the nine sub-blocks has a different dimension of W2×H2, where W1 is different from W2 and/or H1 is different from H2.
  6. The method of any of claims 1-5, wherein all parameters of the dimensions of the nine sub-blocks are in the form of power of 2.
  7. The method of claim 6, wherein W1 = 2 N1, W2 = 2 N2, W3 = 2 N3, W4 = 2 N4, W5 = 2 N5, W6 = 2 N6, W7= 2 N7, W8 = 2 N8, W9 = 2 N9, H1 = 2 M1, H2 = 2 M2, H3 = 2 M3, H4 = 2 M4, H5 = 2 M5, H6 =2 M6, H7 = 2 M7, H8 = 2 M8, H9 = 2 M9, where N1-N9 and M1-M9 are integers.
  8. The method of any of claims 1-7, wherein the nine sub-blocks in CTT partition have both square blocks and rectangle blocks.
  9. The method of claim 8, wherein W1=W/4, H1=H/4, W2 =W/2, H2=H/4, W3=W/4, H3=H/4, W4=W/4, H4=H/2, W5=W/2, H5=H/2, W6 = W/4, H6 =H/2 , W7=W/4, H7=H/4, W8=W/2, H8=H/4, W9=W/4, H9=H/4.
  10. The method of any of claims 1-9, wherein the nine sub-blocks in CTT partition are generated by applying two existing triple tree (TT) partitions together.
  11. The method of claim 10, wherein the nine sub-blocks in CTT partition are generated by applying a horizontal TT partition and a vertical TT partition.
  12. The method of any of claims 1-11, wherein the first block which is split into sub-blocks by CTT partition is split from the parent block by one or more specific partition types including quarter-tree (QT) or binary-tree (BT) or ternary-tree (TT) and CTT partitions, wherein QT partition splits a block both horizontally and vertically to produce four sub-blocks with an equal size, BT partition splits a block horizontally or vertically to produce two sub-blocks with an equal size, and TT partition splits a block horizontally or vertically to produce three sub-blocks and one sub-block has a height or a width equal to a half of the height or width of the block.
  13. The method of claim 12, wherein the first block which allows CTT partitions is a block generated by one or more of QT or BT or TT and CTT partitions.
  14. The method of claim 12, wherein the maximum block that allows CTT partitions is the largest coding block, which is coding tree block or coding tree unit.
  15. The method of claim 12, wherein the maximum block that allows CTT partitions is a virtual pipeline data unit (VPDU) .
  16. The method of claim 12, wherein the first block which allows CTT partitions is split from the parent block by one or more of quarter-tree (QT) or binary-tree (BT) or ternary-tree (TT) or CTT partitions.
  17. The method of claim 16, wherein when the first block is split into the sub-blocks by CTT partition, the first block can only be split from the parent block by QT partition.
  18. The method of claim 12, wherein the maximum and/or minimum block size that allow CTT partitions and/or the maximum bit depth and/or the maximum depth that allow CTT partitions are signalled or parsed in at least one of video parameter set (VPS) , sequence parameter set (SPS) , picture parameter set (PPS) , adaptive parameter set (APS) , sequence header, picture header, slice header, tile group header, tile header, coding tree unit (CTU) row and regions.
  19. The method of claim 12, wherein the maximum and/or minimum block size that allow CTT partitions and/or the maximum depth that allow CTT partitions depend on at least one of profile, level or tier of a standard.
  20. The method of claim 12, wherein the maximum and/or minimum block size that allow CTT partitions and/or the maximum bit depth and/or the maximum depth that allow CTT partitions are derived to be the same as that allow QT partitions.
  21. The method of any of claims 1-20, wherein the sub-block generated by CTT partition can be further split into child blocks by one or more specific partition types including QT, BT, TT and CTT partitions.
  22. The method of claim 21, wherein the sub-block can be further split into child blocks by BT.
  23. The method of claim 21, wherein the sub-block can be further split into child blocks by TT.
  24. The method of claim 21, wherein the sub-block can be further split into child blocks by CTT and/or QT.
  25. The method of claim 21, wherein the sub-block cannot be further split into child blocks by QT.
  26. The method of any of claims 1-25, wherein when the first block is split into the sub-blocks by CTT partition, the split depth of the sub-block is derived from the split depth of the first block.
  27. The method of claim 26, wherein the splitting due to CTT partition is used to update the at least one of QT, BT, TT, CTT or Multiple type trees (MTT) depth.
  28. The method of claim 27, wherein the QT depth of one or all of the sub-blocks is equal to the QT depth of the first block added by 1.
  29. The method of claim 27, wherein the BT depth of one or all of the sub-blocks is equal to the BT depth of the first block added by 1.
  30. The method of claim 27, wherein the TT depth of one or all of the sub-blocks is equal to the TT depth of the first block added by 1.
  31. The method of claim 27, wherein the CTT depth of one or all of the sub-blocks is equal to the CTT depth of the first block added by 1.
  32. The method of claim 27, wherein the MTT depth of one or all of the sub-blocks is equal to the MTT depth of the first block added by 1.
  33. The method of claim 32, wherein the MTT depth of the sub-block is equal to the MTT depth of the first block added by 1 if the first block is split into sub-blocks by BT.
  34. The method of claim 32, wherein the MTT depth of the sub-block is equal to the MTT depth of the first block added by 1 if the first block is split into sub-blocks by TT.
  35. The method of claim 27, wherein the MTT depth of one or all of the sub-blocks is equal to the MTT depth of the first block added by K, K is an integer larger than 1.
  36. The method of claim 35, wherein K=2.
  37. The method of claim 35, wherein K is different for different sub-blocks.
  38. The method of claim 37, wherein K = log2 (size of the first block/size of the sub-block) .
  39. The method of claim 27, wherein the CTT or BT or TT or QT or MTT depth increasement for different sub-block is different.
  40. The method of claim 39, wherein the depth increasement is dependent on the ratio of a sub-block compared to the first block.
  41. The method of any of claims 1-40, wherein whether and/or how to apply CTT partition depend on color format and/or color components.
  42. The method of claim 41, wherein the color format includes 4: 4: 4 or 4: 2: 0.
  43. The method of claim 41, wherein CTT partition can only be applied on luma component when luma and chroma coding trees are separated.
  44. The method of any of claims 1-43, wherein whether to apply CTT partition and/or which kind of CTT partition is applied is determined based on information signaled from encoder to decoder.
  45. The method of claim 44, wherein the information includes indication of at least one of screen content video, picture and tile group, and when the indication of at least one of screen content video, picture and tile group is true, CTT partition is enabled.
  46. The method of claim 45, wherein the indication in the tile group header indicates that current tile group is screen content instead of camera captured content.
  47. The method of claim 44, wherein the information is signaled in at least one of video parameter set (VPS) , sequence parameter set (SPS) , picture parameter set (PPS) , sequence header, picture header, slice header, tile group header, tile header, to indicate whether CTT partition can be applied.
  48. The method of claim 44, wherein the information is signaled in at least one of video parameter set (VPS) , sequence parameter set (SPS) , picture parameter set (PPS) , sequence header, picture header, slice header, tile group header, tile header, to indicate which kinds of CTT partition can be applied.
  49. The method of claim 44, wherein the information is signaled in a block to indicate whether CTT partition can be applied.
  50. The method of claim 44, wherein the information is signaled in a block to indicate which kinds of CTT partition can be applied.
  51. The method of claim 44, wherein an index of partition type is signaled in a block to indicate whether a block is split by QT, or CTT or non-split.
  52. The method of claim 44, wherein an index of partition type is signaled in a block to indicate whether a block is split by BT, or TT or CTT.
  53. The method of claim 52, wherein the index is conditionally signaled only when at least one of BT, TT and CTT is valid for the block.
  54. The method of claim 52, wherein splitting direction and/or splitting patterns are further signaled, the splitting direction including at least one of horizonal direction and vertical direction.
  55. The method of claim 52, wherein the splitting direction of CTT partition is not signaled.
  56. The method of claim 44, wherein a binarized code is signaled in a block to indicate which kind of partition is used, the partition being selected from group of BT, TT, and CTT.
  57. The method of claim 56, wherein a first flag is signaled to indicate whether CTT is used.
  58. The method of any of claims 44-57, wherein how to signal which kind of partitions is used in a block depends on which kinds of partitions are valid for the block.
  59. The method of claim 58, wherein the partition candidate from group of BT, TT and CTT to be signaled depend on previously signaled or derived information.
  60. The method of claim 58, wherein the non-allowed or invalid partition cannot be signaled from the encoder to the decoder.
  61. The method of claim 58, wherein if there is only one kind of partition from group of BT, TT and CTT is valid, a binarized code to indicate which kind of partition is used is not signaled.
  62. The method of claim 58, wherein if there are only two kinds of partition from group of BT, TT and CTT are valid, a flag is signaled to indicate which one of the two valid partitions is used.
  63. The method of claim 58, wherein a code to indicate which kind of partition from group of BT, TT, and CTT is binarized as a truncated unary code.
  64. The method of claim 63, wherein the maximum value of the truncated unary code is N-1, where N is the number of valid partitions from group of BT, TT and CTTs.
  65. The method of claim 63, wherein the invalid partition is skipped when building a codeword table.
  66. The method of claim 58, wherein if no CTT partition is valid, a flag indicating whether CTT is used is not signaled and inferred to be false.
  67. The method of claim 58, wherein if only CTT partition is valid, no information is signaled, and the valid CTT partition is used implicitly.
  68. The method of claim 58, wherein the binarization and/or signaling method is not changed according to which kinds of partition is valid in the block.
  69. The method of any of claims 44-68, wherein one or more bins of a bin string for indications of partition type is coded by arithmetic coding with one or multiple contexts.
  70. The method of claim 69, wherein only partial bins of the bin string are coded with contexts and remaining bins are coded with bypass mode.
  71. The method of claim 69, wherein all bins of the bin string are coded with contexts.
  72. The method of claim 69, wherein all bins of the bin string are coded with bypass mode.
  73. The method of any of claims 69-72, wherein for a bin coded with context, one or multiple contexts are used.
  74. The method of any of claim 69-73, wherein the context depends on at least one of the following:
    (a) the position or index of the bin;
    (b) the partitioning of spatial/temporal neighbouring blocks;
    (c) the current partition depth including at least one of QT depth, BT depth, TT depth, CTT depth and MTT depth of the first block;
    (d) the partition depth including at least one of QT depth, BT depth, TT depth, CTT depth and MTT depth of spatial/temporal neighbouring blocks and/or spatial/temporal non-adjacent blocks of the first block;
    (e) the coding modes of spatial/temporal neighbouring blocks of the first block;
    (f) the width/height of spatial/temporal neighbouring blocks of the first block;
    (g) the width/height of the first block;
    (h) slice types/picture types/tile group type;
    (i) color component;
    (j) statistical results of partition types from previously coded blocks.
  75. The method of any of claims 1-74, wherein if one of the sub-block crosses more than one Virtual pipeline data units (VPDUs) , CTT partition is disabled.
  76. The method of any of claims 1-74, wherein if width W and/or height H of the first block satisfy predetermined conditions, CTT partition is disabled.
  77. The method of claim 76, wherein if W>= T1 and H>= T2, CTT partition is disabled, T1 and T2 are integers.
  78. The method of claim 76, wherein if W>= T1 or H>= T2, CTT partition is disabled, T1 and T2 are integers.
  79. The method of claim 76, wherein if W<= T1 and H<= T2, CTT partition is disabled, T1 and T2 are integers.
  80. The method of claim 76, wherein if W<= T1 or H<= T2, CTT partition is disabled, T1 and T2 are integers.
  81. The method of claim 76, wherein if W×H<= T, CTT partition is disabled, T is an integer.
  82. The method of claim 76, wherein if W×H>= T, CTT partition is disabled, T is an integer.
  83. The method of any of claims 77-80, wherein T1 and T2 are signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
  84. The method of any of claims 81-82, wherein T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
  85. The method of any of claims 77-80 and 83, wherein T1 and T2 depend on color components.
  86. The method of any of claims 81-82 and 84, wherein T depend on color components.
  87. The method of claim 85, wherein T1 and T2 are different for luma and chroma components.
  88. The method of claim 86, wherein T is different for luma and chroma components.
  89. The method of any of claims 77-80 and 83, wherein T1 and T2 depend on whether luma coding tree and chroma coding tree are separated.
  90. The method of any of claims 81-82 and 84, wherein T depend on whether luma coding tree and chroma coding tree are separated.
  91. The method of claim 89, wherein T1 and T2 are different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
  92. The method of claim 90, wherein T is different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
  93. The method of any of claims 76-92, wherein when transform is not supported for at least one of the sub-blocks generated by CTT partition, CTT partition is disabled.
  94. The method of any of claims 76-92, wherein when the depth of the first block exceeds the allowed depth for CTT partition, CTT partition is disabled.
  95. The method of any of claims76-92, wherein when any of a sub-block size due to CTT partition exceeds the allowed block size, CTT partition is disabled.
  96. The method of any of claims 76-92, wherein when horizontal or vertical TT is not allowed, CTT partition is disabled.
  97. The method of any of claims 1-74, wherein if width W and/or height H of the first block satisfy predetermined conditions, CTT partition is enabled.
  98. The method of claim 97, wherein if W>= T1 and H>= T2, CTT partition is enabled, T1 and T2 are integers.
  99. The method of claim 97, wherein if W>= T1 or H>= T2, CTT partition is enabled, T1 and T2 are integers.
  100. The method of claim 97, wherein if W<= T1 and H<= T2, CTT partition is enabled, T1 and T2 are integers.
  101. The method of claim 97, wherein if W<= T1 or H<= T2, CTT partition is enabled, T1 and T2 are integers.
  102. The method of claim 97, wherein if W×H<= T, CTT partition is enabled, T is an integer.
  103. The method of claim 97, wherein if W×H>= T, CTT partition is enabled, T is an integer.
  104. The method of any of claims 98-101, wherein T1 and T2 are signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
  105. The method of any of claims 102-103, wherein T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
  106. The method of any of claims 98-101 and 104, wherein T1 and T2 depend on color components.
  107. The method of any of claims 102-103 and 105, wherein T depend on color components.
  108. The method of claim 106, wherein T1 and T2 are different for luma and chroma components.
  109. The method of claim 107, wherein T is different for luma and chroma components.
  110. The method of any of claims 98-101 and 104, wherein T1 and T2 depend on whether luma coding tree and chroma coding tree are separated.
  111. The method of any of claims 102-103 and 105, wherein T depend on whether luma coding tree and chroma coding tree are separated.
  112. The method of claim 110, wherein T1 and T2 are different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
  113. The method of claim 111, wherein T is different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
  114. The method of any of claims 1-74, wherein if partition depth of the first block satisfy predetermined conditions, CTT partition is disabled, the partition depth of the first block including at least one of QT partition depth, BT partition depth, TT partition depth, CTT partition depth and MTT partition depth of the first block.
  115. The method of claim 114, wherein if the partition depth <= T, CTT partition is disabled, T is an integer.
  116. The method of claim 114, wherein if the partition depth >= T, CTT partition is disabled, T is an integer.
  117. The method of claim 114, wherein if the QT partition depth <= T, CTT partition is disabled, T is an integer.
  118. The method of claim 114, wherein if the QT partition depth >= T, CTT partition is disabled, T is an integer.
  119. The method of claim 114, wherein if the BT partition depth <= T, CTT partition is disabled, T is an integer.
  120. The method of claim 114, wherein if the BT partition depth >= T, CTT partition is disabled, T is an integer.
  121. The method of claim 114, wherein if the TT partition depth <= T, CTT partition is disabled, T is an integer.
  122. The method of claim 114, wherein if the TT partition depth >= T, CTT partition is disabled, T is an integer.
  123. The method of claim 114, wherein if the CTT partition depth <= T, CTT partition is disabled, T is an integer.
  124. The method of claim 114, wherein if the CTT partition depth >= T, CTT partition is disabled, T is an integer.
  125. The method of claim 114, wherein if the MTT partition depth <= T, CTT partition is disabled, T is an integer.
  126. The method of claim 114, wherein if the MTT partition depth >= T, CTT partition is disabled, T is an integer.
  127. The method of any of claims 114-126, wherein T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
  128. The method of any of claims 114-126, wherein T depends on color components.
  129. The method of claim 128, wherein T is different for luma and chroma components.
  130. The method of any of claims 114-126, wherein T depends on whether luma coding tree and chroma coding tree are separated.
  131. The method of claim 130, wherein T is different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
  132. The method of any of claims 1-74, wherein if partition depth of the first block satisfy predetermined conditions, CTT partition is enabled, the partition depth of the first block including at least one of QT partition depth, BT partition depth, TT partition depth, CTT partition depth and MTT partition depth of the first block.
  133. The method of claim 132, wherein if the partition depth <= T, CTT partition is enabled, T is an integer.
  134. The method of claim 132, wherein if the partition depth >= T, CTT partition is enabled, T is an integer.
  135. The method of claim 132, wherein if the QT partition depth <= T, CTT partition is enabled, T is an integer.
  136. The method of claim 132, wherein if the QT partition depth >= T, CTT partition is enabled, T is an integer.
  137. The method of claim 132, wherein if the BT partition depth <= T, CTT partition is enabled, T is an integer.
  138. The method of claim 132, wherein if the BT partition depth >= T, CTT partition is enabled, T is an integer.
  139. The method of claim 132, wherein if the TT partition depth <= T, CTT partition is enabled, T is an integer.
  140. The method of claim 132, wherein if the TT partition depth >= T, CTT partition is enabled, T is an integer.
  141. The method of claim 132, wherein if the CTT partition depth <= T, CTT partition is enabled, T is an integer.
  142. The method of claim 132, wherein if the CTT partition depth >= T, CTT partition is enabled, T is an integer.
  143. The method of claim 132, wherein if the MTT partition depth <= T, CTT partition is enabled, T is an integer.
  144. The method of claim 132, wherein if the MTT partition depth >= T, CTT partition is enabled, T is an integer.
  145. The method of any of claims 132-144, wherein T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice header, tile group header and tile header.
  146. The method of any of claims 132-144, wherein T depends on color components.
  147. The method of claim 146, wherein T is different for luma and chroma components.
  148. The method of any of claims 132-144, wherein T depends on whether luma coding tree and chroma coding tree are separated.
  149. The method of claim 148, wherein T is different for luma and chroma components if the luma coding tree and the chroma coding tree are separated.
  150. The method of claims 1-149, wherein one or more coding tools are disabled in a coding unit (CU) generated by CTT partition.
  151. The method of claims 1-150, wherein intra modes are disabled in a coding unit (CU) generated by at least one of QT, BT, TT, CTT and MTT partition.
  152. The method of claims 1-150, wherein inter modes are disabled in a coding unit (CU) generated by at least one of QT, BT, TT, CTT and MTT partition.
  153. The method of claims 1-150, wherein intra block copy modes are disabled in a coding unit (CU) generated by at least one of QT, BT, TT, CTT and MTT partition.
  154. The method of any of claims 150-153, wherein signalling associated with the one or more coding tools is skipped.
  155. The method of any of claims 1 -154, wherein whether and/or how to use CTT partition depends on position of the first block.
  156. The method of claim 155, wherein whether and how to use the CTT partition depend on whether the first block crosses the picture, or tile, or tile group border or not.
  157. The method of claim 156, wherein CTT partition is disabled if the first block crosses the picture, or tile, or tile group right border.
  158. The method of claim 156, wherein if a sub-block split by CTT partition is totally out of the picture, or tile, or tile group, the sub-block is omitted during the conversion.
  159. The method of claim 156, wherein if a sub-block split by CTT partition is partially out of the picture, or tile, or tile group, the part out of the picture is omitted during the conversion.
  160. The method of claim 156, wherein if a sub-block split by the CTT partition is partially out of the picture, or tile, or tile group, the part inside the picture is further split.
  161. The method of claim 156, wherein if a sub-block split by the CTT partition is partially out of the picture, or tile, or tile group, the part inside the picture is coded as a coding unit (CU) .
  162. The method of claim 161, wherein whether the part inside the picture is coded as a CU which depends on the width (w) and height (h) of the part.
  163. The method of claim 162, wherein the part inside the picture is coded as a CU if w=2 nw, h=2 nh, where nw and nh are integers.
  164. The method of claim 156, wherein if any sub-block split by the CTT partition is partially or fully out of the picture or tile or tile group, CTT partition is disabled.
  165. The method of any of claims 156 -164, wherein when CTT partition is disabled, the signaling of indication of the usage of CTT pattern is skipped.
  166. The method of anyone of claims 1 to 165, wherein the conversion generates the first block of video from the bitstream representation.
  167. The method of anyone of claims 1 to 165, wherein the conversion generates the bitstream representation from the first block of video.
  168. An apparatus in a video system comprising a processor and a non-transitory memory with instructions thereon, wherein the instructions upon execution by the processor, cause the processor to implement the method in any one of claims 1 to 167.
  169. A computer program product stored on a non-transitory computer readable media, the computer program product including program code for carrying out the method in any one of claims 1 to 167.
PCT/CN2020/078936 2019-03-12 2020-03-12 Compound triple tree in video coding WO2020182182A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202080020189.4A CN113557746A (en) 2019-03-12 2020-03-12 Composite ternary tree in video coding and decoding

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/077810 2019-03-12
CN2019077810 2019-03-12

Publications (1)

Publication Number Publication Date
WO2020182182A1 true WO2020182182A1 (en) 2020-09-17

Family

ID=72426333

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/078936 WO2020182182A1 (en) 2019-03-12 2020-03-12 Compound triple tree in video coding

Country Status (2)

Country Link
CN (1) CN113557746A (en)
WO (1) WO2020182182A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022214055A1 (en) * 2021-04-09 2022-10-13 Beijing Bytedance Network Technology Co., Ltd. Interaction of multiple partitions

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180020241A1 (en) * 2016-07-15 2018-01-18 Qualcomm Incorporated Signaling of quantization information in non-quadtree-only partitioned video coding
US20180109812A1 (en) * 2016-10-14 2018-04-19 Media Tek Inc. Block partitioning using tree structures
CN107948661A (en) * 2016-10-12 2018-04-20 联发科技股份有限公司 Method for processing video frequency and device
WO2018110600A1 (en) * 2016-12-16 2018-06-21 シャープ株式会社 Image decoding device and image coding device
WO2018129322A1 (en) * 2017-01-06 2018-07-12 Qualcomm Incorporated Multi-type-tree framework for video coding
CN108464001A (en) * 2016-01-15 2018-08-28 高通股份有限公司 Polymorphic type tree frame for video coding
WO2018155986A2 (en) * 2017-02-24 2018-08-30 주식회사 케이티 Video signal processing method and apparatus

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108464001A (en) * 2016-01-15 2018-08-28 高通股份有限公司 Polymorphic type tree frame for video coding
US20180020241A1 (en) * 2016-07-15 2018-01-18 Qualcomm Incorporated Signaling of quantization information in non-quadtree-only partitioned video coding
CN107948661A (en) * 2016-10-12 2018-04-20 联发科技股份有限公司 Method for processing video frequency and device
US20180109812A1 (en) * 2016-10-14 2018-04-19 Media Tek Inc. Block partitioning using tree structures
WO2018110600A1 (en) * 2016-12-16 2018-06-21 シャープ株式会社 Image decoding device and image coding device
WO2018129322A1 (en) * 2017-01-06 2018-07-12 Qualcomm Incorporated Multi-type-tree framework for video coding
WO2018155986A2 (en) * 2017-02-24 2018-08-30 주식회사 케이티 Video signal processing method and apparatus

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JICHENG AN , YU-CHEN SUN , JAN LOU: "CE1-related: Flexible Luma and Chroma Block Partitioning Trees Separation", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, no. L0184, 12 October 2018 (2018-10-12), Macao,CN, pages 1 - 5, XP030193936 *
XIANG LI , HSIAO-CHIANG CHUANG , JIANLE CHEN , MARTA KARCZEWICZ , LI ZHANG , XIN ZHAO , AMIR SAID: "Multi-Type-Tree", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, no. D0117r1, 21 October 2016 (2016-10-21), Chengdu , CN, pages 1 - 3, XP030150367 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022214055A1 (en) * 2021-04-09 2022-10-13 Beijing Bytedance Network Technology Co., Ltd. Interaction of multiple partitions

Also Published As

Publication number Publication date
CN113557746A (en) 2021-10-26

Similar Documents

Publication Publication Date Title
US11438635B2 (en) Flexible tree partitioning processes for visual media coding
CN110719479B (en) Cross-component encoded information derivation
CN113519164A (en) Limitation of the segmentation structure
US11228761B2 (en) Border handling for extended quadtree partitions
TWI820195B (en) Redundancy removal of partitioning methods
WO2020156572A1 (en) Unsymmetrical quad-tree partitioning
JP7332795B2 (en) Base size constraints for chroma intra mode
WO2020164479A1 (en) Video block partition based on quinary tree
CN113711615A (en) Non-quadratic partition tree in video compression
WO2020182182A1 (en) Compound triple tree in video coding
WO2022206995A1 (en) Constraints on partitioning of video blocks
WO2022174769A1 (en) Unsymmetric binary tree partitioning and non-dyadic blocks
WO2022214055A1 (en) Interaction of multiple partitions
WO2022213920A1 (en) Partition signaling in video coding
WO2022171071A1 (en) Video decoder initialization information signaling

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20770179

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 26/01/2022)

122 Ep: pct application non-entry in european phase

Ref document number: 20770179

Country of ref document: EP

Kind code of ref document: A1