Limitations of using non-power-of-two partitioning trees in video compression

By using a non-power-of-two partition tree (NPT-T) to divide the video block into sub-blocks of non-power-of-two integer size, the problem of increasing decoder complexity in the existing technology is solved, and more efficient video encoding and decoding effects are achieved.

CN113711602BActive Publication Date: 2025-10-03DOUYIN VISION CO LTD +1
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202080014624.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-02-15
Filing Date
2020-02-17
Publication Date
2025-10-03
Estimated Expiration
2040-02-17

AI Technical Summary

Technical Problem

Existing video coding standards introduce additional transform/quantization matrices when processing blocks with width or height not equal to a power of two, which increases the complexity of the decoder, and other types of partitioning structures that divide blocks into more than two asymmetric partitions have not been fully studied.

Method used

A non-power-of-two partitioning tree (NPT-T) is used to partition a video block into one or more smaller sub-blocks, where the width or height of at least one sub-block is a non-power-of-two integer, and transform size constraints are applied for conversion. NPT-T partitioning is selectively enabled or disabled, and associated transform parameters and constraints are determined.

Benefits of technology

By avoiding the introduction of additional transformation matrices, the complexity of the decoder is reduced, while the efficiency and quality of video encoding and decoding are improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113711602B_ABST
    Figure CN113711602B_ABST
Patent Text Reader

Abstract

Limitations on the use of non-power-of-two partitioning trees in video compression are described. In an exemplary aspect, a method for video processing includes: determining whether non-power-of-two partitioning tree (NPT-T) partitioning is enabled or disabled for conversion between a video and a bitstream representation of the video, wherein the NPT-T partitioning includes partitioning a first block of the video into a plurality of smaller-sized sub-blocks of the first block, and at least one of the sub-blocks has a width (Wi) and / or a height (Hi) that is a non-power-of-two integer; in response to determining that the NPT-T partitioning is allowed, determining limitations associated with the use of the NPT-T partitioning; and performing the conversion based on the determination.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is intended to claim priority to and the benefit of International Patent Application No. PCT / CN2019 / 075170, filed on February 15, 2019, in a timely manner under applicable patent law and / or under the Paris Convention. The entire disclosure of International Patent Application No. PCT / CN2019 / 075170 is incorporated by reference as part of the disclosure of this application. Technical Field

[0002] This document covers video and image encoding and decoding. Background Art

[0003] Digital video accounts for the largest use of bandwidth on the Internet and other digital communications networks. As the number of connected user devices capable of receiving and displaying video increases, bandwidth demand for digital video usage is expected to continue to grow. Summary of the Invention

[0004] This document discloses a video encoding and decoding tool that, in one example aspect, enables a video encoder and decoder to encode or decode a video bitstream in which video blocks are encoded using partitions whose sizes are non-power-of-two integers.

[0005] In one example aspect, a method of video processing is disclosed. The method includes: enabling use of a non-power-of-two partitioning tree (NPT-T) for conversion between a video and a bitstream representation of the video, wherein the NPT-T includes partitioning a video block into one or more smaller-sized sub-blocks of the video block, and at least one sub-block has a width or height having a pixel size that is a non-power-of-two integer; and performing the conversion using the NPT-T.

[0006] In another example aspect, another method of video processing is disclosed, the method comprising: applying a transform size constraint to a conversion between a sub-video block and a bitstream representation of the sub-video block, wherein the sub-video block is partitioned from the video block and has a pixel size that is a non-power-of-two (NPT) integer; and performing the conversion using the transform size constraint.

[0007] In yet another example aspect, another method of video processing is disclosed, the method comprising: selectively applying a conversion between a video block and a bitstream representation of the video block based on a usage rule for using a non-power-of-two tree (NPT-T) partitioning of the video block, the video block or one or more smaller-sized sub-blocks of the video having a pixel size that is a non-power-of-two (NPT) integer; and performing the conversion using the usage rule.

[0008] In yet another example aspect, another method of video processing is disclosed, the method comprising: selectively applying, based on a usage indication, a non-power-of-two tree (NPT-T) partitioning of a video block to a conversion between a video block and a bitstream representation of the video block, wherein the video block or one or more smaller sub-blocks of the video have a pixel size that is a non-power-of-two (NPT) integer; and performing the conversion corresponding to the usage indication.

[0009] In another example aspect, another method of video processing is disclosed. The method includes: determining whether to enable or disable use of a non-power-of-two partitioning tree (NPT-T) for conversion between a first block of video and a bitstream representation of the first block of video, wherein the NPT-T includes partitioning the first block into a plurality of smaller sub-blocks of the first block, and a width and / or height of at least one sub-block having a size that is a non-power-of-two integer; and in response to determining that the NPT-T is enabled, performing the conversion based on the NPT-T.

[0010] In another example aspect, another method of video processing is disclosed. The method includes: dividing a first block of a video into a plurality of sub-blocks including a first sub-block, wherein at least one of a width (Wi) and a height (Hi) of a block size of the first sub-block is a non-power-of-two integer; determining transform parameters associated with a transform block of the first sub-block for converting between the first sub-block and a bitstream representation of the first sub-block, wherein one or more of a width (TWi) and a height (THi) of the block size of the transform block is smaller than the width (Wi) and the height (Hi) of the first sub-block, and at least one of TWi or THi is a power of two; and performing the conversion by using the transform parameters.

[0011] In another example aspect, another method of video processing is disclosed. The method includes: determining whether non-power-of-two partitioning tree (NPT-T) partitioning is enabled or disabled for conversion between a video and a bitstream representation of the video, wherein the NPT-T partitioning includes partitioning a first block of the video into a plurality of smaller-sized sub-blocks of the first block, and a width (Wi) and / or a height (Hi) of at least one of the sub-blocks is a non-power-of-two integer; in response to determining that the NPT-T partitioning is enabled, determining restrictions associated with the use of the NPT-T partitioning; and performing the conversion based on the determination.

[0012] In another example aspect, the above method may be implemented by a video encoder device or a video decoder device including a processor.

[0013] In yet another example aspect, the methods may be stored on a computer-readable program medium in the form of processor-executable instructions.

[0014] These and other aspects are described further throughout this document. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Figure 1 An example of MB partitioning in H.264 / AVC is shown.

[0016] Figure 2 An example pattern for partitioning a codec block into prediction blocks is shown.

[0017] Figure 3A-Figure 3B The codec tree with its partitioning and the corresponding quadtree are shown.

[0018] Figure 4A-4B An example diagram of a QTBT structure is provided.

[0019] Figure 5 An example of allowing segmentation in video codec is shown.

[0020] Figure 6 An example of an allowed split between a parent partition (solid line) and a current partition (dashed line) is shown.

[0021] Figure 7A-7B as follows. Figure 7A An example of EQT horizontal mode is shown. Figure 7B An example of EQT vertical mode is shown.

[0022] Figure 8 The signaling structure of the quad-binary tree (QTBT) plus EQT partitioning is shown.

[0023] Figures 9A-9H An example of an asymmetric quadtree partition is shown.

[0024] Figures 10A-10B An example of penttree partitioning is shown.

[0025] Figure 11 An example of QTBT segmentation is shown.

[0026] Figure 12 Shown are different partitionings used in video codecs.

[0027] Figure 13A An example is shown in which PIdx0 and PIdx1 have the same size.

[0028] Figure 13B An example is shown in which PIdx0 and PIdx2 have the same size.

[0029] Figure 13C An example of K=5 and L0=4 is shown.

[0030] Figure 14 An example of a non-power-of-two tree (NPT-T) partition is shown (where K=5, L0=2, L1=2).

[0031] Figures 15A-15B An example of (OffsetX, OffsetY) being set to (0, 0) is shown.

[0032] Figures 16A-16B Another example of (OffsetX, OffsetY) being set to (0, 0) is shown.

[0033] Figure 17 An example of a hardware platform for implementing the techniques described in this document is shown.

[0034] Figure 18 is a flow chart of an example method of video processing.

[0035] Figure 19 is a flow chart of an example method of video processing.

[0036] Figure 20 is a flow chart of an example method of video processing.

[0037] Figure 21 is a flow chart of an example method of video processing. DETAILED DESCRIPTION

[0038] This document provides various techniques that can be used by decoders of video bitstreams to improve the quality of decompressed or decoded digital video. In addition, video encoders can also implement these techniques during the encoding process to reconstruct decoded frames for further encoding.

[0039] For ease of understanding, section headings are used in this document and do not limit the embodiments and techniques to the corresponding sections. Thus, embodiments from one section can be combined with embodiments from other sections.

[0040] 1. Overview

[0041] This document relates to image / video codecs, specifically to transform design for blocks whose width or height is not equal to a power of two. More specifically, for such a partitioned structure, how to avoid introducing additional transform / quantization matrices. It can be applied to existing video codec standards (such as HEVC) or to a standard to be completed (Universal Video Codec). It may also be applicable to future video codec standards or video codecs.

[0042] 2. Brief Discussion

[0043] Video codec standards have evolved primarily through the development of the well-known ITU-T and ISO / IEC standards. 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, H.264 / MPEG-4 Advanced Video Codec (AVC), and H.265 / HEVC standards. Since H.262, video codec standards have been based on a hybrid video codec architecture that utilizes temporal prediction plus transform coding. To explore future video codec technologies beyond HEVC, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET) in 2015. Since then, JVET has adopted many new methods and incorporated them into reference software called the Joint Exploration Model (JEM). In April 2018, the Joint Video Experts Team (JVET) between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) was established to work on the VVC standard with the goal of a 50% bitrate reduction compared to HEVC.

[0044] 2.1 Segmentation Tree Structure in H.264 / AVC

[0045] The terms used in H.264 / AVS are macroblock and MB mode / 8x8 mode (partitioning). Macroblock is the unit into which each picture / slice is divided and intra / inter mode determination is applied. Partitioning also defines the level of motion information signaling.

[0046] The core of the codec layer in H.264 / AVC is the macroblock, which consists of a 16x16 block of luma samples and, in the usual case of 4:2:0 color sampling, two corresponding 8x8 blocks of chroma samples.

[0047] 2.1.1 H.264 / AVC Main Profile

[0048] The intra codec block uses spatial prediction to exploit the spatial correlation between pixels. Two partitions are defined: 16x16 and 4x4.

[0049] Inter-codec blocks use temporal prediction instead of spatial prediction by estimating motion between pictures. Motion can be estimated independently for a 16x16 macroblock or any of its macroblock partitions (16x8, 8x16, 8x8). A syntax element (MB-mode) is signaled to indicate whether 16x16, 16x8, 8x16, or 8x8 is selected. If 8x8 is selected, another syntax element (8x8-mode) is further signaled to indicate whether 8x8, 8x4, 4x8, 4x4 (see Figure 1 ). Only one motion vector (MV) per partition is allowed.

[0050] Figure 1 An example of MB partitioning in H.264 / AVC is shown.

[0051] Only 4x4 transforms are utilized.

[0052] 2.1.2 H.264 / AVC High Profile

[0053] In the high-definition table, 8x8 transform and I_8x8 (8x8 intra prediction) are introduced. For intra-frame coding and decoding macroblocks, the transform size is fixed: I_16x6 and I_4x4 use 4x4 transform; I_8x8 uses 8x8 transform.

[0054] For inter-coded macroblocks, a 4x4 or 8x8 transform can be selected. However, the transform size cannot exceed the partition size. For example, if a macroblock selects 8x8 partitioning and further selects 8x4 submode, only a 4x4 transform can be applied. If a macroblock selects 16x16, 16x8, 8x16, or 8x8 partitioning and 8x8 submode, a 4x4 or 8x8 transform can be selected.

[0055] 2.1.3 Overview

[0056] Mode selection is determined at the macroblock level. The transform size should not be larger than the partition size.

[0057] 2.2 Segmentation Tree Structure in HEVC

[0058] In HEVC, the codec tree unit (CTU, also known as the largest codec unit LCU) is divided into codec units (CU) using a quadtree structure represented as a codec tree to accommodate various local characteristics. The decision whether to use inter-picture (temporal domain) or intra-picture (spatial domain) prediction to encode and decode a picture area is made at the CU level. Depending on the PU partition type, each CU can be further divided into one, two or four PUs. Within a PU, the same prediction process is applied, and relevant information is sent to the decoder on a PU basis. After obtaining the residual block by applying the prediction process based on the PU partition type, the CU can be divided into transform units (TU) according to another quadtree structure similar to the codec tree of the PU. A key feature of the HEVC structure is that it has a multi-partition concept, including CU, PU and TU.

[0059] In the following, various features involved in hybrid video coding using HEVC are highlighted as follows.

[0060] 1) Codec Tree Unit and Codec Tree Block (CTB) Structure: HEVC's analogous structure is the Codec Tree Unit (CTU), whose size is chosen by the encoder and can be larger than a traditional macroblock. A CTU consists of a luma CTB and corresponding chroma CTBs, along with syntax elements. The luma CTB size, L×L, can be chosen to be L=16, 32, or 64 samples, with larger sizes generally achieving better compression. HEVC then supports splitting the CTB into smaller blocks using a tree structure and quadtree-like signaling.

[0061] 2) Codec Unit (CU) and Codec Block (CB): The quadtree syntax of a CTU specifies the size and position of its luma and chroma CBs. The root of the quadtree is associated with the CTU. Therefore, the size of the luma CTB is the maximum supported size of the luma CB. The partitioning of the CTU into luma and chroma CBs is jointly signaled. One luma CB and typically two chroma CBs, together with the associated syntax, form a codec unit (CU). A CTB can contain only one CU or can be partitioned to form multiple CUs, and each CU has an associated partition called a prediction unit (PU) and a tree of transform units (TUs).

[0062] 3) Prediction Unit (PU) and Prediction Block (PB): The decision to use inter-picture or intra-picture prediction to encode or decode a picture region is made at the CU level. The PU partitioning structure is rooted at the CU level. Based on the basic prediction type, the luma and chroma CBs are then further split in size and predicted based on luma and chroma prediction blocks (PBs). HEVC supports variable PB sizes from 64×64 down to 4×4 samples. Figure 2 The allowed PBs are depicted.

[0063] Figure 2 An example mode of partitioning a CB into multiple PBs under certain size constraints is shown. For intra picture prediction CB, only MxM and M / 2x M / 2 are supported.

[0064] 4) Transform Unit (TU) and Transform Block: The prediction residual is encoded and decoded using a block transform. The root of the TU tree structure is at the CU level. The luma CB residual can be the same as the luma transform block (TB), or can be further divided into smaller luma TBs. The same applies to the chroma TBs. Integer basis functions similar to those of the discrete cosine transform (DCT) are defined for square TB sizes 4×4, 8×8, 16×16, and 32×32. For the 4×4 transform of the luma intra picture prediction residual, an integer transform derived from the form of the discrete sine transform (DST) can be specified instead.

[0065] Figure 3A-3BAn example of subdividing a CTB into CB and TB is shown. The solid line indicates the CB boundary, and the dashed line indicates the TB boundary.

[0066] 2.2.1 Depth of Quadtree

[0067] For a given luma CB of size M×M, a flag signals whether it is split into four blocks of size M / 2×M / 2. If further splitting is possible, as signaled by the maximum depth of the residual quadtree indicated in the SPS, each quadrant is assigned a flag indicating whether it is split into four quadrants. The leaf node blocks produced by the residual quadtree are transform blocks that are further processed by the transform codec. The encoder indicates the maximum and minimum luma TB sizes it will use. When the CB size is larger than the maximum TB size, the split is implicit. When the split would result in the luma TB size being smaller than the indicated minimum, no split is implicit. The chroma TB size is half the luma TB size in each dimension, except when the luma TB size is 4×4 (in which case a single 4×4 chroma TB is used for the area covered by four 4×4 luma TBs). In the case of an intra-picture predicted CU, the decoded samples of the nearest neighboring TB (inside or outside the CB) are used as reference data for intra-picture prediction.

[0068] 2.2.2 Overview

[0069] Based on the increasing depth of the quadtree, a CTU can be recursively divided into multiple CUs. Figure 3A-Figure 3B As shown, only square CB and TB partitions are specified, where blocks can be recursively divided into quadrants.

[0070] Mode selection is determined at the CU level. Side information related to the selected mode, such as motion information and intra prediction mode, is signaled at the PU level. The residual is signaled at the TU level.

[0071] For inter-coded blocks, a PU should not be larger than a CU, and for intra-coded blocks, a PU should be equal to a CU.

[0072] For inter-frame codec blocks, TU can cross PUs, but for intra-frame codec blocks, TU should be equal to PU.

[0073] 2.3 Quadtree plus binary tree block structure with larger CTU in JEM

[0074] To explore future video coding technologies beyond HEVC, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET) in 2015. Since then, many new methods have been adopted by JVET and incorporated into reference software called the Joint Exploration Model (JEM).

[0075] 2.3.1QTBT Block Partition Structure

[0076] Different from HEVC, the QTBT structure removes the separation of CU, PU and TU concepts and supports more flexibility in CU partitioning shapes. In the QTBT block structure, CU can have a square or rectangular shape. Figure 5 As shown, the codec 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 types of partitioning in the binary tree partitioning, symmetrical horizontal partitioning and symmetrical vertical partitioning. The binary leaf nodes are called codec units (CUs), and the segmentation is used for prediction and transform processing without any further partitioning. This means that CU, PU and TU have the same block size in the QTBT codec block structure. In JEM, a CU sometimes consists of codec blocks (CBs) of different color components, for example, a CU contains one luminance CB and two chroma CBs in the case of P slices and B slices in a 4:2:0 chroma format, and sometimes consists of CBs of a single component, for example, a CU contains only one luminance CB or only two chroma CBs in the case of an I slice.

[0077] Define the following parameters for the QTBT segmentation scheme:

[0078] –CTU size: the root node size of the quadtree, the same concept as in HEVC

[0079] –MinQTSize: Minimum allowed quadtree leaf node size

[0080] –MaxBTSize: Maximum allowed binary tree root node size

[0081] –MaxBTDepth: Maximum allowed binary tree depth

[0082] –MinBTSize: minimum allowed binary tree leaf node size

[0083] In one example of a QTBT partitioning structure, the CTU size is set to 128×128 luma samples and two corresponding 64×64 chroma sample blocks, MinQTSize is set to 16×16, MaxBTSize is set to 64×64, MinBTSize (for both width and height) is set to 4×4, and MaxBTDepth is set to 4. Quadtree partitioning is first applied to the CTU to generate quadtree leaf nodes. Quadtree leaf nodes can have sizes from 16×16 (i.e., MinQTSize) to 128×128 (i.e., CTU size). If a leaf quadtree node is 128×128, it will not be further partitioned by the binary tree because the size exceeds MaxBTSize (i.e., 64×64). Otherwise, the leaf quadtree node can be further partitioned by the binary tree. Therefore, the quadtree leaf node is also the root node of the binary tree, and its binary tree depth is 0. When the binary tree depth reaches MaxBTDepth (i.e., 4), no further splits are considered. When the width of a binary tree node is equal to MinBTSize (i.e., 4), no further horizontal splits are considered. Similarly, when the height of a binary tree node is equal to MinBTSize, no further vertical splits are considered. The leaf nodes of the binary tree are further processed by prediction and transform processing without any further splitting. In JEM, the maximum CTU size is 256×256 luma samples.

[0084] Figure 4A An example of block segmentation by using QTBT is shown, and Figure 4B The corresponding tree representation is shown. Solid lines indicate quadtree partitioning, and dashed lines indicate binary tree partitioning. In each partition (i.e., non-leaf) node of the binary tree, a flag is signaled to indicate which partition type is used (i.e., horizontal or vertical), where 0 indicates horizontal partitioning and 1 indicates vertical partitioning. For quadtree partitioning, there is no need to indicate the partition type because quadtree partitioning always partitions the block horizontally and vertically to produce 4 sub-blocks of the same size.

[0085] Figure 4A-4B An example diagram of a QTBT structure is provided.

[0086] In addition, the QTBT scheme supports the ability to have separate QTBT structures for luma and chroma. Currently, for P and B slices, the luma CTB and chroma CTB in a CTU share the same QTBT structure. However, for I slices, the luma CTB is split into CUs using the QTBT structure, and the chroma CTB is split into chroma CUs using another QTBT structure. This means that a CU in an I slice consists of a codec block for the luma component or a codec block for two chroma components, and a CU in a P or B slice consists of codec blocks for all three color components.

[0087] In HEVC, inter prediction for small blocks is restricted to reduce memory access for motion compensation, so that bidirectional prediction is not supported for 4×8 blocks and 8×4 blocks, and inter prediction is not supported for 4×4 blocks. In JEM's QTBT, these restrictions are removed.

[0088] 2.3.2 QTBT Overview

[0089] A CTU can be recursively partitioned into multiple CUs based on increasing depth of the quadtree or binary tree. Square and rectangular CBs (width / height equal to 1 / 2 or 2) are specified.

[0090] Mode selection is determined at CU level. PU and TU are always equal to CU.

[0091] 2.4 VVC Multi-Type Tree (MTT)

[0092] 2.4.1 Proposal

[0093] It is proposed to support tree types other than quadtree and binary tree. In an embodiment, Figure 5 As shown in (e) and (f), two more ternary tree (TT) splits are introduced, namely horizontal and vertical center-side ternary trees.

[0094] Figure 5 , examples of allowed partitions in VVC: (a) no further partitioning (b) quadtree partitioning (c) horizontal binary tree (horizontal BT) partitioning (d) vertical binary tree (vertical BT) partitioning (e) horizontal center-side ternary tree (horizontal TT) partitioning (f) vertical center-side ternary tree partitioning (vertical TT)

[0095] Note that a partition in BT / TT can be further partitioned using BT / TT. Therefore, rectangular blocks are allowed.

[0096] There are two levels of trees, the region tree (quadtree) and the prediction tree (binary tree or ternary tree). The CTU is first partitioned using the region tree (RT). The RT leaves can be further partitioned using the prediction tree (PT). The PT leaves can also be further partitioned using the PT until the maximum PT depth is reached. The PT leaf is the basic codec unit. For convenience, it is still referred to as the CU. The CU cannot be further partitioned. Prediction and transform are applied to the CU in the same way as JEM. The entire partitioning structure is named "multi-type tree".

[0097] 2.4.2 Segmentation Tree in VVC

[0098] Three types of partitioning structures are supported: QT, BT, and TT. Blocks partitioned from QT can be further partitioned using QT / BT / TT. Blocks partitioned from BT or TT can be further partitioned into BT or TT. However, blocks partitioned from BT or TT cannot be further partitioned into QT.

[0099] Figure 6 An example of allowed splits between a parent partition (solid line) and a current partition (dashed line) is shown. A line with an "X" means that such a split is not allowed.

[0100] In VVC, several variables are signaled / derived to control the use of different partitions. For example:

[0101] – Maximum multi-type tree depth, with separate offsets maxMttDepth for luma and chroma,

[0102] – Maximum binary tree size maxBtSize / ternary tree size maxTtSize

[0103] –Minimum quadtree size MinQtSize / binary tree size MinBtSize / ternary tree size minTtSize

[0104] 2.4.2.1.1 Allowable binary partitioning processes

[0105] The inputs to this process are:

[0106] – binary split mode btSplit,

[0107] – Codec block width cbWidth,

[0108] – Codec block height cbHeight,

[0109] – the position (x0, y0) of the top left luma sample of the considered codec block relative to the top left luma sample of the picture,

[0110] –Multi-type tree depth mttDepth,

[0111] – Maximum multi-type tree depth, with offset maxMttDepth,

[0112] – Maximum binary tree size maxBtSize,

[0113] – Split index partIdx.

[0114] The output of this process is the variable allowBtSplit.

[0115] Table 2-1 – Specifications of parallelTtSplit and cbSize based on btSplit

[0116] btSplit == SPLIT_BT_VER btSplit == SPLIT_BT_HOR parallelTtSplit SPLIT_TT_VER SPLIT_TT_HOR cbSize cbWidth cbHeight

[0117] The variables parallelTtSplit and cbSize are derived as specified in Table 2-1.

[0118] The variable allowBtSplit is derived as follows:

[0119] – allowBtSplit is set equal to FALSE if one or more of the following conditions are true:

[0120] / / Based on the block size and the maximum allowed MTT depth

[0121] –cbSize is less than or equal to MinBtSizeY

[0122] –cbWidth is greater than maxBtSize

[0123] –cbHeight is greater than maxBtSize

[0124] –mttDepth is greater than or equal to maxMttDepth

[0125] – Otherwise, if all of the following conditions are true, then allowBtSplit is set equal to FALSE

[0126] / / According to the picture boundary (there is no vertical BT at the bottom picture boundary and the lower right picture boundary)

[0127] –btSplit equals SPLIT_BT_VER

[0128] –y0+cbHeight is greater than pic_height_in_luma_samples

[0129] – Otherwise, if all of the following conditions are true, then allowBtSplit is set equal to FALSE

[0130] / / According to the picture boundary (there is no horizontal BT at the right picture boundary)

[0131] –btSplit is equal to SPLIT_BT_HOR

[0132] –x0+cbWidth is greater than pic_width_in_luma_samples

[0133] –y0+cbHeight is less than or equal to pic_height_in_luma_samples

[0134] Otherwise, if all of the following conditions are true, allowBtSplit is set equal to FALSE:

[0135] / / According to the TT segmentation in the above level (mttDepth-1)

[0136] –mttDepth is greater than 0

[0137] –partIdx is equal to 1

[0138] –MttSplitMode[x0][y0][mttDepth-1] equals parallelTtSplit

[0139] / / According to the transform size (for example, when MaxTbSizeY is equal to 64, for 64x128, there is no vertical BT; for 128x64, there is no horizontal BT)

[0140] – Otherwise, if all of the following conditions are true, then allowBtSplit is set equal to FALSE

[0141] –btSplit equals SPLIT_BT_VER

[0142] –cbWidth is less than or equal to MaxTbSizeY

[0143] –cbHeight is greater than MaxTbSizeY

[0144] – Otherwise, if all of the following conditions are true, then allowBtSplit is set equal to FALSE

[0145] –btSplit is equal to SPLIT_BT_HOR

[0146] –cbWidth is greater than MaxTbSizeY

[0147] –cbHeight is less than or equal to MaxTbSizeY

[0148] – Otherwise, allowBtSplit is set equal to TRUE.

[0149] 2.4.2.1.2 Allowable ternary division process

[0150] The inputs to this process are:

[0151] – ternary division mode ttSplit,

[0152] – Codec block width cbWidth,

[0153] – Codec block height cbHeight,

[0154] – the position (x0, y0) of the top left luma sample of the considered codec block relative to the top left luma sample of the picture,

[0155] –Multi-type tree depth mttDepth

[0156] – Maximum multi-type tree depth, with offset maxMttDepth,

[0157] – Maximum binary tree size maxTtSize.

[0158] – The output of this process is the variable allowTtSplit.

[0159] Table 2-2 – Specification of cbSize based on ttSplit.

[0160] ttSplit==SPLIT_TT_VER ttSplit==SPLIT_TT_HOR cbSize cbWidth cbHeight

[0161] The variable cbSize is derived as specified in Table 2-2.

[0162] The variable allowTtSplit is derived as follows:

[0163] – allowTtSplit is set equal to FALSE if one or more of the following conditions are true:

[0164] / / According to the block size

[0165] –cbSize is less than or equal to 2*MinTtSizeY

[0166] –cbWidth is greater than Min(MaxTbSizeY,maxTtSize)

[0167] –cbHeight is greater than Min(MaxTbSizeY,maxTtSize)

[0168] / / According to the maximum allowed MTT depth

[0169] –mttDepth is greater than or equal to maxMttDepth

[0170] / / According to whether it is at the border of the picture

[0171] –x0+cbWidth is greater than pic_width_in_luma_samples

[0172] –y0+cbHeight is greater than pic_height_in_luma_samples

[0173] – Otherwise, allowTtSplit is set equal to TRUE.

[0174] 2.5 Segmentation Tree Structure in AVS3

[0175] In AVS3, extended quadtree (EQT) partitioning is adopted, which further extends the QTBT scheme and increases partitioning flexibility. More specifically, EQT divides the parent CU into four child CUs of different sizes, which can fully model local image content that cannot be finely represented by QTBT. At the same time, EQT partitioning allows interleaving with BT partitioning for enhanced adaptability.

[0176] Using EQT partitioning, the parent CU is divided into four sub-CUs with different sizes. Figure 7A-7B As shown, EQT splits an MxN parent CU into two MxN / 4CUs and two M / 2xN / 2CUs horizontally. Similarly, EQT vertically splits into two NxM / 4CUs and two M / 2xN / 2CUs. Specifically, the EQT subblock size is always a power of 2, so that no additional transform is required.

[0177] Figure 7A An example of EQT horizontal mode is shown. Figure 7B An example of EQT vertical mode is shown.

[0178] In the QTBT structure, the QT split flag is first signaled to indicate whether the current CU is split by QT. Therefore, when this ag is false, the second signal will be encoded to indicate whether the current CU split mode is non-split or BT split. For BT split CU, the third binary bit (DIR) is signaled to distinguish horizontal BT or vertical BT split. When EQT split is introduced, in the case where both BT and EQT are available, an additional binary bit called EQT is signaled to indicate whether it is EQT split, such as Figure 8 shown.

[0179] Figure 8 The signaling structure of QTBT plus EQT segmentation is shown.

[0180] 2.6 UQT

[0181] An unsymmetrical quadtree (UQT) partitioning is proposed. Using UQT, a block of size W×H is divided into four partitions of size W1×H1, W2×H2, W3×H3, and W4×H4, where W1, W2, W3, W4, H1, H2, H3, and H4 are all integers. All parameters are in the form of powers of 2. For example, W1=2 N1 , W2=2 N2 , W3=2 N3, W4=2 N4 , H1=2 M1 , H2=2 M2 , H3=2 M3 , H4=2 M4 .exist Figures 9A-9H Some examples are given in .

[0182] Figures 9A-9H Some cases of UQT are shown.

[0183] 2.7UQI-T

[0184] Several methods are proposed to introduce other kinds of partition structures that can divide a block into more than 4 partitions.

[0185] In one example, a quinary tree (QUI-T) partitioning is proposed. Figures 10A-10B An example is shown in .

[0186] Figures 10A-10B An example case of UQI-T by dividing one W*H block into five smaller blocks is shown.

[0187] Figure 10A It shows that W0+W1+W2+W3+W4=W; H0=H1=H2=H3=H4=H.

[0188] Figure 10B It shows that W0+W1+W2=W3+W4=W; H0=H1=H2; H3=H4; H0+H3=H.

[0189] In addition, there are other hexatree, hepttree, and octree partitioning (SnT, StT, OctT), where a block can be divided into 6, 7, or 8 smaller blocks.

[0190] 2.8 Asymmetric Binary Tree Structure

[0191] The tree structure used in this response, called Multi-Tree Type (MTT), is a generalization of QTBT. In QTBT, Figure 11 As shown in FIG, a codec tree unit (CTU) is first partitioned using a quadtree structure, and the quadtree leaf nodes are further partitioned using a binary tree structure.

[0192] Figure 11 An example of a QTBT structure is shown.

[0193] The basic structure of MTT consists of two types of tree nodes: region tree (RT) and prediction tree (PT), which supports nine types of segmentation, such as Figure 12As shown in Figure 2. The region tree can recursively divide the CTU into square blocks until the region tree leaf node of size 4x4. At each node in the region tree, the prediction tree can be formed by one of three tree types: binary tree, ternary tree and asymmetric binary tree (ABT, as shown in Figure 2. Figure 12 (f) to (i)). In PT partitioning, quadtree splits are prohibited in the branches of the prediction tree. As in JEM, the luma tree and chroma tree are separated in the I slice.

[0194] Figure 12 Shown are (a) quadtree partitioning (b) vertical binary tree partitioning (c) horizontal binary tree partitioning (d) vertical ternary tree partitioning (e) horizontal ternary tree partitioning (f) horizontal upper asymmetric binary tree partitioning (g) horizontal lower asymmetric binary tree partitioning (h) vertical left asymmetric binary tree partitioning (i) vertical right asymmetric binary tree partitioning.

[0195] 2.8.1 Transformation / Quantization

[0196] To accommodate more flexible partitioning due to ABT, block sizes are not powers of 2, such as 4x24 and 8x48, including the corresponding transform kernels.

[0197] In total, additional transformations of 6, 12, 24, and 48 points have been added.

[0198] 3. Problems solved by the disclosed embodiments.

[0199] Although ABT segmentation can bring additional coding gain, it also increases the decoder complexity by adding several new transformation matrices.

[0200] Meanwhile, only asymmetric binary partition trees (ie, ABTs) have been attempted, while other kinds of partitions that can divide a block into more than 2 asymmetric partitions have not been fully explored.

[0201] 4. Examples of Technology

[0202] To address this issue, several methods have been proposed to introduce alternative partitioning structures that can divide a block (also referred to as a parent block) into smaller blocks (also referred to as child blocks), where the width / height, or both the width and height, of at least one block are not equal to a power of 2. This type of partitioning is called a non-power-of-two partitioning tree (NPT-T).

[0203] The following detailed techniques should be considered as examples to explain the general concept. These embodiments should not be interpreted narrowly. In addition, these embodiments can be combined in any way.

[0204] In the following discussion, a partition tree may indicate QT, BT, TT, unsymmetrical quadtree (UQT), EQT, or others. A partition / split direction may indicate horizontal, vertical, diagonal, or others. A partition is represented by its partition tree type and partition direction.

[0205] QT, BT, TT, UQT or EQT refers to "QT partition", "BT partition", "TT partition", "UQT partition" or "EQT partition" respectively.

[0206] In the following discussion, “partition” and “segmentation” have the same meaning. The proposed method can also be applied to existing segmentation trees.

[0207] The function floor(x) returns the largest integer less than or equal to x.

[0208] 4.1 Example of NPT-T

[0209] 1. NPT-T partitioning is proposed, where the width and / or height of at least one of the partitioned smaller blocks is not a power of 2. Using NPT-T, a block of size W×H is partitioned into K smaller blocks (K>1, K is an integer value). When the indication to use this partitioning is true, the block is directly partitioned into K smaller blocks (also called sub-blocks). The smaller one can be regarded as a codec unit / prediction unit / transform unit.

[0210] Each size of the smaller block can be determined by W i ×H i Represents (i is 0..(K-1), indicating the split index)

[0211] And W i 、H i All are integers.

[0212] a. In one example, each sub-block can be further divided into even smaller blocks, such as in a recursive manner.

[0213] b. In one example, K>2. That is, a block can be divided into at least three smaller blocks.

[0214] (a) Alternatively, K is equal to 2, however, it is possible to choose a different way of partitioning instead of using (1 / 4W or 1 / 4H in ABT design).

[0215] c. In one example, at least one W i or H i It is not a power of 2.

[0216] (a) For example, W0≠2 N0 , and / or W1≠2 N1, and / or W2≠2 N2 , and / or W3≠2 N3 , and / or W4≠2 N4 , and / or H0≠2 M0 , and / or H1≠2 M1 , and / or H2≠2 M2 , and / or H3≠2 M3 , and / or H4≠2 M4 .

[0217] (b) In addition, alternatively, at least one W i or H i It is in the form of a power of 2.

[0218] 1. In one example, W i Equal to 2 floor(log2(W / K )).

[0219] 2. In one example, H i Equal to 2 floor(log2(H / K)) .

[0220] 3. In one example, if i is not equal to j, then W i May be different from W j .

[0221] 4. In one example, if i is not equal to j, then H i May be different from H j .

[0222] d. In one example, at least one W i is set to floor(W*m / 2 n ), where W>=2 n And 1<=m<2 n .

[0223] e. In one example, at least one H i is set to floor(H*m / 2 n ), where H>=2 n And 1<=m<2 n .

[0224] f. In one example, the blocks divided from NPT-T can be further divided according to NPT-T.

[0225] g. In one example, blocks whose width or height is not a power of 2 may not be split according to NPT-T. Additionally, signaling of the use of NPT-T is skipped instead.

[0226] h. In one example, non-square blocks whose width is not equal to the height may not be split according to NPT-T. Additionally, signaling of the use of NPT-T is skipped instead.

[0227] i. In one example, a square block with width equal to height may not be partitionable according to NPT-T. Additionally, signaling of the use of NPT-T is skipped instead.

[0228] j. In one example, blocks whose width or height is not a power of two must be split. Additionally, signaling of the split flag is skipped instead.

[0229] 4.2 NPT-T Splitting Direction

[0230] 2. NPT-T can divide a block only in the vertical direction.

[0231] a. For example, H i =H (for i is 0...(K-1)).

[0232] b. In one example, L0 partitions (L0 equals 2...K) share the same partition size.

[0233] (a) In one example, the width of the same segmentation size is set to floor (W / K).

[0234] (b) In one example, the L0 partitions may be adjacent to one another. Alternatively, they may not be adjacent to one another.

[0235] (c) In one example, L0 partitions may be consecutively given a partition index, where the partition index indicates whether one partition should be encoded directly before or after another partition.

[0236] (d) Some examples with L0=2 and K=3 are given in FIG13 .

[0237] i. in Figure 13A , W0=W1=floor(W / 3) and W2=W–2*floor(W / 3).

[0238] ii. Figure 13B In this case, W0=W2=floor(W / 3) and W1=W–2*floor(W / 3).

[0239] iii. Figure 13C , W0=W1=W2=W3=floor(W / 5) and W4=W–4*floor(W / 5).

[0240] Figure 13AAn example is shown in which PIdx0 and PIdx1 have the same size.

[0241] Figure 13B An example is shown in which PIdx0 and PIdx2 have the same size.

[0242] Figure 13C An example of K=5 and L0=4 is shown.

[0243] Figures 13A-13C An example of NPT-T segmentation is shown (where K=3, L0=2 for (a) and (b)).

[0244] c. Furthermore, alternatively, L1 partitions among the remaining (K-L0) partitions may be assigned equal sizes.

[0245] (a) In one example, L1 is in the range [1…K-L0].

[0246] (b) In one example, the width of the L1 partition size is set to floor((W-L0*floor(W / K)) / (K-L0)). Alternatively, when L1 is equal to (K-L0-1), in addition, a left partition can be assigned a block width equal to W–L0*floor(W / K)-((W-L0*floor(W / K)) / (K-L0))*(K-L0-1).

[0247] (c) Alternatively, the remaining (K-L0) partitions may be assigned different sizes.

[0248] (d) In one example, L1 partitions may be adjacent to one another. Alternatively, they may not be adjacent to one another.

[0249] (e) In one example, the L1 partitions may be given partition indices consecutively, where the partition index indicates whether one partition should be encoded directly before or after another partition. Alternatively, they may be given partition indices non-consecutively.

[0250] (f) Figure 14 Some examples of L0=2, L1=2 and K=5 are given in . Figure 14 , W0=W1=floor(W / 5), W2=W3=floor((W–2*floor(W / 5)) / 3) and W4=W–2*W0–2*W1.

[0251] Figure 14 An example of NPT-T segmentation is shown (where K=5, L0=2, L1=2).

[0252] d. In one example, only one segmentation size (Wi ×H i ) is different from all remaining partitions. (a) For example, L0 is equal to K–1.

[0253] e. In one example, the segmentation size (W i ×H i ) can be the same for all partitions.

[0254] 3. NPT-T can divide a block only in the horizontal direction.

[0255] a. The sub-bullet in bullet 2 can be applied by exchanging H and W.

[0256] 4. NPT-T can divide a block in both horizontal and vertical directions. This is called mixed direction.

[0257] a. For example, W i At least one of them is not equal to W.

[0258] b. For example, H i At least one of them is not equal to H.

[0259] 5. NPT-T may split a block in the vertical direction if the width of the block is not in the form of a power of 2, or / and may split a block in the horizontal direction if the height of the block is not in the form of a power of 2.

[0260] a. Alternatively, NPT-T may split a block in the vertical direction if the width of the block is a power of 2, or / and may split a block in the horizontal direction if the height of the block is a power of 2.

[0261] 6. The above method can be extended to other quadtree, hexatree, nonatree, and octree partitioning (SnT, StT, OctT), where a block can be divided into 6, 7, or 8 smaller blocks.

[0262] 7. The encoding and decoding order (represented by PIdx 0..(K-1)) can be different from Figures 13A-13C and Figure 14 The encoding and decoding order defined in .

[0263] a. The encoding and decoding order of an NPT-T mode can be predefined.

[0264] b. Alternatively, multiple codec orders may be predefined for an NPT-T mode, and a block may select one of them (such as via signaling an indication of the selected codec order or derivation on the decoder side).

[0265] 4.3 Transformation Size / Transformation Matrix and Transformation Region Selection

[0266] 8. For width (W i ) and height (H i ) is not a power of 2 sub-block size, restricting the use of transform blocks that are smaller than the sub-block (where the width and height are respectively represented by TW i and TH i That is, if TW i =W i And TH i =H i , it is not allowed.

[0267] a. In one example, TW i and / or TH i The setting of the and / or transform matrix may depend on the sub-block size.

[0268] (a) In one example, TW i is set to pow(2,floor(log2(W i )).

[0269] (b) In one example, TH i is set to pow(2,floor(log2(H i )).

[0270] b. In one example, TW i and / or TH i The setting of the and / or transformation matrices may depend on the available transformation matrices.

[0271] (a) In one example, TW i An allowed transform size and / or transform matrix set to a power of 2, such as the maximum allowed transform size but not greater than W i .

[0272] (b) In one example, TH i An allowed transform size and / or transform matrix set to a power of 2, such as the maximum allowed transform size but not greater than H i .

[0273] c. In one example, TW i and / or TH i The setting of the and / or transformation matrix may depend on the parent block from which the sub-block is partitioned.

[0274] d. In one example, TW i and / or TH i The setting of the transformation matrix may depend on the size of the sub-blocks divided from the same parent block.

[0275] e. In one example, TW i and / or TH i The setting of the transformation matrix may depend on the color format and / or the color components.

[0276] f. In one example, TW i and / or TH i The setting of the and / or transform matrix may depend on the picture type / slice type / slice group type / low delay check flag.

[0277] g. In one example, TW i and / or TH i The setting of the transform matrix may depend on other codec information, such as quantization parameters, mode information (intra / inter / combined intra)

[0278] -Inter-frame), reference picture information (current picture reference / unidirectional prediction / bidirectional prediction / multi-hypothesis prediction).

[0279] h. How to define the transform block size and / or transform matrix can be signaled in high-level syntax elements, such as SPS / VPS / in SPS / PPS / VPS / APS / sequence header / picture header / slice header / slice group header / CTU row / region, etc.

[0280] i. In one example, TW i Not greater than TWmax. For example, TWmax=64.

[0281] j. In one example, TH i Not greater than THmax. For example, THmax=64.

[0282] k. In one example, TW i Not less than TWmin. For example, TWmin=4.

[0283] l. In one example, TH i Not less than THmin. For example, THmin=4.

[0284] 9. When transforming a block (where width and height are represented by TW i and TH i When the region (denoted by ) is smaller than the sub-block, a fixed offset (OffsetX, OffsetY) may be applied to locate the region where the transform should be applied.

[0285] a. In one example, (OffsetX, OffsetY) is set to (0, 0). Figure 15A -picture Figure 15B Some examples are shown. Alternatively, OffsetX is set to 0. Alternatively, OffsetY is set to 0.

[0286] Figure 15A The case where Wi≠2N0 and Hi=2N1 is shown.

[0287] Figure 15B Shows W i ≠2 N0 、H i ≠2 N1 situation.

[0288] Figures 15A-15B An example of (OffsetX, OffsetY) being set to (0, 0) is shown (solid line: sub-block; dashed line: transform region).

[0289] b. Alternatively, only one of OffsetX and OffsetY is set to 0.

[0290] c. Alternatively, both OffsetX and OffsetY are not equal to 0.

[0291] (a) In one example, OffsetX is set to (W i -TW i ).

[0292] (b) In one example, OffsetY is set to (H i -TH i ).

[0293] (c) Figures 16A-16B Some examples are shown.

[0294] Figure 16A Shown where W i ≠2 N0 、H i =2 N1 .

[0295] Figure 16B Shown where Wi≠2 N0 、Hi≠2 N1 .

[0296] Figures 16A-16B An example of (OffsetX, OffsetY) being set to (0, 0) is shown (solid line: sub-block; dashed line: transform region).

[0297] d. OffsetX and / or OffsetY may depend on the sub-block shape.

[0298] e.OffsetX and / or OffsetY can depend on the parent block shape.

[0299] f.OffsetX and / or OffsetY may depend on the coding information of the child block / parent block.

[0300] g. In one example, the settings of OffsetX and / or OffsetY may depend on the color format and / or color components.

[0301] h. In one example, the settings of OffsetX and / or OffsetY may depend on the picture type / slice type / slice group type / low delay check flag.

[0302] i. In one example, the settings of OffsetX and / or OffsetY may depend on other codec information, such as quantization parameter, mode information (intra / inter / combined intra-inter), and reference picture information (current picture reference / unidirectional prediction / bidirectional prediction / multi-hypothesis prediction).

[0303] j. In one example, OffsetX and / or OffsetY may be signaled.

[0304] k. In one example, several candidates for OffsetX and / or OffsetY may be defined, and the index of the candidate may be signaled.

[0305] (a) In one example, the size of the candidate set may depend on the sub-block shape, and the index may be signaled differently for different sub-block shapes.

[0306] (b) If the size of the candidate set is equal to 1, no index is signaled.

[0307] 1. In one example, several candidates of (OffsetX, OffsetY) may be defined, and the index of the candidate may be signaled to indicate OffsetX and OffsetY.

[0308] (a) In one example, the size of the candidate set may depend on the sub-block shape, and the index may be signaled differently for different sub-block shapes.

[0309] (b) If the size of the candidate set is equal to 1, no index is signaled.

[0310] 10. Different from the width (W i ) and height (H i ) wherein at least one sub-block size that is not a power of 2 only allows one fixed transform size and / or transform matrix, proposes allowing multiple different transform sizes and / or transform matrices for this type of sub-block.

[0311] a. In one example, all allowed transform sizes should be powers of 2.

[0312] b. Alternatively, at least one of the allowed transform sizes should be a power of 2.

[0313] c. In one example, the transform size of other categories should not be larger than the transform size defined in bullet point 8.

[0314] d. Only one fixed offset (including both OffsetX and OffsetY) of the region to which the transform should be applied can be defined / derived for each of the allowed transform sizes.

[0315] (a) In this case, only an indication of the selected transformation may be signaled.

[0316] e. Multiple offsets of the region to which the transform should be applied may be associated with each of the allowed transform sizes.

[0317] (a) In this case, an indication of the selected transform and offset may be signaled.

[0318] (b) In one example, the number of allowed offsets is the same for all kinds of allowed transform sizes.

[0319] (c) Alternatively, the number of allowed offsets may be different for different transform sizes.

[0320] f. In one example, an indication of all kinds of allowed transform sizes and / or offsets and / or transform matrices may be signaled.

[0321] g. Alternatively, the allowed transform sizes and / or transform matrices and / or offsets may be categorized into M categories. The category index may be signaled first. Alternatively, the index of the selected transform size / offset / matrix may be further signaled.

[0322] h. In one example, one index may be signaled to indicate both the transform size and the offset.

[0323] 4.4 Use of non-quadratic split trees

[0324] 11. A block divided into sub-blocks by NPT-T may be divided from the parent block by one or some specific types of division methods.

[0325] a. A block that can be split into NPT-T can be a block generated by QT, BT, TT, or NPT-T splitting.

[0326] b. For example, a block divided into sub-blocks by NPT-T can only be divided from the parent block by QT.

[0327] c. The block that can allow NPT-T splitting can be the root block.

[0328] 12. A block partitioned from a parent block by NPT-T may be further partitioned into sub-blocks by one or more other partition types (such as QT, BT, TT, NPT-T, UQT).

[0329] a. For example, a block divided from a parent block by NPT-T can be further divided into sub-blocks by BT and / or TT.

[0330] b. For example, a block divided from a parent block by NPT-T may be further divided into sub-blocks by BT and / or TT, and / or QUT-T instead of QT.

[0331] c. For example, a block divided from a parent block by NPT-T may be further divided into sub-blocks by NPT-T and / or QT instead of BT / TT.

[0332] d. For example, a block divided from a parent block by NPT-T cannot be further divided into child blocks by QT.

[0333] e. Alternatively, the NPT-T partition block may not be further divided into sub-blocks.

[0334] 13. When a parent block is divided into sub-blocks through NPT-T, the partition depth of the sub-blocks can be derived from the partition depth of the parent block.

[0335] a. In one example, the division of NPT-T can be used to update the QT / BT / TT / NPT-T / MTT depths.

[0336] (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 plus 1.

[0337] (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 plus 1.

[0338] (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 plus 1.

[0339] (d) In one example, the NPT-T depth of one or all of the child blocks is equal to the NPT-T depth of the parent block plus 1.

[0340] (e) In one example, the MTT depth of one or all of the child blocks is equal to the MTT depth of the parent block plus 1.

[0341] 1. For example, if a parent block is divided into child blocks through BT, the MTT depth of the child blocks is equal to the MTT depth of the parent block plus 1.

[0342] 2. For example, if a parent block is divided into sub-blocks by TT, the MTT depth of the sub-blocks is equal to the MTT depth of the parent block plus 1.

[0343] b. In one example, the NPT-T / BT / TT / QT / MTT depth increase may be different for different sub-blocks.

[0344] (a) The depth increase depends on the ratio of the child block compared to the parent block.

[0345] 14. Filtering processes (such as deblocking filter, SAO, ALF, diffusion filter, bilateral filter) can depend on NPT-T segmentation.

[0346] a. In one example, whether / how to filter samples may depend on whether the samples are located at the boundary of a block partitioned due to NPT-T.

[0347] b. In one example, samples of a previously reconstructed sub-block can be used in a diffusion filter or / and a bilateral filter.

[0348] c. In one example, whether / how to filter samples may depend on whether the samples are located at the boundary of a transform block within a codec unit partitioned due to NPT-T.

[0349] 15. Intra prediction mode or CIIP mode may depend on NPT-T partitioning.

[0350] a. In one example, a subblock can use a previously reconstructed subblock for intra prediction in intra prediction mode or CIIP mode.

[0351] 16. Local Illumination Compensation (LIC) mode may depend on NPT-T segmentation.

[0352] a. In one example, a sub-block can use a previously reconstructed sub-block for deriving LIC parameters.

[0353] 4.5 Limitations on the use of NPT-T

[0354] 17. In one example, the maximum / minimum block size and / or maximum bit depth that may be allowed for NPT-T partitioning and / or the maximum depth that may be allowed for NPT-T partitioning may be signaled in SPS / PPS / VPS / APS / sequence header / picture header / slice header / slice group header / CTU row / region, etc.

[0355] a. The maximum / minimum block size that may allow NPT-T partitioning and / or the maximum depth that may allow NPT-T partitioning may be derived from other values, such as the depth of the MTT or the depth of the QT.

[0356] b. The largest block that allows NPT-T partitioning can be the largest codec block (codec tree block or codec tree unit).

[0357] c. For example, the largest block allowed for NPT-T segmentation may be a Virtual Pipeline Data Unit (VPDU).

[0358] d. In one example, the maximum / minimum block size that may be allowed for NPT-T segmentation and / or the maximum depth that may be allowed for NPT-T segmentation may depend on the profile / level / tier of the standard.

[0359] e. In one example, the maximum / minimum block size that may be allowed for NPT-T partitioning and / or the maximum depth that may be allowed for NPT-T partitioning may be derived to be the same as for QT partitioning, for example.

[0360] f. In one example, the maximum / minimum block size that may be allowed for NPT-T partitioning and / or the maximum depth that may be allowed for NPT-T partitioning may depend on whether slice group slice / slice type / color component / dual tree is enabled.

[0361] g. In one example, the maximum / minimum block size that may be allowed for NPT-T partitioning and / or the maximum depth that may be allowed for NPT-T partitioning may be different for different NPT-T modes.

[0362] h. When a block is divided according to NPT-T, the corresponding depth of NPT-T of a smaller block may be adjusted accordingly (eg, increased by 1).

[0363] (a) Alternatively, the corresponding depth of a particular partition (eg, QT) of a smaller block may be adjusted accordingly (eg, increased by 1).

[0364] (b) Alternatively, the corresponding depth of the MTT of a smaller block may be adjusted accordingly (eg, increased by 1).

[0365] (c) The adjustment of the corresponding depths of different smaller blocks can be performed in the same way (eg, increasing by 1).

[0366] 1. Alternatively, the adjustment of the corresponding depths of different smaller blocks may be performed in different ways (eg, increasing by 1). For example, the adjustment depends on the block size of the smaller block.

[0367] 18. If the divided sub-block spans more than one Virtual Pipeline Data Unit (VPDU), NPT-T is not allowed.

[0368] a. Alternatively, NPT-T is still allowed, however, such sub-blocks are forced to be further divided until no sub-block spans more than one VPDU.

[0369] 19. If the width / height of the current block (or any divided sub-block) meets some conditions, then NPT-

[0370] T is not allowed. (Assume the width and height of the current block are W and H, and T1, T2 and T are some integers)

[0371] a. If W>=T1 and H>=T2, NPT-T is not allowed;

[0372] b. If W>=T1 or H>=T2, NPT-T is not allowed;

[0373] c. If W <= T1 and H <= T2, then NPT-T is not allowed;

[0374] d. If W <= T1 or H <= T2, NPT-T is not allowed;

[0375] e. If W×H<=T, then NPT-T is not allowed;

[0376] f. If W×H>=T, then NPT-T is not allowed;

[0377] g. If H<=T, then horizontal NPT-T is not allowed; for example, T=16.

[0378] h. If H>=T, then horizontal NPT-T is not allowed; for example, T=128.

[0379] i. If W<=T, vertical NPT-T is not allowed; for example, T=16.

[0380] j. If W>=T, vertical NPT-T is not allowed; for example, T=128.

[0381] k. T1, T2, and T may be signaled from the encoder to the decoder in VPS / SPS / PPS / picture header / slice header / slice group header / slice header.

[0382] 1. T1, T2, and T can depend on the color component. For example, T1, T2, and T can be different for luma and chroma components.

[0383] m. T1, T2, and T may depend on whether the luma codec tree and the chroma codec tree are separated. For example, if the luma codec tree and the chroma codec tree are separated, T1, T2, and T may be different for luma and chroma components.

[0384] n. Alternatively, when transform is not supported for at least one sub-block due to NPT-T, NPT-T partitioning is invalid.

[0385] o. Alternatively, when the depth of a block exceeds the allowed depth of NPT-T partitioning, the NPT-T partitioning is invalid.

[0386] p. Alternatively, when any sub-block size due to NPT-T partitioning is smaller than the allowed block size, NPT-T partitioning is invalid.

[0387] 20. If the width / height of the current block (or any partitioned sub-block) meets some conditions, then NPT-T is allowed. (Assume that the width and height of the current block are W and H, and T1, T2 and T are some integers)

[0388] a. If W>=T1 and H>=T2, then NPT-T is allowed;

[0389] b. If W>=T1 or H>=T2, then NPT-T is allowed;

[0390] c. If W <= T1 and H <= T2, then NPT-T is allowed;

[0391] d. If W <= T1 or H <= T2, then NPT-T is allowed;

[0392] e. If W×H<=T, then NPT-T is allowed;

[0393] f. If W×H>=T, then NPT-T is allowed;

[0394] g. If H<=T, then horizontal NPT-T is allowed; for example, T=64.

[0395] h. If H>=T, then horizontal NPT-T is allowed; for example, T=32.

[0396] i. If W <= T, vertical NPT-T is allowed; for example, T=64.

[0397] j. If W>=T, vertical NPT-T is allowed; for example, T=32.

[0398] k. T1, T2, and T may be signaled from the encoder to the decoder in VPS / SPS / PPS / picture header / slice header / slice group header / slice header.

[0399] 1. T1, T2, and T can depend on the color component. For example, T1, T2, and T can be different for luma and chroma components.

[0400] m. T1, T2, and T may depend on whether the luma codec tree and the chroma codec tree are separated. For example, if the luma codec tree and the chroma codec tree are separated, T1, T2, and T may be different for luma and chroma components.

[0401] 21. If the depth of the current block meets some conditions, NPT-T is not allowed. The depth of the current block can refer to QT depth, BT depth, TT depth, NPT-T depth or MTT depth.

[0402] a. If the partition depth is less than or equal to T, then NPT-T is not allowed;

[0403] b. If the partition depth is greater than or equal to T, NPT-T is not allowed;

[0404] c. If QT partition depth <= T, then NPT-T is not allowed;

[0405] d. If the QT partition depth is greater than or equal to T, NPT-T is not allowed;

[0406] e. If the BT partition depth is greater than or equal to T, NPT-T is not allowed;

[0407] f. If the BT partition depth <= T, then NPT-T is not allowed;

[0408] g. If the TT partition depth is greater than or equal to T, NPT-T is not allowed;

[0409] h. If the TT partition depth is greater than or equal to T, NPT-T is not allowed;

[0410] i. If the NPT-T partition depth is less than or equal to T, then NPT-T is not allowed;

[0411] j. If the NPT-T partition depth is greater than or equal to T, then NPT-T is not allowed;

[0412] k. If the MTT partition depth <= T, then NPT-T is not allowed;

[0413] l. If the MTT partition depth is greater than or equal to T, NPT-T is not allowed;

[0414] mT may be signaled from the encoder to the decoder in the VPS / SPS / PPS / picture header / slice header / slice group header / slice header.

[0415] nT can depend on the color component. For example, T1, T2 and T can be different for luma and chroma components.

[0416] oT may depend on whether the luma codec tree and the chroma codec tree are separated. For example, if the luma codec tree and the chroma codec tree are separated, T1, T2, and T may be different for luma and chroma components.

[0417] 22. If the depth of the current block meets some conditions, NPT-T is allowed. The depth of the current block can refer to QT depth, BT depth, TT depth, NPT-T depth or MTT depth.

[0418] a. If the partition depth <= T, then NPT-T is allowed;

[0419] b. If the partition depth is greater than or equal to T, then NPT-T is allowed;

[0420] c. If QT partition depth <= T, then NPT-T is allowed;

[0421] d. If QT partition depth >= T, then NPT-T is allowed;

[0422] e. If BT partition depth >= T, then NPT-T is allowed;

[0423] f. If BT partition depth <= T, then NPT-T is allowed;

[0424] g. If TT partition depth >= T, then NPT-T is allowed;

[0425] h. If TT partition depth >= T, then NPT-T is allowed;

[0426] i. If NPT-T partition depth <= T, then NPT-T is allowed;

[0427] j. If the NPT-T partition depth is greater than or equal to T, then NPT-T is allowed;

[0428] k. If the MTT partition depth <= T, then NPT-T is allowed;

[0429] l. If the MTT partition depth is greater than or equal to T, then NPT-T is allowed;

[0430] mT may be signaled from the encoder to the decoder in the VPS / SPS / PPS / picture header / slice header / slice group header / slice header.

[0431] nT can depend on the color component. For example, T1, T2 and T can be different for luma and chroma components.

[0432] oT may depend on whether the luma codec tree and the chroma codec tree are separated. For example, if the luma codec tree and the chroma codec tree are separated, T1, T2, and T may be different for luma and chroma components.

[0433] 23. Whether and how to use NPT-T may depend on the location of the current block. For example, whether and how to use NPT-T may depend on whether the current block crosses a picture / slice / slice group boundary.

[0434] a. In one example, if the current block crosses the bottom boundary of a picture / slice / slice group, vertical NPT-T is not allowed.

[0435] b. In one example, if the current block crosses the bottom boundary of a picture / slice / slice group, horizontal NPT-T is not allowed.

[0436] c. In one example, if the current block straddles the right boundary of a picture / slice / slice group, vertical NPT-T is not allowed.

[0437] d. In one example, if the current block crosses the right boundary of a picture / slice / slice group, horizontal NPT-T is not allowed.

[0438] e. In one example, if the current block crosses the picture / slice / slice group right boundary, mixed NPT-T may not be allowed.

[0439] f. In one example, if the current block crosses the bottom boundary of a picture / slice / slice group, mixed NPT-T may not be allowed.

[0440] g. In one example, if the sub-blocks divided by NPT-T are completely outside the picture / slice / slice group, the sub-blocks can be omitted in the encoding / decoding process.

[0441] h. In one example, if the sub-blocks divided by NPT-T are partially outside the picture / slice / slice group, the following may apply

[0442] (a) Parts outside the picture can be omitted during the encoding / decoding process.

[0443] (b) The interior of the image can be further divided.

[0444] (c) The part inside the picture can be encoded and decoded as a CU.

[0445] 1. Whether a portion inside a picture is coded as a CU may depend on the width (w) and height (h) of the portion.

[0446] i. In one example, if w=2 nw , h=2 nh , then the part inside the picture can be encoded and decoded as CU, where nw and nh are integers.

[0447] i. In one example, if any sub-block divided by NPT-T is partially / completely outside the picture / slice / slice group, NPT-T is not allowed.

[0448] 24. When NPT-T or a specific NPT-T mode is not allowed, the indication of the use of the signaling mode may also be skipped.

[0449] a. Alternatively, it can still be signaled, but constrained to be false in the conforming bitstream.

[0450] 25. When dividing sub-blocks from NPT-T, further division of sub-blocks using one or more of the following division methods may not be allowed:

[0451] a.QT

[0452] b. Horizontal BT

[0453] c. Vertical BT

[0454] d. Horizontal TT

[0455] e. Vertical BT

[0456] f. Horizontal UQT

[0457] g.Vertical UQT

[0458] h.NPT-T

[0459] 26. NPT-T is not allowed for root nodes.

[0460] a. In one example, NPT-T may be allowed for leaf nodes. Additionally, alternatively, signaling indications of further partitioning according to other partitions is skipped.

[0461] 27. It is proposed that NPT-T can be applied only to leaf nodes, i.e. when a block is not further partitioned according to other partitions.

[0462] a. In one example, a flag indicating whether to use NPT-T may be signaled to the leaf node. (a) Alternatively, an indication of which type of NPT-T may be further signaled.

[0463] b. Alternatively, the leaf nodes may be signaled to disable NPT-T or an indication of which type of NPT-T.

[0464] 28. For a specific size of a block, if NPT-T is selected to further divide it into multiple sub-blocks, all of the sub-blocks can share the same Merge list.

[0465] a. Alternatively, all of the sub-blocks may share the same codec mode (eg, intra or inter).

[0466] b. Alternatively, all of the sub-blocks may share the same AMVP or other kind of motion candidate list.

[0467] c. Alternatively, all of the sub-blocks may share the same Cross Component Linear Model (CCLM) / Local Illumination Compensation (LIC) parameters or other parameters derived at the decoder side.

[0468] 4.6 Instructions for use of NPT-T

[0469] 29. Whether to apply NPT-T and / or which NPT-T to apply can be signaled from the encoder to the decoder.

[0470] a. In one example, it can be signaled in VPS / SPS / PPS / sequence header / picture header / slice header / slice group header / slice header to indicate whether NPT-T can be applied.

[0471] b. In one example, it can be signaled in the VPS / SPS / PPS / sequence header / picture header / slice header / slice group header / slice header to indicate which NPT-T can be applied.

[0472] c. In one example, it can be signaled in the block to indicate whether NPT-T is used to partition the block.

[0473] d. In one example, it can be signaled in the block to indicate which NPT-T is used to partition the block.

[0474] e. In one example, different NPT-T sets can be designed for different block shapes / sizes.

[0475] f. In one example, different NPT-T sets can be designed for pictures / slices / slices with different temporal layers.

[0476] g. In one example, whether or how NPT-T is applied may depend on video resolution / picture resolution / codec mode / video characteristics (screen content or camera-captured sequence or mixed content) / slice type / picture type / slice group type / low latency check flag.

[0477] 30. A syntax element may be signaled to indicate no partition or partitioning (including partitioning tree type and partitioning direction).

[0478] a. Alternatively, one syntax element may be signaled first to indicate whether to split; and another syntax element may be signaled to indicate the partition.

[0479] 31. The indication of a partition may be represented by two syntax elements: the selected partition tree type may be signaled first, followed by the partition direction (if required).

[0480] a. In one example, the index of the partition tree type can be signaled in the block to indicate whether the block is partitioned by QT, partitioned by NPT-T, or non-partitioned.

[0481] (a) In addition, alternatively, the division direction (horizontal / vertical / mixed direction) and / or the division mode may be further signaled.

[0482] h. In one example, the index of the partition tree type can be signaled in the block to indicate whether the block is partitioned by BT, TT or NPT-T.

[0483] (a) For example, the index may be signaled conditionally, such as only when at least one of BT, TT, and NPT-T is valid for the block.

[0484] (b) In addition, alternatively, the division direction (horizontal / vertical) and / or division mode may be further signaled.

[0485] i. Alternatively, an indication of the split direction may be signaled first, followed by the partition tree type (such as QT, TT, NPT-T).

[0486] (a) In one example, a flag is signaled in the block to indicate whether the block is vertically or horizontally partitioned. Vertical partitioning can be BT vertical partitioning, TT vertical partitioning, or NPT-T vertical partitioning. Horizontal partitioning can be BT horizontal partitioning, TT horizontal partitioning, or NPT-T horizontal partitioning.

[0487] (b) For example, this flag is signaled only when the block is divided by BT, TT or NPT-T.

[0488] (c) For example, the flag is signaled only when both vertical and horizontal partitioning are valid for the block.

[0489] 1. If only vertical partitioning is valid, no flag is signaled and horizontal partitioning is inferred to be used.

[0490] 2. If only horizontal partitioning is valid, no flag is signaled and vertical partitioning is inferred to be used.

[0491] j. In one example, the binarization code is signaled in the block to indicate which partitioning is used (BT, TT, or a type of NPT-T). In the following examples, X represents 0 or 1, and Y = ~X (if X = 0, then Y = 1, and if X = 1, then Y = 0).

[0492] (a) In one example, the candidate BT, TT or NPT-T to be signaled is either a vertical partition or a horizontal partition according to previously signaled or derived information.

[0493] (b) In one example, a first flag is signaled to indicate whether NPT-T is used. For example, the binarized codewords representing BT, TT, NPT-T 1, NPT-T 2, NPT-T 3, and NPT-T 4 in order are XX, XY, YXX, YXY, YYX, and YYY.

[0494] (c) In one example, truncated unary codes are used. For example, the binary code words representing BT, TT, NPT-T 1, NPT-T 2, NPT-T 3, and NPT-T 4 in order are X, YX, YYX, YYYX, YYYYX, YYYYY.

[0495] (d) In one example, a first flag is signaled to indicate whether BT is used. If BT is not used, a second flag is signaled to indicate whether NPT-T is used. If NPT-T is used, the type of NPT-T used is further signaled. For example, the binarized codewords representing BT, TT, NPT-T 1, NPT-T 2, NPT-T 3, and NPT-T 4 in order are X, YX, YYXX, YYXY, YYYX, and YYYY.

[0496] 32. In one example, how to signal which partition to use in a block may depend on which partition (including partition tree type and / or partition direction) is valid for the block. In the following examples, X represents 0 or 1, and Y = ~X (if X = 0, then Y = 1, and if X = 1, then Y = 0).

[0497] a. In one example, the candidate BT, TT or NPT-T to be signaled is either a vertical partition or a horizontal partition, depending on previously signaled or derived information.

[0498] b. For example, disallowed or invalid partitions cannot be signaled from the encoder to the decoder, ie there is no codeword indicating disallowed or invalid partitions.

[0499] c. In one example, if only one partition among BT, TT, and NPT-T is valid, the binarization code indicating which partition (BT, TT, or one of NPT-T) is used is not signaled.

[0500] d. In one example, if only two partitions among BT, TT and NPT-T are valid, a flag is signaled to indicate which of the two valid partitions to use.

[0501] e. In one example, the code indicating which partition (BT, TT, or a type of NPT-T) is binarized into a truncated unary code.

[0502] (a) For example, the maximum value of a truncated unary code is N-1, where N is the number of valid partitions (BT, TT, and NPT-T).

[0503] (b) For example, no codeword indicates an invalid partition. In other words, when building the codeword table, invalid partitions are skipped.

[0504] f. In one example, if no NPT-T is valid, the flag indicating whether NPT-T is used is not signaled and is inferred to be false. For example, the binary codewords representing BT and TT in order are X and Y.

[0505] g. In one example, if only one NPT-T is valid and the use of NPT-T is signaled, no further information is signaled to indicate which NPT-T to use. The valid NPT-T is implicitly used.

[0506] h. In one example, if only two NPT-Ts are valid and the use of NPT-T is signaled, a flag is signaled to indicate which NPT-T to use.

[0507] i. In one example, if only three NPT-Ts are valid and the use of NPT-T is signaled, the message is signaled to indicate which NPT-T to use. For example, the binary codewords representing the three NPT-Ts in order are X, YX, and YY.

[0508] j. In one example, the binarization and / or signaling method does not change depending on which partition is valid in the block. Invalid partitions cannot be selected in the conforming bitstream.

[0509] 33. The indication of the segmentation may be encoded or decoded by arithmetic coding or decoding using one or more contexts.

[0510] a. In one example, only some bins of a binary string may be encoded or decoded with context, and the remaining bins may be encoded or decoded in bypass mode (ie, without utilizing context).

[0511] b. Alternatively, all bins of the binary string can be encoded or decoded using the context.

[0512] c. Alternatively, all bins of the binary string may be encoded and decoded in bypass mode.

[0513] d. For bins encoded or decoded with context, one or more contexts may be used.

[0514] e. The context may depend on:

[0515] (a) The position or index of a binary bit.

[0516] (b) Segmentation of spatial / temporal neighboring blocks.

[0517] (c) Current segmentation depth of the current block (eg, QT depth / BT depth / TT depth / NPT-T depth / MTT depth).

[0518] (d) Segmentation depth of spatial / temporal neighboring blocks and / or spatial / temporal non-neighboring blocks (e.g., QT depth / BT depth / TT depth / NPT-T depth / MTT depth).

[0519] (e) Coding and decoding mode of spatial / temporal neighboring blocks.

[0520] (f) Width / height of spatial / temporal neighborhood blocks.

[0521] (g) The width / height of the current block

[0522] (h) Strip type / Picture type / Slice group type

[0523] (i) Color components

[0524] (j) Statistics of the partition types of blocks from previous encoding and decoding

[0525] 34. Whether and / or how NPT-T is used may depend on the color format (such as 4:4:4 or 4:2:0) and / or color components.

[0526] a. Whether and how to use NPT-T may depend on whether the luma and chroma codec trees are separated.

[0527] b. In one example, when the luma and chroma codec trees are separated, NPT-T can only be applied to the luma component.

[0528] 35. The above method can also be applied to SnT, StT, OctT, and UQT.

[0529] Figure 17is a block diagram of a video processing device 1700. Device 1700 can be used to implement one or more methods described herein. Device 1700 can be embodied in a smartphone, a tablet, a computer, an Internet of Things (IoT) receiver, etc. Device 1700 may include one or more processors 1702, one or more memories 1704, and video processing hardware 1706. Processor(s) 1702 can be configured to implement one or more methods described in this document. Memory(s) 1704 can be used to store data and code for implementing the methods and techniques described herein. Video processing circuitry or hardware 1706 can be used to implement some of the techniques described in this document in hardware circuitry and can be partially or completely part of processor 1702 (e.g., a graphics processor core GPU or other signal processing circuitry).

[0530] In this document, the term "video processing" may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during the conversion from a pixel representation of a video to a corresponding bitstream representation, or vice versa. The bitstream representation of a current video block may, for example, correspond to bits that are co-located or distributed at different locations within the bitstream, as defined by the syntax. For example, a macroblock may be encoded based on error residual values ​​from transforms and codecs, and also using bits from headers and other fields in the bitstream.

[0531] It should be appreciated that several techniques have been disclosed that will benefit video encoder and decoder embodiments incorporated within video processing devices such as smartphones, laptops, desktops, and similar devices by enabling use of the techniques disclosed in this document.

[0532] Figure 18 1800 is a flow chart of an example method 1800 for video processing. The method 1800 includes, at 1802, enabling use of a non-power-of-two partitioning tree (NPT-T) for conversion between a video and a bitstream representation of the video, wherein the NPT-T includes partitioning a video block into one or more smaller-sized sub-blocks of the video block, and at least one of the sub-blocks has a pixel size that is a non-power-of-two integer in width or height. The method 1800 includes, at 1804, performing the conversion using the NPT-T.

[0533] Some embodiments may be described using the following clause-based format.

[0534] 1. A method of video processing, comprising: enabling use of a non-power-of-two partitioning tree (NPT-T) for conversion between a video and a bitstream representation of the video, wherein the NPT-T comprises partitioning a video block into one or more smaller-sized sub-blocks of the video block, and at least one of the sub-blocks has a pixel size that is a non-power-of-two integer in width or height; and performing the conversion using the NPT-T.

[0535] 2. A method according to clause 1, wherein the enabling is signaled in the bitstream representation by including a field at a sequence parameter set level, a video parameter set level, a sequence header level, a picture parameter set level, a slice header level, a codec unit level, a slice group level or a codec tree unit row level.

[0536] 3. A method according to any of clauses 1-2, wherein a sub-block is considered as a coding unit or a prediction unit or a transform unit for the conversion.

[0537] 4. A method according to any of clauses 1 to 3, wherein a video block is W pixels wide and H pixels high, and wherein a sub-block is Wi pixels wide and Hi pixels high, wherein W, H and Wi, Hi are integers, and wherein i is an integer variable with a value between 0 and K-1, where K represents the number of sub-blocks.

[0538] 5. A method according to any of clauses 1-4, wherein the conversion uses sub-blocks by recursively partitioning the sub-blocks into smaller blocks of coding units, prediction units or transform units according to NPT-T.

[0539] 6. A method according to any of clauses 4-5, wherein at least some of Wi, Hi are non-power-of-two integers.

[0540] 7. A method according to any of clauses 4-5, wherein at least some of Wi, Hi are power-of-two integers.

[0541] 8. A method according to any one of clauses 4 to 7, wherein:

[0542] (1) Wi is equal to 2floor(log2(W / K)), or

[0543] (2) Hi is equal to 2floor(log2(H / K)), or

[0544] (3) If i is not equal to j, then Wi may be different from Wj, or

[0545] (4) If i is not equal to j, then Hi may be different from Hj.

[0546] 9. The method of clause 4, wherein the sub-blocks are partitioned only along specific orientation directions.

[0547] 10. The method of clause 9, wherein the orientation direction is a vertical direction.

[0548] 11. The method of clause 9, wherein the orientation direction is horizontal.

[0549] 12. The method of clause 10, wherein Hi=H (for i being 0...(K-1)).

[0550] 13. The method of clause 11, wherein Wi=W (for i being 0...(K-1)).

[0551] 14. A method according to any of clauses 4-13, wherein L0 partitions representing the sub-blocks share the same partition size and the remaining sub-blocks have different partition sizes, wherein L0 is an integer between 2 and K.

[0552] 15. The method of clause 14, wherein the same division size is floor (W / K) or floor (H / K).

[0553] 16. The method of clauses 14-15, wherein the L0 partitions are adjacent to each other.

[0554] 17. The method of clauses 14-15, wherein at least some of the L0 partitions are non-adjacent partitions.

[0555] 18. A method according to clauses 14-15, wherein at least some of the L0 partitions are identified by consecutive indices in the bitstream representation and are processed sequentially during the conversion.

[0556] 19. The method of clause 10, wherein the partition sizes of the remaining sub-blocks are the same.

[0557] 20. A method according to any of clauses 1 to 19, wherein the encoding and decoding order of the current block and the sub-blocks is implicitly defined based on rules.

[0558] 21. A method according to any of clauses 1 to 19, wherein the coding order of the current block and the sub-blocks is specified in the bitstream representation.

[0559] Sections 4.1, 4.2, and 4.3 provide additional details and examples for clauses 1-21.

[0560] 22. A video processing method, comprising:

[0561] applying a transform size limit to conversions between sub-video blocks and bitstream representations of the sub-video blocks, wherein the sub-video blocks are partitioned from the video blocks and have pixel sizes that are non-power-of-two (NPT) integers; and

[0562] The conversion is performed using transform size constraints.

[0563] 23. A method according to clause 22, wherein the video block is W pixels wide and H pixels high, and wherein the sub-block is Wi pixels wide and Hi pixels high, wherein W, H and Wi, Hi are integers, and wherein i is an integer variable with a value between 0 and K-1, wherein K represents the number of sub-blocks divided from the video block.

[0564] 24. A method according to any of clauses 22-23, wherein the transform size restriction specifies that a given sub-block for which at least Wi and height Hi are NPT integers uses a smaller transform size expressed in width TWi and height THi.

[0565] 25. A method according to clause 24, wherein TWi or THi depends on the size of a given sub-block.

[0566] 26. The method according to clause 25, wherein:

[0567] (a) TWi equals pow(2,floor(log2(Wi)), or

[0568] (b)THi equals pow(2,floor(log2(Hi)).

[0569] 27. A method according to clause 24, wherein TWi or THi depends on the size of the transformation matrix used for the conversion.

[0570] 28. The method of clause 27, wherein the transformation matrix has a size that is a power of 2:

[0571] TWi is equal to the size of the transform size, i.e. the maximum allowed transform size not exceeding Wi, or

[0572] THi is equal to the transform size, ie the maximum allowed transform size not exceeding Hi.

[0573] 29. A method according to clause 24, wherein TWi or THi or the transform size depends on:

[0574] The type or position of the video chunk, or

[0575] The size of the sub-block divided from the video block, or

[0576] The color format or color component type of the video block, or

[0577] Picture type, slice type, slice group type, or low delay check flag in the bitstream representation, or

[0578] Other coding information in the bitstream representation includes quantization parameters, mode information or reference picture information, where the reference picture information includes current picture reference or unidirectional prediction or bidirectional prediction or multi-hypothesis prediction.

[0579] 30. A method according to any of clauses 22 to 29, wherein the transform size restriction specifies that a transform is applied to a portion of a sub-block using a fixed X offset or a fixed Y offset.

[0580] 31. The method of clause 30, wherein the fixed X offset or the fixed Y offset is a function of a shape of the sub-block or a shape of the video block.

[0581] 32. The method of clause 22, wherein a transform size restriction allows for use of multiple transform sizes during the conversion.

[0582] 33. The method of clause 32, wherein the plurality of transform sizes are power-of-two transform sizes.

[0583] 34. The method of clause 32, wherein at least one transform size of the plurality of transform sizes is a power-of-two size.

[0584] Sections 4.3 and 4.4 provide additional examples and embodiments of clauses 22 to 34.

[0585] 35. A method for video processing, comprising:

[0586] applying, selectively based on a usage rule for using a non-power-of-two tree (NPT-T) partitioning of the video block, a conversion between the video block and a bitstream representation of the video block, the video block or one or more smaller-sized sub-blocks of the video having a pixel size that is a non-power-of-two (NPT) integer; and

[0587] The conversion is performed using the usage rule.

[0588] 36. The method of clause 5, wherein the usage rule specifies that NPT-T be used only if the video block is partitioned from the parent block using a quadtree, or a binary tree, or a ternary tree, or an NPT-T partition.

[0589] 37. The method of clause 35, wherein the usage rule specifies that NPT-T be used only if the video block is partitioned from the parent block using quadtree partitioning.

[0590] 38. The method of clause 35, wherein, if the video block is a root block, the usage rules prohibit the use of NPT-T.

[0591] 39. A method according to any of clauses 35 to 38, wherein the one or more blocks of smaller size are obtained using a partitioning scheme that depends on the partitioning type of the current block.

[0592] 40. A method according to any of clauses 35 to 39, wherein the partition depth of the one or more smaller-sized blocks depends on the partition depth of the current block.

[0593] 41. A method according to any of clauses 35 to 39, wherein the partitioning depths of at least some of the one or more smaller-sized blocks are different.

[0594] 42. The method of clause 35, wherein a rule is used to specify a filtering process applied to one or more smaller blocks and the video block.

[0595] 43. A method according to clause 42, wherein the filtering process depends on pixel positions in the current block or one or more sub-blocks using boundaries created by NPT-T.

[0596] 44. A method according to any of clauses 42-43, wherein the filtering process comprises a deblocking filter or a sample adaptive offset filter or an adaptive loop filter or a diffusion filter or a bilateral filter.

[0597] 45. A method according to any of clauses 42-44, wherein the usage rule specifies using samples of a previously reconstructed sub-block for diffusion filtering or bilateral filtering of samples of the current sub-block.

[0598] 46. ​​The method of clause 35, wherein rules are used to specify selective application of intra prediction mode or local illumination compensation mode or combined inter-intra partitioning applied to one or more smaller blocks and video blocks.

[0599] 47. The method of clause 35, wherein a rule is used to disable use of NPT-T for a video block if the size of the video block is above a maximum threshold.

[0600] 48. The method of clause 35, wherein a rule is used to disable use of NPT-T for a video block if the size of the video block is below a minimum threshold.

[0601] 49. The method of clause 35, wherein a rule is used to disable use of NPT-T for a video block if the bit depth of the video block is above a maximum bit depth or below a minimum bit depth.

[0602] 50. A method according to any of clauses 47-49, wherein the usage rule disabling is signaled in a field in the bitstream representation included at sequence parameter set level, video parameter set level, sequence header level, picture parameter set level, slice header level, codec unit level, slice group level or codec tree unit row level.

[0603] 51. A method according to any of clauses 47-49, wherein the usage rule prohibition is derived from parameters of the video block.

[0604] 52. A method according to clause 51, wherein the parameter of the current block is a partition tree depth of the video block or a profile of a bitstream representation or a level of a bitstream representation or a hierarchy or layer of a bitstream representation.

[0605] 53. The method of clause 51, wherein the parameters of the video block are based on a maximum or minimum size allowed in a quadtree partitioning of neighboring blocks of the video block.

[0606] 54. The method of clause 35, wherein the usage rule specifies disabling use of NPT-T for conversion of video blocks or sub-blocks of video blocks that span more than one virtual pipeline data unit.

[0607] 55. The method of clause 35, wherein the video block spans more than one virtual pipeline data unit, and the use rule specifies dividing the video block into sub-blocks until no sub-block spans more than one virtual pipeline data unit.

[0608] 56. The method of clause 35, wherein a usage rule disables the use of NPT-T in a horizontal or vertical direction if a height H or a width W of a video block satisfies a condition.

[0609] 57. The method of clause 56, wherein the conditions include:

[0610] W>=T1 and H>=T2;

[0611] W>=T1 or H>=T2;

[0612] W<=T1 and H<=T2;

[0613] W <= T1 or H <= T2;

[0614] W×H<=T; or

[0615] W×H>=T, where W and H are integers, and T, T1, and T2 are rational numbers.

[0616] 58. The method of clause 35, wherein the usage rule disables the use of NPT-T in the horizontal direction if the height H or width W of the video block is:

[0617] (a) If H <= T, then horizontal NPT-T is not allowed,

[0618] (b) If H>=T, then horizontal NPT-T is not allowed,

[0619] (c) If W <= T, then vertical NPT-T is not allowed, or

[0620] (d) If W>=T, then vertical NPT-T is not allowed, where W, H and T are integers.

[0621] 59. The method of clause 35, wherein the usage rules prohibit the use of NPT-T in the horizontal or vertical direction unless the video block meets the conditions.

[0622] 60. The method of clause 59, wherein the conditions include:

[0623] W>=T1 and H>=T2;

[0624] W>=T1 or H>=T2;

[0625] W<=T1 and H<=T2;

[0626] W <= T1 or H <= T2;

[0627] W×H<=T;

[0628] W×H>=T;

[0629] If H <= T, then horizontal NPT-T is allowed;

[0630] If H>=T, then horizontal NPT-T is allowed;

[0631] If W <= T, then vertical NPT-T is allowed; or

[0632] If W>=T, then perpendicular NPT-T is allowed; where W, H, T, T1 and T2 are positive rational numbers.

[0633] Sections 4.3 to 4.5 provide additional examples and embodiments of clauses 35 to 60.

[0634] 61. A method for video processing, comprising:

[0635] applying, selectively based on the usage indication, a non-power-of-two tree (NPT-T) partitioning of the video block to conversion between the video block and a bitstream representation of the video block, wherein the video block or one or more smaller-sized sub-blocks of the video have a pixel size that is a non-power-of-two (NPT) integer; and

[0636] The conversion corresponding to the usage instruction is performed.

[0637] 62. A method according to clause 61, wherein the usage indication is signaled in the bitstream representation at video parameter set level or sequence parameter set level or picture parameter set level or sequence header level or picture header level or slice group header level or slice header level.

[0638] 63. A method as recited in any of clauses 61-62, wherein the usage indication indicates a type of partitioning used for the NPT-T partitioning.

[0639] 64. The method of clause 3, wherein the type of partitioning depends on the type of video block.

[0640] 65. A method according to any of clauses 61 to 64, wherein the usage indication depends on at least one of: a video resolution, a picture resolution, a codec mode, a video characteristic, a slice type, a picture type, a slice group type or a low delay check flag associated with the video block.

[0641] 66. A method according to any of clauses 61-65, wherein the usage indication comprises a plurality of syntax elements.

[0642] 67. A method according to clause 66, wherein a first syntax element of the plurality of syntax elements corresponds to a partitioning tree type and a second syntax element corresponds to a partitioning direction.

[0643] 68. A method according to clause 67, wherein the first syntax element appears in the bitstream representation before the second syntax element.

[0644] 69. A method according to clause 67, wherein the first syntax element appears in the bitstream representation after the second syntax element.

[0645] 70. A method according to any of clauses 61-69, wherein the use indicates the use of a binarized code.

[0646] 71. A method as recited in clause 70, wherein context-based arithmetic coding and decoding of a binarized code is used using a bin indicating a binarized code-based code.

[0647] 72. A method according to clause 71, wherein the use of context-based arithmetic coding depends on the following context: the position or index of the binary bit, or the partition of the video block into spatial or temporal neighboring blocks, or the current partition depth of the video block, or the partition depth of the spatial or temporal neighboring blocks.

[0648] 73. A method as recited in any of clauses 61-72, wherein the usage indication is further based on a color format or color components associated with the video block.

[0649] 74. A method according to any of clauses 1-73, wherein the converting comprises generating pixel values ​​of a video block from a bitstream representation or generating a bitstream representation from a video block.

[0650] Section 4.6 provides additional details and examples for clauses 61-74.

[0651] 75. A video decoding apparatus comprising a processor configured to implement the method according to one or more of clauses 1-74.

[0652] 76. A video encoding apparatus comprising a processor configured to implement the method according to one or more of clauses 1-74.

[0653] 77. A computer-readable medium having stored thereon code which, when executed, causes a processor to perform the method according to any one or more of clauses 1-74.

[0654] Figure 19 1900 is a flowchart of an example method 1900 for video processing. The method 1900 includes determining (1902) whether use of a non-power-of-two partitioning tree (NPT-T) is enabled or disabled for conversion between a first block of video and a bitstream representation of the first block of video, wherein the NPT-T includes partitioning the first block into a plurality of smaller-sized sub-blocks of the first block, and wherein a width and / or a height of at least one of the sub-blocks has a size that is a non-power-of-two integer; and in response to determining that the NPT-T is enabled, performing (1904) the conversion based on the NPT-T.

[0655] In some examples, the method further includes: the determination being based on a field present in the bitstream representation.

[0656] In some examples, the method also includes: the field is an indication of a partition tree type in a partition tree type set, the partition tree type set including at least one of NPT-T, quadtree (QT) or binary tree (BT) or ternary tree (TT); or an indication of the use of NPT-T.

[0657] In some examples, responsive to a determination that NPT-T is enabled, the first block is directly divided into a plurality of sub-blocks.

[0658] In some examples, at least one of the sub-blocks is a leaf node that is considered as a coding unit or a prediction unit or a transform unit for the conversion.

[0659] In some examples, the first block is W pixels wide and H pixels high, and wherein the sub-block width is W i pixels and a height of H i pixels, where W, H, and W i 、H i are all integers, and where i is an integer variable with values ​​between 0 and K-1, where K represents the number of sub-blocks.

[0660] In some examples, sub-blocks are further divided into even smaller blocks in a recursive manner.

[0661] In some examples, K>2.

[0662] In some examples, at least one W i or H i is a non-power-of-two integer.

[0663] In some examples, at least one W i or H i is a power-of-two integer.

[0664] In some examples,

[0665] (1)W i Equal to 2 floor(log2(W / K)) ,or

[0666] (2)H i Equal to 2 floor(log2(H / K)) ,or

[0667] (3) If i is not equal to j, then W i Different from W j ,or

[0668] (4) If i is not equal to j, then H i Different from H j ,

[0669] where i and j are integer variables with values ​​between 0 and K-1, where i is an integer variable with values ​​between 0 and K-1, and the function floor(x) returns the largest integer less than or equal to x.

[0670] In some examples, at least one W i is set to floor(W*m / 2 n ), where W>=2 n And 1<=m<2 n .

[0671] In some examples, at least one H i is set to floor(H*m / 2 n ), where H>=2 n And 1<=m<2 n .

[0672] In some examples, one or more of the sub-blocks are further divided into even smaller blocks according to NPT-T.

[0673] In some examples, the first block whose width or height is a non-power-of-two integer cannot be split according to NPT-T.

[0674] In some examples, the first block whose width is not equal to the height cannot be split according to NPT-T.

[0675] In some examples, the first block is divided in only one of the vertical direction and the horizontal direction.

[0676] In some examples, when the first block is divided in the vertical direction, H i =H, where i is 0 to (K-1).

[0677] In some examples, when the first block is divided in the horizontal direction, W i =W, where i is 0 to (K-1).

[0678] In some examples, L0 sub-blocks in the plurality of sub-blocks share the same partition size, where L0 is an integer between 2 and K.

[0679] In some examples, the width of the same partition size is floor(W / K), or the height of the same partition size is floor(H / K).

[0680] In some examples, the L0 sub-blocks are adjacent to each other.

[0681] In some examples, at least one of the L0 sub-blocks is a non-adjacent sub-block.

[0682] In some examples, the L0 sub-blocks are identified by consecutive indices that indicate the order of processing during the conversion.

[0683] In some examples, L1 sub-blocks of the remaining (K-L0) sub-blocks share a second same partition size, where L1 is an integer between 1 and K-L0.

[0684] In some examples, the width of the second same partition size is ((W-L0*floor(W / K)) / (K-L0)), or the height of the same partition size is ((H-L0*floor(H / K)) / (K-L0)).

[0685] In some examples, when L1 is equal to (K-L0–1), a left sub-block is assigned a block width equal to W–L0*floor(W / K)-((W-L0*floor(W / K)) / (K-L0))*(K-L0-1), or a top sub-block is assigned a block height equal to H–L0*floor(H / K)-((H-L0*floor(H / K)) / (K-L0))*(K-L0-1).

[0686] In some examples, the remaining (K-L0) sub-blocks are assigned different partition sizes.

[0687] In some examples, the L1 sub-blocks are adjacent to each other.

[0688] In some examples, at least one of the L1 sub-blocks is a non-adjacent sub-block.

[0689] In some examples, the L1 sub-blocks are identified by consecutive indices that indicate the order of processing during the conversion.

[0690] In some examples, the L1 sub-blocks are identified by non-sequential indices that indicate a processing order during the conversion.

[0691] In some examples, only the partition size (W i ×H i ) is different from the partition size of all remaining sub-blocks.

[0692] In some examples, all sub-blocks have the same partition size (W i ×H i ).

[0693] In some examples, the first block is divided both vertically and horizontally.

[0694] In some examples, W i At least one of them is not equal to W and / or H i At least one of them is not equal to H.

[0695] In some examples, if the width of the first block is a non-power-of-two integer, the first block is split in the vertical direction, or / and if the height of the first block is a non-power-of-two integer, the first block is split in the horizontal direction.

[0696] In some examples, if the width of the first block is a power-of-two integer, the first block is split in the vertical direction, or / and if the height of the first block is a power-of-two integer, the first block is split in the horizontal direction.

[0697] In some examples, the plurality of sub-blocks includes 6, 7, or 8 sub-blocks.

[0698] In some examples, a codec order is predetermined for an NPT-T mode.

[0699] In some examples, multiple codec orders are predetermined for an NPT-T mode.

[0700] In some examples, one of a plurality of codec orders is selected for the first block via signaling of an indication of the selected codec order or derivation at the decoder side.

[0701] In some examples, when the first block allows NPT-T, the first block is split from the parent block by one or more specific kinds of splitting methods.

[0702] In some examples, when the first block allows NPT-T, the first block is partitioned from the parent block by quadtree (QT) or binary tree (BT) or ternary tree (TT) or NPT-T partitioning.

[0703] In some examples, when the first block allows NPT-T, the first block can only be partitioned from the parent block by a quadtree (QT).

[0704] In some examples, when the first block allows NPT-T, the first block is a root block.

[0705] In some examples, a sub-block can be further divided into sub-blocks by one or more other partitioning types.

[0706] In some examples, a sub-block can be further divided into sub-blocks by BT and / or TT.

[0707] In some examples, a sub-block can be further divided into sub-blocks by BT and / or TT and / or QUT-T, but cannot be further divided into sub-blocks by QT.

[0708] In some examples, a sub-block can be further divided into sub-blocks by NPT-T and / or QT, but cannot be further divided into sub-blocks by BT or TT.

[0709] In some examples, a sub-block cannot be further divided into sub-blocks by QT.

[0710] In some examples, a sub-block cannot be further divided into sub-blocks.

[0711] In some examples, when a first block is split into a plurality of sub-blocks by NPT-T, the split depths of the sub-blocks are derived from the split depth of the first block.

[0712] In some examples, the partitioning of the NPT-T is used to update at least one of the QT, BT, TT, NPT-T, or multi-type tree (MTT) depth.

[0713] In some examples, the QT depth of one or all of the sub-blocks is equal to the QT depth of the first block plus one.

[0714] In some examples, the BT depth of one or all of the sub-blocks is equal to the BT depth of the first block plus one.

[0715] In some examples, the TT depth of one or all of the sub-blocks is equal to the TT depth of the first block plus one.

[0716] In some examples, the NPT-T depth of one or all of the sub-blocks is equal to the NPT-T depth of the first block plus one.

[0717] In some examples, the MTT depth of one or all of the sub-blocks is equal to the MTT depth of the first block plus one.

[0718] In some examples, if the first block is divided into sub-blocks by BT, the MTT depth of the sub-blocks is equal to the MTT depth of the first block plus 1.

[0719] In some examples, if the first block is divided into sub-blocks by TT, the MTT depth of the sub-blocks is equal to the MTT depth of the first block plus 1.

[0720] In some examples, the NPT-T or BT or TT or QT or MTT depth increase is different for different sub-blocks.

[0721] In some examples, the depth increase depends on the ratio of the sub-block compared to the first block.

[0722] In some examples, the filtering process depends on the NPT-T segmentation, wherein the filtering process is associated with at least one of a deblocking filter, a sample adaptive offset (SAO) filter, an adaptive loop filter (ALF), a diffusion filter, and a bilateral filter.

[0723] In some examples, whether and / or how samples are filtered depends on whether the samples are located at a boundary of a block generated by NPT-T partitioning.

[0724] In some examples, samples of previously reconstructed sub-blocks are used in a diffusion filter or / and a bilateral filter.

[0725] In some examples, whether and / or how samples are filtered depends on whether the samples are located at a boundary of a transform block within a codec unit generated by the NPT-T partitioning.

[0726] In some examples, intra prediction mode or combined inter and intra prediction (CIIP) mode depends on the NPT-T partitioning.

[0727] In some examples, a subblock uses a previously reconstructed subblock for intra prediction in intra prediction mode or CIIP mode.

[0728] In some examples, the local illumination compensation (LIC) mode depends on the NPT-T segmentation.

[0729] In some examples, a sub-block uses a previously reconstructed sub-block for deriving LIC parameters.

[0730] In some examples, whether use of non-power-of-two partitioning trees (NPT-T) is enabled is determined based on additional information, where the additional information about whether and / or which NPT-T to apply is signaled from the encoder to the decoder.

[0731] In some examples, information is signaled in at least one of a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS), a sequence header, a picture header, a slice header, a slice group header, and a slice header to indicate whether NPT-T can be applied.

[0732] In some examples, information is signaled in at least one of a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS), a sequence header, a picture header, a slice header, a slice group header, and a slice header to indicate which NPT-T can be applied.

[0733] In some examples, information is signaled in the block to indicate whether NPT-T can be applied.

[0734] In some examples, information is signaled in the block to indicate which NPT-T can be applied.

[0735] In some examples, different NPT-T sets are designed for different block shapes and / or sizes.

[0736] In some examples, different NPT-T sets are designed for at least one of a picture, a slice, or a slice having different temporal layers.

[0737] In some examples, whether and / or how NPT-T is applied depends on at least one of video resolution, picture resolution, codec mode, video characteristics including sequence or mixed content of screen content or camera capture, slice type, picture type, slice group type, and low latency check flag.

[0738] In some examples, a syntax element is signaled to indicate no partitioning or segmentation.

[0739] In some examples, one syntax element is first signaled to indicate whether to partition; then another syntax element is signaled to indicate the partition including the partition tree type and the partition direction.

[0740] In some examples, the indication of a partition is represented by two syntax elements: the selected partition tree type and the partition direction.

[0741] In some examples, an index of the partition tree type is first signaled in the block to indicate whether the block is partitioned by QT, partitioned by NPT-T, or non-partitioned.

[0742] In some examples, a partitioning direction and / or a partitioning pattern including one of horizontal, vertical, and mixed directions is further signaled.

[0743] In some examples, the index of the partition tree type is first signaled in the block to indicate whether the block is partitioned by BT, TT, or NPT-T.

[0744] In some examples, the index is conditionally signaled only when at least one of BT, TT, and NPT-T is valid for the first block.

[0745] In some examples, a partitioning direction including one of a horizontal direction and a vertical direction and / or a partitioning pattern is further signaled.

[0746] In some examples, an indication of the partition direction is signaled first, followed by the partition tree type including QT, TT, NPT-T.

[0747] In some examples, a flag is signaled in the block to indicate whether the block is split vertically or horizontally, where the vertical split is BT vertical split, TT vertical split, or NPT-T vertical split, and the horizontal split is BT horizontal split, TT horizontal split, or NPT-T horizontal split.

[0748] In some examples, the flag is conditionally signaled only when the first block is partitioned by BT or TT or NPT-T

[0749] In some examples, the flag is conditionally signaled only when both vertical and horizontal partitioning are valid for the first block.

[0750] In some examples, if only vertical partitioning is valid, no flag is signaled and horizontal partitioning is inferred to be used.

[0751] In some examples, if only horizontal partitioning is valid, no flag is signaled and vertical partitioning is inferred to be used.

[0752] In some examples, the binarization code is signaled in the block to indicate which partition to use, which is selected from a set of BT, TT, and one NPT-T.

[0753] In some examples, the candidate BT, TT, or NPT-T to be signaled is either a vertical partition or a horizontal partition, depending on previously signaled or derived information.

[0754] In some examples, a first flag is signaled to indicate whether NPT-T is used.

[0755] In some examples, the binarized code is binarized into a truncated unary code.

[0756] In some examples, a first flag is signaled to indicate whether BT is used, if BT is not used, a second flag is signaled to indicate whether NPT-T is used, and if NPT-T is used, a third flag indicating which NPT-T is used is further signaled.

[0757] In some examples, how which partitioning to use is signaled in a block depends on which partitioning is valid for the block, including the partitioning tree type and / or the partitioning direction.

[0758] In some examples, the candidate BT, TT, or NPT-T to be signaled is either a vertical partition or a horizontal partition, depending on previously signaled or derived information.

[0759] In some examples, disallowed or invalid partitions cannot be signaled from the encoder to the decoder.

[0760] In some examples, if only one partition among the set of BT, TT, and NPT-T is valid, the binarization code indicating which partition to use is not signaled.

[0761] In some examples, if only two partitions among BT, TT, and NPT-T are valid, a flag is signaled to indicate which of the two valid partitions to use.

[0762] In some examples, a code indicating which partition among the set of BT, TT, and NPT-T is binarized into a truncated unary code.

[0763] In some examples, the maximum value of the truncated unary code is N-1, where N is the number of valid partitions in a set of BT, TT, and NPT-T.

[0764] In some examples, invalid partitions are skipped when building the codeword table.

[0765] In some examples, if no NPT-T is valid, the flag indicating whether NPT-T is used is not signaled and is inferred to be false.

[0766] In some examples, if only one NPT-T is valid and the use of NPT-T is signaled, no further information is signaled to indicate which NPT-T to use, and the valid NPT-T is implicitly used.

[0767] In some examples, if only two NPT-Ts are valid, and use of NPT-T is signaled, a flag is signaled to indicate which NPT-T to use.

[0768] In some examples, if only three types of NPT-T are valid, and NPT-T is signaled to be used, the message is signaled to indicate which NPT-T to use.

[0769] In some examples, the binarization and / or signaling method does not change depending on which partitioning is valid in the block.

[0770] In some examples, the indication of the segmentation is encoded by arithmetic coding using one or more contexts.

[0771] In some examples, only some bins of a binary string are encoded or decoded with context, and the remaining bins are encoded or decoded in bypass mode.

[0772] In some examples, all bins of the binary string are encoded or decoded with the context.

[0773] In some examples, all bins of the binary string are encoded or decoded in bypass mode.

[0774] In some examples, for bins encoded with context, one or more contexts are used.

[0775] In some examples, the context depends on at least one of the following:

[0776] (a) The position or index of a binary bit;

[0777] (b) Segmentation of spatial / temporal neighboring blocks;

[0778] (c) a current segmentation depth of the current block, including at least one of a QT depth, a BT depth, a TT depth, an NPT-T depth, and an MTT depth;

[0779] (d) a segmentation depth of spatial / temporal neighboring blocks and / or spatial / temporal non-neighboring blocks, including at least one of a QT depth, a BT depth, a TT depth, an NPT-T depth, and an MTT depth;

[0780] (e) Coding and decoding mode of spatial / temporal neighboring blocks;

[0781] (f) Width / height of spatial / temporal neighboring blocks;

[0782] (g) width / height of the current block;

[0783] (h) slice type / picture type / slice group type;

[0784] (I) color component;

[0785] (j) Statistics of partition types from previously encoded and decoded blocks.

[0786] In some examples, whether and / or how NPT-T is applied depends on the color format and / or color components.

[0787] In some examples, the color format includes 4:4:4 or 4:2:0.

[0788] In some examples, whether and how NPT-T is used depends on whether the luma and chroma codec trees are separated.

[0789] In some examples, when the luma and chroma codec trees are separated, NPT-T can only be applied to the luma component.

[0790] In some examples, the plurality of sub-blocks includes 6, 7, or 8 sub-blocks.

[0791] In some examples, the width of the transform matrix applied to at least one sub-block is smaller than the width of the sub-block, where the width and / or height of the at least one sub-block has a size that is not a power of two integer; and / or the height of the transform matrix applied to at least one sub-block is smaller than the height of the sub-block, where the width and / or height of the at least one sub-block has a size that is not a power of two integer.

[0792] In some examples, the transformation generates a first block of video from the bitstream representation.

[0793] In some examples, the conversion generates a bitstream representation from the first block of the video.

[0794] Figure 20 2 is a flow chart of an example method 2000 for video processing. The method 2000 includes dividing (2002) a first block of a video into a plurality of sub-blocks including a first sub-block, wherein the width (W i ) and height (H i ) is a non-power-of-two integer; determining (2004) transform parameters associated with a transform block of the first sub-block for a conversion between the first sub-block and a bitstream representation of the first sub-block, wherein the width (TW i ) and height (TH i ) is smaller than the width of the first sub-block (W i ) and height (H i ), and TWi or TH i At least one of is a power of two; and performing (2006) the converting by using transformation parameters.

[0795] In some examples, the first sub-block is partitioned from the parent block that is the first block by using non-power-of-two partition tree (NPT-T) partitioning, wherein the NPT-T partitioning includes partitioning the first block of the video into a plurality of smaller-sized first sub-blocks of the first block, and a width (Wi) and / or a height (Hi) of at least one first sub-block is a non-power-of-two integer.

[0796] In some examples, the transform parameters include TW of the transform block i and / or TH i and / or transformation matrices.

[0797] In some examples, the TW of the transform block i and / or TH i The setting of the and / or transformation matrix depends on the block size of the first sub-block.

[0798] In some examples, TW i is set to pow(2,floor(log2(W i )) and / or TH i is set to pow(2,floor(log2(H i )), where the function floor(x) returns the largest integer less than or equal to x, and the function pow(x,y) returns x raised to the power of y.

[0799] In some examples, the TW of the transform block i and / or TH i The settings of the and / or transformation matrices depend on the available transformation matrices.

[0800] In some examples, TW i One of the allowed transform sizes and / or transform matrices set to a power of 2, and / or TH i One of the allowed transform sizes and / or transform matrices is set to a power of 2.

[0801] In some examples, TW i is the maximum allowed transform size, but no larger than W i , and TH i is the maximum allowed transform size, but no larger than H i .

[0802] In some examples, TW i and / or TH i The setting of the and / or transformation matrix depends on the parent block from which the sub-block is divided.

[0803] In some examples, TW i and / or TH i The setting of the transform matrix depends on the block size of one or more sub-blocks divided from the same parent block.

[0804] In some examples, TW i and / or TH i The setting of the color and / or transformation matrix depends on the color format and / or color components.

[0805] In some examples, TW i and / or TH i and / or the setting of the transform matrix depends on at least one of a picture type, a slice type, a slice group type and a low delay check flag.

[0806] In some examples, TW i and / or TH i The setting of the and / or transform matrix depends on other codec information including at least one of a quantization parameter, mode information and reference picture information, wherein the mode information includes intra-frame, inter-frame, combined intra-frame-inter-frame mode, and the reference picture information includes current picture reference, unidirectional prediction, bidirectional prediction and multi-hypothesis prediction.

[0807] In some examples, information about how to define the transform block size and / or transform matrix is ​​signaled in high-level syntax elements including the SPS or VPS, or signaled in the SPS / PPS / VPS / APS / sequence header / picture header / slice header / slice group header / CTU row / region.

[0808] In some examples, TW i Not greater than a predefined value TWmax, where TWmax=64, and / or TH i Not greater than a predefined value THmax, where THmax=64.

[0809] In some examples, TW i Not less than a predefined value TWmin, where TWmin=4, and / or TH i Not less than a predefined value THmin, where THmin=4.

[0810] In some examples, the transform parameters also include a fixed offset (OffsetX, OffsetY) that is applied to locate the upper left position within the area to which the transform is to be applied using the transform parameters, where the coordinates of the upper left corner of the first sub-block are (0, 0).

[0811] In some examples, OffsetX and OffsetY are both set to zero.

[0812] In some examples, only one of OffsetX and OffsetY is set to zero.

[0813] In some examples, both OffsetX and OffsetY are not equal to zero.

[0814] In some examples, OffsetX and / or OffsetY depend on the shape of the first sub-block.

[0815] In some examples, OffsetX and / or OffsetY depend on the shape of the parent block.

[0816] In some examples, OffsetX and / or OffsetY depend on the codec information of the child block / parent block.

[0817] In some examples, the settings of OffsetX and / or OffsetY depend on the color format and / or color components.

[0818] In some examples, the settings of OffsetX and / or OffsetY depend on at least one of a picture type, a slice type, a slice group type, and a low-latency check flag.

[0819] In some examples, the settings of OffsetX and / or OffsetY depend on other codec information including at least one of a quantization parameter, mode information, and reference picture information, wherein the mode information includes intra-frame, inter-frame, and combined intra-frame-inter-frame mode, and the reference picture information includes current picture reference, unidirectional prediction, bidirectional prediction, and multi-hypothesis prediction.

[0820] In some examples, OffsetX and / or OffsetY are signaled.

[0821] In some examples, a candidate set including one or more candidates of OffsetX and / or OffsetY is defined, and the indexes of the candidates are signaled.

[0822] In some examples, the size of the candidate set depends on the shape of the sub-block, and the index is signaled differently for different sub-block shapes.

[0823] In some examples, if the size of the candidate set is equal to 1, then no index is signaled.

[0824] In some examples, a candidate set including one or more candidates of (OffsetX, OffsetY) is defined, and the index of the candidate is signaled to indicate both OffsetX and OffsetY.

[0825] In some examples, the size of the candidate set depends on the shape of the sub-block, and the index is signaled differently for different sub-block shapes.

[0826] In some examples, if the size of the candidate set is equal to 1, then no index is signaled.

[0827] In some examples, the transform parameters include a plurality of different transform sizes and / or transform matrices and / or offsets for the first sub-block.

[0828] In some examples, all transform sizes are powers of 2.

[0829] In some examples, at least one of the transform dimensions is a power of 2.

[0830] In some examples, the transform size of other categories is no larger than TWmax and / or THmax.

[0831] In some examples, for each of the allowed transform sizes, only one fixed offset comprising both OffsetX and OffsetY is defined or derived to which the transform region is to be applied.

[0832] In some examples, only an indication of the selected transform size is signaled.

[0833] In some examples, a plurality of offsets of the region to which the transform is to be applied are associated with each of the allowed transform sizes.

[0834] In some examples, both the selected transform size and an indication of the offset are signaled.

[0835] In some examples, the number of allowed offsets is the same for all kinds of allowed transform sizes.

[0836] In some examples, the number of allowed offsets is different for different transform sizes.

[0837] In some examples, an indication of all kinds of allowed transform sizes and / or offsets and / or transform matrices is signaled.

[0838] In some examples, the allowed transform sizes and / or transform matrices and / or offsets are categorized into M categories, and the category index is signaled first.

[0839] In some examples, the index of the selected transform size / offset / matrix is ​​further signaled.

[0840] In some examples, one index is signaled to indicate both the transform size and the offset.

[0841] In some examples, the conversion generates a first sub-block of the video from the bitstream representation.

[0842] In some examples, the conversion generates a bitstream representation from the first sub-block of the video.

[0843] Figure 21 2 is a flow chart of an example method 2100 for video processing. The method 2100 includes determining (2102) whether non-power-of-two partitioning tree (NPT-T) partitioning is enabled or disabled for conversion between a video and a bitstream representation of the video, wherein the NPT-T partitioning includes partitioning a first block of the video into a plurality of smaller sub-blocks of the first block, and a width (W) of at least one of the sub-blocks is greater than or equal to 0. i ) and / or height (H i ) is a non-power-of-two integer; in response to determining that NPT-T segmentation is allowed, determining (2104) restrictions associated with the use of NPT-T segmentation; and performing (2106) the converting based on the determination.

[0844] In some examples, the restrictions include a maximum and / or minimum block size allowed for NPT-T partitioning and / or a maximum bit depth and / or maximum depth allowed for NPT-T partitioning.

[0845] In some examples, the maximum and / or minimum block size allowed for NPT-T partitioning and / or the maximum bit depth and / or maximum depth allowed for NPT-T partitioning are signaled or parsed in at least one of a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS), an adaptation parameter set (APS) sequence header, a picture header, a slice header, a slice group header, a slice header, a codec tree unit (CTU) row, and a region.

[0846] In some examples, the maximum and / or minimum block size allowed for NPT-T partitioning and / or the maximum bit depth and / or maximum depth allowed for NPT-T partitioning are derived from other values ​​including at least one of the depth of a multi-type tree (MTT) partitioning or the depth of a quadtree (QT) partitioning.

[0847] In some examples, the largest block that allows NPT-T partitioning is a largest codec block that is a codec tree block or a codec tree unit.

[0848] In some examples, the largest block allowed for NPT-T segmentation is a Virtual Pipeline Data Unit (VPDU).

[0849] In some examples, the maximum and / or minimum block size allowed for NPT-T partitioning and / or the maximum depth allowed for NPT-T partitioning depends on at least one of a profile, level, or layer of the standard.

[0850] In some examples, the maximum and / or minimum block size allowed for NPT-T partitioning and / or the maximum depth allowed for NPT-T partitioning is derived to be the same as for QT partitioning.

[0851] In some examples, the maximum and / or minimum block size allowed for NPT-T partitioning and / or the maximum depth allowed for NPT-T partitioning depends on at least one of slice group slice, slice type, color component, and whether dual tree is enabled.

[0852] In some examples, the maximum and / or minimum block size allowed for NPT-T partitioning and / or the maximum depth allowed for NPT-T partitioning are different for different NPT-T modes.

[0853] In some examples, when the first block is divided according to the NPT-T partitioning, the corresponding depth of the NPT-T partitioning of one sub-block is adjusted accordingly.

[0854] In some examples, when the first block is divided according to the NPT-T partitioning, the corresponding depth of the QT partitioning of one sub-block is adjusted accordingly.

[0855] In some examples, when the first block is divided according to the NPT-T partitioning, the corresponding depth of the MTT partitioning of one sub-block is adjusted accordingly.

[0856] In some examples, the adjustment of corresponding depths of different sub-blocks is done in the same way.

[0857] In some examples, the adjustment of the corresponding depths of different sub-blocks is done in different ways.

[0858] In some examples, the adjustment depends on the block size of the sub-blocks.

[0859] In some examples, adjusting includes increasing the corresponding depth by one.

[0860] In some examples, NPT-T splitting is disabled if the partitioned sub-block spans more than one virtual pipeline data unit (VPDU).

[0861] In some examples, NPT-T segmentation is enabled when sub-blocks are forced to be further divided until no sub-block spans more than one VPDU.

[0862] In some examples, if the width (W) and / or height (H) of the first block satisfies a predetermined condition, NPT-T segmentation is disabled.

[0863] In some examples, the predetermined condition includes at least one of the following:

[0864] NPT-T splitting is disabled if W>=T1 and H>=T2, where T1 and T2 are integers; or

[0865] NPT-T splitting is disabled if W>=T1 or H>=T2, where T1 and T2 are integers; or

[0866] NPT-T splitting is disabled if W <= T1 and H <= T2, where T1 and T2 are integers; or

[0867] NPT-T splitting is disabled if W <= T1 or H <= T2, where T1 and T2 are integers; or

[0868] If W×H<=T, then NPT-T segmentation is disabled, where T is an integer; or

[0869] NPT-T segmentation is disabled if W×H>=T, where T is an integer; or

[0870] If H <= T, then horizontal NPT-T splitting is disabled, where T = 16; or

[0871] If H>=T, then horizontal NPT-T is disabled, where T=128; or

[0872] If W <= T, vertical NPT-T is disabled, where T = 16; or

[0873] If W>=T, vertical NPT-T is disabled, where T=128.

[0874] In some examples, T1, T2, and T are signaled or parsed in at least one of a VPS, SPS, PPS, picture header, slice header, slice group header, and slice header.

[0875] In some examples, T1, T2, and T depend on the color components.

[0876] In some examples, T1, T2, and T are different for luma and chroma components.

[0877] In some examples, T1, T2, and T depend on whether the luma codec tree and the chroma codec tree are split.

[0878] In some examples, if the luma codec tree and chroma codec tree are separated, then T1, T2, and T are different for luma and chroma components.

[0879] In some examples, when transform is not supported for at least one sub-block partitioned by NPT-T partitioning, NPT-T partitioning is disabled.

[0880] In some examples, when the depth of the first block exceeds the allowed depth of NPT-T partitioning, NPT-T partitioning is disabled.

[0881] In some examples, NPT-T segmentation is disabled when a size of a sub-block among the plurality of sub-blocks is smaller than an allowed block size.

[0882] In some examples, NPT-T segmentation is enabled if the width (W) and / or height (H) of the first block meets predetermined conditions.

[0883] In some examples, the predetermined condition includes at least one of the following:

[0884] NPT-T splitting is enabled if W>=T1 and H>=T2, where T1 and T2 are integers; or

[0885] NPT-T splitting is enabled if W>=T1 or H>=T2, where T1 and T2 are integers; or

[0886] NPT-T splitting is enabled if W <= T1 and H <= T2, where T1 and T2 are integers; or

[0887] NPT-T splitting is enabled if W <= T1 or H <= T2, where T1 and T2 are integers; or

[0888] If W×H<=T, then NPT-T segmentation is enabled, where T is an integer; or

[0889] If W×H>=T, then NPT-T segmentation is enabled, where T is an integer; or

[0890] If H <= T, then horizontal NPT-T splitting is enabled, where T = 64; or

[0891] If H>=T, then horizontal NPT-T is enabled, where T=32; or

[0892] If W <= T, vertical NPT-T is enabled, where T = 64; or

[0893] If W>=T, vertical NPT-T is enabled, where T=32.

[0894] In some examples, T1, T2, and T are signaled or parsed in at least one of a VPS, SPS, PPS, picture header, slice header, slice group header, and slice header.

[0895] In some examples, T1, T2, and T depend on the color components.

[0896] In some examples, T1, T2, and T are different for luma and chroma components.

[0897] In some examples, T1, T2, and T depend on whether the luma codec tree and the chroma codec tree are split.

[0898] In some examples, if the luma codec tree and chroma codec tree are separated, then T1, T2, and T are different for luma and chroma components.

[0899] In some examples, if the depth of the first block satisfies a predetermined condition, NPT-T splitting is prohibited.

[0900] In some examples, the depth of the first block includes at least one of a QT depth, a BT depth, a TT depth, an NPT-T depth, or an MTT depth.

[0901] In some examples, the predetermined condition includes at least one of the following:

[0902] If the partition depth <= T, NPT-T partitioning is disabled;

[0903] If the partition depth >= T, NPT-T partitioning is disabled;

[0904] If QT partition depth <= T, NPT-T partitioning is disabled;

[0905] If QT partition depth >= T, NPT-T partitioning is disabled;

[0906] If BT partition depth >= T, NPT-T partitioning is disabled;

[0907] If BT partition depth <= T, NPT-T partitioning is disabled;

[0908] If TT partition depth >= T, NPT-T partitioning is disabled;

[0909] If TT partition depth >= T, NPT-T partitioning is disabled;

[0910] If NPT-T partition depth <= T, then NPT-T partitioning is disabled;

[0911] If NPT-T partition depth >= T, then NPT-T partitioning is disabled;

[0912] If MTT partition depth <= T, NPT-T partitioning is disabled;

[0913] If the MTT partition depth >= T, then NPT-T partitioning is disabled.

[0914] where T is an integer.

[0915] In some examples, T is signaled or parsed in at least one of a VPS, SPS, PPS, picture header, slice header, slice group header, and slice header.

[0916] In some examples, T depends on the color component.

[0917] In some examples, T is different for luma and chroma components.

[0918] In some examples, T depends on whether the luma codec tree and chroma codec tree are split.

[0919] In some examples, if the luma codec tree and chroma codec tree are separated, then T is different for luma and chroma components.

[0920] In some examples, if the depth of the first block satisfies a predetermined condition, NPT-T segmentation is enabled.

[0921] In some examples, the depth of the first block includes at least one of a QT depth, a BT depth, a TT depth, an NPT-T depth, or an MTT depth.

[0922] In some examples, the predetermined condition includes at least one of the following:

[0923] If partition depth <= T, NPT-T partitioning is enabled;

[0924] If the partition depth >= T, then NPT-T partitioning is enabled;

[0925] If QT partition depth <= T, then NPT-T partitioning is enabled;

[0926] If QT partition depth >= T, NPT-T partitioning is enabled;

[0927] If BT partition depth >= T, NPT-T partitioning is enabled;

[0928] If BT partition depth <= T, NPT-T partitioning is enabled;

[0929] If TT partition depth >= T, then NPT-T partitioning is enabled;

[0930] If TT partition depth >= T, then NPT-T partitioning is enabled;

[0931] If NPT-T partition depth <= T, then NPT-T partitioning is enabled;

[0932] If NPT-T partition depth >= T, then NPT-T partitioning is enabled;

[0933] If MTT partition depth <= T, NPT-T partitioning is enabled;

[0934] If MTT partition depth >= T, then NPT-T partitioning is enabled.

[0935] where T is an integer.

[0936] In some examples, T is signaled or parsed in at least one of a VPS, SPS, PPS, picture header, slice header, slice group header, and slice header.

[0937] In some examples, T depends on the color component.

[0938] In some examples, T is different for luma and chroma components.

[0939] In some examples, T depends on whether the luma codec tree and chroma codec tree are split.

[0940] In some examples, if the luma codec tree and chroma codec tree are separated, then T is different for luma and chroma components.

[0941] In some examples, whether and / or how NPT-T segmentation is used depends on the location of the first block.

[0942] In some examples, whether and how to use NPT-T partitioning depends on whether the first block crosses a picture, slice, or slice group boundary.

[0943] In some examples, if the first block straddles a picture, slice, or slice group bottom boundary, vertical NPT-T partitioning is disabled.

[0944] In some examples, if the first block straddles a picture, slice, or slice group bottom boundary, horizontal NPT-T partitioning is disabled.

[0945] In some examples, if the first block straddles a picture, slice, or slice group right boundary, vertical NPT-T partitioning is disabled.

[0946] In some examples, if the first block straddles a picture, slice, or slice group right boundary, horizontal NPT-T partitioning is disabled.

[0947] In some examples, if the first block crosses a picture, slice, or slice group bottom boundary, hybrid NPT-T partitioning is disabled.

[0948] In some examples, if the first block straddles a picture, slice, or slice group right boundary, hybrid NPT-T partitioning is disabled.

[0949] In some examples, if a sub-block divided by NPT-T partitioning is completely outside of a picture, slice, or slice group, the sub-block is omitted during conversion.

[0950] In some examples, if a sub-block divided by NPT-T partitioning is partially outside a picture, slice, or slice group, the portion outside the picture is omitted during conversion.

[0951] In some examples, if the sub-blocks divided by NPT-T partitioning are partially outside a picture, a slice, or a slice group, the portion within the picture is further divided.

[0952] In some examples, if the sub-blocks divided by NPT-T partitioning are partially outside a picture, a slice, or a slice group, the portion within the picture is coded as a codec unit (CU).

[0953] In some examples, whether a portion within a picture is coded as a CU depends on the width (w) and height (h) of the portion.

[0954] In some examples, if w=2nw, h=2nh, then the portion within the picture is coded as a CU, where nw and nh are integers.

[0955] In some examples, NPT-T partitioning is disabled if any sub-block divided by NPT-T partitioning is partially or completely outside a picture or slice or slice group.

[0956] In some examples, when NPT-T splitting or a specific NPT-T mode is disabled, indication of use of the signaling mode is skipped.

[0957] In some examples, when NPT-T partitioning or a particular NPT-T mode is disabled, the indication of the use of the mode is constrained to be false in the conforming bitstream.

[0958] In some examples, the sub-blocks divided from the first block by NPT-T are not allowed to be further divided by one or more of the following division methods:

[0959] a.QT,

[0960] b. Horizontal BT,

[0961] c. Vertical BT,

[0962] d. horizontal TT,

[0963] e. Vertical BT,

[0964] f. Horizontal Asymmetric Quadtree (UQT),

[0965] g. Vertical UQT, and

[0966] h.NPT-T

[0967] In some examples, NPT-T splitting is disabled for the root node.

[0968] In some examples, NPT-T splitting is enabled for leaf nodes.

[0969] In some examples, signaling indications of further partitioning according to other partitions is skipped.

[0970] In some examples, NPT-T segmentation is applied only to leaf nodes.

[0971] In some examples, a flag is signaled or parsed for the leaf nodes to indicate whether NPT-T segmentation is used.

[0972] In some examples, an indication of which NPT-T segmentation is further signaled or parsed.

[0973] In some examples, for a specific size of the first block, if the first block is divided into multiple sub-blocks by NPT-T partitioning, all of the multiple sub-blocks share the same Merge list.

[0974] In some examples, for a specific size of the first block, if the first block is divided into multiple sub-blocks by NPT-T partitioning, all of the multiple sub-blocks share the same codec mode, where the codec mode is intra mode or inter mode.

[0975] In some examples, for a particular size of the first block, if the first block is divided into multiple sub-blocks by NPT-T partitioning, all of the multiple sub-blocks share the same advanced motion vector prediction (AMVP) or other type of motion candidate list.

[0976] In some examples, for a particular size of the first block, if the first block is divided into multiple sub-blocks by NPT-T partitioning, all of the multiple sub-blocks share the same cross-component linear model (CCLM) or local illumination compensation (LIC) parameters or other parameters derived on the decoder side.

[0977] In some examples, the width of the transform matrix applied to at least one sub-block is smaller than the width of the sub-block, where the width and / or height of the at least one sub-block has a size that is not a power of two integer; and / or the height of the transform matrix applied to at least one sub-block is smaller than the height of the sub-block, where the width and / or height of the at least one sub-block has a size that is not a power of two integer.

[0978] In some examples, the transformation generates a first block of video from the bitstream representation.

[0979] In some examples, the conversion generates a bitstream representation from the first block of the video.

[0980] The disclosed and other solutions, examples, embodiments, modules, and functional operations can be implemented in digital electronic circuits, or in computer software, firmware, or hardware (including the structures disclosed in this document and their structural equivalents), or in a combination of one or more thereof. 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, which are used to be executed by a data processing device or to control the operation of the data processing device. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a combination of substances that affect a machine-readable propagated signal, or a combination of one or more thereof. The term "data processing device" includes all devices, equipment, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, a device may also include code that creates an operating environment for the computer program in question, for example, code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more thereof. A propagated signal is an artificially generated signal, such as a machine-generated electrical signal, an optical signal, or an electromagnetic signal, that is generated to encode information for transmission to a suitable receiver device.

[0981] 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, subroutines, or code portions). A computer program can be deployed to run on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.

[0982] 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 be implemented as, special purpose logic circuitry, such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).

[0983] Processors suitable for running computer programs include, for example, general-purpose and special-purpose microprocessors, and any one or more processors of any type of digital computer. Typically, a processor will receive instructions and data from read-only memory or random access memory, or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices (e.g., magnetic, magneto-optical, or optical disks) for storing data, or be operatively coupled to receive data from or transfer data to or from such one or more mass storage devices. However, a computer does not require such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and storage devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD ROM and DVD-ROM disks. The processor and memory may be supplemented by or incorporated into dedicated logic circuitry.

[0984] Although this patent document contains many details, these details should not be interpreted as limitations on any subject matter or the scope of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular technologies. Certain features described in this patent document in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, the various features described in the context of a single embodiment may also be implemented separately in multiple embodiments or in any suitable subcombination. Furthermore, although features may be described above as working in certain combinations and even initially claimed as such, one or more features from the claimed combination may be excluded from the combination in some cases, and the claimed combination may be directed to a subcombination or variation of the subcombination.

[0985] Similarly, while operations are depicted in a particular order in the drawings, 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, in order to achieve desired results. Furthermore, 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.

[0986] 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

1. A video processing method, comprising: determining whether non-power-of-two tree (NPT-T) segmentation is enabled or disabled for conversion between a video and a bitstream of the video, wherein the NPT-T segmentation comprises dividing a first block of the video into a plurality of sub-blocks of smaller sizes of the first block, and wherein a width Wi and / or a height Hi of at least one of the sub-blocks is a non-power-of-two integer; In response to determining that NPT-T segmentation is enabled, determining a maximum block size, a minimum block size, a maximum bit depth, and / or a maximum depth to allow NPT-T segmentation; and performing the converting based on determining that NPT-T splitting is enabled and determining a maximum block size, a minimum block size, a maximum bit depth, and / or a maximum depth that allows NPT-T splitting, Therein, the maximum block size, minimum block size and / or maximum depth are derived to be the same as the quadtree QT partitioning.

2. The method according to claim 1, wherein The maximum block size, minimum block size, maximum bit depth and / or maximum depth allowed for NPT-T partitioning are signaled or parsed in at least one of the video parameter set VPS, sequence parameter set SPS, picture parameter set PPS, adaptation parameter set APS sequence header, picture header, slice header, slice group header, slice header, codec tree unit CTU row and CTU area.

3. The method according to claim 1, wherein The maximum block size, minimum block size, maximum bit depth and / or maximum depth allowed for NPT-T partitioning are derived from at least one of the other values ​​including the depth of the multi-type tree MTT partitioning or the depth of the quadtree QT partitioning.

4. The method according to any one of claims 1 to 3, wherein The largest block that allows NPT-T partitioning is the largest codec block that is a codec tree block or a codec tree unit.

5. The method according to any one of claims 1 to 3, wherein The largest block that NPT-T is allowed to segment is the Virtual Pipeline Data Unit (VPDU).

6. The method according to any one of claims 1 to 3, wherein The maximum block size, minimum block size, maximum depth allowed for NPT-T segmentation also depend on at least one of the profile, level or layer of the standard.

7. The method according to any one of claims 1 to 3, wherein The maximum block size and / or minimum block size allowed for NPT-T partitioning and / or the maximum depth allowed for NPT-T partitioning depends on at least one of slice group slice, slice type, color component, and whether dual tree is enabled.

8. The method according to any one of claims 1 to 3, wherein The maximum block size and / or the minimum block size and / or the maximum depth allowed for NPT-T partitioning are different for different NPT-T modes.

9. The method according to any one of claims 1 to 8, wherein When the first block is divided according to the NPT-T partitioning, the corresponding depth of the NPT-T partitioning of one sub-block is adjusted accordingly.

10. The method according to any one of claims 1 to 8, wherein When the first block is divided according to the NPT-T partitioning, the corresponding depth of the QT partitioning of one sub-block is adjusted accordingly.

11. The method according to any one of claims 1 to 8, wherein When the first block is divided according to the NPT-T partitioning, the corresponding depth of the MTT partitioning of one sub-block is adjusted accordingly.

12. The method according to any one of claims 9 to 11, wherein: The adjustment of the corresponding depths of different sub-blocks is done in the same way.

13. The method according to any one of claims 9 to 11, wherein: The adjustment of the corresponding depths of different sub-blocks is done in different ways.

14. The method according to claim 13, wherein: The adjustment depends on the block size of the sub-block.

15. The method according to any one of claims 9 to 14, wherein: Adjustments consist of increasing the corresponding depth by 1.

16. The method according to any one of claims 1 to 15, wherein If the divided sub-block spans more than one virtual pipeline data unit VPDU, NPT-T splitting is disabled.

17. The method according to claim 16, wherein NPT-T segmentation is enabled when sub-blocks are forced to be further divided until no sub-block spans more than one VPDU.

18. The method according to any one of claims 1 to 17, wherein If the width W and / or height H of the first block satisfies predetermined conditions, NPT-T segmentation is disabled.

19. The method according to claim 18, wherein The predetermined condition includes at least one of the following: a. NPT-T splitting is disabled when W>=T1 and H>=T2, where T1 and T2 are integers; or b. NPT-T splitting is disabled when W>=T1 or H>=T2, where T1 and T2 are integers; or c. NPT-T splitting is disabled when W <= T1 and H <= T2, where T1 and T2 are integers; or d. NPT-T splitting is disabled when W <= T1 or H <= T2, where T1 and T2 are integers; or e. NPT-T segmentation is disabled when W×H<=T, where T is an integer; or f. NPT-T segmentation is disabled when W×H>=T, where T is an integer; or g. Horizontal NPT-T splitting is disabled when H <= T, where T = 16; or h. Horizontal NPT-T is disabled when H>=T, where T=128; or i. When W <= T, vertical NPT-T is disabled, where T = 16; or j. Vertical NPT-T is disabled when W>=T, where T=128.

20. The method according to claim 19, wherein T1, T2, and T are signaled or parsed in at least one of a VPS, an SPS, a PPS, a picture header, a slice header, a slice group header, and a slice header.

21. The method according to claim 19 or 20, wherein T1, T2, and T depend on the color components.

22. The method according to claim 21, wherein T1, T2, and T are different for luma and chroma components.

23. The method according to claim 19 or 20, wherein T1, T2, and T depend on whether the luma codec tree and chroma codec tree are split.

24. The method according to claim 23, wherein If the luma codec tree and chroma codec tree are separated, T1, T2 and T are different for luma and chroma components.

25. The method according to any one of claims 1 to 24, wherein When transform is not supported for at least one sub-block divided by NPT-T partitioning, NPT-T partitioning is disabled.

26. The method according to any one of claims 1 to 25, wherein When the depth of the first block exceeds the allowed depth of NPT-T splitting, NPT-T splitting is disabled.

27. The method according to any one of claims 1 to 26, wherein When the size of one of the multiple smaller-sized sub-blocks is smaller than the allowed block size, NPT-T segmentation is disabled.

28. The method according to any one of claims 1 to 17, wherein If the width W and / or height H of the first block satisfies predetermined conditions, NPT-T segmentation is enabled.

29. The method according to claim 28, wherein The predetermined condition includes at least one of the following: a) NPT-T splitting is enabled when W>=T1 and H>=T2, where T1 and T2 are integers; or b) NPT-T splitting is enabled when W>=T1 or H>=T2, where T1 and T2 are integers; or c) NPT-T splitting is enabled when W<= T1 and H<= T2, where T1 and T2 are integers; or d) NPT-T splitting is enabled when W <= T1 or H <= T2, where T1 and T2 are integers; or e) NPT-T segmentation is enabled when W×H<=T, where T is an integer; or f) NPT-T segmentation is enabled when W×H>=T, where T is an integer; or g) when H <= T, horizontal NPT-T splitting is enabled, where T = 64; or h) when H>=T, horizontal NPT-T is enabled, where T=32; or i) when W <= T, vertical NPT-T is enabled, where T = 64; or j) When W>=T, vertical NPT-T is enabled, where T=32.

30. The method according to claim 29, wherein T1, T2, and T are signaled or parsed in at least one of a VPS, an SPS, a PPS, a picture header, a slice header, a slice group header, and a slice header.

31. The method according to claim 29 or 30, wherein T1, T2, and T depend on the color components.

32. The method according to claim 31, wherein T1, T2, and T are different for luma and chroma components.

33. The method according to claim 29 or 30, wherein T1, T2, and T depend on whether the luma codec tree and chroma codec tree are split.

34. The method according to claim 33, wherein If the luma codec tree and chroma codec tree are separated, T1, T2 and T are different for luma and chroma components.

35. The method according to any one of claims 1 to 34, wherein If the depth of the first block satisfies a predetermined condition, NPT-T splitting is prohibited.

36. The method according to claim 35, wherein The depth of the first block includes at least one of a QT depth, a BT depth, a TT depth, an NPT-T depth, or an MTT depth.

37. The method according to claim 36, wherein The predetermined condition includes at least one of the following: a) When the partition depth <= T, NPT-T partitioning is disabled; b) When the partition depth is >= T, NPT-T partitioning is disabled; c) When QT partition depth <= T, NPT-T partitioning is disabled; d) When QT partition depth >= T, NPT-T partitioning is disabled; e) When BT partition depth >= T, NPT-T partitioning is disabled; f) When BT partition depth <= T, NPT-T partitioning is disabled; g) When TT partition depth >= T, NPT-T partitioning is disabled; h) When TT partition depth <= T, NPT-T partitioning is disabled; i) When NPT-T partition depth <= T, NPT-T partitioning is disabled; j) When NPT-T partition depth >= T, NPT-T partitioning is disabled; k) When MTT partition depth <= T, NPT-T partitioning is disabled; l) When MTT partition depth >= T, NPT-T partition is disabled, where T is an integer.

38. The method of claim 37, wherein: T is signaled or parsed in at least one of a VPS, an SPS, a PPS, a picture header, a slice header, a slice group header, and a slice header.

39. The method according to claim 37 or 38, wherein T depends on the color component.

40. The method of claim 39, wherein T is different for luma and chroma components.

41. The method according to claim 37 or 38, wherein T depends on whether the luma codec tree and chroma codec tree are split.

42. The method according to claim 41, wherein If the luma codec tree and chroma codec tree are separated, T is different for luma and chroma components.

43. The method according to any one of claims 1 to 34, wherein If the depth of the first block meets a predetermined condition, NPT-T segmentation is enabled.

44. The method according to claim 43, wherein The depth of the first block includes at least one of a QT depth, a BT depth, a TT depth, an NPT-T depth, or an MTT depth.

45. The method of claim 44, wherein: The predetermined condition includes at least one of the following: a) When the partition depth is <= T, NPT-T partitioning is enabled; b) When the partition depth is >= T, NPT-T partitioning is enabled; c) When QT partition depth <= T, NPT-T partitioning is enabled; d) When QT partition depth >= T, NPT-T partitioning is enabled; e) When BT partition depth >= T, NPT-T partitioning is enabled; f) When BT partition depth <= T, NPT-T partitioning is enabled; g) When TT partition depth >= T, NPT-T partitioning is enabled; h) When TT partition depth <= T, NPT-T partitioning is enabled; i) When NPT-T partition depth <= T, NPT-T partitioning is enabled; j) When NPT-T partition depth >= T, NPT-T partitioning is enabled; k) When MTT partition depth <= T, NPT-T partitioning is enabled; l) When the MTT partition depth is greater than or equal to T, NPT-T partitioning is enabled. where T is an integer.

46. ​​The method of claim 45, wherein T is signaled or parsed in at least one of a VPS, an SPS, a PPS, a picture header, a slice header, a slice group header, and a slice header.

47. The method according to claim 45 or 46, wherein T depends on the color component.

48. The method of claim 47, wherein T is different for luma and chroma components.

49. The method according to claim 45 or 46, wherein T depends on whether the luma codec tree and chroma codec tree are split.

50. The method of claim 49, wherein If the luma codec tree and chroma codec tree are separated, T is different for luma and chroma components.

51. The method according to any one of claims 1 to 50, wherein Whether and / or how NPT-T segmentation is used depends on the position of the first block.

52. The method of claim 51, wherein Whether and how to use NPT-T partitioning depends on whether the first block crosses a picture boundary, a slice boundary, or a slice group boundary.

53. The method of claim 52, wherein: If the first block crosses a picture boundary, a slice boundary, or a slice group bottom boundary, vertical NPT-T splitting is disabled.

54. The method of claim 52, wherein: If the first block crosses a picture boundary, a slice boundary, or a slice group bottom boundary, horizontal NPT-T splitting is disabled.

55. The method of claim 52, wherein: If the first block crosses a picture boundary, a slice boundary, or a slice group right boundary, vertical NPT-T splitting is disabled.

56. The method of claim 52, wherein: If the first block crosses a picture boundary, a slice boundary, or a slice group right boundary, horizontal NPT-T splitting is disabled.

57. The method of claim 52, wherein: If the first block crosses a picture boundary, a slice boundary, or a slice group bottom boundary, hybrid NPT-T partitioning is disabled.

58. The method of claim 52, wherein: If the first block crosses a picture boundary, a slice boundary, or a slice group right boundary, hybrid NPT-T partitioning is disabled.

59. The method of claim 52, wherein: If a subblock divided by NPT-T partitioning is completely outside a picture, slice, or slice group, the subblock is omitted during conversion.

60. The method of claim 52, wherein: If a subblock divided by NPT-T partitioning is partially outside a picture, a slice, or a slice group, the portion outside the picture is omitted during conversion.

61. The method of claim 52, wherein: If the subblocks divided by NPT-T partitioning are partially outside a picture, a slice, or a slice group, the portion within the picture is further divided.

62. The method of claim 52, wherein: If the subblocks divided by NPT-T partitioning are partially outside a picture, a slice, or a slice group, the portion within the picture is coded as a coding unit CU.

63. The method of claim 62, wherein: Whether a portion within a picture is coded as a CU depends on the width w and height h of the portion.

64. The method of claim 63, wherein If w=2nw, h=2nh, the portion within the picture is coded as a CU, where nw and nh are integers.

65. The method of claim 52, wherein: If any sub-block divided by NPT-T partitioning is partially or completely outside a picture or slice or slice group, NPT-T partitioning is disabled.

66. The method according to any one of claims 1 to 65, wherein When NPT-T splitting or a specific NPT-T mode is disabled, the indication of the use of the signaling mode is skipped.

67. The method according to any one of claims 1 to 65, wherein When NPT-T splitting or a specific NPT-T mode is disabled, the indication of the use of the mode is constrained to be false in the conforming bitstream.

68. The method according to any one of claims 1 to 67, wherein The sub-blocks divided from the first block by NPT-T are not allowed to be further divided by one or more of the following division methods: a.QT, b. Horizontal BT, c. Vertical BT, d. horizontal TT, e. Vertical TT, f. Horizontal asymmetric quadtree UQT, g. Vertical UQT, and h.NPT-T.

69. The method according to any one of claims 1 to 68, wherein Disable NPT-T splitting for the root node.

70. The method according to any one of claims 1 to 69, wherein Enable NPT-T splitting for leaf nodes.

71. The method of claim 70, wherein Signaling indication of further partitioning according to other partitions is skipped.

72. The method of any one of claims 1 to 69, wherein NPT-T segmentation is only applied to leaf nodes.

73. The method of claim 72, wherein: A flag is signaled or parsed for leaf nodes to indicate whether NPT-T segmentation is used.

74. The method of claim 73, wherein The indication of which NPT-T segmentation is further signaled or parsed.

75. The method of any one of claims 1 to 74, wherein For a specific size of the first block, if the first block is divided into a plurality of smaller-sized sub-blocks through NPT-T partitioning, all of the plurality of smaller-sized sub-blocks share the same Merge list.

76. The method of any one of claims 1 to 74, wherein For a specific size of the first block, if the first block is divided into multiple smaller-sized sub-blocks through NPT-T partitioning, all of the multiple smaller-sized sub-blocks share the same codec mode, where the codec mode is intra mode or inter mode.

77. The method of any one of claims 1 to 74, wherein For a specific size of the first block, if the first block is divided into multiple smaller-sized sub-blocks through NPT-T partitioning, all of the multiple smaller-sized sub-blocks share the same advanced motion vector prediction AMVP or other type of motion candidate list.

78. The method of any one of claims 1 to 74, wherein For a specific size of the first block, if the first block is divided into multiple smaller-sized sub-blocks through NPT-T partitioning, all of the multiple smaller-sized sub-blocks share the same cross-component linear model CCLM or local illumination compensation LIC parameters or other parameters derived at the decoder side.

79. The method of any one of claims 1 to 78, wherein The width of the transform matrix applied to at least one sub-block is smaller than the width of the sub-block, wherein the width and / or height of the at least one sub-block has a size that is not a power-of-two integer; and / or A height of a transform matrix applied to at least one sub-block is smaller than a height of the sub-block, wherein a width and / or a height of the at least one sub-block has a size that is a non-power-of-two integer.

80. The method of any one of claims 1 to 79, wherein The conversion generates a first block of video from the bitstream.

81. The method of any one of claims 1 to 79, wherein The conversion generates a bitstream from a first block of video.

82. An apparatus in a video system, comprising a processor and non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method of any one of claims 1-81.

83. A computer readable medium storing code which, when executed by a processor, causes the processor to perform the method according to any one of claims 1-81.

Citation Information

Patent Citations

  • Block partitioning using tree structures

    US20180109812A1