Limiting of use of non-power-quadratic segmentation trees in video compression
By introducing Non-Power-Track Partition Tree (NPT-T) technology, the design difficulties of transform/quantization matrices for non-power-track integer-size blocks in existing video codec standards are solved, improving video decoding quality and coding efficiency, and making it applicable to existing and future video codec standards.
Patent Information
- Application Number
- CN202511315071.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-02-15
- Filing Date
- 2020-02-17
- Publication Date
- 2026-02-06
AI Technical Summary
Existing video codec standards face challenges in designing transform/quantization matrices when processing video blocks of non-power-four integer sizes, resulting in limitations on coding efficiency and quality.
The Non-Power-Track Partition Tree (NPT-T) technique is used to allow video blocks to be divided into sub-blocks of non-power-track integer size and to perform video bitstream conversion by determining associated constraints, thus avoiding the introduction of additional transform/quantization matrices.
It improves video decoding quality and encoding efficiency, is compatible with existing and future video codec standards, supports more flexible block partitioning structures, and enhances the performance of encoders and decoders.
Smart Images

Figure CN121486567A_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application filed on February 17, 2020, with application number 202080014624.2 and entitled "Restrictions on the Use of Non-Fourth Power Segmentation Trees in Video Compression".
[0002] In accordance with applicable patent law and / or the rules of the Paris Convention, this application aims to promptly claim priority and interest in International Patent Application No. PCT / CN2019 / 075170, filed on February 15, 2019. The entire disclosure of International Patent Application No. PCT / CN2019 / 075170 is incorporated herein by reference as part of the disclosure of this application. Technical Field
[0003] This document covers video and image encoding and decoding. Background Technology
[0004] Digital video accounts for the largest share of bandwidth usage on the internet and other digital communication networks. As the number of connected user devices capable of receiving and displaying video increases, the bandwidth demand for digital video is expected to continue to grow. Summary of the Invention
[0005] This document discloses video encoding and decoding tools, which, in one example aspect, enable video encoders and decoders to encode or decode video bitstreams, wherein video blocks are encoded using segments of a size that is not a power of two integers.
[0006] In one example aspect, a method for processing video data is disclosed, comprising: determining whether Non-Power-Track (NPT-T) segmentation is enabled or disabled for a conversion between video and a bitstream of video, wherein NPT-T segmentation includes dividing a first block of video into a plurality of smaller sub-blocks of the first block, and at least one sub-block having a width Wi and / or a height Hi that is a non-power-track integer; in response to determining that NPT-T segmentation is permitted, determining restrictions associated with the use of NPT-T segmentation; and performing the conversion based on the determination.
[0007] In another example aspect, an apparatus for processing video data is disclosed, including a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to: determine whether Non-Power-Track (NPT-T) segmentation is enabled or disabled for a conversion between video and a bitstream of video, wherein NPT-T segmentation includes dividing a first block of video into a plurality of smaller sub-blocks of the first block, and at least one sub-block has a width Wi and / or height Hi that is a non-power-track integer; in response to determining that NPT-T segmentation is permitted, determine restrictions associated with the use of NPT-T segmentation; and perform the conversion based on the determination.
[0008] In another example aspect, a non-transitory computer-readable storage medium is disclosed that stores instructions that cause a processor to: determine whether non-power-four splitting (NPT-T) is enabled or disabled for a conversion between video and a bitstream of video, wherein NPT-T splitting includes dividing a first block of video into a plurality of smaller sub-blocks of the first block, and at least one sub-block has a width Wi and / or height Hi that is a non-power-four integer; in response to determining that NPT-T splitting is permitted, determine restrictions associated with the use of NPT-T splitting; and perform the conversion based on the determination.
[0009] In another example aspect, a non-transitory computer-readable recording medium is disclosed for storing a bitstream generated by a method performed by a video processing apparatus, wherein the method includes: determining whether non-power-four split tree (NPT-T) segmentation is enabled or disabled, wherein NPT-T segmentation includes dividing a first block of video into a plurality of smaller sub-blocks of the first block, and at least one sub-block has a width Wi and / or height Hi that is a non-power-four integer; in response to determining that NPT-T segmentation is permitted, determining restrictions associated with the use of NPT-T segmentation; and generating a bitstream based on the determination.
[0010] In another example, a method for storing a bitstream of video is disclosed, comprising: determining whether non-power-four split tree (NPT-T) segmentation is enabled or disabled, wherein NPT-T segmentation includes dividing a first block of video into a plurality of smaller sub-blocks of the first block, and at least one sub-block having a width Wi and / or a height Hi that is a non-power-four integer; in response to determining that NPT-T segmentation is permitted, determining restrictions associated with the use of NPT-T segmentation; generating a bitstream based on the determination; and storing the bitstream in a non-transitory computer-readable recording medium.
[0011] In another example, a method for video processing is disclosed. The method includes: enabling the use of a non-power-four partitioning tree (NPT-T) for a conversion between a video and its bitstream representation, wherein the NPT-T includes dividing a video block into one or more smaller sub-blocks of the video block, and at least one sub-block having a width or height of a pixel size that is a non-power-four integer; and performing the conversion using the NPT-T.
[0012] In another example, a different method for video processing is disclosed. This method includes: applying a transform size constraint to a conversion between a sub-video block and its bitstream representation, wherein the sub-video block is partitioned from a video block and has a pixel size that is a non-power-four (NPT) integer; and performing the conversion using the transform size constraint.
[0013] In yet another example, a different method for video processing is disclosed. This method includes: selectively applying a conversion between video blocks and their bitstream representations based on usage rules for using non-power-four (NPT-T) partitions of video blocks, wherein the video block or one or more smaller sub-blocks of the video have pixel sizes that are non-power-four (NPT) integers; and performing the conversion using the usage rules.
[0014] In yet another example, a different method for video processing is disclosed. This method includes: selectively applying a non-quadratic power tree (NPT-T) partitioning of video blocks to a conversion between video blocks and their bitstream representations based on a usage instruction, wherein the video block or one or more smaller sub-blocks of the video have pixel sizes that are non-quadratic power (NPT) integers; and performing the conversion corresponding to the usage instruction.
[0015] In another example, a different method for video processing is disclosed. This method includes: determining whether the use of a non-power-four partitioning tree (NPT-T) is enabled or disabled for a conversion between a first block of video and a bitstream representation of the first block, wherein the NPT-T includes dividing the first block into multiple smaller sub-blocks of the first block, and at least one sub-block has a width and / or height of a size that is a non-power-four integer; and performing the conversion based on the NPT-T in response to determining that the NPT-T is enabled.
[0016] In another example, a different method for video processing is disclosed. The method includes: dividing a first block of video into a plurality of sub-blocks including the first sub-block, wherein at least one of the width (Wi) and height (Hi) of the block size of the first sub-block is a non-quadratic integer; determining transformation parameters associated with a transform block of the first sub-block for a transformation between the first sub-block and its bitstream representation, wherein one or more of the width (TWi) and height (THi) of the block size of the transform block are smaller than the width (Wi) and height (Hi) of the first sub-block, and at least one of TWi or THi is a quadratic power; and performing the transformation using the transformation parameters.
[0017] In another example, a different method for video processing is disclosed. This method includes: determining whether Non-Power-Track Partitioning (NPT-T) segmentation is enabled or disabled for a conversion between a video and a bitstream representation of the video, wherein NPT-T segmentation includes dividing a first block of the video into multiple smaller sub-blocks of the first block, and at least one sub-block has a width (Wi) and / or height (Hi) that is a non-power-track integer; in response to determining that NPT-T segmentation is permitted, determining restrictions associated with the use of NPT-T segmentation; and performing the conversion based on this determination.
[0018] In another example, the above method can be implemented by a video encoder device or a video decoder device that includes a processor.
[0019] In yet another example, these methods can be stored on a computer-readable program medium in the form of processor-executable instructions.
[0020] These and other aspects are further described in this document. Attached Figure Description
[0021] Figure 1 An example of MB segmentation in H.264 / AVC is shown.
[0022] Figure 2 An example pattern for dividing codec blocks into prediction blocks is shown.
[0023] Figures 3A-3B The codec tree with its segmentation and the corresponding quadtree are shown.
[0024] Figures 4A-4B An example diagram of the QTBT structure is provided.
[0025] Figure 5 An example of allowed segmentation in video encoding and decoding is shown.
[0026] Figure 6 An example of the allowed splits between the parent split (solid line) and the current split (dashed line) is shown.
[0027] Figures 7A-7B as follows. Figure 7A An example of the EQT horizontal mode is shown. Figure 7B An example of EQT vertical mode is shown.
[0028] Figure 8 The signaling structure of a quadtree binary tree (QTBT) with EQT partitioning is shown.
[0029] Figures 9A-9H An example of asymmetric quadtree partitioning is shown.
[0030] Figures 10A-10B An example of penttree partitioning is shown.
[0031] Figure 11 An example of QTBT segmentation is shown.
[0032] Figure 12 The different segments used in video encoding and decoding are shown.
[0033] Figure 13A An example is shown where PIdx0 and PIdx1 have the same size.
[0034] Figure 13B An example is shown where PIdx0 and PIdx2 have the same size.
[0035] Figure 13C An example is shown where K=5 and L0=4.
[0036] Figure 14 An example of non-quadratic power tree (NPT-T) partitioning is shown (where K = 5, L0 = 2, L1 = 2).
[0037] Figures 15A-15B An example of (OffsetX, OffsetY) set to (0, 0) is shown.
[0038] Figures 16A-16B Another example of (OffsetX, OffsetY) set to (0, 0) is shown.
[0039] Figure 17 An example of a hardware platform used to implement the technologies described in this document is shown.
[0040] Figure 18 This is a flowchart of an example method for video processing.
[0041] Figure 19 This is a flowchart of an example method for video processing.
[0042] Figure 20 This is a flowchart of an example method for video processing.
[0043] Figure 21 This is a flowchart of an example method for video processing. Detailed Implementation
[0044] This document provides various techniques that can be used by decoders of video bitstreams to improve the quality of decompressed or decoded digital video. Furthermore, video encoders can implement these techniques during the encoding process to reconstruct decoded frames for further encoding.
[0045] For ease of understanding, chapter headings are used in this document, and the embodiments and techniques are not limited to the corresponding chapters. Thus, embodiments from one chapter can be combined with embodiments from other chapters.
[0046] 1. Overview
[0047] This document relates to image / video codecs, specifically the transformation design for blocks whose width or height is not a power of two. More specifically, it addresses how to avoid introducing additional transform / quantization matrices for such segmentation structures. It can be applied to existing video codec standards (such as HEVC) or standards to be implemented (General Video Codec). It may also be applicable to future video codec standards or video codecs.
[0048] 2. Brief discussion
[0049] Video codec standards have primarily evolved from well-known ITU-T and ISO / IEC standards. ITU-T developed H.261 and H.263, while ISO / IEC developed MPEG-1 and MPEG-4 Visual. These two organizations jointly developed the H.262 / MPEG-2 video codec and the 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, utilizing 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 a reference software called the Joint Exploration Model (JEM). In April 2018, the Joint Video Experts Group (JVET) between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) was established to work on the VVC standard, with the goal of reducing the bit rate by 50% compared to HEVC.
[0050] 2.1 Segmentation Tree Structure in H.264 / AVC
[0051] The terminology used in H.264 / AVS is macroblock and MB mode / 8x8 mode (segmentation). A macroblock is the unit into which each picture / strip is divided, and it is determined by the intra / inter-frame mode applied. Segmentation defines the level of signaling that informs motion information.
[0052] In H.264 / AVC, the core of the codec layer is the macroblock, which contains 16x16 blocks of luminance samples and, in the typical case of 4:2:0 color sampling, two corresponding 8x8 blocks of chrominance samples.
[0053] 2.1.1 H.264 / AVC Master Summary Table
[0054] Intra-frame codec blocks use spatial prediction to leverage the spatial correlation between pixels. Two partitions are defined: 16x16 and 4x4.
[0055] Inter-frame codec blocks use temporal prediction, rather than spatial prediction, to estimate motion between frames. Motion can be estimated independently for 16x16 macroblocks or any of their macroblock segments (16x8, 8x16, 8x8). Syntax elements (MB modes) are 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, or 4x4 is used (see [link to codec]). Figure 1 Only one motion vector (MV) is allowed per segment.
[0056] Figure 1 An example of MB segmentation in H.264 / AVC is shown.
[0057] Only 4x4 transformation is used.
[0058] 2.1.2H.264 / AVC High-Simplified Table
[0059] In the high-resolution table, 8x8 transform and I_8x8 (8x8 intra-prediction) are introduced. For intra-codec macroblocks, the transform size is fixed: I_16x6 and I_4x4 use 4x4 transform; I_8x8 uses 8x8 transform.
[0060] For inter-frame codec macroblocks, either a 4x4 or 8x8 transform can be selected. However, the transform size cannot exceed the split size. For example, if a macroblock selects an 8x8 split and further selects an 8x4 sub-mode, only a 4x4 transform can be applied. If a macroblock selects a 16x16, 16x8, 8x16, 8x8 split and an 8x8 sub-mode, then either a 4x4 or 8x8 transform can be selected.
[0061] 2.1.3 Overview
[0062] The mode selection is determined at the macroblock level. The transformation size should not exceed the segmentation size.
[0063] 2.2 Segmentation Tree Structure in HEVC
[0064] In HEVC, codec tree units (CTUs, also known as maximum codec units, LCUs) are divided into codec units (CUs) using a quadtree structure represented as a codec tree to accommodate various local features. The decision of whether to use inter-frame picture (temporal domain) or intra-frame picture (spatial domain) prediction to encode and decode picture regions is made at the CU level. Depending on the PU partitioning 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 based on the PU. After obtaining residual blocks by applying the prediction process based on the PU partitioning type, the CUs can be divided into transform units (TUs) according to another quadtree structure similar to the codec tree of the PU. A key feature of the HEVC architecture is its multi-segmentation concept, including CUs, PUs, and TUs.
[0065] In the following text, the various features involved in hybrid video encoding and decoding using HEVC are highlighted.
[0066] 1) Codec Tree Unit and Codec Tree Block (CTB) Structure: A similar structure to HEVC is the Codec Tree Unit (CTU), whose size is selected by the encoder and can be larger than a traditional macroblock. A CTU consists of a luma CTB, a corresponding chroma CTB, and syntax elements. The size of the luma CTB, L×L, can be selected as L = 16, 32, or 64 samples; larger sizes generally achieve better compression. HEVC then supports using a tree structure and quadtree-like signaling to divide the CTB into smaller blocks.
[0067] 2) Codec Unit (CU) and Codec Block (CB): The quadtree syntax of the CTU specifies the size and location of its luma CB and chroma CB. 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 division of the CTU into luma CBs and chroma CBs is notified by joint signaling. One luma CB and usually two chroma CBs together with the associated syntax form a codec unit (CU). A CTB may contain only one CU or may be divided to form multiple CUs, and each CU has a tree of associated partitions and transform units (TUs) that become prediction units (PUs).
[0068] 3) Prediction Unit (PU) and Prediction Block (PB): The decision of whether to use inter-frame or intra-frame prediction to encode and decode image regions is made at the PU level. The root of the PU segmentation structure is at the CU level. Based on the basic prediction type, the luma CB and chroma CB can then be further subdivided in size and predicted according to the luma and chroma prediction blocks (PB). HEVC supports variable PB sizes from 64×64 down to 4×4 samples. Figure 2 The allowed PBs are described.
[0069] Figure 2 An example pattern is shown where the CB is divided into multiple PBs under specific size constraints. For intra-frame image prediction CB, only MxM and M / 2x M / 2 are supported.
[0070] 4) Transform Units (TUs) and Transform Blocks: Prediction residuals are encoded and decoded using block transforms. The root of the TU tree structure is at the CU level. Luminance CB residuals can be the same as the Luminance Transform Blocks (TBs), or they can be further divided into smaller luminance TBs. The same applies to chrominance TBs. Integer basis functions similar to the Discrete Cosine Transform (DCT) are defined for square TB sizes of 4×4, 8×8, 16×16, and 32×32. For the 4×4 transform of the luminance intra-frame image prediction residuals, an integer transform derived from the form of the Discrete Sine Transform (DST) can be specified alternatively.
[0071] Figures 3A-3B An example of subdividing the CTB into CB and TB is shown. Solid lines indicate CB boundaries, and dashed lines indicate TB boundaries.
[0072] 2.2.1 Depth of a quadtree
[0073] For a given luma CB of size M×M, a flag signaling indicates whether it is divided into four blocks of size M / 2×M / 2. If further division is possible, as indicated by the maximum depth signaling of the residual quadtree in the SPS, a flag indicating whether it is divided into four quadrants is assigned to each quadrant. Leaf node blocks generated by the residual quadtree are transform blocks that are further processed by transform encoding and decoding. The encoder indicates the maximum and minimum luma TB sizes it will use. Division is implicit when the CB size is greater than the maximum TB size. No division is implicit when division would result in a luma TB size less than the indicated minimum. 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), the chroma TB size is half the luma TB size in each dimension. In the case of CU for intra-frame picture prediction, the decoded samples of the nearest neighbor TB (inside or outside the CB) are used as reference data for intra-frame picture prediction.
[0074] 2.2.2 Overview
[0075] Based on the increased depth of the quadtree, a CTU can be recursively partitioned into multiple CUs. For example... Figures 3A-3B As shown, only the square CB and TB partitions are specified, where blocks can be recursively divided into quadrants.
[0076] Mode selection is determined at the CU level. Side information based on the selected mode is signaled at the PU level, such as motion information or intra-prediction mode. Residuals are signaled at the TU level.
[0077] For inter-frame codec blocks, a PU should not be greater than a CU, and for intra-frame codec blocks, a PU should be equal to a CU.
[0078] For inter-frame codec blocks, TU can span PU, but for intra-frame codec blocks, TU should be equal to PU.
[0079] 2.3 JEM's quadtree plus binary tree block structure with larger CTU
[0080] To explore future video coding and decoding technologies beyond HEVC, the Joint Video Exploration Team (JVET) was jointly established by VCEG and MPEG in 2015. Since then, many new methods have been adopted by JVET and incorporated into reference software called the Joint Exploration Model (JEM).
[0081] 2.3.1 QTBT Block Segmentation Structure
[0082] Unlike HEVC, the QTBT structure removes the separation between the concepts of CU, PU, and TU, and supports greater flexibility in the shape of the CU segmentation. In the QTBT block structure, the CU can have a square or rectangular shape. Figure 5 As shown, the codec tree unit (CTU) is first segmented using a quadtree structure. The leaf nodes of the quadtree are then further segmented using a binary tree structure. There are two types of partitioning in the binary tree: symmetrical horizontal partitioning and symmetrical vertical partitioning. The leaf nodes of the binary tree are called codec units (CUs), and this segmentation is used for prediction and transform processing without any further segmentation. This means that CUs, PUs, and TUs have the same block size in the QTBT codec block structure. In JEM, CUs sometimes consist of codec blocks (CBs) with different color components; for example, a CU in the case of P-strips and B-strips in a 4:2:0 chroma format contains one luma CB and two chroma CBs. Sometimes, CUs consist of CBs with a single component; for example, a CU in the case of I-strips contains only one luma CB or only two chroma CBs.
[0083] Define the following parameters for the QTBT segmentation scheme:
[0084] –CTU size: The size of the root node of the quadtree, the same concept as in HEVC.
[0085] –MinQTSize: Minimum allowed size of quadtree leaf nodes
[0086] –MaxBTSize: The maximum allowed size of the root node of the binary tree.
[0087] –MaxBTDepth: Maximum allowed binary tree depth
[0088] –MinBTSize: Minimum allowed size of binary leaf nodes
[0089] In one example of a QTBT segmentation structure, the CTU size is set to 128×128 luminance samples and two corresponding 64×64 chrominance 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 segmentation is first applied to the CTU to generate quadtree leaf nodes. Quadtree leaf nodes can have sizes ranging 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 segmented by a binary tree because its size exceeds MaxBTSize (i.e., 64×64). Otherwise, the leaf quadtree node can be further segmented by a 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 partitioning is considered. When the width of a binary tree node equals MinBTSize (i.e., 4), no further horizontal partitioning is considered. Similarly, when the height of a binary tree node equals MinBTSize, no further vertical partitioning is considered. The leaf nodes of the binary tree are further processed by prediction and transformation without any further partitioning. In JEM, the maximum CTU size is 256×256 luminance samples.
[0090] Figure 4A An example of block partitioning using QTBT is shown, and Figure 4B The corresponding tree representation is shown. Solid lines indicate quadtree partitions, and dashed lines indicate binary tree partitions. In each partition (i.e., non-leaf) node of a binary tree, a signaling flag indicates which partition type (i.e., horizontal or vertical) is used, where 0 indicates a horizontal partition and 1 indicates a vertical partition. For quadtree partitions, it is not necessary to indicate the partition type because quadtree partitions always divide blocks horizontally and vertically to produce 4 sub-blocks of the same size.
[0091] Figures 4A-4B An example diagram of the QTBT structure is provided.
[0092] Furthermore, the QTBT scheme supports the ability for luma and chroma to have separate QTBT structures. Currently, for P-slices and B-slices, the luma CTB and chroma CTB within a single CTU share the same QTBT structure. However, for I-slices, the luma CTB is divided into CUs using a QTBT structure, and the chroma CTB is divided into chroma CUs using a separate QTBT structure. This means that a CU in an I-slice consists of either a codec block for the luma component or codec blocks for both chroma components, while a CU in a P-slice or B-slice consists of codec blocks for all three color components.
[0093] In HEVC, inter-frame prediction for small blocks is restricted to reduce memory accesses for motion compensation, resulting in no bidirectional prediction for 4×8 and 8×4 blocks, and no inter-frame prediction for 4×4 blocks. These restrictions are removed in JEM's QTBT.
[0094] 2.3.2 Overview of QTBT
[0095] Based on the increasing depth of the quadtree or binary tree, a CTU can be recursively divided into multiple CUs. Specify squares and rectangles CB (width / height equal to 1 / 2 or 2).
[0096] The mode selection is determined at the CU level. PU and TU are always equal to CU.
[0097] 2.4VVC Multi-Type Tree (MTT)
[0098] 2.4.1 Proposal
[0099] It proposes support for tree types other than quadtrees and binary trees. In the implementation, such as... Figure 5 As shown in (e) and (f), two more ternary tree (TT) partitions are introduced, namely the horizontal and vertical center-side ternary trees.
[0100] Figure 5 Examples of allowed splits in VVC: (a) No further splits (b) Quadtree split (c) Horizontal binary tree (horizontal BT) split (d) Vertical binary tree (vertical BT) split (e) Horizontal center-side ternary tree (horizontal TT) split (f) Vertical center-side ternary tree (vertical TT) split
[0101] Please note that a segment in BT / TT can be further subdivided using BT / TT. Therefore, rectangular blocks are allowed.
[0102] There are two levels of trees: the region tree (quadtree) and the prediction tree (binary or ternary). 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 encoding / decoding unit. For convenience, it is still referred to as the CU. The CU cannot be further partitioned. Prediction and transformation are applied to the CU in the same way as JEM. The entire partitioning structure is named the "multi-type tree".
[0103] 2.4.2 Split Tree in VVC
[0104] Three 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.
[0105] Figure 6 This shows examples of allowed divisions between the parent division (solid line) and the current division (dashed line). Lines marked with an "X" indicate that such divisions are not allowed.
[0106] In VVC, several variables are signaled / derived to control the use of different partitions. For example:
[0107] - Maximum multi-type tree depth, with separate offsets for luminance and chrominance, maxMttDepth.
[0108] -Maximum binary tree size maxBtSize / Maximum ternary tree size maxTtSize
[0109] -Minimum quadtree size MinQtSize / Minimum binary tree size MinBtSize / Minimum ternary tree size minTtSize
[0110] 2.4.2.1.1 Permissible Binary Partitioning Processes
[0111] The input to this process is:
[0112] - Binary partitioning mode btSplit
[0113] - Encoder / decoder block width cbWidth
[0114] - Encoder block height cbHeight
[0115] - The position (x0, y0) of the top-left luminance sample point of the considered codec block relative to the top-left luminance sample point of the image.
[0116] -Multi-type tree depth mttDepth,
[0117] - Maximum multi-type tree depth, with offset maxMttDepth,
[0118] -Maximum binary tree size maxBtSize
[0119] - Partition index partIdx.
[0120] The output of this process is the variable allowBtSplit.
[0121] Table 2-1 – Specifications of parallelTtSplit and cbSize based on btSplit
[0122] btSplit == Split_BT_VER btSplit == Split_BT_HOR parallelTtSplit SPLIT_TT_VER SPLIT_TT_HOR cbSize cbWidth cbHeight
[0123] The variables parallelTtSplit and cbSize are derived as specified in Table 2-1.
[0124] The variable allowBtSplit is derived as follows:
[0125] - allowBtSplit is set to FALSE if one or more of the following conditions are true:
[0126] / / Based on block size and maximum allowed MTT depth
[0127] -cbSize is less than or equal to MinBtSizeY
[0128] –cbWidth is greater than maxBtSize
[0129] –cbHeight is greater than maxBtSize
[0130] –mttDepth is greater than or equal to maxMttDepth
[0131] Otherwise, allowBtSplit is set to FALSE if all of the following conditions are true.
[0132] / / Based on image boundaries (the bottom image boundary and the bottom right image boundary are not perpendicular to each other)
[0133] –btSplit equals Split_BT_VER
[0134] –y0+cbHeight is greater than pic_height_in_luma_samples
[0135] Otherwise, allowBtSplit is set to FALSE if all of the following conditions are true.
[0136] / / Based on image boundaries (the right image boundary does not have a horizontal BT).
[0137] –btSplit equals Split_BT_HOR
[0138] –x0+cbWidth is greater than pic_width_in_luma_samples
[0139] –y0+cbHeight is less than or equal to pic_height_in_luma_samples
[0140] Otherwise, allowBtSplit is set to FALSE if all of the following conditions are true:
[0141] / / Based on the TT segmentation (mttDepth-1) in the above levels
[0142] –mttDepth is greater than 0
[0143] –partIdx equals 1
[0144] –MttSplitMode[x0][y0][mttDepth-1] equals parallelTtSplit
[0145] / / Based on the transformation size (e.g., when MaxTbSizeY equals 64, for 64x128, there is no vertical BT; for 128x64, there is no horizontal BT)
[0146] Otherwise, allowBtSplit is set to FALSE if all of the following conditions are true.
[0147] –btSplit equals Split_BT_VER
[0148] –cbWidth is less than or equal to MaxTbSizeY
[0149] –cbHeight is greater than MaxTbSizeY
[0150] Otherwise, allowBtSplit is set to FALSE if all of the following conditions are true.
[0151] –btSplit equals Split_BT_HOR
[0152] –cbWidth is greater than MaxTbSizeY
[0153] –cbHeight is less than or equal to MaxTbSizeY
[0154] Otherwise, allowBtSplit is set to TRUE.
[0155] 2.4.2.1.2 Permissible Ternary Partitioning Process
[0156] The input to this process is:
[0157] – Ternary partitioning mode ttSplit
[0158] – Encoder / decoder block width cbWidth
[0159] – Encoder / decoder block height cbHeight
[0160] – The position (x0, y0) of the top-left luminance sample point of the considered codec block relative to the top-left luminance sample point of the image.
[0161] -Multi-type tree depth mttDepth
[0162] - Maximum multi-type tree depth, with offset maxMttDepth,
[0163] -Maximum binary tree size maxTtSize.
[0164] - The output of this process is the variable allowTtSplit.
[0165] Table 2-2 – Specification of cbSize based on ttSplit.
[0166] ttSplit==SPLIT_TT_VER ttSplit==SPLIT_TT_HOR cbSize cbWidth cbHeight
[0167] The variable cbSize is derived as specified in Table 2-2.
[0168] The variable allowTtSplit is derived as follows:
[0169] - allowTtSplit is set to FALSE if one or more of the following conditions are true:
[0170] / / Based on block size
[0171] -cbSize is less than or equal to 2 * MinTtSizeY
[0172] -cbWidth is greater than Min(MaxTbSizeY,maxTtSize)
[0173] -cbHeight is greater than Min(MaxTbSizeY,maxTtSize)
[0174] / / Based on the maximum allowed MTT depth
[0175] -mttDepth is greater than or equal to maxMttDepth
[0176] / / Depending on whether it is located at the edge of the image
[0177] -x0+cbWidth is greater than pic_width_in_luma_samples
[0178] -y0+cbHeight is greater than pic_height_in_luma_samples
[0179] Otherwise, allowTtSplit is set to TRUE.
[0180] 2.5 Segmentation Tree Structure in AVS3
[0181] In AVS3, Extended Quadtree (EQT) segmentation is employed, which further extends the QTBT scheme and increases segmentation flexibility. More specifically, EQT divides the parent CU into four sub-CUs of different sizes, which can adequately model local image content that cannot be finely represented using QTBT. Simultaneously, EQT segmentation allows for interleaving with BT segmentation for enhanced adaptability.
[0182] Using EQT partitioning, the parent CU is divided into four child CUs with different sizes. For example... Figures 7A-7B As shown, EQT divides an MxN parent CU horizontally into two MxN / 4 CUs and two M / 2xN / 2 CUs. Similarly, EQT vertically divides to generate two NxM / 4 CUs and two M / 2xN / 2 CUs. Specifically, the EQT sub-block size is always a power of 2, so additional transformations are not necessarily involved.
[0183] Figure 7A An example of the EQT horizontal mode is shown. Figure 7B An example of EQT vertical mode is shown.
[0184] In the QTBT structure, the QT partition flag is first signaled to indicate whether the current CU has been partitioned via QT. Therefore, when this flag is false, a second signal is encoded to indicate whether the current CU partitioning mode is non-partitioned or BT partitioned. For BT partitioned CUs, a third binary bit (DIR) is signaled to distinguish between horizontal and vertical BT partitions. When EQT partitioning is introduced, if both BT and EQT are available, an additional binary bit called EQT is signaled to indicate whether it is an EQT partition, such as... Figure 8 As shown.
[0185] Figure 8The signaling structure is shown with QTBT and EQT segmentation.
[0186] 2.6UQT
[0187] An asymmetric quadtree (UQT) partitioning method is proposed. Using UQT, a block of size W×H is partitioned 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 two. 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 the text.
[0188] Figures 9A-9H This illustrates some aspects of UQT.
[0189] 2.7UQI-T
[0190] Several methods are proposed to introduce other types of partitioning structures that can divide a block into more than 4 partitions.
[0191] In one example, a penttree (QUI-T) partition is proposed. Figures 10A-10B An example is shown in the image.
[0192] Figures 10A-10B An example case of UQI-T is shown by dividing a W*H block into five smaller blocks.
[0193] Figure 10A It shows that W0+W1+W2+W3+W4=W; H0=H1=H2=H3=H4=H.
[0194] Figure 10B It shows that W0+W1+W2=W3+W4=W; H0=H1=H2; H3=H4; H0+H3=H.
[0195] In addition, there are other hexadecimal, heptatree, and octtree partitions (SnT, StT, OctT), where one block can be divided into 6, 7, or 8 smaller blocks.
[0196] 2.8 Asymmetric Binary Tree Structure
[0197] The tree structure used in this response (called Multi-Tree Type (MTT)) is a generalization of QTBT. In QTBT, such as Figure 11 As shown, the codec tree unit (CTU) is first segmented using a quadtree structure. The leaf nodes of the quadtree are then further segmented using a binary tree structure.
[0198] Figure 11 An example of a QTBT structure is shown.
[0199] The basic structure of MTT consists of two types of tree nodes: Region Tree (RT) and Prediction Tree (PT), supporting nine types of splits, such as... Figure 12 As shown. The region tree can recursively divide the CTU into square blocks until the leaf nodes of the region are 4x4 in size. At each node in the region tree, the prediction tree can be formed from one of three tree types: binary tree, ternary tree, and asymmetric binary tree (ABT, e.g.) Figure 12 (as depicted in (f) to (i)). In PT partitioning, quadtree splits are prohibited in the branches of the prediction tree. As in JEM, the luminance tree and chrominance tree are separated in the I stripe.
[0200] Figure 12 The diagram shows (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, and (i) vertical right asymmetric binary tree partitioning.
[0201] 2.8.1 Transformation / Quantization
[0202] To accommodate the more flexible partitioning of ABT, block sizes are not powers of two, such as 4x24 and 8x48, including the corresponding transform cores.
[0203] In total, additional transformations of 6 points, 12 points, 24 points, and 48 points have been added.
[0204] 3. Problems solved by the disclosed embodiments.
[0205] Although ABT segmentation can bring additional encoding and decoding gains, it also increases the complexity of the decoder by adding several new transformation matrices.
[0206] Meanwhile, only asymmetric binary split trees (i.e., ABT) were tried, and other types of splits that can divide a block into more than two asymmetric splits have not been fully investigated.
[0207] 4. Examples of technology
[0208] To address this problem, several methods have been proposed to introduce other types of partitioning structures that divide a block (also known as a parent block) into smaller blocks (also known as child blocks), where at least one block's width / height or both width and height are not powers of 2. This type of partitioning is called Non-Power-of-the-Quadratic Partition Tree (NPT-T).
[0209] The detailed techniques described below should be considered as examples to explain general concepts. These embodiments should not be interpreted narrowly. Furthermore, these embodiments can be combined in any way.
[0210] In the following discussion, the splitting tree can indicate QT, BT, TT, or asymmetric quadtree (UQT), EQT, or others. The splitting / partitioning direction can indicate a horizontal partition, a vertical partition, a diagonal partition, or others. A split is represented by its splitting tree type and splitting direction.
[0211] QT, BT, TT, UQT, or EQT refer to "QT partitioning", "BT partitioning", "TT partitioning", "UQT partitioning", and "EQT partitioning", respectively.
[0212] In the following discussion, "partition" and "segmentation" have the same meaning. The proposed method can also be applied to existing split trees.
[0213] The function floor(x) returns the largest integer less than or equal to x.
[0214] 4.1 Examples of NPT-T
[0215] 1. NPT-T partitioning is proposed, wherein at least one of the widths and / or heights of the smaller blocks is not a power of two. Using NPT-T, a block of size W×H is divided into K smaller blocks (K>1, where K is an integer value). When the indication for this partitioning is true, the block is directly divided into K smaller blocks (also called sub-blocks). Each smaller block can be considered an encoding / decoding unit / prediction unit / transform unit.
[0216] Each of the smaller blocks can be made up of W. i ×H i Indicates (i is 0..(K-1), indicating the partition index) and W i ,
[0217] H i All are integers.
[0218] a. In one example, each sub-block can be further divided into even smaller blocks, such as recursively.
[0219] b. In one example, K > 2. That is, a block can be divided into at least three smaller blocks.
[0220] (a) Alternatively, K equals 2; however, it can choose a different partitioning method instead of using (1 / 4W or 1 / 4H in the ABT design).
[0221] c. In one example, at least one W i or H i It is not in the form of a power of 2.
[0222] (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 .
[0223] (b) In addition, alternatively, at least one W i or H i It is in the form of a power of 2.
[0224] 1. In one example, W i Equal to 2 floor(log2(W / K )).
[0225] 2. In one example, H i Equal to 2 floor(log2(H / K)) .
[0226] 3. In one example, if i is not equal to j, then W i Possibly different from W j .
[0227] 4. In one example, if i is not equal to j, then H i Possibly different from H j .
[0228] d. In one example, at least one W i Set to floor(W*m / 2) n ), where W>=2 n And 1 <= m < 2 n .
[0229] e. In one example, at least H i Set to floor(H*m / 2) n), where H>=2 n And 1 <= m < 2 n .
[0230] f. In one example, blocks partitioned from NPT-T can be further partitioned based on NPT-T.
[0231] g. In one example, blocks whose width or height is not a power of 2 may not be partitioned according to NPT-T. Furthermore, alternatively, signaling notifications for the use of NPT-T are skipped.
[0232] h. In one example, non-square blocks whose width is not equal to their height may not be able to be partitioned according to NPT-T. Furthermore, instead, signaling notifications for the use of NPT-T are skipped.
[0233] i. In one example, a square block with a width equal to its height may not be divisible according to NPT-T. Furthermore, instead, signaling notifications for the use of NPT-T are skipped.
[0234] j. In one example, blocks whose width or height is not a power of two must be partitioned. Furthermore, alternatively, the signaling notification for the partitioning flag is skipped.
[0235] 4.2 Segmentation direction of NPT-T
[0236] 2. NPT-T can divide a block only in the vertical direction.
[0237] a. For example, H i =H(for i = 0…(K-1)).
[0238] b. In one example, L0 partitions (L0 equals 2…K) share the same partition size.
[0239] (a) In one example, the width of the same segment size is set to floor(W / K).
[0240] (b) In one example, L0 partitions can be adjacent to each other. Alternatively, they can be non-adjacent to each other.
[0241] (c) In one example, L0 segments can be given segment indices consecutively, where the segment index indicates that a segment should be directly encoded or decoded before or after another segment.
[0242] (d) Some examples of L0=2 and K=3 are given in Figure 13.
[0243] i. in Figure 13A In the equation, W0 = W1 = floor(W / 3) and W2 = W - 2*floor(W / 3).
[0244] ii. In Figure 13B In the equation, W0 = W2 = floor(W / 3) and W1 = W - 2 * floor(W / 3).
[0245] iii. In Figure 13C In the equation, W0 = W1 = W2 = W3 = floor(W / 5) and W4 = W - 4 * floor(W / 5).
[0246] Figure 13A An example is shown where PIdx0 and PIdx1 have the same size.
[0247] Figure 13B An example is shown where PIdx0 and PIdx2 have the same size.
[0248] Figure 13C An example is shown where K=5 and L0=4.
[0249] Figures 13A-13C An example of NPT-T segmentation is shown (where K = 3 and L0 = 2 for (a) and (b)).
[0250] c. Alternatively, L1 of the remaining (K-L0) segments can be assigned equal sizes.
[0251] (a) In one example, L1 is in the range [1…K-L0].
[0252] (b) In one example, the width of the L1 segment size is set to floor((W-L0*floor(W / K)) / (K-L0)). Alternatively, when L1 equals (K-L0-1), a left segment can also be assigned a block width equal to W-L0*floor(W / K)-((W-L0*floor(W / K)) / (K-L0))*(K-L0-1).
[0253] (c) Alternatively, the remaining (K-L0) segments can be assigned different sizes.
[0254] (d) In one example, L1 partitions can be adjacent to each other. Alternatively, they can be non-adjacent to each other.
[0255] (e) In one example, L1 segments can be given segment indices consecutively, where the segment index indicates that a segment should be directly encoded or decoded before or after another segment. Alternatively, they can be given segment indices non-consecutively.
[0256] (f) in Figure 14The text provides some examples where L0 = 2, L1 = 2, and K = 5. Figure 14 In the given information, W0 = W1 = floor(W / 5), W2 = W3 = floor((W-2*floor(W / 5)) / 3), and W4 = W-2*W0-2*W1.
[0257] Figure 14 An example of NPT-T segmentation is shown (where K = 5, L0 = 2, L1 = 2).
[0258] d. In one example, only one segmentation size (W) i ×H i This is different from all remaining partitions.
[0259] (a) For example, L0 equals K-1.
[0260] e. In one example, the segmentation size (W) i ×H i All partitions can be the same.
[0261] 3. NPT-T can divide a block only in the horizontal direction.
[0262] a. Sub-bullets in bullet point 2 can be applied by swapping H and W.
[0263] 4. NPT-T can divide a block in both the horizontal and vertical directions. This is called a mixed orientation.
[0264] a. For example, W i At least one of them is not equal to W.
[0265] b. For example, H i At least one of them is not equal to H.
[0266] 5. If the width of the block is not a power of 2, NPT-T can divide the block vertically, and / or if the height of the block is not a power of 2, NPT-T can divide the block horizontally.
[0267] a. Alternatively, if the width of the block is a power of 2, NPT-T can divide the block vertically, or / and if the height of the block is a power of 2, NPT-T can divide the block horizontally.
[0268] 6. The above method can be extended to other quadtree, hextree, nontree, and octree partitioning (SnT, StT, OctT), where one block can be divided into 6, 7, or 8 smaller blocks.
[0269] 7. The encoding / decoding order (represented by PIdx 0..(K-1)) may differ from the order in which the encoding and decoding occur. Figures 13A-13C and Figure 14 The encoding / decoding order defined in [the code].
[0270] a. The encoding and decoding order of an NPT-T mode can be predefined.
[0271] b. Alternatively, multiple encoding / decoding orders can be predefined for an NPT-T mode, and a block can select one of them (such as by signaling an indication of the selected encoding / decoding order or by derivation on the decoder side).
[0272] 4.3 Selection of Transformation Dimension / Transformation Matrix and Transformation Region
[0273] 8. For width (W) i ) and height (H) i At least one of the sub-block sizes is not a power of 2, restricting the use of transform blocks smaller than the sub-blocks (where the width and height are respectively determined by TW). i and TH i (This indicates that) In other words, if TW i =W i And TH i =H i If so, it is not allowed.
[0274] a. In one example, TW i and / or TH i The settings for the and / or transformation matrices can depend on the sub-block size.
[0275] (a) In one example, TW i Set to pow(2, floor(log2(W)) i )).
[0276] (b) In one example, TH i Set to pow(2, floor(log2(H) i )).
[0277] b. In one example, TW i and / or TH i The setting of the transformation matrix and / or the transformation matrix can depend on the available transformation matrices.
[0278] (a) In one example, TW i A permissible transformation size and / or transformation matrix set to a power of 2, such as a maximum permissible transformation size but not greater than W. i .
[0279] (b) In one example, THi A permissible transformation size and / or transformation matrix set to a power of 2, such as a maximum permissible transformation size but not greater than H. i .
[0280] c. In one example, TW i and / or TH i The setting of the transformation matrix can depend on the parent block from which the sub-block is divided.
[0281] d. In one example, TW i and / or TH i The setting of the transformation matrix can depend on the size of the child blocks derived from the same parent block.
[0282] e. In one example, TW i and / or TH i The settings for the and / or transformation matrix can depend on the color format and / or
[0283] Or color components.
[0284] f. In one example, TW i and / or TH i The settings for the and / or transformation matrix can depend on the image type / strip type / pie group type / low latency check flag.
[0285] g. In one example, TW i and / or TH i The settings of the and / or transform matrix can depend on other encoding and decoding information, such as quantization parameters, mode information (intra-frame / inter-frame / combined intra--inter-frame), and reference picture information (current picture reference / one-way prediction / two-way prediction / multiple hypothesis prediction).
[0286] h. Signaling instructions can be provided in advanced syntax elements to define transform block sizes and / or transform matrices, such as in SPS / VPS / in SPS / PPS / VPS / APS / sequence header / picture header / strip header / piece group header / CTU line / region, etc.
[0287] i. In one example, TW i It should not exceed TWmax. For example, TWmax = 64.
[0288] j. In one example, TH i It is not greater than THmax. For example, THmax = 64.
[0289] k. In one example, TW i Not less than TWmin. For example, TWmin = 4.
[0290] l. In one example, THi Not less than THmin. For example, THmin = 4.
[0291] 9. When transforming the block (where the width and height are respectively determined by TW) i and TH i When the size of the sub-block is smaller, a fixed offset (OffsetX, OffsetY) can be applied to locate the area where the transformation should be applied.
[0292] 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.
[0293] Figure 15A The case where Wi≠2N0 and Hi=2N1 is shown.
[0294] Figure 15B W was shown i ≠2 N0 H i ≠2 N1 The situation.
[0295] Figures 15A-15B An example of (OffsetX, OffsetY) set to (0,0) is shown (solid lines: sub-blocks; dashed lines: transform regions).
[0296] b. Alternatively, only one of OffsetX and OffsetY is set to 0.
[0297] c. Alternatively, neither OffsetX nor OffsetY is equal to 0.
[0298] (a) In one example, OffsetX is set to (W i -TW i ).
[0299] (b) In one example, OffsetY is set to (H i -TH i ).
[0300] (c) Figures 16A-16B Some examples are shown.
[0301] Figure 16A It shows where W i ≠2 N0 H i =2 N1 Examples.
[0302] Figure 16B This shows that Wi≠2 N0 Hi≠2 N1 Examples.
[0303] Figures 16A-16B An example of (OffsetX, OffsetY) set to (0,0) is shown (solid lines: sub-blocks; dashed lines: transform regions).
[0304] d. OffsetX and / or OffsetY can depend on the shape of the sub-block.
[0305] e.OffsetX and / or OffsetY can depend on the shape of the parent block.
[0306] f.OffsetX and / or OffsetY can depend on the encoding / decoding information of the child / parent block.
[0307] g. In one example, the settings for OffsetX and / or OffsetY may depend on the color format and / or color components.
[0308] h. In one example, the settings for OffsetX and / or OffsetY may depend on the image type / strip type.
[0309] / Piece group type / Low latency check flag.
[0310] i. In one example, the settings of OffsetX and / or OffsetY may depend on other codec information, such as quantization parameters, mode information (intra-frame / inter-frame / combined intra-inter-frame), and reference picture information (current picture reference / one-way prediction / two-way prediction / multiple hypothesis prediction).
[0311] j. In one example, signaling can be used to notify OffsetX and / or OffsetY.
[0312] k. In one example, several candidates for OffsetX and / or OffsetY can be defined, and the index of the candidates can be signaled.
[0313] (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.
[0314] (b) If the size of the candidate set is equal to 1, then no signaling is sent to the index.
[0315] l. In one example, several candidates (OffsetX, OffsetY) can be defined, and the index of the candidates can be signaled to indicate OffsetX and OffsetY.
[0316] (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.
[0317] (b) If the size of the candidate set is equal to 1, then no signaling is sent to the index.
[0318] 10. Unlike the one that targets width (W) i ) and height (H) i If at least one of the subblock sizes is not of the form of a power of 2, then only one fixed transformation size and / or transformation matrix is allowed for the above bullet point. It is proposed that for this kind of subblock, multiple different transformation sizes and / or transformation matrices are allowed.
[0319] a. In one example, the permissible transformation dimensions for all kinds should be in the form of a power of 2.
[0320] b. Alternatively, at least one permissible transformation dimension should be in the form of a power of 2.
[0321] c. In one example, other types of transformation dimensions should not be larger than the transformation dimensions defined in bullet point 8.
[0322] d. For each of the allowed transformation dimensions, only a fixed offset (including both OffsetX and OffsetY) should be defined / derived for the transformation region to be applied.
[0323] (a) In this case, the signaling may be used to notify only of the indication of the selected transformation.
[0324] e. Multiple offsets of the transformation region should be applied, which can be associated with each of the allowed transformation dimensions.
[0325] (a) In this case, signaling can be used to notify the selected transformation and offset.
[0326] (b) In one example, the number of allowed offsets is the same for all types of allowed transformation dimensions.
[0327] (c) Alternatively, the number of allowable offsets may differ for different transform sizes.
[0328] f. In one example, signaling can be used to indicate all kinds of permitted transformation dimensions and / or offsets and / or transformation matrices.
[0329] g. Alternatively, the allowed transformation dimensions and / or transformation matrices and / or offsets can be categorized into M classes. The class indices can be signaled first. Furthermore, alternatively, the indices of the selected transformation dimensions / offsets / matrices can be signaled further.
[0330] h. In one example, an index can be signaled to indicate both the transformation size and the offset.
[0331] 4.4 Use of Non-Quadratic Partition Trees
[0332] 11. A block that has been divided into sub-blocks by NPT-T can be divided from its parent block by one or more specific types of partitioning methods.
[0333] a. Blocks that can be NPT-T partitioned can be blocks generated by QT, BT, TT, or NPT-T partitioning.
[0334] b. For example, a block that is divided into sub-blocks via NPT-T can only be divided from the parent block via QT.
[0335] c. Blocks that can be NPT-T partitioned can be root blocks.
[0336] 12. A block partitioned from a parent block via NPT-T can be further partitioned into sub-blocks using one or more other partitioning types (such as QT, BT, TT, NPT-T, UQT).
[0337] a. For example, a block partitioned from a parent block via NPT-T can be further partitioned into child blocks via BT and / or TT.
[0338] b. For example, a block partitioned from a parent block via NPT-T can be further partitioned into child blocks via BT and / or TT, and / or QUT-T instead of QT.
[0339] c. For example, a block partitioned from a parent block via NPT-T can be further partitioned into sub-blocks via NPT-T and / or QT instead of BT / TT.
[0340] d. For example, a block partitioned from a parent block via NPT-T cannot be further partitioned into child blocks via QT.
[0341] e. Alternatively, NPT-T partitioned blocks may not be further divided into sub-blocks.
[0342] 13. When a parent block is divided into child blocks via NPT-T, the partitioning depth of the child blocks can be derived from the partitioning depth of the parent block.
[0343] a. In one example, NPT-T partitions can be used to update QT / BT / TT / NPT-T / MTT depths.
[0344] (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.
[0345] (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.
[0346] (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.
[0347] (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.
[0348] (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.
[0349] Increase the depth by 1.
[0350] 1. For example, if a parent block is divided into child blocks via BT, then the MTT depth of the child block is equal to the MTT depth of the parent block plus 1.
[0351] 2. For example, if a parent block is divided into child blocks by TT, then the MTT depth of the child block is equal to the MTT depth of the parent block plus 1.
[0352] b. In one example, the NPT-T / BT / TT / QT / MTT depth increases can be different for different sub-blocks.
[0353] (a) The depth increase depends on the ratio of the child block to the parent block.
[0354] 14. Filtering processes (such as deblocking filters, SAO, ALF, diffusion filters, bilateral filters) can depend on NPT-T partitioning.
[0355] a. In one example, whether / how to filter samples may depend on whether these samples are located due to
[0356] At the boundary of a block partitioned by NPT-T.
[0357] b. In one example, samples from a previously reconstructed subblock can be used in a spread filter and / or a bilateral filter. c. In one example, whether / how samples are filtered can depend on whether these samples are located at the boundary of a transform block within an encoding / decoding unit partitioned by NPT-T.
[0358] 15. Intra-frame prediction mode or CIIP mode can depend on NPT-T segmentation.
[0359] a. In one example, a sub-block can use a previously reconstructed sub-block for intra-prediction in either intra-prediction mode or CIIP mode.
[0360] 16. Local illumination compensation (LIC) mode can depend on NPT-T segmentation.
[0361] a. In one example, a sub-block can use a previously reconstructed sub-block to deduce LIC parameters.
[0362] 4.5 Limitations on the use of NPT-T
[0363] 17. In one example, the maximum / minimum block size and / or maximum bit depth that NPT-T segmentation can be allowed and / or the maximum depth that NPT-T segmentation can be allowed can be signaled in SPS / PPS / VPS / APS / sequence header / picture header / strip header / fragment header / CTU line / region, etc.
[0364] a. The maximum / minimum block size that allows NPT-T partitioning and / or the maximum depth that allows NPT-T partitioning can be derived from other values (such as the depth of MTT or the depth of QT).
[0365] b. The largest block that can be split in NPT-T can be the largest codec block (codec tree block or codec tree unit).
[0366] c. For example, the largest block that allows NPT-T partitioning can be a Virtual Pipeline Data Unit (VPDU).
[0367] d. In one example, the maximum / minimum block size that can be allowed for NPT-T partitions and / or the maximum depth that can be allowed for NPT-T partitions can depend on the standard profile / level / hierarchy.
[0368] e. In one example, the maximum / minimum block size that can be allowed for NPT-T partitioning and / or the maximum depth that can be allowed for NPT-T partitioning can be derived as the same as that for QT partitioning.
[0369] f. In one example, the maximum / minimum block size and / or the maximum depth of NPT-T segmentation that can be allowed may depend on whether the slice group / strip type / color component / dual tree is enabled.
[0370] g. In one example, the maximum / minimum block size that can be allowed for NPT-T partitions and / or the maximum depth that can be allowed for NPT-T partitions may be different for different NPT-T modes.
[0371] h. When dividing a block according to NPT-T, the corresponding depth of NPT-T for a smaller block can be adjusted accordingly (e.g., increased by 1).
[0372] (a) Alternatively, a specific segmentation of a smaller block can be adjusted accordingly (e.g., increased by 1).
[0373] (For example, the corresponding depth of QT).
[0374] (b) Alternatively, the corresponding depth of the MTT of a smaller block can be adjusted accordingly (e.g., increased by 1).
[0375] (c) The corresponding depth of different smaller blocks can be adjusted in the same way (e.g., by increasing by 1).
[0376] 1. Alternatively, the corresponding depth of different smaller blocks can be adjusted in a different way (e.g., by increasing by 1). For example, the adjustment depends on the block size of the smaller block.
[0377] 18. NPT-T is not allowed if the sub-blocks span more than one Virtual Pipeline Data Unit (VPDU). a. Alternatively, NPT-T is still allowed; however, such sub-blocks are forced to be further subdivided until no sub-blocks span more than one VPDU.
[0378] 19. NPT-T is not allowed if the width / height of the current block (or any sub-block of the partition) meets certain conditions.
[0379] (Assume the width and height of the current block are W and H, respectively, and T1, T2, and T are integers.)
[0380] a. If W>=T1 and H>=T2, then NPT-T is not allowed;
[0381] b. If W>=T1 or H>=T2, then NPT-T is not allowed;
[0382] c. If W <= T1 and H <= T2, then NPT-T is not allowed;
[0383] d. If W <= T1 or H <= T2, then NPT-T is not allowed;
[0384] e. If W×H<=T, then NPT-T is not allowed;
[0385] f. If W×H>=T, then NPT-T is not allowed;
[0386] g. If H <= T, then the level NPT-T is not allowed; for example, T = 16.
[0387] h. If H >= T, then the level NPT-T is not allowed; for example, T = 128.
[0388] i. If W <= T, then vertical NPT-T is not allowed; for example, T = 16.
[0389] j. If W>=T, then vertical NPT-T is not allowed; for example, T=128.
[0390] k.T1, T2, and T can be signaled from the encoder to the decoder in VPS / SPS / PPS / image header / strip header / group header / film header.
[0391] l. T1, T2, and T can depend on the color components. For example, for the luminance and chrominance components, T1, T2, and T...
[0392] T can be different.
[0393] m. T1, T2, and T can depend on whether the luma codec tree and the chroma codec tree are separate. For example, if the luma codec tree and the chroma codec tree are separate, then T1, T2, and T can be different for the luma and chroma components.
[0394] n. Alternatively, NPT-T partitioning is invalid when at least one subblock of NPT-T does not support transformation.
[0395] o. Alternatively, an NPT-T partition is invalid when the depth of a block exceeds the allowed depth of the NPT-T partition.
[0396] p. Alternatively, an NPT-T partition is invalid if any sub-block size of the partition is smaller than the allowed block size.
[0397] 20. NPT-T is allowed if the width / height of the current block (or any sub-block of the partition) meets certain conditions.
[0398] (Assume the width and height of the current block are W and H, respectively, and T1, T2, and T are integers.)
[0399] a. If W>=T1 and H>=T2, then NPT-T is allowed;
[0400] b. If W>=T1 or H>=T2, then NPT-T is allowed;
[0401] c. If W <= T1 and H <= T2, then NPT-T is allowed;
[0402] d. If W <= T1 or H <= T2, then NPT-T is allowed;
[0403] e. If W×H<=T, then NPT-T is allowed;
[0404] f. If W×H>=T, then NPT-T is allowed;
[0405] g. If H <= T, then the level NPT-T is allowed; for example, T = 64.
[0406] h. If H >= T, then the level NPT-T is allowed; for example, T = 32.
[0407] i. If W <= T, then vertical NPT-T is allowed; for example, T = 64.
[0408] j. If W >= T, then vertical NPT-T is allowed; for example, T = 32.
[0409] k.T1, T2, and T can be signaled from the encoder to the decoder in VPS / SPS / PPS / image header / strip header / group header / film header.
[0410] l. T1, T2, and T can depend on the color components. For example, for the luminance and chrominance components, T1, T2, and T...
[0411] T can be different.
[0412] m. T1, T2, and T can depend on whether the luma codec tree and the chroma codec tree are separate. For example, if the luma codec tree and the chroma codec tree are separate, then T1, T2, and T can be different for the luma and chroma components.
[0413] 21. NPT-T is not allowed if the depth of the current block meets certain conditions. The depth of the current block can refer to QT depth, BT depth, TT depth, NPT-T depth, or MTT depth.
[0414] a. If the partition depth is less than or equal to T, then NPT-T is not allowed;
[0415] b. If the partition depth is greater than or equal to T, then NPT-T is not allowed;
[0416] c. If the QT partition depth is less than or equal to T, then NPT-T is not allowed;
[0417] d. If the QT partition depth is greater than or equal to T, then NPT-T is not allowed;
[0418] e. If the BT partition depth is greater than or equal to T, then NPT-T is not allowed;
[0419] f. If the BT partition depth is less than or equal to T, then NPT-T is not allowed;
[0420] g. If the partition depth TT is greater than or equal to T, then NPT-T is not allowed;
[0421] h. If the partitioning depth TT is greater than or equal to T, then NPT-T is not allowed;
[0422] i. If the NPT-T partition depth is less than or equal to T, then NPT-T is not allowed;
[0423] j. If the NPT-T partition depth is greater than or equal to T, then NPT-T is not allowed;
[0424] k. If the MTT partition depth is less than or equal to T, then NPT-T is not allowed;
[0425] l. If the MTT partition depth is greater than or equal to T, then NPT-T is not allowed;
[0426] mT can be signaled from the encoder to the decoder in VPS / SPS / PPS / image header / strip header / group header / film header.
[0427] nT can depend on the color components. For example, T1, T2, and T can be different for the luminance and chrominance components.
[0428] oT can depend on whether the luma codec tree and the chroma codec tree are separate. For example, if the luma codec tree and the chroma codec tree are separate, then T1, T2, and T can be different for the luma and chroma components.
[0429] 22. NPT-T is allowed if the depth of the current block meets certain conditions. The depth of the current block can refer to QT depth, BT depth, TT depth, NPT-T depth, or MTT depth.
[0430] a. If the partition depth is less than or equal to T, then NPT-T is allowed;
[0431] b. If the partition depth is greater than or equal to T, then NPT-T is allowed;
[0432] c. If the QT partition depth is less than or equal to T, then NPT-T is allowed;
[0433] d. If the QT partition depth is greater than or equal to T, then NPT-T is allowed;
[0434] e. If the BT partition depth is greater than or equal to T, then NPT-T is allowed;
[0435] f. If the BT partition depth is less than or equal to T, then NPT-T is allowed;
[0436] g. If the partition depth TT is greater than or equal to T, then NPT-T is allowed;
[0437] h. If the partition depth TT is greater than or equal to T, then NPT-T is allowed;
[0438] i. If the NPT-T partition depth is less than or equal to T, then NPT-T is allowed;
[0439] j. If the NPT-T partition depth is greater than or equal to T, then NPT-T is allowed;
[0440] k. If the MTT partition depth is less than or equal to T, then NPT-T is allowed;
[0441] l. If the MTT partition depth is greater than or equal to T, then NPT-T is allowed;
[0442] mT can be signaled from the encoder to the decoder in VPS / SPS / PPS / image header / strip header / group header / film header.
[0443] nT can depend on the color components. For example, T1, T2, and T can be different for the luminance and chrominance components.
[0444] oT can depend on whether the luma codec tree and the chroma codec tree are separate. For example, if the luma codec tree and the chroma codec tree are separate, then T1, T2, and T can be different for the luma and chroma components.
[0445] 23. Whether and how to use NPT-T can depend on the location of the current block. For example, whether and how to use NPT-T can depend on whether the current block crosses a picture / piece / piece group boundary.
[0446] a. In one example, vertical NPT-T is not allowed if the current block spans the bottom boundary of an image / piece / piece group.
[0447] b. In one example, horizontal NPT-T is not allowed if the current block crosses the bottom boundary of an image / piece / piece group.
[0448] c. In one example, vertical NPT-T is not allowed if the current block crosses the right boundary of an image / piece / piece group.
[0449] d. In one example, horizontal NPT-T is not allowed if the current block crosses the right boundary of a picture / piece / piece group.
[0450] e. In one example, if the current block crosses the right boundary of a picture / piece / piece group, then mixed NPT-T may not be allowed.
[0451] f. In one example, if the current block crosses the bottom boundary of an image / piece / piece group, then blended NPT-T may not be allowed.
[0452] g. In one example, if the sub-blocks divided by NPT-T are completely outside the picture / piece / piece group, the sub-blocks can be omitted during the encoding / decoding process.
[0453] h. In one example, if the sub-blocks divided by NPT-T are partially outside of the picture / piece / piece group, the following may apply.
[0454] (a) Parts other than the image can be omitted during the encoding / decoding process.
[0455] (b) The interior of the image can be further subdivided.
[0456] (c) The portion inside the image can be encoded and decoded into CU.
[0457] 1. Whether a portion of an image is encoded as a CU depends on the width (w) and height (h) of that portion.
[0458] i. In one example, if w = 2 nw h = 2 nh Then the part inside the image can be encoded and decoded into CU, where nw and nh are integers.
[0459] i. In one example, NPT-T is not allowed if any sub-blocks divided by NPT-T are partially / completely outside of the picture / piece / piece group.
[0460] 24. When NPT-T or a specific NPT-T mode is not allowed, the instruction to use the signaling notification mode can also be skipped.
[0461] a. Alternatively, it can still be signaled, but it is constrained to false in the consistent bitstream.
[0462] 25. When partitioning from NPT-T, it may not be allowed to further partition the blocks using one or more of the following partitioning methods:
[0463] a.QT
[0464] b. Horizontal BT
[0465] c. Vertical BT
[0466] d. Horizontal TT
[0467] e. Vertical BT
[0468] f. Horizontal UQT
[0469] g. Vertical UQT
[0470] h.NPT-T
[0471] 26. NPT-T is not allowed for the root node.
[0472] a. In one example, NPT-T may be allowed for leaf nodes. Alternatively, signaling notifications may be skipped based on indications of further partitioning of other segments.
[0473] 27. It is proposed that NPT-T can be applied only to leaf nodes, i.e., when a block is not further partitioned based on other partitions.
[0474] a. In one example, a flag can be provided for leaf node signaling notifications to indicate whether NPT-T is used.
[0475] (a) In addition, alternatively, further signaling may be used to notify which NPT-T is being instructed.
[0476] b. Alternatively, leaf node signaling can be used to indicate whether NPT-T is disabled or which type of NPT-T is being used.
[0477] 28. For a given size of a block, if NPT-T is chosen to further divide it into multiple sub-blocks, all sub-blocks can share the same Merge list.
[0478] a. Alternatively, all sub-blocks can share the same encoding / decoding mode (e.g., intra-frame or inter-frame). b. Alternatively, all sub-blocks can share the same AMVP or other kind of motion candidate list.
[0479] c. Alternatively, all sub-blocks can share the same cross-component linear model (CCLM) / local illumination compensation (LIC) parameters or other parameters derived on the decoder side.
[0480] 4.6 Instructions for using NPT-T
[0481] 29. Whether NPT-T is applied and / or which NPT-T is applied can be signaled from the encoder to the decoder.
[0482] a. In one example, it can be signaled in VPS / SPS / PPS / sequence header / picture header / strip header / fragment header / fragment header to indicate whether NPT-T can be applied.
[0483] b. In one example, it can be signaled in VPS / SPS / PPS / sequence header / picture header / strip header / fragment header / fragment header to indicate which NPT-T can be applied.
[0484] c. In one example, it can be signaled within a block to indicate whether NPT-T is used to partition the block.
[0485] d. In one example, it can be signaled within the block to indicate which NPT-T is used to partition the block.
[0486] e. In one example, different NPT-T sets can be designed for different block shapes / sizes.
[0487] f. In one example, different NPT-T sets can be designed for images / pictures with different temporal layers.
[0488] Strips.
[0489] g. In one example, whether or how NPT-T is applied can depend on the video resolution / image resolution /
[0490] Codec mode / Video characteristics (screen content or camera-captured sequence or mixed content) / Stripe type /
[0491] Image type / group type / low latency check flag.
[0492] 30. A syntax element can be signaled to indicate that there is no partition or split (including the type and direction of the partition tree).
[0493] a. Alternatively, one syntax element may be signaled first to indicate whether to split; and another syntax element may be signaled to indicate splitting.
[0494] 31. The split instruction can be represented by two syntax elements: first, the signaling of the selected split tree type, followed by the split direction (if needed).
[0495] a. In one example, the index of the split tree type can be signaled in the block to indicate whether the block was partitioned by QT, NPT-T, or not.
[0496] (a) In addition, alternatively, signaling may be used to further inform the division direction (horizontal / vertical / mixed direction) and / or division mode.
[0497] h. In one example, the index of the split tree type can be signaled in the block to indicate whether the block is split by BT, TT, or NPT-T.
[0498] (a) For example, the index can be conditionally signaled, such as only if BT, TT, and NPT-T are used.
[0499] At least one of them is valid for this block.
[0500] (b) Alternatively, signaling may be used to further inform the division direction (horizontal / vertical) and / or division mode.
[0501] i. Alternatively, the signaling direction can be notified first, followed by the split tree type (such as QT, ...).
[0502] TT, NPT-T).
[0503] (a) In one example, a flag is signaled within 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.
[0504] (b) For example, the flag is signaled only when the block is partitioned via BT, TT or NPT-T.
[0505] (c) For example, the flag is signaled only if both vertical and horizontal divisions are valid for the block.
[0506] 1. If only vertical segmentation is valid, no signaling notification flag is used, and horizontal segmentation is inferred to be used.
[0507] 2. If only horizontal segmentation is valid, no signaling notification flag is used, and vertical segmentation is inferred to be used.
[0508] j. In one example, the binarization code is signaled within the block to indicate which partition (BT, TT, or an NPT-T) to use. In the following example, X represents 0 or 1, and Y = ~X (if X = 0, then Y = 1, and if X = 1, then Y = 0).
[0509] (a) In one example, based on previously notified or deduced information, the candidate BT, TT or NPT-T to be notified by signaling is either vertically partitioned or horizontally partitioned.
[0510] (b) In one example, the first flag is signaled to indicate whether NPT-T is used. For example, the binary codewords of ordered representations BT, TT, NPT-T 1, NPT-T 2, NPT-T 3, and NPT-T 4 are XX, XY, YXX, YXY, YYX, and YYY.
[0511] (c) In one example, a truncated unary code is applied. For example, the ordered representations BT, TT,
[0512] The binary codewords for NPT-T 1, NPT-T 2, NPT-T 3, and NPT-T 4 are X, YX, and YX.
[0513] YYX, YYYX, YYYYX, YYYYY.
[0514] (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 binary codewords for the ordered representations BT, TT, NPT-T 1, NPT-T 2, NPT-T 3, and NPT-T 4 are X, YX, YYXX, YYXY, YYYX, and YYYY.
[0515] 32. In one example, how signaling in a block indicates which segment to use can depend on which segment (including the segment tree type and / or segment direction) is valid for the block. In the following example, X represents 0 or 1, and Y = ~X
[0516] (If X = 0, then Y = 1, and if X = 1, then Y = 0).
[0517] a. In one example, based on previously notified or inferred information, the candidate BT to be notified by signaling...
[0518] Both TT and NPT-T are vertical or horizontal partitioning.
[0519] b. For example, disallowed or invalid partitions cannot be signaled from the encoder to the decoder, i.e., no codeword indicates a disallowed or invalid partition.
[0520] c. In one example, if only one of the partitions BT, TT, and NPT-T is valid, no signaling notification is used to indicate which partition (BT, TT, or one of the NPT-T) binarization codes to use.
[0521] d. In one example, if only two of the partitions, BT, TT, and NPT-T, are valid, a flag is signaled to indicate which of the two valid partitions to use.
[0522] e. In one example, the code used to indicate which partition (BT, TT, or a type of NPT-T) is binarized into a truncated unary code.
[0523] (a) For example, the maximum value of a truncated unary code is N-1, where N is the effective partition (BT, TT).
[0524] The number of NPT-Ts.
[0525] (b) For example, no codeword represents an invalid partition. In other words, invalid partitions are skipped when the codeword table is built.
[0526] f. In one example, if no NPT-T is valid, the flag indicating whether NPT-T is used is not signaled and is inferred as false. For example, the binary codewords for ordered representations BT and TT are X and Y.
[0527] g. In one example, if only one NPT-T is valid, and the signaling notification indicates the use of an NPT-T, then no further signaling notification is given to indicate which NPT-T to use. The valid NPT-T is used implicitly.
[0528] h. In one example, if only two NPT-Ts are valid, and the signaling notification uses NPT-T, then a flag is signaled to indicate which NPT-T to use.
[0529] i. In one example, if only three NPT-Ts are valid, and the signaling notification indicates the use of an NPT-T, then a message is signaled to indicate which NPT-T to use. For example, the ordered binary codewords representing the three NPT-Ts are X, YX, and YY.
[0530] j. In one example, the binarization and / or signaling notification method does not change based on which partition in the block is valid.
[0531] Invalid partitions cannot be selected in a consistent bitstream.
[0532] 33. The segmentation indication can be encoded or decoded by utilizing arithmetic encoding and decoding of one or more contexts.
[0533] a. In one example, only a portion of the binary bits of a binary string can be encoded or decoded using context, and the remaining binary bits can be encoded or decoded in a bypass mode (i.e., without using context).
[0534] b. Alternatively, all bits of a binary string can be encoded or decoded using context.
[0535] c. Alternatively, all bits of the binary string can be encoded and decoded in bypass mode.
[0536] d. For binary bits encoded and decoded using context, one or more contexts can be used.
[0537] e. The context can depend on:
[0538] (a) The position or index of a binary bit.
[0539] (b) Spatial / temporal neighbor block segmentation.
[0540] (c) The current segmentation depth of the current block (e.g., QT depth / BT depth / TT depth / NPT-T depth / MTT depth).
[0541] (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).
[0542] (e) Encoding / decoding mode of spatial / temporal neighbor blocks.
[0543] (f) Width / height of spatial / temporal neighboring blocks.
[0544] (g) Width / Height of the current block
[0545] (h) Strip type / Image type / Group type
[0546] (i) Color components
[0547] (j) Statistical results of segmentation types from previously encoded / decoded blocks
[0548] 34. Whether and / or how to use NPT-T can depend on the color format (such as 4:4:4 or 4:2:0) and / or color components.
[0549] a. Whether and how to use NPT-T can depend on whether the luma and chroma codec trees are separated.
[0550] b. In one example, when the luma and chroma codec trees are separate, NPT-T can only be applied to the luma component.
[0551] 35. The above methods can also be applied to SnT, StT, OctT, and UQT.
[0552] Figure 17 This is a block diagram of a video processing apparatus 1700. Apparatus 1700 can be used to implement one or more methods described herein. Apparatus 1700 can be embodied in a smartphone, tablet, computer, Internet of Things (IoT) receiver, etc. Apparatus 1700 may include one or more processors 1702, one or more memories 1704, and video processing hardware 1706. The processors(multiple) 1702 can be configured to implement one or more methods described in this document. The memories(multiple) 1704 can be used to store data and code for implementing the methods and techniques described herein. The 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 partly or entirely part of the processor 1702 (e.g., a graphics processing unit (GPU) core or other signal processing circuitry).
[0553] In this document, the term "video processing" can refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during the conversion from the pixel representation of the video to the corresponding bitstream representation, and vice versa. The bitstream representation of the current video block may, for example, correspond to bits co-located or distributed at different locations within the bitstream, as defined by the syntax. For example, a macroblock may be encoded based on the error residuals from the transform and encoding / decoding and also using bits from the header and other fields in the bitstream.
[0554] It should be understood that several technologies have been disclosed, which, by allowing the use of the technologies disclosed in this document, will be beneficial to video encoder and decoder embodiments incorporated in video processing devices such as smartphones, laptops, desktops and similar devices.
[0555] Figure 18 This is a flowchart of an example method 1800 for video processing. Method 1800 includes, at 1802, enabling the use of a non-power-four partitioning tree (NPT-T) for the conversion between the video and its bitstream representation, wherein the NPT-T includes dividing a video block into one or more smaller sub-blocks of the video block, and at least one sub-block has a width or height of a pixel size that is a non-power-four integer. Method 1800 includes, at 1804, performing the conversion using the NPT-T.
[0556] Some embodiments can be described using the following clause-based format.
[0557] 1. A method for video processing, comprising: enabling the use of a non-power-four partition tree (NPT-T) for a conversion between a video and a bitstream representation of the video, wherein the NPT-T includes dividing a video block into one or more smaller sub-blocks of the video block, and at least one sub-block having a width or height of a pixel size that is a non-power-four integer; and using the NPT-T to perform the conversion.
[0558] 2. The method according to Clause 1, wherein the enable is signaled in the bitstream representation by fields included at the sequence parameter set level, video parameter set level, sequence header level, picture parameter set level, strip header level, codec unit level, slice group level, or codec tree unit row level.
[0559] 3. The method according to any one of Clauses 1-2, wherein a sub-block is regarded as an encoding / decoding unit, prediction unit, or transform unit for the conversion.
[0560] 4. The method according to any one of Clauses 1-3, 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, and K represents the number of sub-blocks.
[0561] 5. The method according to any one of clauses 1-4, wherein the transformation uses sub-blocks by recursively dividing the sub-blocks into smaller blocks of encoding / decoding units, prediction units, or transform units according to NPT-T.
[0562] 6. The method according to any one of Clauses 4-5, wherein at least some of Wi and Hi are non-quadratic integers.
[0563] 7. The method according to any one of Clauses 4-5, wherein at least some of Wi and Hi are integers with a power of two.
[0564] 8. The method according to any one of clauses 4-7, wherein:
[0565] (1) Wi equals 2floor(log2(W / K)), or
[0566] (2) Hi equals 2floor(log2(H / K)), or
[0567] (3) If i is not equal to j, then Wi can be different from Wj, or
[0568] (4) If i is not equal to j, then Hi can be different from Hj.
[0569] 9. The method according to Clause 4, wherein the sub-blocks are divided only along a specific orientation direction.
[0570] 10. The method according to Clause 9, wherein the orientation direction is vertical.
[0571] 11. The method according to Clause 9, wherein the orientation direction is horizontal.
[0572] 12. The method according to Clause 10, wherein Hi = H(for i being 0…(K-1)).
[0573] 13. The method according to Clause 11, wherein Wi = W(for i being 0…(K-1)).
[0574] 14. The method according to any one of clauses 4-13, wherein L0 segments representing sub-blocks share the same segment size, and the remaining sub-blocks have different segment sizes, wherein L0 is an integer between 2 and K.
[0575] 15. The method according to Clause 14, wherein the same division size is floor (W / K) or floor (H / K).
[0576] 16. The method according to clauses 14-15, wherein L0 segments are adjacent to each other.
[0577] 17. The method according to Clauses 14-15, wherein at least some of the L0 segments are non-nearest segments.
[0578] 18. The method according to clauses 14-15, wherein at least some of the L0 segments are identified by consecutive indices in the bitstream representation and are processed sequentially during the conversion.
[0579] 19. The method according to Clause 10, wherein the remaining sub-blocks are of the same size.
[0580] 20. The method according to any one of clauses 1 to 19, wherein the encoding / decoding order of the current block and sub-blocks is implicitly defined based on rules.
[0581] 21. The method according to any one of clauses 1 to 19, wherein the encoding / decoding order of the current block and sub-blocks is specified in the bitstream representation.
[0582] Sections 4.1, 4.2 and 4.3 provide additional details and examples of clauses 1-21.
[0583] 22. A video processing method, comprising:
[0584] A transform size constraint is applied to the conversion between sub-video blocks and their bitstream representations, where a sub-video block is a subdivision of a video block and has a pixel size that is a non-power-four (NPT) integer; and
[0585] Use transformation size constraints to perform this transformation.
[0586] 23. The 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, and K represents the number of sub-blocks divided from the video block.
[0587] 24. The method according to any one of clauses 22-23, wherein the transform size constraint specifies that a given sub-block in which at least Wi and height Hi are NPT integers uses a smaller transform size expressed in width TWi and height THi.
[0588] 25. The method described in Clause 24, wherein TWi or THi depends on the size of the given sub-block.
[0589] 26. The method described according to Clause 25, wherein:
[0590] (a) TWi is equal to pow(2, floor(log2(Wi)), or
[0591] (b)THi equals pow(2,floor(log2(Hi)).
[0592] 27. The method according to Clause 24, wherein TWi or THi depends on the size of the transformation matrix used for the transformation.
[0593] 28. The method according to Clause 27, wherein the size of the transformation matrix is a power of 2:
[0594] TWi is equal to the size of the transformation dimension, that is, it does not exceed the maximum permissible transformation dimension of Wi, or
[0595] THi equals the transformation size, that is, the maximum permissible transformation size not exceeding Hi.
[0596] 29. The method according to Clause 24, wherein TWi or THi or the transformation dimension depends on:
[0597] The type or location of the video block, or
[0598] The size of the sub-blocks divided from the video block, or
[0599] The color format or color component type of the video block, or
[0600] The image type, stripe type, slice group type, or low-latency check flag in the bitstream representation, or
[0601] Other encoding and decoding information in the bitstream representation includes quantization parameters, mode information, or reference picture information, wherein the reference picture information includes current picture reference, one-way prediction, two-way prediction, or multiple hypothesis prediction.
[0602] 30. The method according to any one of clauses 22 to 29, wherein the transformation size constraint specifies that the transformation is applied to a portion of a sub-block using a fixed X offset or a fixed Y offset.
[0603] 31. The method according to Clause 30, wherein the fixed X offset or the fixed Y offset is a function of the shape of the sub-block or the shape of the video block.
[0604] 32. The method according to Clause 22, wherein the transformation size limit allows the use of multiple transformation sizes during the transformation.
[0605] 33. The method according to Clause 32, wherein the plurality of transformation dimensions are power-law transformation dimensions.
[0606] 34. The method according to Clause 32, wherein at least one of the plurality of transformation dimensions is a power-two dimension.
[0607] Sections 4.3 and 4.4 provide additional examples and embodiments of clauses 22 through 34.
[0608] 35. A video processing method, comprising:
[0609] Selectively based on usage rules for using non-power-four tree (NPT-T) partitioning of video blocks, a conversion between video blocks and their bitstream representations is applied, where a video block or one or more smaller sub-blocks of the video have pixel sizes that are non-power-four (NPT) integers; and
[0610] Use the usage rule to perform the transformation.
[0611] 36. The method described in Clause 5, wherein the rule specifies that NPT-T is used only when video blocks are divided from the parent block using a quadtree, binary tree, ternary tree, or NPT-T segmentation.
[0612] 37. The method described in Clause 35, wherein the use rule specifies that NPT-T is used only when video blocks are divided from the parent block using quadtree segmentation.
[0613] 38. The method described in Clause 35, wherein, in the case that the video block is the root block, the rule prohibits the use of NPT-T.
[0614] 39. The method according to any one of clauses 35 to 38, wherein one or more smaller blocks are obtained using a partitioning scheme that depends on the partitioning type of the current block.
[0615] 40. The method according to any one of clauses 35 to 39, wherein the partitioning depth of one or more smaller blocks depends on the partitioning depth of the current block.
[0616] 41. The method according to any one of clauses 35 to 39, wherein at least some of the one or more smaller blocks have different partitioning depths.
[0617] 42. The method according to Clause 35, wherein rules are used to specify the filtering process applied to one or more smaller blocks and video blocks.
[0618] 43. The method according to Clause 42, wherein the filtering process depends on the pixel position in the current block or one or more sub-blocks using boundaries created via NPT-T.
[0619] 44. The method according to any one of clauses 42-43, wherein the filtering process includes a deblocking filter or a sample adaptive offset filter or an adaptive loop filter or a diffusion filter or a bilateral filter.
[0620] 45. The method according to any one of clauses 42-44, wherein the use rule specifies that samples from previously reconstructed sub-blocks are used for diffusion filtering or bilateral filtering of samples from the current sub-block.
[0621] 46. The method according to Clause 35, wherein the use of rules specifies the selective application of inter- and intra-frame segmentation to one or more smaller blocks and video blocks, including intra-prediction modes or local illumination compensation modes or combinations thereof.
[0622] 47. The method described in Clause 35, wherein, if the size of a video block exceeds a maximum threshold, the use of NPT-T is disabled for the video block using a rule.
[0623] 48. The method described in Clause 35, wherein, when the size of a video block is below a minimum threshold, the use of NPT-T is disabled for the video block using a rule.
[0624] 49. The method according to Clause 35, wherein, in cases where the bit depth of a video block is higher than the maximum bit depth or lower than the minimum bit depth, the use of NPT-T is disabled for the video block using a rule.
[0625] 50. The method according to any one of Clauses 47-49, wherein the use of rules to disable signaling notification in fields of the bitstream representation included at the sequence parameter set level, video parameter set level, sequence header level, picture parameter set level, strip header level, codec unit level, slice group level, or codec tree unit row level.
[0626] 51. The method according to any one of clauses 47-49, wherein the use rule disabling is derived from the parameters of the video block.
[0627] 52. The method according to Clause 51, wherein the parameter of the current block is the segmentation tree depth of the video block or a summary table or level represented by the bitstream or a layer represented by the bitstream.
[0628] 53. The method according to Clause 51, wherein the parameters of the video block are based on the maximum or minimum size allowed in the quadtree segmentation of the video block's neighboring blocks.
[0629] 54. The method described in Clause 35, wherein the use of rules specifies that the use of NPT-T is disabled for the transformation of a video block or a sub-block of a video block spanning more than one virtual pipeline data unit.
[0630] 55. The method according to Clause 35, wherein a video block spans more than one virtual pipeline data unit, and a rule is used to specify the division of the video block into sub-blocks until no sub-block spans more than one virtual pipeline data unit.
[0631] 56. The method described in Clause 35, wherein, if the height H or width W of the video block satisfies a condition, the use of NPT-T along the horizontal or vertical direction is disabled using a rule.
[0632] 57. The method according to Clause 56, wherein the conditions include:
[0633] W>=T1 and H>=T2;
[0634] W>=T1 or H>=T2;
[0635] W <= T1 and H <= T2;
[0636] W <= T1 or H <= T2;
[0637] W×H<=T; or
[0638] W×H>=T, where W and H are integers, and T, T1, and T2 are rational numbers.
[0639] 58. The method described in Clause 35, wherein the use of NPT-T in the horizontal direction is disabled by the following rule when the height H or width W of the video block is:
[0640] (a) If H <= T, then level NPT-T is not allowed.
[0641] (b) If H >= T, then the level NPT-T is not allowed.
[0642] (c) If W <= T, then vertical NPT-T is not allowed, or
[0643] (d) If W>=T, then vertical NPT-T is not allowed, where W, H and T are integers.
[0644] 59. The method described in Clause 35, wherein the use of NPT-T is disabled in the horizontal or vertical direction unless the video block meets the conditions.
[0645] 60. The method described in Article 59, wherein the conditions include:
[0646] W>=T1 and H>=T2;
[0647] W>=T1 or H>=T2;
[0648] W <= T1 and H <= T2;
[0649] W <= T1 or H <= T2;
[0650] W×H<=T;
[0651] W×H>=T;
[0652] If H <= T, then the level NPT-T is allowed;
[0653] If H >= T, then the level NPT-T is allowed;
[0654] If W <= T, then vertical NPT-T is allowed; or
[0655] If W >= T, then vertical NPT-T is allowed; where W, H, T, T1, and T2 are positive rational numbers.
[0656] Sections 4.3 to 4.5 provide additional examples and embodiments of clauses 35 to 60.
[0657] 61. A video processing method, comprising:
[0658] Selectively, based on usage instructions, the conversion between video blocks and their bitstream representations is applied using a non-quadratic power-tree (NPT-T) partitioning of the video blocks, where a video block or one or more smaller sub-blocks of the video have pixel sizes that are non-quadratic power-tree (NPT) integers; and
[0659] Perform the conversion corresponding to the instruction used.
[0660] 62. The method according to Clause 61, wherein the indication is signaled in the bitstream representation at the 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.
[0661] 63. The method according to any one of clauses 61-62, wherein the indicator is used to indicate the type of segmentation used for NPT-T partitioning.
[0662] 64. The method described in Clause 3, wherein the type of segmentation depends on the type of video block.
[0663] 65. The method according to any one of clauses 61 to 64, wherein the indication of use depends on at least one of the following: video resolution, picture resolution, encoding / decoding mode, video characteristics, stripe type, picture type, slice type, or low latency check flag associated with the video block.
[0664] 66. The method according to any one of clauses 61-65, wherein the use instruction includes a plurality of syntactic elements.
[0665] 67. The method according to Clause 66, wherein the first syntax element of the plurality of syntax elements corresponds to the split tree type, and the second syntax element corresponds to the split direction.
[0666] 68. The method according to Clause 67, wherein the first syntax element appears in the bitstream representation before the second syntax element.
[0667] 69. The method according to Clause 67, wherein the first syntax element appears in the bitstream representation after the second syntax element.
[0668] 70. The method according to any one of clauses 61-69, wherein the instruction to use a binary code is used.
[0669] 71. The method according to Clause 70, wherein context-based arithmetic encoding and decoding of binary codes is performed using binary bits that indicate the binary code.
[0670] 72. The method according to Clause 71, wherein the context-based arithmetic encoding and decoding uses a context that depends on the position or index of the bit, or the partitioning of the spatial or temporal neighboring blocks of the video block, or the current partitioning depth of the video block, or the partitioning depth of the spatial or temporal neighboring blocks.
[0671] 73. The method according to any one of clauses 61-72, wherein the instruction is also based on the color format or color components associated with the video block.
[0672] 74. The method according to any one of clauses 1-73, wherein the conversion includes generating pixel values of a video block from a bitstream representation or generating a bitstream representation from a video block.
[0673] Section 4.6 provides additional details and examples of clauses 61-74.
[0674] 75. A video decoding apparatus including a processor, configured to implement one or more of the methods described in accordance with clauses 1-74.
[0675] 76. A video encoding apparatus including a processor, configured to implement one or more of the methods described in accordance with clauses 1-74.
[0676] 77. A computer-readable medium storing code that, when executed, causes a processor to perform the methods described in any one or more of claims 1-74.
[0677] Figure 19 This is a flowchart of an example method 1900 for video processing. Method 1900 includes determining (1902) whether the use of a non-power-four partition tree (NPT-T) is enabled or disabled for the conversion between a first block of video and a bitstream representation of the first block, wherein the NPT-T includes dividing the first block into a plurality of smaller sub-blocks of the first block, and at least one sub-block has a width and / or height of a size that is a non-power-four integer; and in response to determining that the NPT-T is enabled, performing (1904) the conversion based on the NPT-T.
[0678] In some examples, the method also includes: the determination is based on fields present in the bitstream representation.
[0679] In some examples, the method further includes: the field being an indication of a segmentation tree type in a set of segmentation tree types, which includes at least one of NPT-T, quadtree (QT), binary tree (BT), or ternary tree (TT); or an indication of the use of NPT-T.
[0680] In some examples, in response to the confirmation that NPT-T is enabled, the first block is directly divided into multiple sub-blocks.
[0681] In some examples, at least one of the sub-blocks is considered a leaf node of a codec unit, prediction unit, or transform unit used for the transformation.
[0682] In some examples, the first block is W pixels wide and H pixels high, and the sub-blocks are W pixels wide. i 1 pixel and height is H i 1 pixel, where W, H and W i H i All are integers, where i is an integer variable with a value between 0 and K-1, and K represents the number of sub-blocks.
[0683] In some examples, sub-blocks are recursively divided into even smaller blocks.
[0684] In some examples, K > 2.
[0685] In some examples, at least one W i or H i It is a non-quadratic integer.
[0686] In some examples, at least one W i or H i It is a quadratic integer.
[0687] In some examples,
[0688] (1)W i Equal to 2 floor(log2(W / K)) ,or
[0689] (2)H i Equal to 2 floor(log2(H / K)) ,or
[0690] (3) If i is not equal to j, then W i Unlike W j ,or
[0691] (4) If i is not equal to j, then H i Unlike H j ,
[0692] Where i and j are integer variables with values between 0 and K-1, and the function floor(x) returns the largest integer less than or equal to x.
[0693] In some examples, at least one W i Set to floor(W*m / 2) n ), where W>=2 n And 1 <= m < 2 n .
[0694] In some examples, at least one H i Set to floor(H*m / 2) n ), where H>=2 n And 1 <= m < 2 n .
[0695] In some examples, one or more sub-blocks are further divided into even smaller blocks according to NPT-T.
[0696] In some examples, the first block, whose width or height is a non-quadratic integer, cannot be partitioned according to NPT-T.
[0697] In some examples, the first block, whose width is not equal to its height, cannot be divided according to NPT-T.
[0698] In some examples, the first block is divided only in one of the vertical and horizontal directions.
[0699] In some examples, when the first block is divided vertically, H i =H, where i is from 0 to (K-1).
[0700] In some examples, when the first block is divided horizontally, W i =W, where i is from 0 to (K-1).
[0701] In some examples, L0 sub-blocks in multiple sub-blocks share the same partition size, where L0 is an integer between 2 and K.
[0702] In some examples, the width of the same segment size is floor(W / K), or the height of the same segment size is floor(H / K).
[0703] In some examples, the L0 sub-blocks are adjacent to each other.
[0704] In some examples, at least one of the L0 sub-blocks is a non-neighboring sub-block.
[0705] In some examples, the L0 sub-blocks are identified by consecutive indices indicating the processing order during the transformation.
[0706] In some examples, L1 of the remaining (K-L0) sub-blocks share a second identical partition size, where L1 is an integer between 1 and K-L0.
[0707] In some examples, the width of the second identical segment size is ((W-L0*floor(W / K)) / (K-L0)), or the height of the identical segment size is ((H-L0*floor(H / K)) / (K-L0)).
[0708] In some examples, when L1 equals (K-L0-1), a left child 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 child block is assigned a block height equal to H-L0*floor(H / K)-((H-L0*floor(H / K)) / (K-L0))*(K-L0-1).
[0709] In some examples, the remaining (K-L0) sub-blocks are assigned different partition sizes.
[0710] In some examples, the L1 sub-blocks are adjacent to each other.
[0711] In some examples, at least one of the L1 sub-blocks is a non-neighboring sub-block.
[0712] In some examples, the L1 sub-blocks are identified by consecutive indices indicating the processing order during the transformation.
[0713] In some examples, the L1 sub-blocks are identified by non-contiguous indices that indicate the processing order during the transformation.
[0714] In some examples, the partition size (W) of only one sub-block i ×H i (Different from the segmentation size of all remaining sub-blocks)
[0715] In some examples, all sub-blocks have the same partition size (W) i ×H i ).
[0716] In some examples, the first block is divided in both the vertical and horizontal directions.
[0717] 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.
[0718] In some examples, if the width of the first block is a non-quadratic integer, the first block is divided in the vertical direction, or / if the height of the first block is a non-quadratic integer, the first block is divided in the horizontal direction.
[0719] In some examples, if the width of the first block is a power of two integers, then the first block is divided in the vertical direction, or / if the height of the first block is a power of two integers, then the first block is divided in the horizontal direction.
[0720] In some examples, multiple sub-blocks include 6, 7, or 8 sub-blocks.
[0721] In some examples, the encoding and decoding order is predetermined for an NPT-T mode.
[0722] In some examples, multiple encoding / decoding sequences are pre-determined for an NPT-T mode.
[0723] In some examples, the selected codec order is indicated via signaling or derivation on the decoder side, allowing one of multiple codec orders to be selected for the first block.
[0724] In some examples, when the first block allows NPT-T, the first block is partitioned from the parent block using one or more specific types of partitioning methods.
[0725] In some examples, when NPT-T is allowed for the first block, the first block is partitioned from the parent block by a quadtree (QT), binary tree (BT), ternary tree (TT), or NPT-T.
[0726] In some examples, when NPT-T is allowed for the first block, the first block can only be partitioned from the parent block via a quadtree (QT).
[0727] In some examples, the first block is the root block when NPT-T is allowed in the first block.
[0728] In some examples, sub-blocks can be further divided into sub-blocks using one or more other segmentation types.
[0729] In some examples, sub-blocks can be further subdivided into sub-blocks via BT and / or TT.
[0730] In some examples, sub-blocks can be further subdivided by BT and / or TT and / or QUT-T, but not by QT.
[0731] In some examples, sub-blocks can be further subdivided using NPT-T and / or QT, but not using BT or TT.
[0732] In some examples, sub-blocks cannot be further subdivided into sub-blocks using QT.
[0733] In some examples, a sub-block cannot be further divided into sub-blocks.
[0734] In some examples, when the first block is divided into multiple sub-blocks via NPT-T, the sub-block partitioning depth is derived from the partitioning depth of the first block.
[0735] In some examples, the NPT-T partition is used to update at least one of the depths of QT, BT, TT, NPT-T, or Multi-Type Tree (MTT).
[0736] 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 1.
[0737] 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 1.
[0738] 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 1.
[0739] 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 1.
[0740] 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 1.
[0741] In some examples, if the first block is divided into sub-blocks via BT, the MTT depth of the sub-blocks is equal to the MTT depth of the first block plus 1.
[0742] 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.
[0743] In some examples, the depth increase of NPT-T, BT, TT, QT, or MTT is different for different sub-blocks.
[0744] In some examples, the depth increase depends on the ratio of the sub-block to the first block.
[0745] In some examples, the filtering process depends on NPT-T segmentation, where 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.
[0746] In some examples, whether and / or how samples are filtered depends on whether those samples are located at the boundary of a block generated by NPT-T partitioning.
[0747] In some examples, samples from previously reconstructed subblocks are used in diffusion filters and / or bilateral filters.
[0748] In some examples, whether and / or how samples are filtered depends on whether those samples are located at the boundary of a transform block within a codec unit generated by NPT-T partitioning.
[0749] In some examples, the intra-frame prediction mode or the combined inter-frame and intra-frame prediction (CIIP) mode depends on the NPT-T segmentation.
[0750] In some examples, the sub-block uses the previously reconstructed sub-block for intra-prediction in intra-prediction mode or CIIP mode.
[0751] In some examples, the Local Illumination Compensation (LIC) mode depends on the NPT-T segmentation.
[0752] In some examples, the sub-block uses the previously reconstructed sub-block to derive the LIC parameters.
[0753] In some examples, the use of non-quadratic split trees (NPT-T) is determined based on additional information, where additional information about whether NPT-T is applied and / or which NPT-T is applied is signaled from the encoder to the decoder.
[0754] In some examples, information is signaled in at least one of the Video Parameter Set (VPS), Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Sequence Header, Picture Header, Strip Header, Slice Header, and Slice Header to indicate whether NPT-T can be applied.
[0755] In some examples, information is signaled in at least one of the Video Parameter Set (VPS), Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Sequence Header, Picture Header, Strip Header, Slice Header, and Slice Header to indicate which NPT-T can be applied.
[0756] In some examples, information is signaled in the block to indicate whether NPT-T can be applied.
[0757] In some examples, information is signaled in the block to indicate which NPT-T can be applied.
[0758] In some examples, different NPT-T sets are designed for different block shapes and / or sizes.
[0759] In some examples, different NPT-T sets are designed for at least one of images, slices, or strips with different temporal layers.
[0760] In some examples, whether and / or how NPT-T is applied depends on at least one of the following: video resolution, image resolution, codec mode, video characteristics including screen content or sequence or mixed content captured by a camera, strip type, image type, slice group type, and low latency check flag.
[0761] In some examples, a syntax element is signaled to indicate that there is no split or segmentation.
[0762] In some examples, a syntax element is first signaled to indicate whether to split; then another syntax element is signaled to indicate a split including the split tree type and the split direction.
[0763] In some examples, the split instruction is indicated by two syntax elements: the selected split tree type and the split direction.
[0764] In some examples, the split tree type index is first signaled in the block to indicate whether the block was partitioned by QT, NPT-T, or not.
[0765] In some examples, the division direction and / or division pattern, including one of the horizontal, vertical, or mixed directions, are further signaled.
[0766] In some examples, the index of the split tree type is first signaled in the block to indicate whether the block was partitioned by BT, TT, or NPT-T.
[0767] In some examples, the index is conditionally signaled only if at least one of BT, TT, and NPT-T is valid for the first block.
[0768] In some examples, the division direction and / or division pattern, including one of the horizontal and vertical directions, are further signaled.
[0769] In some examples, the direction of the split is first indicated by signaling, followed by the split tree type, including QT, TT, and NPT-T.
[0770] In some examples, a flag is signaled in the block to indicate whether the block is vertically partitioned or horizontally partitioned, where vertical partitioning is BT vertical partitioning, TT vertical partitioning, or NPT-T vertical partitioning, and horizontal partitioning is BT horizontal partitioning, TT horizontal partitioning, or NPT-T horizontal partitioning.
[0771] In some examples, the signaling notification flag is conditionally activated only when the first block is partitioned via BT, TT, or NPT-T.
[0772] In some examples, the signaling notification flag is conditionally activated only if both the vertical and horizontal partitions are valid for the first block.
[0773] In some examples, if only vertical segmentation is valid, no signaling notification flag is given, and horizontal segmentation is inferred to be used.
[0774] In some examples, if only horizontal segmentation is valid, no signaling notification flag is given, and vertical segmentation is inferred to be used.
[0775] In some examples, the binarization code is signaled within the block to indicate which partition to use, which is selected from a set of BT, TT and an NPT-T.
[0776] In some examples, based on previously notified or derived information, the candidate BT, TT, or NPT-T to be notified by signaling are either vertically or horizontally partitioned.
[0777] In some examples, the first flag is signaled to indicate whether NPT-T is used.
[0778] In some examples, the binary code is binarized into a truncated unary code.
[0779] 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.
[0780] In some examples, how signaling notifications are used in a block depends on which segment is valid for the block, including the segment tree type and / or segment direction.
[0781] In some examples, based on previously notified or derived information, the candidate BT, TT, or NPT-T to be notified by signaling are either vertically or horizontally partitioned.
[0782] In some examples, disallowed or invalid partitions cannot be signaled from the encoder to the decoder.
[0783] In some examples, if only one of the partitions of BT, TT, and NPT-T is valid, a no-signaling notification is used to indicate which partition's binarization code to use.
[0784] In some examples, if only two of the partitions, BT, TT, and NPT-T, are valid, a flag is signaled to indicate which of the two valid partitions to use.
[0785] In some examples, the code used to indicate which partition of a set of BT, TT, and NPT-T is binarized into a truncated unary code.
[0786] 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.
[0787] In some examples, invalid partitions are skipped when the codeword table is built.
[0788] In some examples, if no NPT-T is valid, the flag indicating whether NPT-T is used is not signaled and is presumed to be false.
[0789] In some examples, if only one NPT-T is valid and the signaling notification indicates the use of an NPT-T, no further signaling notification is given to indicate which NPT-T to use, and the valid NPT-T is used implicitly.
[0790] In some examples, if only two NPT-Ts are valid, and the signaling notification uses NPT-T, a flag is signaled to indicate which NPT-T to use.
[0791] In some examples, if only three NPT-Ts are valid, and the signaling notification uses NPT-T, then a message is sent to indicate which NPT-T to use.
[0792] In some examples, the binarization and / or signaling notification methods do not change based on which partition in the block is valid.
[0793] In some examples, the segmentation indication is encoded or decoded using arithmetic encoding and decoding that leverages one or more contexts.
[0794] In some examples, only a portion of the binary string is encoded and decoded using context, while the remaining binary bits are encoded and decoded in bypass mode.
[0795] In some examples, all bits of the binary string are encoded and decoded using context.
[0796] In some examples, all bits of the binary string are encoded and decoded in bypass mode.
[0797] In some examples, one or more contexts are used for binary bits encoded and decoded using context.
[0798] In some examples, the context depends on at least one of the following:
[0799] (a) The position or index of the binary bit;
[0800] (b) Spatial / temporal proximity block segmentation;
[0801] (c) The current segmentation depth of the current block, including at least one of QT depth, BT depth, TT depth, NPT-T depth and MTT depth;
[0802] (d) The segmentation depth of spatial / temporal neighboring blocks and / or spatial / temporal non-neighboring blocks, including at least one of QT depth, BT depth, TT depth, NPT-T depth and MTT depth;
[0803] (e) Encoding / decoding modes for spatial / temporal neighbor blocks;
[0804] (f) Width / height of spatial / temporal neighboring blocks;
[0805] (g) Width / height of the current block;
[0806] (h) Strip type / Image type / Group type;
[0807] (I) Color components;
[0808] (j) Statistical results of the segmentation type from previously encoded / decoded blocks.
[0809] In some examples, whether and / or how NPT-T is applied depends on the color format and / or color components.
[0810] In some examples, the color format includes 4:4:4 or 4:2:0.
[0811] In some examples, whether and how NPT-T is used depends on whether the luma and chroma codec trees are separated.
[0812] In some examples, when the luma and chroma codec trees are separate, NPT-T can only be applied to the luma component.
[0813] In some examples, multiple sub-blocks include 6, 7, or 8 sub-blocks.
[0814] In some examples, the width of the transformation matrix applied to at least one sub-block is less 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 a non-power-two integer; and / or the height of the transformation matrix applied to at least one sub-block is less than the height of the sub-block, wherein the width and / or height of the at least one sub-block has a size that is a non-power-two integer.
[0815] In some examples, the conversion is used to generate the first block of the video from the bitstream representation.
[0816] In some examples, the conversion generates a bitstream representation from the first block of the video.
[0817] Figure 20This is a flowchart of an example method 2000 for video processing. Method 2000 includes dividing a first block of video (2002) into a plurality of sub-blocks, each including a first sub-block, wherein the width (W) of the first sub-block is... i ) and height (H) i At least one of them is a non-quadratic integer; for the conversion between the first sub-block and its bitstream representation, determine (2004) the transformation parameters associated with the transform block of the first sub-block, wherein the width of the transform block's block size (TW) is determined. i ) and height (TH i One or more of the sub-blocks smaller than the width (W) of the first sub-block i ) and height (H) i ), and TW i or TH i At least one of them is a power of two; and the transformation is performed by using transformation parameters (2006).
[0818] In some examples, the first sub-block is divided from the parent block, which is the first block, using a non-quadratic split tree (NPT-T) segmentation, where the NPT-T segmentation involves dividing the first block of the video into multiple smaller first sub-blocks of the first block, and at least one first sub-block has a width (Wi) and / or height (Hi) that is a non-quadratic integer.
[0819] In some examples, the transform parameters include the TW of the transform block. i and / or TH i and / or transformation matrix.
[0820] In some examples, the TW of the transform block i and / or TH i The setting of the transformation matrix depends on the block size of the first sub-block.
[0821] In some examples, TW i Set to pow(2, floor(log2(W)) i )) and / or TH i Set to pow(2, floor(log2(H) i The functions floor(x) and pow(x,y) return the largest integer less than or equal to x.
[0822] In some examples, the TW of the transform block i and / or TH i The setting of the transformation matrix depends on the available transformation matrices.
[0823] In some examples, TW iA permissible transformation size and / or transformation matrix set to a power of 2, and / or TH. i An allowed transformation size and / or transformation matrix is set to a power of 2.
[0824] In some examples, TW i This is the maximum allowed transformation size, but it cannot exceed W. i And TH i This is the maximum permissible transformation size, but not greater than H. i .
[0825] In some examples, TW i and / or TH i The setting of the transformation matrix depends on the parent block from which the sub-block is divided.
[0826] In some examples, TW i and / or TH i The setting of the transformation matrix depends on the block size of one or more child blocks derived from the same parent block.
[0827] In some examples, TW i and / or TH i The settings for the and / or transformation matrix depend on the color format and / or color components.
[0828] In some examples, TW i and / or TH i The settings for the and / or transformation matrix depend on at least one of the image type, strip type, slice group type, and low-latency check flags.
[0829] In some examples, TW i and / or TH i The settings of the and / or transform matrix depend on other codec information including at least one of quantization parameters, mode information, and reference picture information, wherein the mode information includes intra-frame, inter-frame, and combined intra-frame-inter-frame modes, and the reference picture information includes current picture reference, one-way prediction, two-way prediction, and multiple hypothesis prediction.
[0830] In some examples, information about how to define transform block size and / or transform matrix is signaled in high-level syntax elements including SPS or VPS, or in SPS / PPS / VPS / APS / sequence header / picture header / strip header / piece group header / CTU line / area.
[0831] In some examples, TW i Not greater than a predefined value TWmax, where TWmax = 64, and / or TH i It is not greater than the predefined value THmax, where THmax = 64.
[0832] In some examples, TW i Not less than a predefined value TWmin, where TWmin = 4, and / or TH i It is not less than the predefined value THmin, where THmin = 4.
[0833] In some examples, the transformation parameters also include a fixed offset (OffsetX, OffsetY) that is applied to locate the upper-left position within the region to which the transformation is to be applied using the transformation parameters, where the upper-left corner of the first sub-block has coordinates (0, 0).
[0834] In some examples, both OffsetX and OffsetY are set to 0.
[0835] In some examples, only one of OffsetX and OffsetY is set to 0.
[0836] In some examples, neither OffsetX nor OffsetY is equal to 0.
[0837] In some examples, OffsetX and / or OffsetY depend on the shape of the first sub-block.
[0838] In some examples, OffsetX and / or OffsetY depend on the shape of the parent block.
[0839] In some examples, OffsetX and / or OffsetY depend on the encoding / decoding information of the child / parent block.
[0840] In some examples, the settings for OffsetX and / or OffsetY depend on the color format and / or color components.
[0841] In some examples, the settings for OffsetX and / or OffsetY depend on at least one of the image type, strip type, slice group type, and low-latency check flags.
[0842] In some examples, the settings of OffsetX and / or OffsetY depend on other codec information including at least one of quantization parameters, mode information, and reference picture information, wherein the mode information includes intra-frame, inter-frame, and combined intra-inter-frame modes, and the reference picture information includes current picture reference, one-way prediction, two-way prediction, and multiple hypothesis prediction.
[0843] In some examples, OffsetX and / or OffsetY are signaled.
[0844] In some examples, a candidate set including one or more candidates of OffsetX and / or OffsetY is defined, and the index of the candidate is signaled.
[0845] In some examples, the size of the candidate set depends on the shape of the sub-blocks, and the index is signaled differently for different sub-block shapes.
[0846] In some examples, if the size of the candidate set is equal to 1, no signaling is sent to the index.
[0847] In some examples, a candidate set including one or more candidates (OffsetX, OffsetY) is defined, and the index of the candidate is signaled to indicate both OffsetX and OffsetY.
[0848] In some examples, the size of the candidate set depends on the shape of the sub-blocks, and the index is signaled differently for different sub-block shapes.
[0849] In some examples, if the size of the candidate set is equal to 1, no signaling is sent to the index.
[0850] In some examples, the transformation parameters include multiple different transformation sizes and / or transformation matrices and / or offsets for the first sub-block.
[0851] In some examples, the transformation dimensions of all kinds are in the form of powers of two.
[0852] In some examples, at least one of the transformed dimensions is in the form of a power of 2.
[0853] In some examples, other types of transformation dimensions are no larger than TWmax and / or THmax.
[0854] In some examples, for each of the allowed transformation dimensions, only a fixed offset of both OffsetX and OffsetY of the transformation region is defined or derived to apply the transformation.
[0855] In some examples, only the indication of the selected transformation size is signaled.
[0856] In some examples, multiple offsets of the transformed region are associated with each of the allowed transformed dimensions.
[0857] In some examples, the selected transformation size and offset are indicated by signaling.
[0858] In some examples, the number of allowed offsets is the same for all types of allowed transformation sizes.
[0859] In some examples, the number of allowable offsets differs for different transform sizes.
[0860] In some examples, indications of all kinds of permitted transformation dimensions and / or offsets and / or transformation matrices are signaled.
[0861] In some examples, the allowed transformation dimensions and / or transformation matrices and / or offsets are categorized into M classes, and the class indices are first notified by signaling.
[0862] In some examples, the selected transformation size / offset / matrix index is further signaled.
[0863] In some examples, an index is signaled to indicate both the transformation size and the offset.
[0864] In some examples, the conversion generates the first sub-block of the video from the bitstream representation.
[0865] In some examples, the conversion generates a bitstream representation from the first sub-block of the video.
[0866] Figure 21 This is a flowchart of an example method 2100 for video processing. Method 2100 includes: determining (2102) whether Non-Power-Track Partition Tree (NPT-T) segmentation is enabled or disabled for the conversion between video and its bitstream representation, wherein NPT-T segmentation includes dividing a first block of video into multiple smaller sub-blocks of the first block, and at least one sub-block has a width (W) i ) and / or height (H) i ) is a non-quadratic integer; in response to determining that NPT-T segmentation is permitted, determine (2104) the restrictions associated with the use of NPT-T segmentation; and perform (2106) the transformation based on the determination.
[0867] In some examples, the limitations include the maximum and / or minimum block size allowed for NPT-T partitions and / or the maximum bit depth and / or maximum depth allowed for NPT-T partitions.
[0868] In some examples, the maximum and / or minimum block size that allows NPT-T segmentation and / or the maximum bit depth and / or maximum depth that allows NPT-T segmentation are signaled or parsed in at least one of the following: Video Parameter Set (VPS), Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Adaptive Parameter Set (APS) sequence header, picture header, strip header, slice group header, slice header, codec tree unit (CTU) row and region.
[0869] In some examples, the maximum and / or minimum block size that allows NPT-T partitioning and / or the maximum bit depth and / or maximum depth that allows NPT-T partitioning are derived from other values, including at least one of the depths of multi-type tree (MTT) partitioning or quadtree (QT) partitioning.
[0870] In some examples, the largest block that allows NPT-T splitting is the largest codec block that can be used as a codec tree block or codec tree unit.
[0871] In some examples, the largest block that allows NPT-T partitioning is the Virtual Pipeline Data Unit (VPDU).
[0872] In some examples, the maximum and / or minimum block size allowed for NPT-T partitions and / or the maximum depth allowed for NPT-T partitions depend on at least one of the standard's summary table, level, or hierarchy.
[0873] In some examples, the maximum and / or minimum block size and / or the maximum depth of NPT-T partitions are derived to be the same as those of QT partitions.
[0874] In some examples, the maximum and / or minimum block size allowed for NPT-T splits and / or the maximum depth allowed for NPT-T splits depend on at least one of the following: slice group, strip type, color component, and whether dual-tree is enabled.
[0875] In some examples, the maximum and / or minimum block size allowed for NPT-T partitions and / or the maximum depth allowed for NPT-T partitions are different for different NPT-T modes.
[0876] In some examples, when the first block is partitioned according to the NPT-T segmentation, the corresponding depth of the NPT-T segmentation of a sub-block is adjusted accordingly.
[0877] In some examples, when the first block is partitioned according to NPT-T segmentation, the corresponding depth of the QT segmentation of a sub-block is adjusted accordingly.
[0878] In some examples, when the first block is partitioned according to the NPT-T segmentation, the corresponding depth of the MTT segmentation of a sub-block is adjusted accordingly.
[0879] In some examples, the corresponding depth adjustments for different sub-blocks are done in the same way.
[0880] In some examples, the corresponding depth adjustments for different sub-blocks are accomplished in different ways.
[0881] In some examples, the adjustment depends on the block size of the sub-blocks.
[0882] In some examples, the adjustment includes increasing the corresponding depth by 1.
[0883] In some examples, NPT-T partitioning is disabled if the partitioned sub-blocks span more than one Virtual Pipeline Data Unit (VPDU).
[0884] In some examples, NPT-T splitting is enabled when sub-blocks are forced to be further divided until no sub-blocks span more than one VPDU.
[0885] In some examples, NPT-T segmentation is disabled if the width (W) and / or height (H) of the first block meets predetermined conditions.
[0886] In some examples, the predefined conditions include at least one of the following:
[0887] If W >= T1 and H >= T2, then NPT-T partitioning is disabled, where T1 and T2 are integers; or
[0888] If W >= T1 or H >= T2, then NPT-T partitioning is disabled, where T1 and T2 are integers; or
[0889] If W <= T1 and H <= T2, then NPT-T partitioning is disabled, where T1 and T2 are integers; or
[0890] If W <= T1 or H <= T2, then NPT-T partitioning is disabled, where T1 and T2 are integers; or
[0891] If W×H<=T, then NPT-T partitioning is disabled, where T is an integer; or
[0892] If W×H>=T, then NPT-T segmentation is disabled, where T is an integer; or
[0893] If H <= T, then horizontal NPT-T splitting is disabled, where T = 16; or
[0894] If H >= T, then the level NPT-T is disabled, where T = 128; or
[0895] If W <= T, then vertical NPT-T is disabled, where T = 16; or
[0896] If W >= T, then vertical NPT-T is disabled, where T = 128.
[0897] In some examples, T1, T2, and T are signaled or parsed in at least one of VPS, SPS, PPS, image header, strip header, slice header, and slice header.
[0898] In some examples, T1, T2, and T depend on the color components.
[0899] In some examples, T1, T2, and T are different for the luminance and chrominance components.
[0900] In some examples, T1, T2, and T depend on whether the luminance codec tree and the chrominance codec tree are separated.
[0901] In some examples, if the luma codec tree and the chroma codec tree are separate, then T1, T2, and T are different for the luma and chroma components.
[0902] In some examples, NPT-T partitioning is disabled when transformations are not supported for at least one sub-block partitioned by NPT-T partitioning.
[0903] In some examples, NPT-T segmentation is disabled when the depth of the first block exceeds the allowed depth of NPT-T segmentation.
[0904] In some examples, NPT-T partitioning is disabled when one of the multiple sub-blocks is smaller than the allowed block size.
[0905] In some examples, NPT-T segmentation is enabled if the width (W) and / or height (H) of the first block meets predetermined conditions.
[0906] In some examples, the predefined conditions include at least one of the following:
[0907] If W >= T1 and H >= T2, then NPT-T partitioning is enabled, where T1 and T2 are integers; or
[0908] If W >= T1 or H >= T2, then NPT-T partitioning is enabled, where T1 and T2 are integers; or
[0909] If W <= T1 and H <= T2, then NPT-T partitioning is enabled, where T1 and T2 are integers; or
[0910] If W <= T1 or H <= T2, then NPT-T partitioning is enabled, where T1 and T2 are integers; or
[0911] If W×H<=T, then NPT-T segmentation is enabled, where T is an integer; or
[0912] If W×H>=T, then NPT-T segmentation is enabled, where T is an integer; or
[0913] If H <= T, then horizontal NPT-T segmentation is enabled, where T = 64; or
[0914] If H >= T, then level NPT-T is enabled, where T = 32; or
[0915] If W <= T, then vertical NPT-T is enabled, where T = 64; or
[0916] If W >= T, then vertical NPT-T is enabled, where T = 32.
[0917] In some examples, T1, T2, and T are signaled or parsed in at least one of VPS, SPS, PPS, image header, strip header, slice header, and slice header.
[0918] In some examples, T1, T2, and T depend on the color components.
[0919] In some examples, T1, T2, and T are different for the luminance and chrominance components.
[0920] In some examples, T1, T2, and T depend on whether the luminance codec tree and the chrominance codec tree are separated.
[0921] In some examples, if the luma codec tree and the chroma codec tree are separate, then T1, T2, and T are different for the luma and chroma components.
[0922] In some examples, NPT-T segmentation is prohibited if the depth of the first block meets a predetermined condition.
[0923] In some examples, the depth of the first block includes at least one of QT depth, BT depth, TT depth, NPT-T depth, or MTT depth.
[0924] In some examples, the predefined conditions include at least one of the following:
[0925] If the partition depth is less than or equal to T, then NPT-T partitioning is disabled;
[0926] If the partition depth is greater than or equal to T, then NPT-T partitioning is disabled;
[0927] If the QT partition depth is less than or equal to T, then NPT-T partitioning is disabled;
[0928] If the QT partition depth is greater than or equal to T, then NPT-T partitioning is disabled;
[0929] If the BT partition depth is greater than or equal to T, then NPT-T partitioning is disabled;
[0930] If the BT partition depth is less than or equal to T, then NPT-T partitioning is disabled;
[0931] If the TT partition depth is greater than or equal to T, then NPT-T partitioning is disabled;
[0932] If the TT partition depth is greater than or equal to T, then NPT-T partitioning is disabled;
[0933] If the NPT-T partition depth is less than or equal to T, then NPT-T partitioning is disabled;
[0934] If the NPT-T partition depth is greater than or equal to T, then NPT-T partitioning is disabled;
[0935] If the MTT partition depth is less than or equal to T, then NPT-T partitioning is disabled;
[0936] If the MTT partition depth is greater than or equal to T, then NPT-T partitioning is disabled.
[0937] Where T is an integer.
[0938] In some examples, T is signaled or parsed in at least one of VPS, SPS, PPS, image header, strip header, slice header, and slice header.
[0939] In some examples, T depends on the color component.
[0940] In some examples, T is different for the luminance and chrominance components.
[0941] In some examples, T depends on whether the luma codec tree and the chroma codec tree are separated.
[0942] In some examples, if the luma codec tree and the chroma codec tree are separate, then T is different for the luma and chroma components.
[0943] In some examples, NPT-T segmentation is enabled if the depth of the first block meets a predetermined condition.
[0944] In some examples, the depth of the first block includes at least one of QT depth, BT depth, TT depth, NPT-T depth, or MTT depth.
[0945] In some examples, the predefined conditions include at least one of the following:
[0946] If the partition depth is less than or equal to T, then NPT-T partitioning is enabled;
[0947] If the partition depth is greater than or equal to T, then NPT-T partitioning is enabled;
[0948] If the QT partition depth is less than or equal to T, then NPT-T partitioning is enabled;
[0949] If the QT partition depth is greater than or equal to T, then NPT-T partitioning is enabled;
[0950] If the BT partition depth is greater than or equal to T, then NPT-T partitioning is enabled;
[0951] If the BT partition depth is less than or equal to T, then NPT-T partitioning is enabled;
[0952] If the TT partition depth is greater than or equal to T, then NPT-T partitioning is enabled;
[0953] If the TT partition depth is greater than or equal to T, then NPT-T partitioning is enabled;
[0954] If the NPT-T partition depth is less than or equal to T, then NPT-T partitioning is enabled;
[0955] If the NPT-T partition depth is greater than or equal to T, then NPT-T partitioning is enabled;
[0956] If the MTT partition depth is less than or equal to T, then NPT-T partitioning is enabled;
[0957] If the MTT partition depth is greater than or equal to T, then NPT-T partitioning is enabled.
[0958] Where T is an integer.
[0959] In some examples, T is signaled or parsed in at least one of VPS, SPS, PPS, image header, strip header, slice header, and slice header.
[0960] In some examples, T depends on the color component.
[0961] In some examples, T is different for the luminance and chrominance components.
[0962] In some examples, T depends on whether the luma codec tree and the chroma codec tree are separated.
[0963] In some examples, if the luma codec tree and the chroma codec tree are separate, then T is different for the luma and chroma components.
[0964] In some examples, whether and / or how to use NPT-T splitting depends on the location of the first block.
[0965] In some examples, whether and how to use NPT-T segmentation depends on whether the first block crosses the boundaries of a picture, slice, or group of slices.
[0966] In some examples, vertical NPT-T segmentation is disabled if the first block spans the bottom boundary of an image, slice, or group of slices.
[0967] In some examples, horizontal NPT-T segmentation is disabled if the first block crosses the bottom boundary of an image, slice, or slice group.
[0968] In some examples, vertical NPT-T segmentation is disabled if the first block crosses the right boundary of an image, slice, or slice group.
[0969] In some examples, horizontal NPT-T segmentation is disabled if the first block crosses the right boundary of an image, slice, or slice group.
[0970] In some examples, hybrid NPT-T segmentation is disabled if the first block crosses the bottom boundary of an image, slice, or slice group.
[0971] In some examples, hybrid NPT-T segmentation is disabled if the first block crosses the right boundary of an image, slice, or slice group.
[0972] In some examples, if the sub-blocks divided by NPT-T segmentation are completely outside of the picture, slice, or slice group, the sub-blocks are omitted during the conversion.
[0973] In some examples, if the sub-blocks divided by NPT-T segmentation are partially outside of an image, slice, or group of slices, the portion outside the image is omitted during the conversion.
[0974] In some examples, if the sub-blocks divided by NPT-T segmentation are partially outside of the image, slice, or group of slices, the portion within the image is further subdivided.
[0975] In some examples, if the sub-blocks divided by NPT-T segmentation are partially outside of a picture, slice, or group of slices, the portion within the picture is encoded into a codec unit (CU).
[0976] In some examples, whether a portion of an image is encoded as a CU depends on the width (w) and height (h) of that portion.
[0977] In some examples, if w = 2nw and h = 2nh, then the portion within the image is encoded as a CU, where nw and nh are integers.
[0978] In some examples, NPT-T segmentation is disabled if any sub-blocks divided by NPT-T segmentation are partially or completely outside of a picture or slice or group of slices.
[0979] In some examples, the indication of signaling notification mode usage is skipped when NPT-T segmentation or a specific NPT-T mode is disabled.
[0980] In some examples, when NPT-T splitting or a specific NPT-T mode is disabled, the indication of mode usage is constrained to false in the consistent bitstream.
[0981] In some examples, sub-blocks partitioned from the first block via NPT-T are not allowed to be further partitioned using one or more of the following partitioning methods:
[0982] a.QT,
[0983] b. Horizontal BT,
[0984] c. Vertical BT,
[0985] d. Horizontal TT,
[0986] e. Vertical BT,
[0987] f. Horizontal asymmetric quadtree (UQT)
[0988] g. Vertical UQT, and
[0989] h.NPT-T
[0990] In some examples, NPT-T splitting is disabled for the root node.
[0991] In some examples, NPT-T splitting is enabled for leaf nodes.
[0992] In some examples, signaling notifications are skipped based on indications of further divisions of other segments.
[0993] In some examples, NPT-T splitting is applied only to leaf nodes.
[0994] In some examples, this is a leaf node signaling notification or parsing flag to indicate whether NPT-T segmentation is used.
[0995] In some examples, the indication of which NPT-T segment is used is further signaled or parsed.
[0996] In some examples, for a given size of the first block, if the first block is divided into multiple sub-blocks via NPT-T splitting, then all sub-blocks share the same Merge list.
[0997] In some examples, for a given size of the first block, if the first block is divided into multiple sub-blocks by NPT-T segmentation, all of the multiple sub-blocks share the same encoding / decoding mode, where the encoding / decoding mode is either intra-frame mode or inter-frame mode.
[0998] In some examples, for a given size of the first block, if the first block is divided into multiple sub-blocks by NPT-T segmentation, all of the multiple sub-blocks share the same Advanced Motion Vector Prediction (AMVP) or other kind of motion candidate list.
[0999] In some examples, for a given size of the first block, if the first block is divided into multiple sub-blocks by NPT-T segmentation, 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.
[1000] In some examples, the width of the transformation matrix applied to at least one sub-block is less 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 a non-power-two integer; and / or the height of the transformation matrix applied to at least one sub-block is less than the height of the sub-block, wherein the width and / or height of the at least one sub-block has a size that is a non-power-two integer.
[1001] In some examples, the conversion is used to generate the first block of the video from the bitstream representation.
[1002] In some examples, the conversion generates a bitstream representation from the first block of the video.
[1003] 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 equivalents), or in a combination of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for use by a data processing apparatus to operate or control the operation of the data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a combination of substances affecting machine-readable propagation signals, or a combination of one or more of them. The term "data processing apparatus" includes all means, devices, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, the apparatus 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 of them. Propagation signals are artificially generated signals, such as machine-generated electrical signals, optical signals, or electromagnetic signals, generated to encode information for transmission to a suitable receiver device.
[1004] Computer programs (also known as programs, software, software applications, scripts, or code) can be written in any programming language (including compiled or interpreted languages) and can be deployed in any form, including as standalone programs or as modules, components, subroutines, or other units 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 as part 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., a file storing one or more modules, subroutines, or code sections). Computer programs can be deployed to run on a single computer or on multiple computers located at a single site or distributed across multiple sites and interconnected through a communications network.
[1005] The processes and logic described in this document can be executed by one or more programmable processors running one or more computer programs to perform functions by manipulating input data and generating outputs. The processes and logic can also be executed by dedicated logic circuits, and the devices can be implemented as dedicated logic circuits, such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application Specific Integrated Circuits).
[1006] 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 receives instructions and data from read-only memory or random access memory, or both. The basic components 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 disks, magneto-optical disks, or optical disks) for storing data, or operatively coupled to receive data from, transfer data to, or receive data from and transfer data to such 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 memory 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 special-purpose logic circuitry.
[1007] While this patent document contains numerous details, these details should not be construed as limiting any subject matter or potentially claimed scope, but rather as descriptions of features specific to particular embodiments of a particular technology. Certain features described in this patent document within the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented separately in multiple embodiments or in any suitable sub-combination. Furthermore, although features may be described above as functioning in certain combinations and even initially claimed in this way, in some cases one or more features from the claimed combination may be excluded from the combination, and the claimed combination may be for sub-combinations or variations thereof.
[1008] Similarly, although operations are depicted in a specific order in the accompanying drawings, this should not be construed as requiring the operations to be performed in the specific order shown or in a sequential manner, or as performing all shown operations to achieve the desired result. Furthermore, the separation of various system components in the embodiments described in this patent document should not be construed as requiring such separation in all embodiments.
[1009] Only some implementation methods and examples are described, and other implementation methods, enhancements and variations can be made based on the content described and shown in this patent document.
Claims
1. A method for processing video data, comprising: For the conversion between video and video bitstream, determine whether non-power-four split tree (NPT-T) segmentation is enabled or disabled, wherein NPT-T segmentation includes dividing the first block of the video into multiple smaller sub-blocks of the first block, and at least one sub-block has a width Wi and / or height Hi that is a non-power-four integer. In response to determining that NPT-T segmentation is permitted, restrictions associated with the use of NPT-T segmentation are determined; and The transformation is performed based on the determination.
2. The method according to claim 1, wherein, Limitations include the maximum and / or minimum block size allowed for NPT-T partitions and / or the maximum bit depth and / or maximum depth allowed for NPT-T partitions.
3. The method according to claim 2, wherein, The maximum and / or minimum block size allowed for NPT-T segmentation and / or the maximum bit depth and / or maximum depth allowed for NPT-T segmentation are signaled or parsed in at least one of the following: Video Parameter Set (VPS), Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Adaptive Parameter Set (APS), Sequence Header, Picture Header, Strip Header, Slice Header, Slice Header, Codec Tree Unit (CTU) Row, and Region.
4. The method according to claim 2, wherein, The maximum and / or minimum block size that allows NPT-T partitioning and / or the maximum bit depth and / or maximum depth that allow NPT-T partitioning are derived from other values, including the depth of multi-type tree MTT partitioning or the depth of quadtree QT partitioning.
5. The method according to any one of claims 2-4, wherein, The largest block that is allowed to be split in NPT-T is the largest codec block that can be used as a codec tree block or codec tree unit.
6. The method according to any one of claims 2-4, wherein, The largest block that can be partitioned by NPT-T is the Virtual Pipeline Data Unit (VPDU).
7. The method according to any one of claims 2-4, wherein, The maximum and / or minimum block size allowed for NPT-T partitioning and / or the maximum depth allowed for NPT-T partitioning depend on at least one of the standard's summary table, level, or hierarchy.
8. The method according to any one of claims 2-4, wherein, The maximum and / or minimum block size and / or maximum depth of NPT-T partitions are derived to be the same as those of QT partitions.
9. The method according to any one of claims 2-4, wherein, The maximum and / or minimum block size allowed for NPT-T splitting and / or the maximum depth allowed for NPT-T splitting depend on at least one of the following: slice group, strip type, color component, and whether dual-tree is enabled.
10. The method according to any one of claims 2-4, wherein, 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.
11. The method according to any one of claims 1-10, wherein, When the first block is divided according to the NPT-T segmentation, the corresponding depth of the NPT-T segmentation of a sub-block is adjusted accordingly.
12. The method according to any one of claims 1-10, wherein, When the first block is divided according to the NPT-T segmentation, the corresponding depth of the QT segmentation of a sub-block is adjusted accordingly.
13. The method according to any one of claims 1-10, wherein, When the first block is partitioned according to the NPT-T segmentation, the corresponding depth of the MTT segmentation of a sub-block is adjusted accordingly.
14. The method according to any one of claims 11-13, wherein, The corresponding depth adjustments for different sub-blocks are performed in the same way.
15. The method according to any one of claims 11-13, wherein, The corresponding depth adjustments for different sub-blocks are accomplished in different ways.
16. The method according to claim 15, wherein, The adjustment depends on the size of the sub-block.
17. The method according to any one of claims 11-16, wherein, The adjustment includes increasing the corresponding depth by 1.
18. The method according to any one of claims 1-17, wherein, If the sub-blocks span more than one Virtual Pipeline Data Unit (VPDU), then NPT-T partitioning is disabled.
19. The method according to claim 18, wherein, NPT-T partitioning is enabled when sub-blocks are forced to be further divided until no sub-blocks span more than one VPDU.
20. The method according to any one of claims 1-19, wherein, If the width W and / or height H of the first block meet predetermined conditions, the NPT-T segmentation is disabled.
21. The method according to claim 20, wherein, The pre-defined conditions include at least one of the following: a. If W >= T1 and H >= T2, then NPT-T partitioning is disabled, where T1 and T2 are integers; or b. If W >= T1 or H >= T2, then NPT-T partitioning is disabled, where T1 and T2 are integers; or c. If W <= T1 and H <= T2, then NPT-T partitioning is disabled, where T1 and T2 are integers; or d. If W <= T1 or H <= T2, then NPT-T partitioning is disabled, where T1 and T2 are integers; or e. If W×H<=T, then NPT-T partitioning is disabled, where T is an integer; or f. If W×H>=T, then NPT-T segmentation is disabled, where T is an integer; or g. If H <= T, then horizontal NPT-T splitting is disabled, where T = 16; or h. If H >= T, then the level NPT-T is disabled, where T = 128; or i. If W <= T, then vertical NPT-T is disabled, where T = 16; or j. If W >= T, then vertical NPT-T is disabled, where T = 128.
22. The method according to claim 21, wherein, T1, T2, and T are signaled or parsed in at least one of VPS, SPS, PPS, image header, strip header, slice header, and slice header.
23. The method according to claim 21 or 22, wherein, T1, T2, and T depend on the color components.
24. The method according to claim 23, wherein, T1, T2, and T are different for the luminance and chromaticity components.
25. The method according to claim 21 or 22, wherein, T1, T2, and T depend on whether the luminance codec tree and the chrominance codec tree are separated.
26. The method of claim 25, wherein, If the luma codec tree and the chroma codec tree are separate, then T1, T2, and T are different for the luma and chroma components.
27. The method according to any one of claims 1-26, wherein, NPT-T partitioning is disabled when transformation is not supported for at least one sub-block partitioned by NPT-T partitioning.
28. The method according to any one of claims 1-27, wherein, NPT-T segmentation is disabled when the depth of the first block exceeds the allowed depth of NPT-T segmentation.
29. The method according to any one of claims 1-28, wherein, NPT-T partitioning is disabled when the size of one of the multiple sub-blocks is smaller than the allowed block size.
30. The method according to any one of claims 1-19, wherein, If the width W and / or height H of the first block meet predetermined conditions, NPT-T segmentation is enabled.
31. The method according to claim 30, wherein, The pre-defined conditions include at least one of the following: a) If W >= T1 and H >= T2, then NPT-T partitioning is enabled, where T1 and T2 are integers; or b) If W >= T1 or H >= T2, then NPT-T partitioning is enabled, where T1 and T2 are integers; or c) If W <= T1 and H <= T2, then NPT-T partitioning is enabled, where T1 and T2 are integers; or d) If W <= T1 or H <= T2, then NPT-T partitioning is enabled, where T1 and T2 are integers; or e) If W×H<=T, then NPT-T segmentation is enabled, where T is an integer; or f) If W×H>=T, then NPT-T segmentation is enabled, where T is an integer; or g) If H <= T, then horizontal NPT-T segmentation is enabled, where T = 64; or h) If H >= T, then level NPT-T is enabled, where T = 32; or i) If W <= T, then vertical NPT-T is enabled, where T = 64; or j) If W>=T, then vertical NPT-T is enabled, where T=32.
32. The method according to claim 31, wherein, T1, T2, and T are signaled or parsed in at least one of VPS, SPS, PPS, image header, strip header, slice header, and slice header.
33. The method according to claim 31 or 32, wherein, T1, T2, and T depend on the color components.
34. The method according to claim 33, wherein, T1, T2, and T are different for the luminance and chromaticity components.
35. The method according to claim 31 or 32, wherein, T1, T2, and T depend on whether the luminance codec tree and the chrominance codec tree are separated.
36. The method according to claim 35, wherein, If the luma codec tree and the chroma codec tree are separate, then T1, T2, and T are different for the luma and chroma components.
37. The method according to any one of claims 1-36, wherein, If the depth of the first block meets the predetermined conditions, NPT-T segmentation is prohibited.
38. The method according to claim 37, wherein, The depth of the first block includes at least one of QT depth, BT depth, TT depth, NPT-T depth, or MTT depth.
39. The method according to claim 38, wherein, The pre-defined conditions include at least one of the following: a) If the partition depth is <= T, then NPT-T partitioning is disabled; b) If the partition depth is greater than or equal to T, then NPT-T partitioning is disabled; c) If the QT partition depth is less than or equal to T, then NPT-T partitioning is disabled; d) If the QT partition depth is greater than or equal to T, then NPT-T partitioning is disabled; e) If the BT partition depth is greater than or equal to T, then NPT-T partitioning is disabled; f) If the BT partition depth is less than or equal to T, then NPT-T partitioning is disabled; g) If the TT partition depth is greater than or equal to T, then NPT-T partitioning is disabled; h) If the TT partition depth is less than or equal to T, then NPT-T partitioning is disabled; i) If the NPT-T partition depth is less than or equal to T, then NPT-T partitioning is disabled; j) If the NPT-T partition depth is greater than or equal to T, then NPT-T partitioning is disabled; k) If the MTT partition depth is less than or equal to T, then NPT-T partitioning is disabled; l) If the MTT partition depth is greater than or equal to T, then NPT-T partitioning is disabled. Where T is an integer.
40. The method according to claim 39, wherein, T is signaled or parsed in at least one of VPS, SPS, PPS, image header, strip header, slice header, and slice header.
41. The method according to claim 39 or 40, wherein, T depends on the color components.
42. The method according to claim 41, wherein, T differs for the luminance and chromaticity components.
43. The method according to claim 39 or 40, wherein, T depends on whether the luminance codec tree and the chrominance codec tree are separated.
44. The method according to claim 43, wherein, If the luma codec tree and the chroma codec tree are separate, then T is different for the luma and chroma components.
45. The method according to any one of claims 1-36, wherein, If the depth of the first block meets the predetermined conditions, NPT-T segmentation is enabled.
46. The method according to claim 45, wherein, The depth of the first block includes at least one of QT depth, BT depth, TT depth, NPT-T depth, or MTT depth.
47. The method according to claim 46, wherein, The pre-defined conditions include at least one of the following: a) If the partition depth is <= T, then NPT-T partitioning is enabled; b) If the partition depth is greater than or equal to T, then NPT-T partitioning is enabled; c) If the QT partition depth is less than or equal to T, then NPT-T partitioning is enabled; d) If the QT partition depth is greater than or equal to T, then NPT-T partitioning is enabled; e) If the BT partition depth is greater than or equal to T, then NPT-T partitioning is enabled; f) If the BT partition depth is <= T, then NPT-T partitioning is enabled; g) If the TT partition depth is greater than or equal to T, then NPT-T partitioning is enabled; h) If the TT partition depth is less than or equal to T, then NPT-T partitioning is enabled; i) If the NPT-T partition depth is <= T, then NPT-T partitioning is enabled; j) If the NPT-T partition depth is greater than or equal to T, then NPT-T partitioning is enabled; k) If the MTT partition depth is <= T, then NPT-T partitioning is enabled; l) If the MTT partition depth is greater than or equal to T, then NPT-T partitioning is enabled. Where T is an integer.
48. The method according to claim 47, wherein, T is signaled or parsed in at least one of VPS, SPS, PPS, image header, strip header, slice header, and slice header.
49. The method according to claim 47 or 48, wherein, T depends on the color components.
50. The method according to claim 49, wherein, T differs for the luminance and chromaticity components.
51. The method according to claim 47 or 48, wherein, T depends on whether the luminance codec tree and the chrominance codec tree are separated.
52. The method according to claim 51, wherein, If the luma codec tree and the chroma codec tree are separate, then T is different for the luma and chroma components.
53. The method according to any one of claims 1-52, wherein, Whether and / or how to use NPT-T splitting depends on the location of the first block.
54. The method according to claim 53, wherein, Whether and how to use NPT-T segmentation depends on whether the first block crosses the boundaries of an image, slice, or group of slices.
55. The method according to claim 54, wherein, Vertical NPT-T segmentation is disabled if the first block crosses the bottom boundary of an image, slice, or slice group.
56. The method according to claim 54, wherein, Horizontal NPT-T segmentation is disabled if the first block crosses the bottom boundary of an image, slice, or slice group.
57. The method according to claim 54, wherein, Vertical NPT-T segmentation is disabled if the first block crosses the right boundary of an image, slice, or slice group.
58. The method according to claim 54, wherein, Horizontal NPT-T segmentation is disabled if the first block crosses the right boundary of an image, slice, or slice group.
59. The method according to claim 54, wherein, Hybrid NPT-T segmentation is disabled if the first block crosses the bottom boundary of an image, slice, or slice group.
60. The method according to claim 54, wherein, Hybrid NPT-T segmentation is disabled if the first block crosses the right boundary of an image, slice, or slice group.
61. The method according to claim 54, wherein, If the sub-blocks created by NPT-T segmentation are completely outside of images, slices, or slice groups, the sub-blocks are omitted during the conversion.
62. The method according to claim 54, wherein, If the sub-blocks divided by NPT-T segmentation are partially outside of the image, slice, or slice group, the portion outside the image is omitted during conversion.
63. The method according to claim 54, wherein, If the sub-blocks divided by NPT-T segmentation are partially outside of the image, slice, or slice group, the portion within the image is further subdivided.
64. The method according to claim 54, wherein, If the sub-blocks divided by NPT-T segmentation are partially outside of the picture, slice, or slice group, the portion within the picture is encoded and decoded into a codec unit (CU).
65. The method according to claim 64, wherein, Whether a portion of an image is encoded as a CU depends on the width w and height h of that portion.
66. The method according to claim 65, wherein, If w = 2nw and h = 2nh, then the portion within the image is encoded as a CU, where nw and nh are integers.
67. The method according to claim 54, wherein, NPT-T segmentation is disabled if any sub-blocks divided by NPT-T segmentation are partially or completely outside of an image, slice, or group of slices.
68. The method according to any one of claims 1-67, wherein, Instructions for the use of signaling notification modes are skipped when NPT-T segmentation or a specific NPT-T mode is disabled.
69. The method according to any one of claims 1-67, wherein, When NPT-T splitting or a specific NPT-T mode is disabled, the indication of mode usage is constrained to false in the consistency bitstream.
70. The method according to any one of claims 1-69, wherein, Sub-blocks partitioned from the first block by NPT-T are not allowed to be further partitioned using one or more of the following partitioning 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.
71. The method according to any one of claims 1-70, wherein, Disable NPT-T splitting on the root node.
72. The method according to any one of claims 1-71, wherein, Enable NPT-T segmentation on leaf nodes.
73. The method according to claim 72, wherein, Signaling notifications are skipped based on further divisions of other segments.
74. The method according to any one of claims 1-71, wherein, NPT-T partitioning is applied only to leaf nodes.
75. The method according to claim 74, wherein, This is a leaf node signaling notification or resolution flag to indicate whether NPT-T segmentation is used.
76. The method according to claim 75, wherein, The indication of which NPT-T segment is being further signaled or parsed.
77. The method according to any one of claims 1-76, wherein, For a given size of the first block, if the first block is divided into multiple sub-blocks via NPT-T splitting, then all sub-blocks share the same Merge list.
78. The method according to any one of claims 1-76, wherein, For a given size of the first block, if the first block is divided into multiple sub-blocks by NPT-T segmentation, all of the multiple sub-blocks share the same encoding / decoding mode, where the encoding / decoding mode is either intra-frame mode or inter-frame mode.
79. The method according to any one of claims 1-76, wherein, For a given size of the first block, if the first block is divided into multiple sub-blocks by NPT-T segmentation, all sub-blocks share the same Advanced Motion Vector Prediction (AMVP) or other kind of motion candidate list.
80. The method according to any one of claims 1-76, wherein, For a given size of the first block, if the first block is divided into multiple sub-blocks by NPT-T segmentation, 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.
81. The method according to any one of claims 1 to 80, wherein, The width of the transformation matrix applied to at least one sub-block is less 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 a non-quadratic integer; and / or The height of the transformation matrix applied to at least one sub-block is less than the height of the sub-block, wherein the width and / or height of the at least one sub-block has a size that is a non-quadratic integer.
82. The method according to any one of claims 1 to 81, wherein, The conversion generates the first block of video from the bitstream.
83. The method according to any one of claims 1 to 81, wherein, The conversion generates a bitstream from the first block of the video.
84. An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to: The conversion between video and video bitstream determines whether non-power-fourth-order splitting (NPT-T) is enabled or disabled, where... NPT-T segmentation involves dividing a first block of video into multiple smaller sub-blocks of the first block, and at least one sub-block has a width Wi and / or height Hi that is a non-quadratic integer. In response to determining that NPT-T segmentation is permitted, restrictions associated with the use of NPT-T segmentation are determined; and The transformation is performed based on the determination.
85. A non-transitory computer-readable storage medium for storing instructions, said instructions causing a processor to: The conversion between video and video bitstream determines whether non-power-fourth-order splitting (NPT-T) is enabled or disabled, where... NPT-T segmentation involves dividing a first block of video into multiple smaller sub-blocks of the first block, and at least one sub-block has a width Wi and / or height Hi that is a non-quadratic integer. In response to determining that NPT-T segmentation is permitted, restrictions associated with the use of NPT-T segmentation are determined; and The transformation is performed based on the determination.
86. A non-transitory computer-readable recording medium for storing a bitstream generated by a method performed by a video processing apparatus, wherein the method comprises: Determine whether Non-Power-Track (NPT-T) segmentation is enabled or disabled, wherein NPT-T segmentation includes dividing the first block of the video into multiple smaller sub-blocks of the first block, and at least one sub-block has a width Wi and / or height Hi that is a non-power-track integer; In response to determining that NPT-T segmentation is permitted, restrictions associated with the use of NPT-T segmentation are determined; and The bit stream is generated based on the determination.
87. A method for storing a bitstream of video, comprising: Determine whether Non-Power-Track (NPT-T) segmentation is enabled or disabled, wherein NPT-T segmentation includes dividing the first block of the video into multiple smaller sub-blocks of the first block, and at least one sub-block has a width Wi and / or height Hi that is a non-power-track integer; In response to determining that NPT-T segmentation is permitted, restrictions associated with the use of NPT-T segmentation are determined; Based on the determination, a bitstream is generated; and The bit stream is stored in a non-transitory computer-readable recording medium.