Signaling notification for video block segmentation mode
By introducing the asymmetric quadtree (UQT) partitioning method, the problem of insufficient flexibility in the segmentation mode of existing video codec standards is solved, enabling more efficient video block segmentation and encoding, and improving video quality and encoding efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-02-03
- Publication Date
- 2026-03-13
AI Technical Summary
Existing video codec standards lack flexibility in segmentation modes and cannot effectively adapt to various local characteristics, resulting in limitations in codec efficiency and quality.
The asymmetric quadtree (UQT) partitioning method is adopted to divide the video block asymmetrically into four segments. The partitioning method is determined by signaling notification, which supports more flexible block partitioning structures, including UQTA-H, UQTb-H, UQTc-V, UQTd-V and other types.
It improves the flexibility and efficiency of video encoding and decoding, enhances the ability to adapt to local characteristics, and improves video quality and encoding efficiency.
Smart Images

Figure CN113273197B_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This application claims priority to PCT / CN2019 / 074701, filed February 3, 2019, entitled “Enhanced Codec Tree Structure”; PCT / CN2019 / 077620, filed March 11, 2019, entitled “Enhanced Codec Tree Structure”; PCT / CN2019 / 090163, filed June 5, 2019, entitled “Enhanced Codec Tree Structure”; and PCT / CN2019 / 101594, filed August 20, 2019, entitled “Enhanced Codec Tree Structure”, the entire disclosure of which is incorporated herein by reference. Technical Field
[0003] This article covers video and image encoding / decoding technologies. Background Technology
[0004] Digital video still 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] The disclosed techniques can be used by video or image decoder or encoder embodiments that employ an enhanced codec tree structure.
[0006] In one example aspect, a video processing method is disclosed. The method includes performing a conversion between a current video block and a bitstream representation of the current video block, wherein the current video block is asymmetrically divided into four segments using an asymmetric quadtree (UQT) partition, wherein the four segments include a first segment having a size of W1×H1, a second segment having a size of W2×H2, a third segment having a size of W3×H3, and a fourth segment having a size of W4×H4, where W1, W2, W3, W4, H1, H2, H3, and H4 are integers.
[0007] In another example aspect, a video processing method is disclosed, comprising: determining features about a current video block; determining an operational state regarding an asymmetric quadtree (UQT) partition based on the determination of the features, wherein the operational state indicates whether the UQT partition is enabled or disabled and / or indicates how to use the UQT partition to divide the current video block into four segments; and performing a conversion between the current video block and a bitstream representation of the current video block based on the operational state of the UQT partition.
[0008] In another example aspect, a video processing method is disclosed, comprising a conversion between a current video block and a bitstream representation of the current video block, determining an asymmetric quadtree (UQT) partitioning method for dividing the current video block, wherein the partitioning method is selected from: UQTa-H partitioning, UQTb-H partitioning, UQTc-V partitioning, and UQTd-V partitioning, wherein a, b, c, and d are selected from 1, 2, 3, or 4, wherein UQTa-H partitioning and UQTb-H partitioning are horizontal UQT partitioning, and UQTc-V partitioning and UQTd-V partitioning are vertical UQT partitioning; and performing the conversion based on the determination.
[0009] In another example aspect, a video processing method is disclosed, comprising: determining a valid partition type for a current video block; determining, based on the determination of the valid partition type, whether or how to signal the partition type used for the current video block; and performing a conversion between the current video block and a bitstream representation of the current video block according to the result of the determination.
[0010] In another example aspect, a method for video processing is disclosed. The method includes a conversion between a current video block and a codec representation of the current video block; determining a partitioning type for dividing the current video block, wherein the partitioning type is signaled in the bitstream representation after signaling notification of a partitioning or non-partitioning indication and / or a quadtree (QT) partitioning indication; and performing the conversion based on the determination.
[0011] In another example, a video processing method is disclosed. The method includes a conversion between a current video block and its bitstream representation; determining, based on a stripe or image including the current video block, whether to apply an asymmetric quadtree (UQT) partition, and if so, a specific UQT type to be used to partition the current video block; and performing the conversion based on the determination.
[0012] In another example, a video processing method is disclosed. The method includes a conversion between a current video block and its bitstream representation, determining, based on stripes or images including the current video block, an interpretation of the representation of signaling notifications used to partition the current video block using an asymmetric quadtree (UQT) partition; and performing the conversion based on the determination.
[0013] In another example, the above method can be implemented by a video encoder device that includes a processor.
[0014] In yet another example, these methods can be implemented as processor-executable instructions and stored on a computer-readable program medium.
[0015] These and other aspects will be further described in this disclosure. Attached Figure Description
[0016] Figure 1 An example of MB segmentation in H.264 / AVC is shown.
[0017] Figure 2 An example of a pattern for dividing CB into PB is shown.
[0018] Figure 3 An example of subdividing CTB into CB is shown.
[0019] Figure 4 An example illustration of a QTBT structure is shown.
[0020] Figure 5 An example of segmentation is shown.
[0021] Figures 6A to 6K An example of EQT is shown.
[0022] Figures 7A to 7D An example of FT segmentation is shown.
[0023] Figure 8 An example of GTT segmentation is shown.
[0024] Figure 9 Examples of invariant syntax and altered semantics for various boundary splits are shown.
[0025] Figures 10A to 10H An example of UQT is shown.
[0026] Figure 11 This is a block diagram of an example video processing device.
[0027] Figure 12 A block diagram illustrating an example implementation of a video encoder is shown.
[0028] Figure 13 This is a flowchart of an example of a video processing method.
[0029] Figure 14 This is a flowchart of an example of a video processing method.
[0030] Figure 15 This is a flowchart of an example of a video processing method.
[0031] Figure 16 An example of a split type is shown.
[0032] Figure 17 An example of the proposed extended quadtree partitioning is shown.
[0033] Figure 18 An example of LCU segmentation with QT+BT+EQT+UQT segmentation is shown.
[0034] Figure 19 An example of a tree-structured encoding / decoding architecture for I-stripes is shown.
[0035] Figure 20 An example of a tree-structured encoding / decoding architecture for B / P stripes is shown.
[0036] Figure 21 This is a flowchart of an example of a video processing method.
[0037] Figure 22 This is a flowchart of an example of a video processing method.
[0038] Figure 23 This is a flowchart of an example of a video processing method.
[0039] Figure 24 This is a flowchart of an example of a video processing method.
[0040] Figure 25 This is a flowchart of an example of a video processing method.
[0041] Figure 26 This is a flowchart of an example of a video processing method.
[0042] Figure 27 This is a flowchart of an example of a video processing method. Detailed Implementation
[0043] This article provides various techniques that can be used by decoders of image or video bitstreams to improve the quality of decompressed or decoded digital video or images. For simplicity, the term "video" used in this article includes both sequences of pictures (traditionally referred to as video) and single images. Furthermore, video encoders can implement these techniques during the encoding process to reconstruct decoded frames for further encoding.
[0044] Chapter headings are used in this document for ease of understanding, and the embodiments and techniques are not limited to the corresponding chapters. Thus, embodiments in one chapter can be combined with embodiments in other chapters.
[0045] 1. Summary
[0046] This article deals with image / video codecs, particularly partitioning structures—that is, how to divide a large block into multiple smaller blocks. It can be applied to existing video codec standards like HEVC or to standards yet to be finalized (general video codecs). It can also be applied to future video codec standards or codecs.
[0047] 2. Background
[0048] Video codec standards have primarily evolved through the development of well-known ITU-T and ISO / IEC standards. ITU-T developed the H.261 and H.263 standards, while ISO / IEC developed the MPEG-1 and MPEG-4 Visual standards. The two organizations jointly developed the H.262 / MPEG-2 video standard, the H.264 / MPEG-4 Advanced Video Coding (AVC) standard, and the H.265 / HEVC standard. Starting with H.262, video codec standards are based on a hybrid video codec architecture, utilizing time prediction plus transform coding.
[0049] Figure 12 This is a block diagram of an example implementation of a video encoder. Figure 12 The encoder implementation shown has a built-in feedback path in which the video encoder also performs video decoding (reconstructing a compressed representation of the video data for encoding the next video data).
[0050] 2.1 Segmentation Tree Structure in H.264 / AVC
[0051] The core of the codec layer in the previous standard was the macroblock, which consisted of a 16×16 luma sample block and two corresponding 8×8 chroma sample blocks in the usual case of 4:2:0 color sampling.
[0052] Intra-frame codec blocks use spatial prediction to take advantage of spatial correlations between pixels. Two segmentation methods are defined as 16×16 and 4×4.
[0053] Inter-frame codec blocks use temporal prediction rather than spatial prediction by estimating motion between images. Motion can be estimated independently for a 16×16 macroblock or any of its sub-macroblocks: 16×8, 8×16, 8×8, 8×4, 4×8, 4×4 (see [link to documentation]). Figure 1 Only one motion vector (MV) is allowed per submacroblock segmentation.
[0054] 2.2 Segmentation Tree Structure in HEVC
[0055] In HEVC, the CTU is divided into CUs using a quadtree structure represented as an encoder-decoder tree to accommodate various local characteristics. The decision to encode or decode image regions using inter-image (temporal) prediction or intra-image (spatial) prediction 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 partitioning type. After obtaining residual blocks by applying the prediction process based on the PU partitioning type, the CU can be partitioned into transform units (TUs) according to another quadtree structure similar to the CU's encoder-decoder tree. One of the key features of the HEVC structure is that it has multiple partitioning concepts, including CUs, PUs, and TUs.
[0056] The following sections highlight various features involved in hybrid video encoding and decoding using HEVC.
[0057] 1) Codec Tree Unit and Codec Tree Block (CTB) Structure: A similar structure in HEVC is the Codec Tree Unit (CTU), which has a size 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 L×L of the luma CTB can be selected as L = 16, 32, or 64 samples; larger sizes generally achieve better compression. HEVC then supports the use of a tree structure and quadtree-like signaling to divide the CTB into smaller blocks.
[0058] 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. Dividing the CTU into luma CBs and chroma CBs is a signaling union. A luma CB and usually two chroma CBs, along with the associated syntax, form a codec unit (CU). A CTB may consist of only one CU or may be divided to form multiple CUs, and each CU has an associated tree partition leading to the prediction unit (PU) and transform unit (TU).
[0059] 3) Prediction Units and Prediction Blocks (PBs): The decision of whether to use inter-frame or intra-frame image prediction for image region encoding and decoding is made at the CU level. The root of the PU segmentation structure is at the CU level. Then, depending on the basic prediction type decision, the luma CB and chroma CB can be further segmented in size and predicted according to the luma and chroma prediction blocks (PBs). HEVC supports variable PB sizes from 64×64 to 4×4 samples.
[0060] Figure 3 The pattern for dividing CB into PB is shown.
[0061] 4) TU and Transform Blocks: The prediction residuals are encoded and decoded using block transforms. The root of the TU tree structure is at the CU level. The luma CB residual can be the same as the luma transform block (TB), or it can be further divided into smaller luma TBs. The same applies to the chroma TB. For square TB sizes of 4×4, 8×8, 16×16, and 32×32, integer basis functions similar to the Discrete Cosine Transform (DCT) are defined. For the 4×4 transform of the luma intra-frame image prediction residuals, an integer transform derived from the form of the Discrete Sine Transform (DST) can be specified alternatively.
[0062] Figure 4 This shows the subdivision of CTB into CB.
[0063] 2.3 Quadtree plus binary tree block structure with larger CTU in JEM
[0064] 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, JVET has adopted many new methods and incorporated them into a reference software called the Joint Exploration Model (JEM).
[0065] 2.3.1 QTBT Block Segmentation Structure
[0066] Unlike HEVC, the QTBT structure eliminates the concept of multiple segmentation types; that is, it removes the separation between CU, PU, and TU concepts and supports greater flexibility in the shape of CU segmentation. In the QTBT block structure, CUs can have square or rectangular shapes. Figure 4 As shown, the codec tree unit (CTU) is first segmented by a quadtree structure. The leaf nodes of the quadtree are further segmented by 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 partitioning 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, in the case of P and B-stripes in a 4:2:0 chroma format, a CU includes one luma CB and two chroma CBs; and CUs sometimes consist of CBs with a single component; for example, in the case of I-stripes, a CU includes only one luma CB or only two chroma CBs.
[0067] Define the following parameters for the QTBT segmentation scheme.
[0068] -CTUSize: The size of the root node of the quadtree, the same concept as in HEVC.
[0069] -MinQTSize: Minimum allowed size of quadtree leaf nodes
[0070] -MaxBTSize: Maximum allowed size of the binary tree root node
[0071] -MaxBTDepth: Maximum allowed binary tree depth
[0072] -MinBTSize: Minimum allowed size of binary leaf nodes
[0073] In one example of the QTBT segmentation structure, CTUSize is set to 128×128 luminance samples with two corresponding 64×64 chroma sample blocks, MinQTSize is set to 16×16, MaxBTSize is set to 64×64, MinBTSize (width and height) is set to 4×4, and MaxBTDepth is set to 4. First, quadtree segmentation is applied to the CTU to generate quadtree leaf nodes. Quadtree leaf nodes can have sizes from 16×16 (i.e., MinQTSize) to 128×128 (i.e., CTUSize). If a leaf quadtree node is 128×128, it will not be further subdivided by the binary tree because this size exceeds MaxBTSize (i.e., 64×64). Otherwise, the leaf quadtree node can be further subdivided by the binary tree. Therefore, the quadtree leaf node is also the root node of the binary tree, and the binary tree depth is 0. When the binary tree depth reaches MaxBTDepth (i.e., 4), further subdivision is not 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 CTUSize is 256×256 luminance samples.
[0074] Figure 4 (Left side) depicts an example of block partitioning using QTBT. Figure 4 (On the right) is a depiction of the corresponding tree representation. Solid lines represent quadtree partitions, and dashed lines represent 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, no partition type indication is needed because quadtree partitions always divide blocks horizontally and vertically to produce four sub-blocks of equal size.
[0075] Furthermore, the QTBT scheme supports the ability to have separate QTBT structures for luma and chroma. Currently, for P and B-stripes, the luma CTB and chroma CTB within a CTU share the same QTBT structure. However, for I-stripes, the luma CTB is divided into CUs via a QTBT structure, and the chroma CTB is divided into chroma CUs via a separate QTBT structure. This means that a CU in an I-strip consists of either a codec block for the luma component or codec blocks for both chroma components, while a CU in a P-strip or B-strip consists of codec blocks for all three color components.
[0076] In HEVC, inter-frame prediction for small blocks is limited by reduced memory access for motion compensation, making bidirectional prediction unsupported for 4×8 and 8×4 blocks, and inter-frame prediction unsupported for 4×4 blocks. These limitations are removed in JEM's QTBT.
[0077] 2.4 Tritree of Multifunctional Video Codec (VVC)
[0078] It supports tree types other than quadtrees and binary trees. This implementation introduces two additional ternary tree (TT) partitions: horizontal and vertical center-side ternary trees, such as... Figure 5 (d) and Figure 5 As shown in (e).
[0079] exist Figure 5 In the middle: (a) quadtree partitioning (b) vertical binary tree partitioning (c) horizontal binary tree partitioning (d) vertical center-side ternary tree partitioning (e) horizontal center-side ternary tree partitioning.
[0080] In the example above, there are two levels of trees: a region tree (quadtree) and a prediction tree (binary or ternary tree). The CTU is first partitioned by the region tree (RT). RT leaves can be further partitioned using the prediction tree (PT). PT leaves can also be further partitioned using the PT until the maximum PT depth is reached. PT leaves are the basic encoding / decoding units. For convenience, it is still referred to as a CU. The CU cannot be further partitioned. Prediction and transform are applied to the CU in the same way as JEM. The entire partitioning structure is called a "multi-type tree".
[0081] Extended quadtree
[0082] The Extended Quadtree (EQT) partitioning structure corresponds to a block partitioning process that includes an extended quadtree partitioning process for video data blocks, wherein the extended quadtree partitioning structure represents the partitioning of the video data block into final sub-blocks, and when the extended quadtree partitioning process decides to apply extended quadtree partitioning to a given block, a given block is always partitioned into four sub-blocks; decoding the final sub-blocks based on the video bitstream; and decoding the video data block based on the final sub-blocks decoded according to the derived EQT structure.
[0083] The EQT partitioning process can be recursively applied to a given block to generate EQT leaf nodes. Alternatively, when EQT is applied to a block, for each sub-block generated by EQT, it can be further partitioned into BT and / or QT and / or TT and / or EQT and / or other kinds of partition trees.
[0084] In one example, EQT and QT can share the same depth increment process and the same leaf node size limit. In this case, a node split can be implicitly terminated when the node size reaches the minimum allowed quadtree leaf size or the node's EQT depth reaches the maximum allowed quadtree depth.
[0085] Alternatively, EQT and QT can share different depth-incrementing procedures and / or leaf node size limits. A node segmentation via EQT will implicitly terminate when the node size reaches the minimum allowed EQT leaf node size or the EQT depth associated with that node reaches the maximum allowed EQT depth. Furthermore, in one example, the EQT depth and / or minimum allowed EQT leaf node size can be signaled in the Sequence Parameter Set (SPS), and / or Picture Parameter Set (PPS), and / or Strip Header, and / or CTU, and / or Region, and / or Slice, and / or CU.
[0086] Instead of using the current quadtree partitioning applied to square blocks, in EQT, for blocks of size M×N (where M and N are non-zero positive integer values, equal or unequal), a block can be equally divided into four partitions, such as M / 4×N or M×N / 4 (examples are depicted in Figures 6(a) and 6(b)), or equally divided into four partitions, with the partition size depending on the maximum and minimum values of M and N. In one example, a 4×32 block can be divided into four 4×8 sub-blocks, and a 32×4 block can be divided into four 8×4 sub-blocks.
[0087] Instead of using the current quadtree partitioning applied to square blocks, in EQT, a block with a size of M×N (M and N are non-zero positive integer values, equal or unequal) can be divided into four partitions unequally, for example, two partitions with a size equal to (M*w0 / w)×(N*h0 / h) and another two partitions with a size of (M*(w-w0) / w)×(N*(h-h0) / h).
[0088] For example, w0 and w can be equal to 1 and 2 respectively, meaning the width is halved, while the height can use a ratio other than 2:1 to obtain the sub-block. Examples of this are depicted in Figures 6(c) and 6(e). Alternatively, h0 and h can be equal to 1 and 2 respectively, meaning the height is halved, while the width can use a ratio other than 2:1. Examples of this are depicted in Figures 6(d) and 6(f).
[0089] Figures 6(g) and 6(h) show two alternative examples of quadtree partitioning.
[0090] Figure 6(i) illustrates a more general case of quadtree partitioning with different shapes.
[0091] Figures 6(j) and 6(k) show general examples of Figures 6(a) and 6(b).
[0092] The flexible tree (FT) partitioning structure corresponds to a block partitioning process that includes an FT partitioning process for video data blocks, wherein the FT partitioning structure represents dividing the video data block into final sub-blocks, and when the FT partitioning process decides to apply FT partitioning to a given block, a given block is divided into K sub-blocks, where K can be greater than 4; decoding the final sub-blocks based on the video bitstream; and decoding the video data block based on the final sub-blocks decoded according to the derived FT structure.
[0093] The Fourier Transform (FT) partitioning process can be recursively applied to a given block to generate FT leaf nodes. Partitioning a node implicitly terminates when the node reaches the minimum allowed FT leaf node size or the FT depth associated with the node reaches the maximum allowed FT depth.
[0094] Alternatively, when FT is applied to a block, due to FT, for each sub-block, it can be further divided into BT, and / or QT, and / or EQT, and / or TT, and / or other types of split trees.
[0095] Alternatively, the signaling may also inform the depth of the FT or the minimum permissible leaf node size of the FT or the minimum permissible partition size of the FT in the sequence parameter set (SPS) and / or picture parameter set (PPS) and / or strip header and / or CTU and / or region and / or slice (piece) and / or CU.
[0096] Similar to the proposed EQT, all sub-blocks generated by FT segmentation can have the same size; alternatively, different sub-blocks can have different sizes.
[0097] In one example, K equals 6 or 8. Figure 7 depicts some examples.
[0098] For TT, the restriction of dividing along the horizontal or vertical direction can be eliminated.
[0099] In one example, the generalized TT (GTT) segmentation pattern can be defined as a partition that divides both horizontally and vertically. An example is... Figure 8 As shown.
[0100] The proposed method can be applied under certain conditions. In other words, when the conditions are not met, signaling notification of the segmentation type is not required.
[0101] Alternatively, the proposed method can be used to replace existing split tree types. Alternatively, the proposed method can only be used as an alternative under certain conditions.
[0102] In one example, the condition could include image and / or stripe type; and / or block size; and / or encoding / decoding mode; and / or whether a block is located at the boundary of an image / strip / piece.
[0103] In one example, the proposed EQT can be processed in the same way as QT. In this case, when the indicated split tree type is QT, further signaling can be used to provide more detailed flags / indications for the quadtree splitting pattern. Alternatively, EQT can be considered as an additional splitting pattern.
[0104] In one example, the signaling for the EQP / FT / GTT segmentation method can be conditional, meaning that in some cases, one or more EQP / FT / GTT segmentation methods may not be used, and no signaling notification may be sent to the bits corresponding to these segmentation methods.
[0105] 2.6 Boundary Processing
[0106] A boundary handling method is proposed for Multifunctional Video Codec (VVC).
[0107] Due to the lack of optimization in the forced quadtree boundary segmentation solution in VVC, JVET-K0287 proposes a boundary segmentation method using a regular block segmentation syntax to maintain the continuity of the CABAC engine and match image boundaries.
[0108] Multifunctional boundary segmentation yields the following rules (for both the encoder and decoder):
[0109] For blocks located at boundaries, use the same method as regular blocks (non-boundary) (e.g., ...). Figure 9 The syntax shown is exactly the same as the split syntax, and this syntax needs to remain unchanged.
[0110] If the boundary CU is resolved to an unpartitioned mode, then Forced Boundary Partitioning (FBP) is used to match the image boundary.
[0111] After forced boundary segmentation (non-single boundary segmentation), no further segmentation is performed.
[0112] Forced boundary segmentation is described as follows:
[0113] If the block size is larger than the maximum allowed BT size, then use forced QT for FBP at the current forced partitioning level;
[0114] Otherwise, if the current CU's downsampling is below the bottom image boundary and does not exceed the right boundary, then use the forced level BT for FBP at the current forced segmentation level;
[0115] Otherwise, if the current CU's downsampling is located to the right of the right image boundary and is not lower than the bottom boundary, then use forced vertical BT for FBP at the current forced segmentation level;
[0116] Otherwise, if the current CU's downsampling is to the right of the right image boundary and below the bottom boundary, then use forced QT for FBP at the current forced segmentation level.
[0117] 2.7 Split
[0118] The AVS Working Group, short for the China Audio and Video Coding Standards Working Group, was authorized and established in June 2002 by the Ministry of Science and Technology of the former Ministry of Industry and Information Technology. To meet the needs of the rapidly developing information industry, AVS is dedicated to providing high-quality technical standards for compressing, decompressing, processing, and representing digital audio and video, thereby providing efficient and economical encoding / decoding technologies for digital audio-video equipment and systems. AVS can be applied to various important information fields, including high-resolution digital broadcasting, high-density laser digital storage media, wireless broadband multimedia communication, and broadband internet streaming media.
[0119] AVS is one of the second-generation source coding / decoding standards and has independent Chinese intellectual property rights. Source coding and decoding technology mainly solves the problem of encoding, decoding and compressing massive amounts of audio and video data (i.e., the original data and source). Therefore, it is called digital video and audio coding and decoding technology. It is a prerequisite for subsequent digital transmission, storage and broadcasting, and serves as a common standard in the digital video and audio industry.
[0120] The LCU is divided into multiple CUs using quadtree (QT) partitioning, binary tree (BT) partitioning, and extended quadtree (EQT) partitioning, such as... Figure 16 As shown. QT partitioning, BT partitioning, and EQT partitioning can all be used to partition the root, interior, or leaf nodes of a tree. However, QT partitioning is prohibited after any BT or EQT partitioning.
[0121] 3. Examples of problems solved by the implementation examples
[0122] Although the QT / BT / TT codec tree structure in VVC is very flexible, there are still some segmentation modes that QT / BT / TT cannot implement.
[0123] 4. Examples of Implementation Methods
[0124] To address this problem, several methods have been proposed to handle the EQT case.
[0125] The detailed techniques described below should be considered as examples to illustrate general concepts. These embodiments should not be interpreted in a narrow sense. Furthermore, these embodiments can be combined in any way.
[0126] In the following discussion, QT, BT, TT, or UQT can refer to "QT partition", "BT partition", "TT partition", and "UQT partition", respectively.
[0127] In the following discussion, "division" and "segmentation" have the same meaning.
[0128] 1. An asymmetric quadtree (UQT) partitioning method is proposed. Using UQT, a block of size W×H is divided into four partitions of size W1×H1, W2×H2, W3×H3 and W4×H4, where W1, W2, W3, W4, H1, H2, H3 and H4 are all integers.
[0129] a. In one example, at least one segment has a different block size than the other segments.
[0130] b. In one example, only two of the four segments can have the same size, while the other two segments are different from each other and are different from the two segments with the same size.
[0131] c. In one example, all parameters are powers of 2. For example, W1 = 2. N1 W2 = 2 N2 W3 = 2 N3 W4 = 2 N4 H1 = 2 M1 H2 = 2 M2 H3 = 2 M3 H4 = 2 M4 .
[0132] d. In one example, UQT only makes one segment in the vertical direction, for example, H1=H2=H3=H4=H.
[0133] (a) In an example as shown in Figure 10(a), W1 = W / 8, W2 = W / 2, W3 = W / 8, W4 = W / 4, H1 = H2 = H3 = H4 = H. This type of UQT is vertically partitioned and is named UQT1-V.
[0134] (b) In an example as shown in Figure 10(b), W1 = W / 8, W2 = W / 2, W3 = W / 4, W4 = W / 8, H1 = H2 = H3 = H4 = H. This type of UQT is vertically partitioned and is named UQT2-V.
[0135] (c) In one example as shown in Figure 10(c), W1 = W / 4, W2 = W / 8, W3 = W / 2, W4 = W / 8, H1 = H2 = H3 = H4 = H. This type of UQT is vertically partitioned and is named UQT3-V.
[0136] (d) In one example as shown in Figure 10(d), W1 = W / 8, W2 = W / 4, W3 = W / 2, W4 = W / 8, H1 = H2 = H3 = H4 = H. This type of UQT is vertically partitioned and is named UQT4-V.
[0137] e. In one example, UQT only makes one segment in the horizontal direction, for example, W1=W2=W3=W4=W.
[0138] (a) In an example shown in Figure 10(e), H1 = H / 8, H2 = H / 2, H3 = H / 8, H4 = H / 4, W1 = W2 = W3 = W4 = W. This type of UQT is horizontally partitioned and is named UQT1-H.
[0139] (b) In an example as shown in Figure 10(f), H1 = H / 8, H2 = H / 2, H3 = H / 4, H4 = H / 8, W1 = W2 = W3 = W4 = W. This type of UQT is horizontally partitioned and is named UQT2-H.
[0140] (c) In one example as shown in Figure 10(g), H1 = H / 4, H2 = H / 8, H3 = H / 2, H4 = H / 4, W1 = W2 = W3 = W4 = W. This type of UQT is horizontally partitioned and is named UQT3-H.
[0141] (d) In an example as shown in Figure 10(h), H1 = H / 8, H2 = H / 4, H3 = H / 2, H4 = H / 8, W1 = W2 = W3 = W4 = W. This type of UQT is horizontally partitioned and is named UQT4-H.
[0142] 2. A block that is divided into sub-blocks by UQT can be divided from a parent block by QT, BT, TT, or UQT.
[0143] a. Blocks that can be split using UQT are allowed, and can be blocks generated by splitting using QT, BT, TT, or UQT.
[0144] b. Blocks that can be split using UQT are allowed, and can be blocks generated by splitting using QT, EQT, or BT.
[0145] (a) Alternatively, blocks that can be split by UQT may be blocks generated by splitting by UQT, QT, EQT or BT.
[0146] c. For example, the largest block that UQT can split can be the largest codec block (codec tree block or codec tree unit).
[0147] d. For example, the largest block that UQT can partition can be a Virtual Pipeline Data Unit (VPDU).
[0148] e. For example, blocks that are allowed to be partitioned by UQT can be partitioned from the parent block by one or more specific types of partitioning methods. For instance, a block that is partitioned into child blocks by UQT can only be partitioned from the parent block by QT partitioning.
[0149] f. In one example, UQT segmentation and / or the maximum / minimum block size of the maximum depth may be allowed to be signaled in SPS / PPS / VPS / APS / sequence header / picture header / strip header / piece group header / CTU line / region etc.
[0150] g. In one example, the maximum / minimum block size that allows UQT splitting and / or maximum depth may depend on the standard configuration file / level / hierarchy.
[0151] h. In one example, the maximum / minimum block size that allows UQT splitting and / or the maximum depth that allows UQT splitting can be derived, for example, the same as the case that allows QT splitting.
[0152] 3. Blocks partitioned from the parent block using UQT can be further partitioned into sub-blocks using QT and / or BT and / or TT and / or UQT.
[0153] a. For example, a block partitioned from a parent block via UQT can be further partitioned into sub-blocks via BT.
[0154] b. For example, a block partitioned from a parent block via UQT can be further partitioned into sub-blocks via TT.
[0155] c. For example, a block partitioned from a parent block via UQT can be further partitioned into sub-blocks via UQT and / or QT.
[0156] d. For example, a block partitioned from a parent block via UQT cannot be further partitioned into child blocks via QT.
[0157] e. For example, a block that is partitioned from a parent block using UQT can be further partitioned into child blocks using EQT.
[0158] (a) Alternatively, a block partitioned from a parent block via UQT can be further partitioned into sub-blocks via UQT, EQT and BT.
[0159] f. For example, a block partitioned from a parent block via UQT is not allowed to be further partitioned into child blocks via UQT.
[0160] (a) Alternatively, a block partitioned from a parent block via UQT can be further partitioned into sub-blocks via EQT and BT.
[0161] 4. When dividing a parent block into child blocks using UQT, the partition depth of the child blocks can be derived from the partition depth of the parent block.
[0162] a. In one example, the partitioning of UQT can be used to update the depth of QT / BT / TT / UQT / MTT.
[0163] (a) In one example, the QT depth of one or all child blocks is equal to the QT depth of the parent block plus 1.
[0164] (b) In one example, the BT depth of one or all child blocks is equal to the BT depth of the parent block plus 1.
[0165] (c) In one example, the TT depth of one or all child blocks is equal to the TT depth of the parent block plus 1.
[0166] (d) In one example, the UQT depth of one or all child blocks is equal to the UQT depth of the parent block plus 1.
[0167] (e) In one example, the MTT depth of one or all child blocks is equal to the MTT depth of the parent block plus 1.
[0168] 1. For example, if a parent block is divided into child blocks by BT, the MTT depth of the child block is equal to the MTT depth of the parent block plus 1.
[0169] 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.
[0170] 3. Alternatively, the MTT depth of one or all child blocks is equal to the MTT depth of the parent block plus K, where K > 1. For example, K = 2.
[0171] a. In one example, K can be different for different sub-blocks.
[0172] i. In one example, K = log2(size of the parent block / size of the child block). For example, as... Figure 10B As shown, the K values of the four sub-blocks W1 = W / 8, W2 = W / 2, W3 = W / 4, and W4 = W / 8 are 3, 1, 2, and 3, respectively.
[0173] b. In one example, the UQT / BT / TT / QT / MTT depth increases may be different for different sub-blocks.
[0174] (a) The depth increase depends on the ratio of the child block to the parent block.
[0175] 5. Whether and how to use UQT can depend on the color format (e.g., 4:4:4 or 4:2:0) and / or color components.
[0176] a. Whether and how to use UQT can depend on whether the luma and chroma codec trees are separate.
[0177] b. In one example, UQT can only be applied to the luma component when the luma and chroma codec trees are separate.
[0178] 6. Whether to apply UQT and / or which type of UQT to apply to receive encoder signaling notifications to the decoder.
[0179] a. In one example, signaling notifications can be included in VPS / SPS / PPS / image header / strip header / group header / film header to indicate whether UQT can be applied.
[0180] b. In one example, signaling notifications can be included in VPS / SPS / PPS / image header / strip header / group header / film header to indicate which UQT can be applied.
[0181] c. In one example, signaling can be used within the block to indicate whether UQT should be used to partition the block.
[0182] d. In one example, signaling notifications can be included in the block to indicate which type of UQT is used to partition the block.
[0183] e. In one example, the block can be signaled to the index of the segmentation type to indicate whether the block is segmented by QT or UQT, or not segmented.
[0184] (a) Alternatively, further signaling may be used to inform the division direction (horizontal / vertical) and / or division style.
[0185] f. In one example, the block can be signaled to the index of the segmentation type to indicate whether the block was segmented by BT, TT, or UQT.
[0186] (a) For example, the index can be conditionally signaled, such as only if at least one of BT, TT and UQT is valid for the block.
[0187] (b) Alternatively, further signaling may be used to inform the division direction (horizontal / vertical) and / or division style.
[0188] g. In one example, the signaling can first indicate the partitioning direction, followed by the partitioning style (e.g., QT, TT, UQT).
[0189] (a) In one example, a signaling notification flag is included in the block to indicate whether the block is vertically or horizontally partitioned. Vertical partitioning can be BT vertical partitioning, TT vertical partitioning, or UQT vertical partitioning. Horizontal partitioning can be BT horizontal partitioning, TT horizontal partitioning, or UQT horizontal partitioning.
[0190] (b) For example, the signaling notifies the flag only when the block is partitioned via BT, TT, or UQT.
[0191] (c) For example, the signaling notifies the flag only when both the vertical and horizontal divisions of the block are valid.
[0192] 1. If only vertical division is valid, the flag is not notified by signaling, and it is inferred that horizontal division is used.
[0193] 2. If only horizontal division is valid, and the flag is not notified by signaling, it is inferred that vertical division is used.
[0194] h. In one example, the signaling code within the block informs the binarization to indicate which partitioning (BT, TT, or UQT) was used. In the following example, X represents 0 or 1 and (If X = 0, then Y = 1; if X = 1, then Y = 0).
[0195] (a) In one example, depending on the information previously signaled or derived, the candidate BT, TT, or UQT to be signaled are either vertically or horizontally segmented.
[0196] (b) In one example, the first flag is signaled to indicate whether UQT is used. For example, the binary codewords representing BT, TT, UQT1, UQT2, UQT3, and UQT4 are XX, XY, YXX, YXY, YYX, and YYY, respectively.
[0197] (c) In one example, unary truncation codes are applied. For example, the binary codewords representing BT, TT, UQT1, UQT2, UQT3, and UQT4 are X, YX, YYX, YYYX, YYYYX, YYYYY.
[0198] (d) In one example, signaling notifies a first flag to indicate whether BT is used. If BT is not used, signaling notifies a second flag to indicate whether UQT is used. If UQT is used, the type of UQT used is further signaled. For example, the binary codewords representing BT, TT, UQT1, UQT2, UQT3, and UQT4 are X, YX, YYXX, YYXY, YYYX, YYYY.
[0199] 7. In one example, how signaling notifications within a block use which partition can depend on which type of partition is valid for that block. In the following example, X represents 0 or 1 and (If X = 0, then Y = 1, and if X = 1, then Y = 0).
[0200] a. In one example, depending on the information previously signaled or derived, the candidate BT, TT, or UQT to be signaled are either vertically or horizontally segmented.
[0201] b. For example, it is impossible to signal from the encoder to the decoder that a disallowed or invalid partition is not allowed, i.e., there is no codeword to indicate a disallowed or invalid partition.
[0202] c. In one example, if only one partition from BT, TT, and UQT is valid, the no-signaling notification indicates which partition (BT, TT, or one of UQT) was used for the binarized code.
[0203] d. In one example, if only two types of partitions from BT, TT, and UQT are valid, a signaling notification flag is used to indicate which of the two valid partitions was used.
[0204] e. In one example, the code indicating which partition (BT, TT, or a UQT) is binary-coded as a unary truncation code.
[0205] (a) For example, the maximum value of a unary truncated code is N-1, where N is the number of effective partitions (BT, TT and UQT).
[0206] (b) For example, no codeword represents an invalid partition. In other words, invalid partitions are skipped when constructing the codeword table.
[0207] f. In one example, if no valid UQT is available, no signaling is sent indicating whether a UQT has been used, and the flag is inferred to be false. For example, the binary codewords representing BT and TT are X and Y, respectively.
[0208] g. In one example, if only one UQT is valid and signaling indicates that a UQT will be used, no further signaling notification information will be sent to indicate which UQT to use. The valid UQT is used implicitly.
[0209] h. In one example, if only two UQTs are available and the signaling notification UQT will be used, then a signaling notification flag is used to indicate which UQT to use.
[0210] i. In one example, if only three UQTs are valid and a signaling notification UQT will be used, a signaling notification message indicates which UQT to use. For example, the binary codewords representing the three UQTs are X, YX, and YY, respectively.
[0211] j. In one example, the binary conversion and / or signaling notification method does not change based on which partition in the block is valid. Invalid partitions cannot be selected in a consistent bitstream.
[0212] 8. Binary numbers (bits) used to indicate the partition type of binary number (bin) strings can be encoded and decoded using arithmetic encoding and decoding in one or more contexts.
[0213] a. In one example, only a portion of the binary number string can be encoded / decoded using context, while the remaining binary number can be encoded / decoded using bypass mode (i.e., without using context).
[0214] b. Alternatively, all binary numbers in a binary number string can be encoded or decoded using context.
[0215] c. Alternatively, all binary numbers in a binary number string can be encoded or decoded using bypass mode.
[0216] d. For binary numbers encoded and decoded using context, one or more contexts can be used.
[0217] e. The context can depend on:
[0218] (a) The position or index of a binary number.
[0219] (b) Segmentation of spatial / temporal adjacent blocks.
[0220] (c) The current segmentation depth of the current block (e.g., QT depth / BT depth / TT depth / UQT depth / MTT depth).
[0221] (d) Segmentation depth of spatial / temporal adjacent blocks and / or spatial / temporal non-adjacent blocks (e.g., QT depth / BT depth / TT depth / UQT depth / MTT depth).
[0222] (e) Encoding / decoding modes for spatial / temporal adjacent blocks.
[0223] (f) Width / height of adjacent blocks in the spatial / temporal domain.
[0224] (g) Width / Height of the current block
[0225] (h) Strip type / Image type / Group type
[0226] (i) Color components
[0227] (j) Statistical results of segmentation types from previous codec blocks
[0228] 9. UQT is not allowed if the sub-blocks span more than one Virtual Pipeline Data Unit (VPDU).
[0229] 10. UQT is not allowed if the width / height of the current block meets certain conditions. (Assume the width and height of the current block are W and H, and T1, T2, and T are integers.)
[0230] a. If W>=T1 and H>=T2, then UQT is not allowed;
[0231] b. If W>=T1 or H>=T2, then UQT is not allowed;
[0232] c. If W <= T1 and H <= T2, then UQT is not allowed;
[0233] d. If W <= T1 or H <= T2, then UQT is not allowed;
[0234] e. If W × H <= T, then UQT is not allowed;
[0235] f. If W×H>=T, then UQT is not allowed;
[0236] g. If H <= T, for example, T = 16, then level UQT is not allowed.
[0237] h. If H >= T, for example, T = 128, then level UQT is not allowed.
[0238] i. If W <= T, for example, T = 16, then vertical UQT is not allowed.
[0239] j. If W >= T, for example, T = 128, then vertical UQT is not allowed.
[0240] k. Signaling notifications T1, T2, and T can be sent from the encoder to the decoder in VPS / SPS / PPS / image header / strip header / group header / film header.
[0241] l. T1, T2, and T can depend on the color components. For example, T1, T2, and T can be different for the luminance and chrominance components.
[0242] 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.
[0243] n. Alternatively, UQT partitioning is invalid when UQT does not support transformations of at least one sub-block.
[0244] o. Alternatively, a UQT partition is invalid when the depth of a block exceeds the allowed depth of the UQT partition.
[0245] p. Alternatively, UQT partitioning is invalid when any sub-block size exceeds the allowed block size due to UQT partitioning.
[0246] 11. UQT is allowed if the width / height of the current block meets certain conditions. (Assume the width and height of the current block are W and H, and T1, T2, and T are integers.)
[0247] a. If W>=T1 and H>=T2, then UQT is allowed;
[0248] b. If W>=T1 or H>=T2, then UQT is allowed;
[0249] c. If W <= T1 and H <= T2, then UQT is allowed;
[0250] d. If W <= T1 or H <= T2, then UQT is allowed;
[0251] e. If W×H<=T, then UQT is allowed;
[0252] f. If W×H>=T, then UQT is allowed;
[0253] g. If H <= T, for example, T = 64, then level UQT is allowed.
[0254] h. If H >= T, for example, T = 32, then level UQT is allowed.
[0255] i. If W <= T, for example, T = 64, then vertical UQT is allowed.
[0256] j. If W >= T, for example, T = 32, then vertical UQT is allowed.
[0257] k. Signaling notifications T1, T2, and T can be sent from the encoder to the decoder in VPS / SPS / PPS / image header / strip header / group header / film header.
[0258] l. T1, T2, and T can depend on the color components. For example, T1, T2, and T can be different for the luminance and chrominance components.
[0259] 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.
[0260] In one example, T1, T2, and T can determine the image / strip type.
[0261] (a) In one example, on a P-strip / P-image or a B-strip / B-image, if TP1 <= H <= TP2, then horizontal UQT is allowed, and / or if TP1 <= W <= TP2, then vertical UQT is allowed; and on an I-strip / I-image, if TI1 <= H <= TI2, then horizontal UQT is allowed, and / or if TI1 <= W <= TI2, then vertical UQT is allowed.
[0262] 1. In one example, TP1 is greater than TI1. For example, TI1 = 32, TP1 = 64, TI2 = TP2 = 64.
[0263] 2. In one example, TP2 is less than TI2. For example, TI2 = 64, TP2 = 32, TI1 = TP1 = 32.
[0264] 12. UQT 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, UQT depth, or MTT depth.
[0265] a. If the partition depth is less than or equal to T, then UQT is not allowed;
[0266] b. If the partition depth is greater than or equal to T, then UQT is not allowed;
[0267] c. If the QT partition depth is less than or equal to T, then UQT is not allowed;
[0268] d. If the QT partition depth is greater than or equal to T, then UQT is not allowed;
[0269] e. If the BT partition depth is greater than or equal to T, then UQT is not allowed;
[0270] f. If the BT partition depth is less than or equal to T, then UQT is not allowed;
[0271] g. If the partition depth TT is greater than or equal to T, then UQT is not allowed;
[0272] h. If the partition depth TT is greater than or equal to T, then UQT is not allowed;
[0273] i. If the UQT partition depth is less than or equal to T, then UQT is not allowed;
[0274] j. If the UQT partition depth is greater than or equal to T, then UQT is not allowed;
[0275] k. If the MTT partition depth is less than or equal to T, then UQT is not allowed;
[0276] l. If the MTT partition depth is greater than or equal to T, then UQT is not allowed;
[0277] mT can send signaling notifications from the encoder to the decoder in VPS / SPS / PPS / image header / strip header / group header / film header.
[0278] nT can depend on the color components. For example, T1, T2, and T can be different for the luminance and chrominance components.
[0279] 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.
[0280] 13. UQT 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, UQT depth, or MTT depth.
[0281] a. If the partition depth is less than or equal to T, then UQT is allowed;
[0282] b. If the partition depth is greater than or equal to T, then UQT is allowed;
[0283] c. If the QT partition depth is less than or equal to T, then UQT is allowed;
[0284] d. If the QT partition depth is greater than or equal to T, then UQT is allowed;
[0285] e. If the BT partition depth is greater than or equal to T, then UQT is allowed;
[0286] f. If the BT partition depth is less than or equal to T, then UQT is allowed;
[0287] g. If the partition depth TT is greater than or equal to T, then UQT is allowed;
[0288] h. If the partition depth TT is greater than or equal to T, then UQT is allowed;
[0289] i. If the UQT partition depth is less than or equal to T, then UQT is allowed;
[0290] j. If the UQT partition depth is greater than or equal to T, then UQT is allowed;
[0291] k. If the MTT partition depth is less than or equal to T, then UQT is allowed;
[0292] l. If the MTT partition depth is greater than or equal to T, then UQT is allowed;
[0293] mT can send signaling notifications from the encoder to the decoder in VPS / SPS / PPS / image header / strip header / group header / film header.
[0294] nT can depend on the color components. For example, T1, T2, and T can be different for the luminance and chrominance components.
[0295] 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.
[0296] 14. In one embodiment, whether and how UQT is used may depend on the location of the current block. For example, whether and how UQT is used may depend on whether the current block crosses the boundaries of an image / piece / piece group.
[0297] a. In one example, vertical UQT is not allowed if the current block crosses the bottom boundary of an image / piece / piece group.
[0298] b. In one example, horizontal UQT is not allowed if the current block crosses the bottom boundary of an image / piece / piece group.
[0299] c. In one example, vertical UQT is not allowed if the current block crosses the right boundary of an image / piece / piece group.
[0300] d. In one example, horizontal UQT is not allowed if the current block crosses the right boundary of an image / piece / piece group.
[0301] e. In one example, if a sub-block partitioned by UQT is not in the picture / piece / piece group at all, the sub-block can be omitted during the encoding / decoding process.
[0302] f. In one example, if the sub-block portion divided by UQT is not in the picture / piece / piece group, the following conditions may apply.
[0303] (a) Parts other than the image can be omitted during the encoding / decoding process.
[0304] (b) The parts within the image can be further subdivided.
[0305] (c) Parts within the image can be encoded and decoded into CU.
[0306] 1. Whether a portion of an image is encoded as a CU can depend on the width (w) and height (h) of that portion.
[0307] a. In one example, if w = 2 nw h = 2 nh , of which nw
[0308] If nh are integers, then parts of the image can be encoded and decoded into CU.
[0309] g. In one example, UQT is not allowed if any sub-blocks divided by UQT are not part / entirely in a picture / piece / piece group.
[0310] h. In one example, when UQT or certain UQT styles are not allowed, the signaling notification indicating the use of a style will also be skipped.
[0311] 15. In one example, only the following can be used: Figure 11 The values UQTa-H, UQTb-H, UQTc-V, and UQTd-V are shown. For example, a = c = 2 and b = d = 4.
[0312] a. In one example, when a block can be undivided and at least one of QT, BT-H, BT-V, TT-H, TT-V, UQTa-H, UQTb-H, UQTc-V, and UQTd-V applies to the block, the signaling notification may have a binary number of one or more contexts to indicate whether the block is divided.
[0313] b. In one example, when a block is partitioned, and it can be partitioned by QT, and at least one of BT-H, BT-V, TT-H, TT-V, UQTa-H, UQTb-H, UQTc-V, and UQTd-V is applicable to the block, the signaling notification may have a binary number of one or more contexts to indicate whether the block is partitioned by QT or by another partition.
[0314] c. In one example, when a block is partitioned in a manner other than QT, at least one of BT-H, TT-H, UQTa-H, and UQTb-H applies to the block, and at least one of BT-V, TT-V, UQTc-V, and UQTd-V applies to the block, the signaling notification may have a binary number of one or more contexts to indicate whether the block is partitioned vertically or horizontally.
[0315] d. In one example, a signaling notification may have a binary number of one or more contexts indicating whether a block is partitioned using UQT, when the following conditions are met.
[0316] (a) When the block is partitioned horizontally other than QT, and at least one of BT-H, TT-H is available, and at least one of UQTa-H, UQTb-H is applicable to the block.
[0317] (b) When the block is vertically partitioned except by QT, and at least one of BT-V, TT-V is available, and at least one of UQTc-V, UQTd-V is applicable to the block.
[0318] e. In one example, the signaling notification may have a binary number of one or more contexts to indicate whether the block is divided in the following way:
[0319] (a) UQTa-H or UQTb-H, when the block is partitioned at the UQT level and both UQTa-H and UQTb-H apply to the block.
[0320] (b) UQTc-V or UQTd-V, when the block is vertically divided by UQT and both UQTc-V and UQTd-V apply to the block.
[0321] f. In one example, it is not allowed to further divide one or more sub-blocks of UQTa-H into TT-H. For example, it is not allowed to further divide a sub-block with a height equal to H / 2 into TT-H.
[0322] g. In one example, it is not allowed to further divide one or more sub-blocks of UQTb-H into TT-H. For example, it is not allowed to further divide a sub-block with a height equal to H / 2 into TT-H.
[0323] h. In one example, it is not allowed to further divide one or more sub-blocks of UQTc-V into TT-V. For example, it is not allowed to further divide a sub-block with a width equal to W / 2 into TT-V.
[0324] i. In one example, it is not allowed to further divide one or more sub-blocks of UQTd-V into TT-V. For example, it is not allowed to further divide a sub-block with a width equal to W / 2 into TT-V.
[0325] j. In one example, it is not allowed to further divide one or more sub-blocks of UQTa-H into BT-H.
[0326] k. In one example, it is not allowed to further divide one or more sub-blocks of UQTb-H into BT-H.
[0327] l. In one example, it is not allowed to further divide one or more sub-blocks of UQTc-V into BT-V.
[0328] m. In one example, it is not allowed to further divide one or more sub-blocks of UQTd-V into BT-V.
[0329] n. In one example, it is not allowed to further divide one or more sub-blocks of UQTa-H into UQT-H.
[0330] o. In one example, it is not allowed to further divide one or more sub-blocks of UQTb-H into UQT-H. p. In one example, it is not allowed to further divide one or more sub-blocks of UQTc-V into UQT-V.
[0331] q. In one example, it is not allowed to further divide one or more sub-blocks of UQTd-V into UQT-V.
[0332] r. In one example, further subdivision of UQTa-H into one or more sub-blocks is not allowed.
[0333] s. In one example, further subdivision of one or more sub-blocks of UQTb-H is not allowed.
[0334] t. In one example, further subdivision of one or more sub-blocks of UQTc-V is not allowed.
[0335] u. In one example, further subdivision of UQTd-V into one or more sub-blocks is not allowed.
[0336] v. In one example, it is not allowed to further divide either UQTa-H or UQTb-H.
[0337] w. In one example, further horizontal division of either UQTa-H or UQTb-H is not allowed.
[0338] x. In one example, it is not allowed to further divide UQTc-V and UQTd-V.
[0339] y. In one example, further vertical division of either UQTc-V or UQTd-V is not allowed.
[0340] z. In one example, it is not allowed to further divide one or more sub-blocks of UQTa-H into EQT-H.
[0341] aa. In one example, it is not allowed to further divide one or more sub-blocks of UQTb-H into EQT-H.
[0342] In one example, it is not allowed to further divide one or more sub-blocks of EQTc-V into EQT-H.
[0343] cc. In one example, it is not allowed to further divide one or more sub-blocks of EQTd-V into EQT-H.
[0344] dd. In one example, it is not allowed to further divide one or more sub-blocks of UQTa-H into EQT-V.
[0345] ee. In one example, it is not allowed to further divide one or more sub-blocks of EQTb-H into EQT-V.
[0346] In one example, it is not allowed to further divide one or more sub-blocks of UQTc-V into EQT-V.
[0347] In one example, it is not allowed to further divide one or more sub-blocks of UQTd-V into EQT-V.
[0348] hh. The term “UQT child block” can refer to a block that is separated from a parent block by UQT, or a block that is separated from its parent block or any ancestor block (e.g., the parent block of the parent block) by UQT.
[0349] 16. In one example, only the following can be used: Figure 11 The UQTa-H and UQTc-V are shown. For example, a = 2. In another example, a = c = 4.
[0350] a. In one example, when a block can be unpartitioned and at least one of QT, BT-H, BT-V, TT-H, TT-V, UQTa-H, and UQTc-V is applicable to the block, the signaling notification may have a binary number of one or more contexts to indicate whether the block is partitioned.
[0351] b. In one example, when a block is partitioned, and it can be partitioned by QT, and at least one of BT-H, BT-V, TT-H, TT-V, UQTa-H, and UQTc-V is applicable to the block, the signaling notification may have a binary number of one or more contexts to indicate whether the block is partitioned by QT or by another partition.
[0352] c. In one example, when a block is partitioned in a manner other than QT, at least one of BT-H, TT-H, and UQTa-H applies to the block, and at least one of BT-V, TT-V, and UQTc-V applies to the block, the signaling notification may have a binary number of one or more contexts to indicate whether the block is partitioned vertically or horizontally.
[0353] d. In one example, a signaling notification may have a binary number of one or more contexts indicating whether a block is partitioned using UQT, when the following conditions are met.
[0354] (a) When the block is partitioned horizontally except for QT, and at least one of BT-H, TT-H is available, and UQTa-H applies to the block.
[0355] (b) When the block is vertically partitioned except by QT, and at least one of BT-V, TT-V is available, and UQTc-V is applicable to the block.
[0356] e. In one example, it is not allowed to further divide one or more sub-blocks of UQTa-H into TT-H. For example, it is not allowed to further divide a sub-block with a height equal to H / 2 into TT-H.
[0357] f. In one example, it is not allowed to further divide one or more sub-blocks of UQTc-V into TT-V. For example, it is not allowed to further divide a sub-block with a width equal to W / 2 into TT-V.
[0358] g. In one example, it is not allowed to further divide one or more sub-blocks of UQTa-H into BT-H.
[0359] In one example, it is not allowed to further divide one or more sub-blocks of UQTc-V into BT-V.
[0360] i. In one example, it is not allowed to further divide one or more sub-blocks of UQTa-H into UQT-H.
[0361] j. In one example, it is not allowed to further divide one or more sub-blocks of UQTc-V into UQT-V.
[0362] 17. Indications for classification types (including EQT / BT / UQT) may be signaled after indications for classification or non-classification and / or QT indications.
[0363] a. In one example, a signaling notification flag can be used to indicate whether the block is divided into a first set of UQT and BT or a second set of UQT and EQT, where the UQT styles in the first and second sets are different.
[0364] (a) Alternatively, a flag may be signaled to indicate that a certain UQT or a certain BT has been applied to the block.
[0365] 1. For example, a signaling flag can be used to indicate whether UQT2-V / UQT2-H as defined in Example 1 or BT-V / BT-H is applied on the block.
[0366] (b) Alternatively, a flag may be signaled to indicate that a certain UQT or a certain EQT has been applied to the block.
[0367] 1. For example, a signaling flag can be used to indicate whether UQT4-V / UQT4-H as defined in Example 1 or EQT-V / EQT-H is applied on the block.
[0368] 2. For example, a signaling flag can be used to indicate whether UQT2-V / UQT2-H as defined in Example 1 or EQT-V / EQT-H is applied on the block.
[0369] (c) Alternatively, the division direction can be further signaled (e.g., horizontal or vertical division).
[0370] (d) The above examples can be used for encoding and decoding blocks in I stripes / images.
[0371] b. In one example, a signaling notification flag can be used to indicate whether the block is divided by BT or by a second set of UQT and EQT.
[0372] (a) Alternatively, if the block is not partitioned according to BT, another flag may be signaled to indicate the use of UQT or EQT.
[0373] 1. Alternatively, the division direction can be further signaled (e.g., horizontal or vertical division).
[0374] (b) Alternatively, another flag may be signaled to indicate the division direction (e.g., horizontal or vertical division).
[0375] 1. Alternatively, signaling can be used to further inform the partitioning pattern (e.g., EQT or UQT).
[0376] (c) The above examples can be used for encoding and decoding blocks in P / B strips / pictures.
[0377] c. Alternatively, when the current block is not partitioned or is not partitioned according to QT, the signaling notification for the above flags can be skipped.
[0378] (a) Alternatively, the above flags may be signaled further only if the current block needs to be further partitioned and / or not partitioned according to QT.
[0379] 18. In one example, whether and / or how to apply UQT partitioning to stripes / pictures can depend on the stripe / picture type.
[0380] a. In one example, M types of UQT can be applied to P-strips / P-pictures or B-strips / B-pictures, and N types of UQT can be applied to I-strips / I-pictures.
[0381] (a) In one example, M is less than N. For example, M equals 2 and N equals 4.
[0382] (b) In one example, M equals N, however, the allowed UQTs can be different.
[0383] (c) For example, the UQT2-V / UQT2-H / UQT4-V / UQT4-H defined in Example 1 can be applied to I-strips / I-pictures.
[0384] (d) For example, the UQT2-V / UQT2-H defined in Example 1 can be applied to P-strip / P-picture or B-strip / B-picture.
[0385] 19. The interpretation of the signaling notification representation for UQT partitions can depend on the stripe / picture type.
[0386] a. In one example, the representation of signaling notification for UQT partitions in I-strip / I-picture may differ from the representation of signaling in P-strip / P-picture or B-strip / B-picture.
[0387] b. In one example, Examples 17.a and 18.a.(c) can be applied to I-strips / I-pictures.
[0388] c. In one example, Examples 17.b and 18.a.(d) can be applied to either P-strip / P-picture or B-strip / B-picture.
[0389] 20. In one example, whether and / or how to apply UQT partitioning to stripes / images can depend on the temporal layer of the stripes / images.
[0390] a. In one example, if the time layer is greater than a threshold, such as 2, then UQT is not applied.
[0391] b. In one example, M types of UQT can be applied to images / strips with a temporal layer greater than T, and N types of UQT can be applied to images / strips with a temporal layer less than or equal to T, where M is less than N. For example, T equals 2, M equals 2, and N equals 4.
[0392] 21. In one example, whether and / or how to apply UQT partitioning to a strip / image can depend on whether the strip / image can be referenced by other strips / images.
[0393] a. In one example, if UQT is not the reference image for other stripes / images, it will not be applied to the stripes / images.
[0394] 22. If a UQT is not allowed, such as the case disclosed in Example 17-21, then the indications used for it are not signaled.
[0395] a. In one example, if any kind of UQT is not allowed, such as the case disclosed in Examples 17-21, then the indication for UQT is not signaled.
[0396] 23. The signaling notification segmentation method can depend on the image / strip type.
[0397] a. In one example, the signaling notification indicates whether the UQT flag is applied before the signaling notification indicates whether the BT / EQT flag is applied in an I picture / strip, and the signaling notification indicates whether the UQT flag is applied after the signaling notification indicates whether the BT / EQT flag is applied in a non-I picture / strip (e.g., P / B-picture / strip).
[0398] b. Alternatively, after the signaling notification indicates whether the BT / EQT flag is applied in an I picture / strip, the signaling notification indicates whether the UQT flag is applied, and before the signaling notification indicates whether the BT / EQT flag is applied in a non-I picture / strip (e.g., P / B-picture / strip), the signaling notification indicates whether the UQT flag is applied.
[0399] 24. In one example, a signaling notification flag indicates the segmentation direction for more than one segmentation method, including UQT. For example, the signaling notification flag indicates whether vertical or horizontal segmentation is applied to UQT, EQT, and BT.
[0400] 25. In one example, an arithmetic codec indicating whether UQT is applied (denoted as UQT_flag) can be encoded or decoded using an arithmetic codec with one or more context models.
[0401] a. In one example, the context model selection may depend on the image / strip type (such as I-image or P / B-image).
[0402] b. In one example, if the current image is an I-image, then the context model is used. Otherwise (not an I-image), a context model is selected from several candidate context models.
[0403] c. In one example, the context model selection may depend on the presence of one or more neighboring blocks.
[0404] d. In one example, the context model selection may depend on the size of one or more adjacent blocks.
[0405] e. In the example above, adjacent blocks may include the left adjacent block and / or the top adjacent block.
[0406] f. In one example, the context may depend on the size of the current block.
[0407] 5. Examples
[0408] 5.1 Example of UQT based on AVS-3.0
[0409] UQT partitioning is proposed, in which the parent CU is asymmetrically divided into four CUs. A parent block is divided into four sub-blocks in a ratio of 1:4:2:1 or 1:2:4:1. For example... Figure 17 As shown, there are four partitioning types for UQT. For example... Figure 17 As shown in (A) and 17(B), the parent CU of W×H is divided into two CUs of W×H / 8, one CU of W×H / 4, and one CU of W×H / 2 by the horizontal UQT. Similarly, as Figure 17 As shown in (C) and 17(D), the mother CU of W×H is divided into two CUs of W / 8×H, one CU of W / 4×H and one CU of W / 2×H by a vertical UQT.
[0410] Unlike QT partitioning, which cannot be used after BT and EQT partitioning, UQT partitioning can be used after BT and EQT partitioning. UQT can be applied in this direction if the block length along that direction is 32 to 64. Figure 18 An example is shown in the image.
[0411] Similar to BT and EQT splits, UQT splits are valid after QT / BT / EQT splits, but their sub-blocks are prohibited from being split using QT splits. For B / P slices, horizontal UQT splits can only be applied when the current block height is 64, and vertical UQT splits can only be applied when the current block width is 64. Furthermore, UQT splits in a 1:2:4:1 ratio are only allowed in B / P slices. Additionally, UQT splits are not allowed in B / P frames not referenced by other frames. One bit is used for signaling to indicate whether the splitting mode is UQT. For I slices, in Figure 19 The tree-structured encoding / decoding method is shown in the figure, and... Figure 20 The diagram shows a tree-based encoding / decoding structure for B / P stripes.
[0412] Implementation of UQT based on AVS-3.0 Phase 2
[0413]
[0414]
[0415]
[0416]
[0417]
[0418]
[0419]
[0420]
[0421]
[0422]
[0423] 5.3 Examples of Context Deduction
[0424] The variable ctxIdxInc is defined to indicate the context model of uqt_split_flag.
[0425] Block A represents the left adjacent block with size Wa*Ha.
[0426] Block B represents the upper adjacent block with size Wb*Hb.
[0427] Block E represents the current block with size We*He.
[0428] The deduction of ctxIdxInc is as follows:
[0429] If the current block is an I-picture, ctxIdxInc is set to be equal to 0.
[0430] Otherwise, the deduction of ctxIdxInc is as follows:
[0431] If (block A exists and Ha < He) and (block B exists and Wb < We), then ctxIdxInc is set to be equal to 2.
[0432] Otherwise, if (block A exists and Ha < He) or (block B exists and Wb < We), then ctxIdxInc is set to be equal to 1.
[0433] Then ctxIdxInc is further modified as follows:
[0434] If We*He > 1024, ctxIdxInc remains unchanged;
[0435] Otherwise, if We*He > 256, ctxIdxInc is incremented by 3;
[0436] Otherwise, ctxIdxInc increases by 6.
[0437] Figure 11 This is a block diagram of a video processing device 1100. Device 1100 can be used to implement one or more methods described herein. Device 1100 can be implemented in smartphones, tablets, computers, Internet of Things (IoT) receivers, etc. Device 1100 may include one or more processors 1102, one or more memories 1104, and video processing hardware 1106. The processor(s) 1102 can be configured to implement one or more methods described herein. The memories 1104 can be used to store data and code for implementing the methods and techniques described herein. The video processing hardware 1106 can be used to implement some of the techniques described herein in hardware circuitry.
[0438] Figure 13 This is a flowchart of video processing method 1300. Method 1300 includes dividing a first video block (1305) into four parts, including a first part having size W1×H1, a second part having size W2×H2, a third part having size W3×H3, and a fourth part having size W4Hz, where W1, W2, W3, W4, H1, H2, H3, and H4 are integers, and using these four parts for (1310) further processing of the first video block.
[0439] Figure 14 This is a flowchart of video processing method 1400. Method 1400 includes: determining (1405) features of a first video block, determining (1410) an operation state of an asymmetric quadtree (UQT) based on the determined features, wherein the operation state is enabled or disabled, and further processing (1415) the first video according to the operation state of the UQT.
[0440] Figure 15 This is a flowchart of video processing method 1500. Method 1500 includes determining (1505) features about a first video block, determining (1510) how to segment the first video block based on the determined features, and performing (1515) further processing of the first video block according to how it was segmented.
[0441] Referring to methods 1300, 1400, and 1500, the enhanced codec tree structures used for encoding and some examples of their use are described in Section 4 of this paper.
[0442] Reference methods 1300, 1400, and 1500 can encode video blocks as video bitstreams, where bit efficiency can be achieved by using bitstream generation rules related to the enhanced codec tree structure.
[0443] The method may include a first part having a size different from one or more of the second, third, and fourth parts.
[0444] The method may include a first part having the same dimensions as the second part, a third part having different dimensions from the fourth part, and the third part having different dimensions from the fourth part having different dimensions from the first part and the second part.
[0445] The method may include, where W1, W2, W3, W4, H1, H2, H3, and H4 are powers of 2.
[0446] The method may include, where H1, H2, H3, and H4 are the same.
[0447] The method may include cases where W1, W2, W3, and W4 are identical.
[0448] The method may include a first video block that is part of a second video block segmented using a quadtree (QT), binary tree (BT), ternary tree (TT), or asymmetric quadtree (UQT).
[0449] The method may include, wherein the segmentation is based on UQT, and the maximum or minimum block size of UQT or the maximum depth of UQT is signaled in the Sequence Parameter Set (SPS), View Parameter Set (VPS), Picture Parameter Set (PPS), APS, a sequence header, picture header, strip header, slice group header, slice, codec tree unit (CTU) line or area.
[0450] The method may include, where the segmentation is based on UQT, and the maximum or minimum block size of UQT or the maximum depth of UQT is based on a configuration file, level, or standard hierarchy.
[0451] The method may include, wherein the segmentation is based on UQT, and the maximum or minimum block size of UQT or the maximum depth of UQT is the same as that of QT.
[0452] The method may include, wherein the segmentation is based on UQT, and the first portion is further segmented based on QT, BT, TT or UQT.
[0453] The method may include, wherein the segmentation is based on UQT, and the segmentation depths of the first, second, third, and fourth portions are based on the segmentation depth of the first video block.
[0454] The method may include features including information about how to separate the luminance and chrominance codec trees.
[0455] The method may include features including determining that the luminance and chrominance codec trees are separated and that an operational state is enabled.
[0456] The method may include signaling notification of operational status from the encoder to the decoder.
[0457] The method may include signaling notifications of the operation status in a sequence parameter set (SPS), view parameter set (VPS), picture parameter set (PPS), picture header, strip header, slice group header, or slice header.
[0458] The method may include, in the Sequence Parameter Set (SPS), View Parameter Set (VPS), Picture Parameter Set (PPS), Picture Header, Strip Header, Slice Header, or Slice Header, signaling notification of the type of UQT to be applied.
[0459] The method may include signaling the operation status in the first video block.
[0460] The method may include signaling the type of UQT to be applied in the first video block.
[0461] The method may include an index in which a first video block signaling notification indicates a segmentation type of UQT, QT, or no segmentation.
[0462] The method may include a first video block signaling notification indicating that an index of the segmentation type BT, TT, or UQT is to be performed.
[0463] The method may include receiving a signal indicating a direction related to segmentation; and receiving information indicating a segmentation pattern representing QT, TT, or UQT.
[0464] The method may include features including valid partition types.
[0465] The method may include determining how to segment the first video block, including signaling notification of BT, TT, or UQT having all vertical or all horizontal divisions.
[0466] The method may include, wherein one of BT, TT or UQT is an effective technique for how to segment the first video block, and the effective technique does not use binary code for signaling notification.
[0467] The method may include two or more of BT, TT or UQT as effective techniques for how to segment the first video block, and a flag indicates one of the effective techniques to determine how to segment the first video block.
[0468] The method may include a flag indicating whether UQT is used and a signaling notification indicating whether UQT is used, and inferring that the flag is false.
[0469] The method may include determining how to segment the first video block based on bits of a binary number string encoded and decoded using contextual arithmetic encoding and decoding.
[0470] The method may include a portion of the binary number string being encoded and decoded in context, and the remaining binary number being encoded and decoded in a bypass mode without context.
[0471] The method may include a binary number of a binary number string encoded or decoded in context.
[0472] The method may include encoding and decoding the binary number of the binary number string in bypass mode.
[0473] The method may include, where the context is based on the position or index of a binary number, the segmentation of adjacent blocks, the current segmentation depth of the first video block, the segmentation depth of adjacent blocks, the encoding / decoding mode of adjacent blocks, the width or height of adjacent blocks, the width or height of the first video block, the strip type, the picture type, the slice group type, the color component, or a statistical result of the segmentation type of a previously encoded / decoded video block.
[0474] The method may include, based on determining that the width or height of the first video block satisfies a condition related to the width or height, without disallowing UQT.
[0475] The method may include allowing UQT based on determining that the width or height of the first video block satisfies a condition related to the width or height.
[0476] The method may include a condition based on determining that the depth of the first video block satisfies a depth-related condition, without allowing UQT.
[0477] The method may include a depth of QT depth, BT depth, TT depth, UQT depth, or MTT depth.
[0478] The method may include allowing UQT based on determining that the depth of the first video block satisfies a depth-related condition.
[0479] The method may include a depth of QT depth, BT depth, TT depth, UQT depth, or MTT depth.
[0480] The method may include using one or both of the UQT's operating state or operating characteristics based on the position of the first video block.
[0481] The method may include a state where the operation is disabled based on the location where the first video block intersects with the bottom boundary of an image, slice, or group of slices.
[0482] The method may include a scenario where vertical UQT is disabled based on the location where the first video block intersects with the bottom boundary of an image, slice, or group of slices.
[0483] The method may include a scenario where horizontal UQT is disabled based on the location where the first video block intersects with the bottom boundary of a picture, slice, or group of slices.
[0484] The method may include a scenario where vertical UQT is disabled based on the location where the first video block intersects with the right boundary of a picture, slice, or group of slices.
[0485] The method may include a scenario where horizontal UQT is disabled based on the location where the first video block intersects with the right boundary of a picture, slice, or group of slices.
[0486] Another video processing method for processing video is also disclosed. This method may include determining a segmentation of the first video block based on the width or height of the first video block satisfying one or more conditions related to the width or height; and further processing the first video block based on the determination.
[0487] The method may include one or more conditions associated with the location where the first video block intersects with the bottom boundary of an image, slice, or group of slices.
[0488] The method may include segmenting the first video block based on bits of a binary number string encoded and decoded according to one or more contexts.
[0489] The method may include, wherein when the first block can be non-segmented, and at least one of the segmentation types QT, BT-H, BT-V, TT-H, TT-V, UQTa-H, UQTb-H, UQTc-V, and UQTd-V is applicable to the first video block, one or more contexts indicate whether the first video block is segmented.
[0490] The method may include, wherein when a first block can be partitioned and at least one of the BT-H, BT-V, TT-H, TT-V, UQTa-H, UQTb-H, UQTc-V and UQTd-V partitioning types is applicable to the first video block, one or more contexts indicate whether the first video block is partitioned by QT.
[0491] The method may include, wherein when a first block can be divided and at least one of the BT-H, TT-H, UQTa-H, UQTb-H segmentation types is applicable to the first video block, one or more contexts indicate whether the first video block is divided vertically or horizontally.
[0492] It will be recognized that the disclosed techniques can be implemented in video encoders or decoders to improve compression efficiency using an enhanced codec tree structure.
[0493] The solutions listed below further define the various embodiments listed in the preceding sections, such as items 23 to 25.
[0494] A video processing method includes: a conversion between a video block and a codec representation of the video block; determining a segmentation method for segmenting the video block, wherein the segmentation method is signaled in the codec representation using a signaling notification scheme that depends on a strip or picture including the video block; and performing a conversion based on the determination.
[0495] In the above method, the first flag is included in the code-decode representation indicating whether an asymmetric quadtree partitioning is used, and the second flag is included in the code-decode representation indicating whether a binary tree or an enhanced quadtree is used.
[0496] In the above method, the first flag appears before the second flag in the encoding / decoding representation.
[0497] In the above method, the first flag appears after the second flag in the encoding / decoding representation.
[0498] In the above method, the field signaling in the encoding / decoding representation notifies the segmentation direction.
[0499] In the above method, the conversion includes generating pixels of video blocks from the codec representation.
[0500] In the above method, the conversion includes generating a coded and decoded representation from video blocks.
[0501] Figure 21 This is a flowchart of video processing method 2100. Method 2100 includes: performing (2105) a conversion between a current video block and a bitstream representation of the current video block, wherein the current video block is asymmetrically divided into four segments using an asymmetric quadtree (UQT) partition, wherein the four segments include a first segment having a size of W1×H1, a second segment having a size of W2×H2, a third segment having a size of W3×H3, and a fourth segment having a size of W4×H4, wherein W1, W2, W3, W4, H1, H2, H3, and H4 are integers.
[0502] Figure 22This is a flowchart of video processing method 2200. Method 2200 includes: determining (2205) characteristics of a current video block; determining (2210) an operational state regarding an asymmetric quadtree (UQT) partition based on the determined characteristics, wherein the operational state indicates whether the UQT partition is enabled or disabled and / or indicates how to use the UQT partition to divide the current video block into four segments; and performing (2215) a conversion between the current video block and its bitstream representation based on the operational state of the UQT partition.
[0503] Figure 23 This is a flowchart of video processing method 2300. Method 2300 includes: for the conversion between the current video block and the bitstream representation of the current video block, determining (2305) an asymmetric quadtree (UQT) partitioning method for partitioning the current video block, wherein the partitioning method is selected from the following: UQTa-H partitioning, UQTb-H partitioning, UQTc-V partitioning, and UQTd-V partitioning, wherein a, b, c, and d are selected from 1, 2, 3, or 4, wherein UQTa-H partitioning and UQTb-H partitioning are horizontal UQT partitioning, and UQTc-V partitioning and UQTd-V partitioning are vertical UQT partitioning; and performing (2310) conversion based on the above determination.
[0504] Figure 24 This is a flowchart of video processing method 2400. Method 2400 includes determining (2405) the valid partition type of the current video block; determining (2410) whether or how signaling notification will be used for the partition type of the current video block based on the determination of the valid partition type; and performing (2415) a conversion between the current video block and the bitstream representation of the current video block according to the determination result.
[0505] Figure 25 This is a flowchart of video processing method 2500. Method 2500 includes a conversion between a current video block and a codec representation of the current video block, determining (2505) a partition type for partitioning the current video block, wherein the partition type is signaled in the bitstream representation after signaling notification of partition or non-partition indication and / or quadtree (QT) partition indication; and performing a conversion (2510) based on the determination.
[0506] Figure 26 This is a flowchart of video processing method 2600. Method 2600 includes a conversion between the current video block and its bitstream representation, determining (2605) whether to apply an asymmetric quadtree (UQT) partition based on a stripe or image including the current video block, and if UQT partitioning is applied, the specific UQT type to be used to partition the current video block; and performing a conversion based on the determination (2610).
[0507] Figure 27 This is a flowchart of video processing method 2700. Method 2700 includes a conversion between the current video block and its bitstream representation, determining (2705) an interpretation of the representation of the signaling notification to be used to partition the current video block using stripes or pictures including the current video block; and performing (2710) a conversion based on the determination.
[0508] The following examples are provided in this disclosure.
[0509] 1. A video processing method, further comprising: determining a valid partition type for a current video block; determining, based on the determination of the valid partition type, whether or how to signal the partition type used for the current video block; and performing a conversion between the current video block and the bitstream representation of the current video block according to the determination result.
[0510] 2. The method as described in Example 1, wherein the candidates for the partition type to be signaled include binary tree (BT) partition, ternary tree (TT) partition, or asymmetric quadtree (UQT) partition, and the candidates are either all vertically partitioned or horizontally partitioned depending on information previously signaled or derived during the transition.
[0511] 3. The method as described in Example 2, wherein invalid partition types are not notified to the decoder from the encoder signaling, and wherein there is no codeword representing the invalid partition type.
[0512] 4. The method as described in any of Examples 1-3 further includes: if only one of the partition types, BT partition, TT partition, and UQT partition, is valid, avoiding signaling notifications indicating any binarization code for the partition type used for the current video block.
[0513] 5. The method described in any of Examples 1-3 further includes: if only two partition types among BT partition, TT partition, and UQT partition are valid, a signaling notification indicates a flag indicating which of the two valid partition types was used.
[0514] 6. The method described in any of Examples 1-5, wherein the code indicating the partition type to be used is binarized into a unary truncated code.
[0515] 7. The method described in Example 6, wherein the maximum value of the unary truncation code is N-1, where N is an integer and represents the number of valid partition types.
[0516] 8. The method as described in Example 6, wherein no codeword indicates an invalid partition type, and wherein the invalid partition type is skipped when the codeword table is built.
[0517] 9. The method of any one of Examples 1-8, further comprising: if there is no valid UQT partition, avoiding signaling notification indicating whether a UQT partition is used, and the flag is inferred to be false.
[0518] 10. The method as described in Example 9, wherein the binary codewords used to represent the BT partition and the TT partition are X and Y, respectively, where X represents 0 or 1, Y represents 0 or 1, and Y is different from X.
[0519] 11. The method of any one of Examples 1-8 further comprises: if only one UQT partition is valid and signaling has been given that a UQT partition will be used, avoiding further information in the signaling notification indicating which UQT partition was used.
[0520] 12. The method of any one of Examples 1-8 further comprises: if only two UQT partitions are valid and signaling has been given that a UQT partition will be used, a signaling notification flag is used to indicate which UQT partition was used.
[0521] 13. The method of any one of Examples 1-8 further comprises: if only three UQT partitions are valid and signaling has been given that a UQT partition will be used, then a signaling notification indicates which UQT partition was used.
[0522] 14. The method as described in Example 13, wherein the binary codewords used to represent the three UQT partitions are X, YX and YY, where X represents 0 or 1, Y represents 0 or 1 and Y is different from X.
[0523] 15. The method as described in Example 1, wherein a pre-set binary codeword and / or signaling notification method is used regardless of the valid partition type in the current video block, and wherein invalid partition types are avoided in the consistent bitstream.
[0524] 16. The method as described in Example 2, wherein the partitioning type for the current video block is determined based on the binary number of a binary number string encoded and decoded by arithmetic encoding and decoding.
[0525] 17. The method described in Example 16, wherein a portion of the binary number string is encoded using context encoding and the other binary number is encoded in a bypass mode without context.
[0526] 18. The method described in Example 16, wherein all binary numbers of the binary number are encoded and decoded using context encoding / decoding.
[0527] 19. The method as described in Example 16, wherein all binary numbers of the binary number are encoded and decoded in bypass mode.
[0528] 20. The method described in any of Examples 16-18, wherein one or more contexts are used for binary numbers encoded and decoded using context.
[0529] 21. The method as described in Example 20, wherein the context is based on at least one of the following: the position or index of the binary number, the partitioning of the current video block's neighboring blocks, the current partitioning depth of the current video block, the partitioning depth of the neighboring blocks, the encoding / decoding mode of the neighboring blocks, the width or height of the neighboring blocks, the width or height of the current video block, the strip type, the picture type, the slice group type, the color component, or a statistical result from the partitioning type of the previously encoded / decoded video blocks.
[0530] 22. A video processing method comprising: a conversion between a current video block and a codec representation of the current video block; determining a partitioning type for partitioning the current video block, wherein the partitioning type is signaled in the bitstream representation after signaling notification of an indication to partition or not partition and / or an indication of quadtree (QT) partitioning; and performing the conversion based on the determination.
[0531] 23. The method as described in Example 22, wherein the partitioning type is selected from: extended quadtree (EQT) partitioning, binary tree (BT) partitioning, and asymmetric quadtree (UQT) partitioning.
[0532] 24. The method as described in Example 23, wherein in the UQT partitioning, the current video block is divided into four segments, including: a first segment having a size of W1×H1, a second segment having a size of W2×H2, a third segment having a size of W3×H3, and a fourth segment having a size of W4×H4, wherein W1, W2, W3, W4, H1, H2, H3, and H4 are integers, and H1, H2, H3, and H4 are equal to each other. H1 = H2 = H3 = H4 = H, where H is a power of 2. The partitioning is a vertical partition, where W is a power of 2 when W1 = W / 8, W2 = W / 2, W3 = W / 8, W4 = W / 4, and the partitioning type is named UQT1-V; when W1 = W / 8, W2 = W / 2, W3 = W / 4, W4 = W / 8, the partitioning type is named UQT2-V; when W1 = W / 4, W2 = W / 8, W3 = W / 2, W4 = W / At time 8, the partitioning type is named UQT3-V; and when W1 = W / 8, W2 = W / 4, W3 = W / 2, W4 = W / 8, the partitioning type is named UQT4-V; when W1, W2, W3, and W4 are equal to each other, W1 = W2 = W3 = W4 = W, where W is a power of 2, the partitioning is a horizontal partitioning, and where when H1 = H / 8, H2 = H / 2, H3 = H / 8, H4 = H / 4, H is a power of 2, the partitioning is a horizontal partitioning. The partitioning type is named UQT1-H; when H1 = H / 8, H2 = H / 2, H3 = H / 4, H4 = H / 8, the partitioning type is named UQT2-H; when H1 = H / 4, H2 = H / 8, H3 = H / 2, H4 = H / 8, the partitioning type is named UQT3-H; and when H1 = H / 8, H2 = H / 4, H3 = H / 2, H4 = H / 8, the partitioning type is named UQT4-H.
[0533] 25. The method of any one of Examples 22-24, wherein a first flag is signaled to indicate whether the current video block is partitioned into a first set of UQT and BT partitions or a second set of UQT and EQT partitions, wherein the UQT partition types in the first and second sets are different.
[0534] 26. The method as described in Example 25, wherein if the first flag indicates that the current video block is partitioned with the first set, the second flag is further signaled to indicate whether a specific type of UQT partitioning or a specific type of BT partitioning is applied to the current video block.
[0535] 27. The method as described in Example 26, wherein the second flag is signaled to indicate whether a UQT2-V / UQT2-H partition or a BT-V / BT-H partition has been applied to the current video block.
[0536] 28. The method as described in Example 25, wherein if the first flag indicates that the current video block is partitioned with the second set, the second flag is further signaled to indicate whether a specific type of UQT partitioning or a specific type of EQT partitioning is applied to the current video block.
[0537] 29. The method as described in Example 28, wherein the second flag is signaled to indicate whether a UQT4-V / UQT4-H partition or an EQT-V / EQT-H partition has been applied to the current video block.
[0538] 30. The method as described in Example 28, wherein the second flag is signaled to indicate whether a UQT2-V / UQT2-H partition or an EQT-V / EQT-H partition has been applied to the current video block.
[0539] 31. The method as described in any of Examples 22-30, wherein the division direction is further signaled, the division direction being selected from horizontal division or vertical division.
[0540] 32. The method of any one of Examples 22-31, wherein the method is used to encode and decode video blocks in an I-strip or I-picture.
[0541] 33. The method as described in any of Examples 22-24, wherein a first flag is signaled to indicate whether the current video block is partitioned by BT or by a second set of UQT and EQT partitions.
[0542] 34. The method as described in Example 33, wherein if the first flag indicates that the current video block is not partitioned using BT partitioning, the second flag is further signaled to indicate whether UQT partitioning or EQT partitioning has been applied to the current video block.
[0543] 35. The method as described in Example 34, wherein the division direction is further signaled, the division direction being selected from horizontal division or vertical division.
[0544] 36. The method as described in Example 34, wherein a third flag indicating the division direction is further signaled, the division direction being selected from horizontal or vertical division.
[0545] 37. The method as described in Example 36, wherein the partitioning pattern is further signaled, the partitioning pattern being selected from EQT partitioning and UQT partitioning.
[0546] 38. The method of any one of Examples 33-37, wherein the method is used to encode and decode video blocks in a P-strip / picture or a B-strip / picture.
[0547] 39. The method of any one of Examples 25-38, further comprising, when the current video block is partitioned or not partitioned using QT partitioning, skipping the signaling notification of the flag.
[0548] 40. The method as described in any of Examples 25-38, wherein the flag is further signaled only if the current block needs to be further partitioned and / or not partitioned according to QT partitioning.
[0549] 41. A video processing method, comprising: for a conversion between a current video block and a bitstream representation of the current video block, determining whether to apply an asymmetric quadtree (UQT) partition based on a stripe or image containing the current video block, and if UQT partition is applied, a specific UQT type to be used to partition the current video block; and performing the conversion based on the determination.
[0550] 42. The method as described in Example 41, wherein when the strip or image containing the current video block is a P-strip / P-image or a B-strip / B-image, M types of UQT partitioning are applied; and when the strip or image containing the current video block is an I-strip / I-image, N types of UQT partitioning are applied, where M and N are integers.
[0551] 43. The method described in Example 42, where M is less than N.
[0552] 44. The method described in Example 43, where M equals 2 and N equals 4.
[0553] 45. The method as described in Example 42, wherein M equals N, and the UQT partition to be applied is different for the P-strip / P-image or B-strip / B-image and the I-strip / I-image.
[0554] 46. The method as described in any of Examples 40-44, wherein in the UQT partitioning, the current video block is divided into four segments, including: a first segment having a size of W1×H1, a second segment having a size of W2×H2, a third segment having a size of W3×H3, and a fourth segment having a size of W4×H4, wherein W1, W2, W3, W4, H1, H2, H3, and H4 are integers, and H1, H2, H3, and H4 are equal to each other. H1 = H2 = H3 = H4 = H, where H is a power of 2. The partition is a vertical partition, where W is a power of 2 when W1 = W / 8, W2 = W / 2, W3 = W / 8, and W4 = W / 4. This partition type is named UQT1-V partition. When W1 = W / 8, W2 = W / 2, W3 = W / 4, and W4 = W / 8, the partition type is named UQT2-V partition. When W1 = W / 4, W2 = W / 8, W3 = W / 2, and W4 = W / 8, the partition type is named UQT2-V partition. At time 8, the partitioning type is named UQT3-V partitioning; and when W1 = W / 8, W2 = W / 4, W3 = W / 2, W4 = W / 8, the partitioning type is named UQT4-V partitioning; when W1, W2, W3, and W4 are equal to each other, W1 = W2 = W3 = W4 = W, where W is a power of 2, the partitioning is horizontal partitioning, and where when H1 = H / 8, H2 = H / 2, H3 = H / 8, H4 = H / 4, where H is a power of 2, the partitioning is horizontal partitioning. The partition type is named UQT1-H partition; when H1 = H / 8, H2 = H / 2, H3 = H / 4, H4 = H / 8, the partition type is named UQT2-H partition; when H1 = H / 4, H2 = H / 8, H3 = H / 2, H4 = H / 8, the partition type is named UQT3-H partition; and when H1 = H / 8, H2 = H / 4, H3 = H / 2, H4 = H / 8, the partition type is named UQT4-H partition.
[0555] 47. The method as described in any of Examples 40-46, wherein UQT2-V partitioning, UQT2-H partitioning, UQT4-V partitioning, or UQT4-H partitioning is applied to the I-strip / I-image.
[0556] 48. The method as described in any of Examples 40-46, wherein the UQT2-V partitioning and the UQT2-H partitioning are applied to the P-strip / P-image or the B-strip / B-image.
[0557] 49. A video processing method, comprising: based on a strip or image containing the current video block, determining an interpretation of a signaling notification representation used to partition the current video block for a conversion between the current video block and a bitstream representation of the current video block; and performing the conversion based on the determination.
[0558] 50. The method as described in Example 49, wherein the representation of signaling notification for UQT division in I-strip / I-picture differs from that in P-strip / P-picture or B-strip / B-picture.
[0559] 51. The method as described in Example 49 or 50, wherein in the UQT partitioning, the current video block is divided into four segments, including: a first segment having a size of W1×H1, a second segment having a size of W2×H2, a third segment having a size of W3×H3, and a fourth segment having a size of W4×H4, wherein W1, W2, W3, W4, H1, H2, H3, and H4 are integers, and H1 = when H1, H2, H3, and H4 are equal to each other. H2 = H3 = H4 = H, where H is a power of 2. The partition is a vertical partition. When W1 = W / 8, W2 = W / 2, W3 = W / 8, W4 = W / 4, W is a power of 2, and the partition type is named UQT1-V partition. When W1 = W / 8, W2 = W / 2, W3 = W / 4, W4 = W / 8, the partition type is named UQT2-V partition. When W1 = W / 4, W2 = W / 8, W3 = W / 2, W4 = W / 8, ... The partitioning type is named UQT3-V partitioning; and when W1 = W / 8, W2 = W / 4, W3 = W / 2, W4 = W / 8, the partitioning type is named UQT4-V partitioning; when W1, W2, W3, and W4 are equal to each other, W1 = W2 = W3 = W4 = W, where W is a power of 2, the partitioning is a horizontal partitioning, and where when H1 = H / 8, H2 = H / 2, H3 = H / 8, H4 = H / 4, where H is a power of 2, the partitioning type is... The partition type is named UQT1-H; when H1 = H / 8, H2 = H / 2, H3 = H / 4, H4 = H / 8, the partition type is named UQT2-H; when H1 = H / 4, H2 = H / 8, H3 = H / 2, H4 = H / 8, the partition type is named UQT3-H; and when H1 = H / 8, H2 = H / 4, H3 = H / 2, H4 = H / 8, the partition type is named UQT4-H.
[0560] 52. The method as described in Example 51, wherein for the I-strip / I-picture, a signaling notification flag indicates whether a UQT2-V / UQT2-H partition or a BT-V / BT-H partition has been applied.
[0561] 53. The method as described in Example 51, wherein for the I-strip / I-picture, a signaling notification flag indicates whether a UQT4-V / UQT4-H partition or an EQT-V / EQT-H partition has been applied.
[0562] 54. The method as described in Example 51, wherein for the I-strip / I-picture, a signaling notification flag indicates whether a UQT2-V / UQT2-H partition or an EQT-V / EQT-H partition has been applied.
[0563] 55. The method as described in Example 51, wherein for the I-strip / I-image, a signaling notification flag indicates whether a UQT2-V partition, UQT2-H partition, UQT4-V partition, or UQT4-H partition has been applied.
[0564] 56. The method as described in any of Examples 52-55, wherein the division direction is further signaled, the division direction being selected from horizontal division or vertical division.
[0565] 57. The method as described in Example 51, wherein for the P-strip / P-picture or the B-strip / B-picture, a signaling notification flag indicates whether a BT partition or a second set of UQT and EQT partitions has been applied.
[0566] 58. The method as described in Example 57, wherein if the flag indicates that the current video block is not partitioned using BT partitioning, a second flag is further signaled to indicate whether UQT partitioning or EQT partitioning has been applied to the P-strip / P-picture or the B-strip / B-picture.
[0567] 59. The method as described in Example 57 or 58, wherein the division direction is further signaled, the division direction being selected from horizontal division or vertical division.
[0568] 60. The method as described in Example 57 or 58, wherein a third flag indicating the division direction is further signaled, the division direction being selected from horizontal or vertical division.
[0569] 61. The method as described in Example 60, wherein the partition type is further signaled, the partition type being selected from EQT partition and UQT partition.
[0570] 62. The method as described in Example 51, wherein for the P-strip / P-image or the B-strip / B-image, a signaling notification flag indicates that a UQT2-V partition and a UQT2-H partition will be applied to the P-strip / P-image or the B-strip / B-image.
[0571] 63. The method as described in any of Examples 50-62, wherein it is determined whether and / or how to apply UQT partitioning to the strip / image based on the temporal layer of the strip / image.
[0572] 64. The method as described in Example 63, wherein if the temporal layer of the strip / image is greater than a threshold, it is determined that UQT partitioning should not be applied.
[0573] 65. The method as described in Example 64, wherein the threshold is 2.
[0574] 66. The method described in Example 63, wherein there exist M types of UQT partitions that are allowed to be applied to images / strips with a temporal layer greater than T, and there exist N types of UQT partitions that are allowed to be applied to images / strips with a temporal layer less than or equal to T, where T, M, and N are integers and M is less than N.
[0575] 67. The method described in Example 66, where T equals 2, M equals 2, and N equals 4.
[0576] 68. The method as described in any of Examples 50-62, wherein whether and / or how to apply UQT partitioning to a strip / image is determined based on whether the strip / image can serve as a reference image for other strips / images.
[0577] 69. The method described in Example 68, wherein if a strip / image is not a reference image for other stripes / images, then UQT partitioning is not applied to that strip / image.
[0578] 70. The method described in any of Examples 49-69, wherein if a UQT partition is not allowed, any indication of signaling notification of that type of UQT partition is avoided.
[0579] 71. The method described in Example 70, wherein if no type of UQT partition is permitted, then signaling notifications for any indication of UQT partitioning are avoided.
[0580] 72. The method as described in any of Examples 50-71, wherein how the signaling notification partition type depends on the image / strip type containing the current video block.
[0581] 73. The method as described in Example 72, wherein the UQT flag indicating whether UQT partitioning is applied is signaled before the BT / EQT flag indicating whether BT / EQT partitioning is applied to I-image / strip, and the UQT flag indicating whether UQT partitioning is applied is signaled after the BT / EQT flag indicating whether BT / EQT partitioning is applied to P-image / strip or B-image / strip.
[0582] 74. The method as described in Example 72, wherein a UQT flag indicating whether UQT partitioning is applied is signaled after a BT / EQT flag to indicate whether BT / EQT partitioning is applied to I-pictures / strips, and the UQT flag indicating whether UQT partitioning is applied is signaled before a BT / EQT flag indicating whether BT / EQT partitioning is applied to P-pictures / strips or B-pictures / strips.
[0583] 75. The method as described in any of Examples 50-74, wherein a signaling notification flag is used to indicate the partition direction, which includes more than one partition type of UQT partition.
[0584] 76. The method as described in Example 75, wherein the flag is signaled to indicate whether vertical or horizontal partitioning is applied to UQT partitioning, EQT partitioning, and BT partitioning.
[0585] 77. The method as described in Example 73 or 74, wherein a UQT flag indicating whether the UQT partition is applied is encoded or decoded via an arithmetic codec with a context model.
[0586] 78. The method as described in Example 77, wherein the context model is selected based on the image / strip type, wherein the image / strip type includes I-image / strip and P / B-image / strip.
[0587] 79. The method as described in Example 77, wherein if the current image is an I-image, a context model is used, and if the current image is a P / B-image / strip, the context model is selected from candidate context models.
[0588] 80. The method as described in Example 79, wherein the context model is selected based on the presence or absence of one or more adjacent blocks.
[0589] 81. The method as described in Example 80, wherein the context model is selected based on the size of one or more neighboring blocks.
[0590] 82. The method as described in Example 79 or 80, wherein the one or more adjacent blocks include a left adjacent block and / or an upper adjacent block.
[0591] 83. The method as described in any of Examples 77-80, wherein the context model depends on the size of the current block.
[0592] 84. The method as in Examples 1-83, where W and H represent the width and height of the current video block, respectively.
[0593] 85. The method of any one of Examples 1-84, wherein the transformation comprises generating pixels of the current video block from the bitstream representation.
[0594] 86. The method of any one of Examples 1-84, wherein the transformation includes generating the bitstream representation from the current video block.
[0595] 87. A video decoding device, including a processor configured to implement one or more of the methods described in Examples 1 to 84.
[0596] 88. A video encoding device, including a processor configured to implement one or more of the methods described in Examples 1 to 84.
[0597] 89. A computer program product having computer code stored thereon, said code, when executed by a processor, causing the processor to implement the method as described in any one of Examples 1 to 84.
[0598] The disclosures and other solutions, examples, embodiments, modules, and functional operations described herein can be implemented in digital electronic circuits, or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in combinations thereof. The disclosures and other embodiments can be implemented as one or more computer program products, i.e., one or more computer program instruction modules encoded on a computer-readable medium for execution by or control of the operation of a 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 influencing machine-readable propagation signals, or a combination thereof. The term "data processing apparatus" encompasses 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 execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination thereof. Propagation signals are artificially generated signals, such as machine-generated electrical, optical, or electromagnetic signals, which are generated to encode information for transmission to a suitable receiver device.
[0599] 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 standalone programs or 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 in a portion of a file that stores 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 execute on a single computer or on multiple computers located at a single site or distributed across multiple sites and interconnected via a communication network.
[0600] The processes and logic flows described herein can be executed by one or more programmable processors that execute one or more computer programs to perform functions by manipulating input data and generating outputs. The processes and logic flows 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).
[0601] For example, processors suitable for executing computer programs include general-purpose and special-purpose microprocessors, as well as any one or more processors of any kind of digital computer. Typically, the 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, or be operatively coupled to, one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, to receive data from, transfer data to, or both receive and transfer data from such mass storage devices. However, a computer does not need to have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, 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.
[0602] While this patent document contains numerous details, these details should not be construed as limiting any subject matter or the scope of the claims, but rather as descriptions of features specific to particular embodiments of a particular invention. Certain features described in the context of individual embodiments in this patent document 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 individually or in any suitable sub-combination in multiple embodiments. Furthermore, although the features described above may be described as functioning in certain combinations and even initially claimed in this way, in some cases, one or more features from a claimed combination may be removed from that combination, and the claimed combination may refer to a sub-combination or a variation of a sub-combination.
[0603] Similarly, although operations are depicted in a specific order in the accompanying drawings, this should not be construed as requiring such operations to be performed in the specific order shown or sequentially, or to perform all the 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.
[0604] This document describes only a few implementation methods and examples. Other implementation methods, enhancements and variations can be made based on the content described and shown in this patent document.
Claims
1. A method of video processing, further comprising: determining, for a current video block, valid partition types; based on the determination of the valid partition types, determining whether or how to signal a partition type for the current video block; and performing a conversion between the current video block and a bitstream representation of the current video block according to a result of the determination, wherein a first flag is signaled to indicate whether the current video block is partitioned with a first set of UQT partition and BT partition or a second set of UQT partition and EQT partition, wherein the UQT partition types in the first and second sets are different, wherein if the first flag indicates that the current video block is partitioned with the first set, a second flag is further signaled to indicate whether a particular kind of UQT partition or a particular kind of BT partition is applied to the current video block, wherein a partition direction is further signaled, the partition direction being selected from a horizontal partition or a vertical partition.
2. The method of claim 1, wherein the candidates of the partition types to be signaled include a binary tree (BT) partition, a ternary tree (TT) partition, or an asymmetric quad tree (UQT) partition, and the candidates are all partitioned vertically or horizontally depending on previously signaled information or information derived during the conversion.
3. The method of claim 2, wherein an invalid partition type is not signaled from an encoder to a decoder, and wherein there is no codeword representing the invalid partition type.
4. The method of claim 1, further comprising: if only one partition type is valid among BT partition, TT partition, and UQT partition, signaling of any binarization indicating the partition type for the current video block is suppressed.
5. The method of claim 1, further comprising: if only two partition types are valid among BT partition, TT partition, and UQT partition, a flag is signaled indicating which one of the two valid partition types is used.
6. The method of claim 1, wherein the code indicating the partition type to be used is binarized into a unary truncated code.
7. The method of claim 6, wherein the maximum value of the unary truncated code is N-1, where N is an integer and represents the number of valid partition types.
8. The method of claim 6, wherein there is no codeword representing an invalid partition type, and wherein the invalid partition type is skipped when building a codeword table.
9. The method of claim 1, further comprising: if there is no valid UQT partition, a flag indicating whether UQT partition is used is avoided from being signaled, and the flag is inferred to be false.
10. The method of claim 9, wherein the binarized codewords for representing BT partition and TT partition are X and Y, respectively, where X represents 0 or 1, Y represents 0 or 1 and Y is different from X.
11. The method of claim 1, further comprising: if only one UQT partition is valid and it has been signaled that UQT partition is to be used, further information indicating which UQT partition is used is avoided from being signaled.
12. The method of claim 1, further comprising: if only two UQT partitions are valid and it has been signaled that UQT partition is to be used, a flag is signaled to indicate which UQT partition is used.
13. The method of claim 1, further comprising: If only three UQT partitions are valid and it has been signaled that a UQT partition will be used, a message is signaled indicating which UQT partition is used.
14. The method of claim 13, wherein the code words used to represent the binarization of the three UQT partitions are X, YX and YY, respectively, where X represents 0 or 1, Y represents 0 or 1 and Y is different from X.
15. The method of claim 1, wherein a pre-set binarized code word and / or signaling method is used regardless of the valid partition type in the current video block, and wherein selecting an invalid partition type in a consistent bitstream is avoided.
16. The method of claim 2, wherein the partition type for the current video block is determined based on the bins of a bin string coded by arithmetic coding.
17. The method of claim 16, wherein some bins of the bin string are coded using context coding and other bins are coded in bypass mode without context.
18. The method of claim 16, wherein all bins of the bin string are coded using context.
19. The method of claim 16, wherein all bins of the bin string are coded in bypass mode.
20. The method of any of claims 16-18, wherein one or more contexts are used for the bins coded using context.
21. The method of claim 20, wherein the context is based on at least one of: the position or index of the bin, the partition of a neighboring block of the current video block, the current partition depth of the current video block, the partition depth of a neighboring block, the coding mode of a neighboring block, the width or height of a neighboring block, the width or height of the current video block, the slice type, the picture type, the slice group type, the color component, or a statistic result from the partition type of a previously coded video block.
22. The method of claim 1, further comprising: For the conversion, a partition type for partitioning the current video block is determined, wherein the partition type is signaled in the bitstream representation after signaling an indication of partitioning or no partitioning and / or an indication of quad-tree (QT) partitioning.
23. The method of claim 22, wherein the partition type is selected from: extended quad-tree (EQT) partitioning, binary tree (BT) partitioning and asymmetric quad-tree (UQT) partitioning.
24. The method of claim 23, wherein in the UQT partitioning, wherein the current video block is partitioned into four partitions, comprises: a first partition having a size of W1 x H1, a second partition having a size of W2 x H2, a third partition having a size of W3 x H3, and a fourth partition having a size of W4 x H4, wherein W1, W2, W3, W4, H1, H2, H3 and H4 are integers, When H1, H2, H3 and H4 are equal to each other, H1=H2=H3=H4=H, H is a power of 2, the partition is a vertical partition, wherein when W1=W / 8, W2=W / 2, W3=W / 8, W4=W / 4, W is a power of 2, the partition type is named as UQT1-V; when W1=W / 8, W2=W / 2, W3=W / 4, W4=W / 8, the partition type is named as UQT2-V; when W1=W / 4, W2=W / 8, W3=W / 2, W4=W / 8, the partition type is named as UQT3-V; and when W1=W / 8, W2=W / 4, W3=W / 2, W4=W / 8, the partition type is named as UQT4-V; When W1, W2, W3 and W4 are equal to each other, W1=W2=W3=W4=W, W is a power of 2, the partition is a horizontal partition, and wherein when H1=H / 8, H2=H / 2, H3=H / 8, H4=H / 4, H is a power of 2, the partition type is named as UQT1-H; when H1=H / 8, H2=H / 2, H3=H / 4, H4=H / 8, the partition type is named as UQT2-H; when H1=H / 4, H2=H / 8, H3=H / 2, H4=H / 8, the partition type is named as UQT3-H; and when H1=H / 8, H2=H / 4, H3=H / 2, H4=H / 8, the partition type is named as UQT4-H.
25. The method of claim 1, wherein the second flag is signaled to indicate whether a UQT2-V / UQT2-H partition or a BT-V / BT-H partition is applied to the current video block.
26. The method of claim 1, wherein if the first flag indicates that the current video block is partitioned with the second set of partitions, a second flag is further signaled to indicate whether a particular kind of UQT partition or a particular kind of EQT partition is applied to the current video block.
27. The method of claim 26, wherein the second flag is signaled to indicate whether a UQT4-V / UQT4-H partition or an EQT-V / EQT-H partition is applied to the current video block.
28. The method of claim 26, wherein the second flag is signaled to indicate whether a UQT2-V / UQT2-H partition or an EQT-V / EQT-H partition is applied to the current video block.
29. The method of any of claims 22-24, wherein the method is used to code video blocks in an I slice or an I picture.
30. The method of any of claims 22-24, wherein a fourth flag is signaled to indicate whether the current video block is partitioned with a BT partition or a second set of UQT partitions and EQT partitions.
31. The method of claim 30, wherein if the fourth flag indicates that the current video block is not partitioned with BT partitioning, a fifth flag is further signaled to indicate whether UQT partitioning or EQT partitioning is applied to the current video block.
32. The method of claim 31, wherein a third flag indicating a partition direction is further signaled, the partition direction being selected from horizontal partitioning or vertical partitioning.
33. The method of claim 32, wherein a partition pattern is further signaled, the partition pattern being selected from EQT partitioning and UQT partitioning.
34. The method of claim 30, wherein the method is used to code video blocks in P slices / pictures or B slices / pictures.
35. The method of claim 1, further comprising skipping signaling of the flag when the current video block is partitioned with QT partitioning or not partitioned.
36. The method of claim 1, wherein the flag is further signaled only when the current block needs to be further partitioned according to QT partitioning and / or not partitioned.
37. The method of claim 1, further comprising: for the conversion, determining whether to apply an asymmetric quadtree (UQT) partitioning based on a slice or a picture containing the current video block, and if UQT partitioning is applied, a specific UQT type to be used to partition the current video block.
38. The method of claim 37, wherein M kinds of UQT partitioning are applied when the slice or picture containing the current video block is a P-slice / P-picture or a B-slice / B-picture; and N kinds of UQT partitioning are applied when the slice or picture containing the current video block is an I-slice / I-picture, where M and N are integers.
39. The method of claim 38, wherein M is less than N.
40. The method of claim 39, wherein M is equal to 2 and N is equal to 4.
41. The method of claim 38, wherein M is equal to N, and the UQT partitioning to be applied is not the same for the P-slice / P-picture or B-slice / B-picture and the I-slice / I-picture.
42. The method of any of claims 37-40, wherein in UQT partitioning, wherein the current video block is partitioned into four partitions, comprises: a first partition having a size of W1xH1, a second partition having a size of W2xH2, a third partition having a size of W3xH3, and a fourth partition having a size of W4xH4, where W1, W2, W3, W4, H1, H2, H3, and H4 are integers, When H1, H2, H3 and H4 are equal to each other, H1= H2=H3=H4=H, H being a power of 2, the partition is a vertical partition, and wherein the partition type is named UQT1-V partition when W1=W / 8, W2=W / 2, W3=W / 8, W4=W / 4, W being a power of 2, the partition type is named UQT2-V partition when W1=W / 8, W2=W / 2, W3=W / 4, W4=W / 8, the partition type is named UQT3-V partition when W1=W / 4, W2=W / 8, W3=W / 2, W4=W / 8, and the partition type is named UQT4-V partition when W1=W / 8, W2=W / 4, W3=W / 2, W4=W / 8. When W1, W2, W3 and W4 are equal to each other, W1=W2=W3=W4=W, W being a power of 2, the partition is a horizontal partition, and wherein the partition type is named UQT1-H partition when H1=H / 8, H2=H / 2, H3=H / 8, H4=H / 4, H being a power of 2, the partition type is named UQT2-H partition when H1=H / 8, H2=H / 2, H3=H / 4, H4=H / 8, the partition type is named UQT3-H partition when H1=H / 4, H2=H / 8, H3=H / 2, H4=H / 8, and the partition type is named UQT4-H partition when H1=H / 8, H2=H / 4, H3=H / 2, H4=H / 8.
43. The method of any of claims 38-41, wherein UQT2-V partition, UQT2-H partition, UQT4-V partition, or UQT4-H partition is applied to the I-slices / I-pictures.
44. The method of any of claims 38-41, wherein UQT2-V partition and UQT2-H partition are applied to the P-slices / P-pictures or the B-slices / B-pictures.
45. The method of claim 1, further comprising: determining, based on a slice or picture containing the current video block, an interpretation of a signaled representation of an asymmetric quadtree (UQT) partition to be used for partitioning the current video block for the transform.
46. The method of claim 45, wherein the signaled representation of the UQT partition is different in I-slices / I-pictures than in P-slices / P-pictures or B-slices / B-pictures.
47. The method of claim 46, wherein in UQT partitioning, the current video block is partitioned into four partitions, comprising: a first partition having a size of W1xH1, a second partition having a size of W2xH2, a third partition having a size of W3xH3, and a fourth partition having a size of W4xH4, wherein W1, W2, W3, W4, H1, H2, H3 and H4 are integers, When H1, H2, H3 and H4 are equal to each other, H1= H2=H3=H4=H, H is a power of 2, the partition is a vertical partition, and wherein the partition type is named as UQT1-V partition when W1=W / 8, W2=W / 2, W3=W / 8, W4=W / 4, W is a power of 2; the partition type is named as UQT2-V partition when W1=W / 8, W2=W / 2, W3=W / 4, W4=W / 8; the partition type is named as UQT3-V partition when W1=W / 4, W2=W / 8, W3=W / 2, W4=W / 8; and the partition type is named as UQT4-V partition when W1=W / 8, W2=W / 4, W3=W / 2, W4=W / 8. When W1, W2, W3 and W4 are equal to each other, W1=W2=W3=W4=W, W is a power of 2, the partition is a horizontal partition, and wherein the partition type is named as UQT1-H partition when H1=H / 8, H2=H / 2, H3=H / 8, H4=H / 4, H is a power of 2; the partition type is named as UQT2-H partition when H1=H / 8, H2=H / 2, H3=H / 4, H4=H / 8; the partition type is named as UQT3-H partition when H1=H / 4, H2=H / 8, H3=H / 2, H4=H / 8; and the partition type is named as UQT4-H partition when H1=H / 8, H2=H / 4, H3=H / 2, H4=H / 8.
48. The method of claim 47, wherein for the I-slice / I-picture, a flag is signaled to indicate whether to apply UQT2-V / UQT2-H partition or BT-V / BT-H partition.
49. The method of claim 47, wherein for the I-slice / I-picture, a flag is signaled to indicate whether to apply UQT4-V / UQT4-H partition or EQT-V / EQT-H partition.
50. The method of claim 47, wherein for the I-slice / I-picture, a flag is signaled to indicate whether to apply UQT2-V / UQT2-H partition or EQT-V / EQT-H partition.
51. The method of claim 47, wherein for the I-slice / I-picture, a flag is signaled to indicate whether to apply UQT2-V partition, UQT2-H partition, UQT4-V partition, or UQT4-H partition.
52. The method of claim 47, wherein for the P-slice / P-picture or the B-slice / B-picture, a flag is signaled to indicate whether to apply BT partition or a second set of UQT partition and EQT partition.
53. The method of claim 52, wherein if the flag indicates that the current video block is not partitioned with BT partitioning, a second flag is further signaled to indicate whether UQT partitioning or EQT partitioning is applied to the P-slice / P-picture or the B-slice / B-picture.
54. The method of claim 52, wherein a third flag is further signaled to indicate a partitioning direction, the partitioning direction being selected from horizontal partitioning or vertical partitioning.
55. The method of claim 54, wherein a partitioning type is further signaled, the partitioning type being selected from EQT partitioning and UQT partitioning.
56. The method of claim 47, wherein for the P-slice / P-picture or the B-slice / B- picture, a flag is signaled to indicate that UQT2-V partitioning and UQT2-H partitioning are to be applied on the P-slice / P-picture or the B-slice / B-picture.
57. The method of claim 46, wherein whether and / or how to apply UQT partitioning to a slice / picture is determined based on a temporal layer of the slice / picture.
58. The method of claim 57, wherein if the temporal layer of the slice / picture is greater than a threshold, it is determined that UQT partitioning is not to be applied.
59. The method of claim 58, wherein the threshold is 2.
60. The method of claim 57, wherein there are M kinds of UQT partitioning allowed to be applied to pictures / slices with temporal layer greater than T, and there are N kinds of UQT partitioning allowed to be applied to pictures / slices with temporal layer less than or equal to T, where T, M and N are integers and M is less than N.
61. The method of claim 60, wherein T is equal to 2, M is equal to 2, and N is equal to 4.
62. The method of claim 46, wherein whether and / or how to apply UQT partitioning to a slice / picture is determined based on whether the slice / picture can be a reference picture for other slices / pictures.
63. The method of claim 62, wherein if a slice / picture is not a reference picture for other slices / pictures, UQT partitioning is not applied to the slice / picture.
64. The method of claim 45 or 46, wherein if a kind of UQT partitioning is not allowed, any indication of that kind of UQT partitioning is avoided from being signaled.
65. The method of claim 64, wherein if no kind of UQT partitioning is allowed, any indication of UQT partitioning is avoided from being signaled.
66. The method of claim 46, wherein how to signal a partitioning type depends on a picture / slice type containing the current video block.
67. The method of claim 66, wherein a UQT flag indicating whether UQT partitioning is applied is signaled before a BT / EQT flag indicating whether BT / EQT partitioning is applied for an I picture / slice, and the UQT flag indicating whether UQT partitioning is applied is signaled after a BT / EQT flag indicating whether BT / EQT partitioning is applied for a P picture / slice or a B-picture / slice.
68. The method of claim 66, wherein a UQT flag indicating whether UQT partitioning is applied is signaled after a BT / EQT flag indicating whether BT / EQT partitioning is applied for an I picture / slice, and the UQT flag indicating whether UQT partitioning is applied is signaled before a BT / EQT flag indicating whether BT / EQT partitioning is applied for a P picture / slice or a B-picture / slice.
69. The method of claim 46, wherein a flag is signaled to indicate the partition direction including more than one partition type of UQT partitioning.
70. The method of claim 69, wherein the flag is signaled to indicate whether vertical partitioning or horizontal partitioning is applied for UQT partitioning, EQT partitioning and BT partitioning.
71. The method of claim 67, wherein a UQT flag indicating whether the UQT partitioning is applied is coded by arithmetic coding with a context model.
72. The method of claim 71, wherein the context model is selected based on the picture / slice type, wherein the picture / slice type includes I picture / slice and P / B-picture / slice.
73. The method of claim 71, wherein one context model is used if the current picture is an I picture, and the context model is selected from candidate context models if the current picture is a P / B-picture / slice.
74. The method of claim 73, wherein the context model is selected based on whether one or more neighboring blocks exist.
75. The method of claim 74, wherein the context model is selected based on the size of one or more neighboring blocks.
76. The method of claim 74, wherein the one or more neighboring blocks include a left neighboring block and / or an above neighboring block.
77. The method of claim 71, wherein the context model depends on the size of the current block.
78. The method of any of claims 1-19, wherein W and H represent the width and height of the current video block, respectively.
79. The method of any of claims 1-19, wherein the conversion comprises generating pixels of the current video block from the bitstream representation.
80. The method of any of claims 1-19, wherein the conversion comprises generating the bitstream representation from the current video block.
81. A video decoding device comprising a processor configured to implement a method recited by any of claims 1 to 79.
82. A video encoding apparatus comprising a processor configured to implement a method recited in any of claims 1 to 78, 80.
83. A computer program product having computer code stored thereon, the code, when executed by a processor, causing the processor to implement a method recited in any of claims 1 to 80.
Citation Information
Patent Citations
Non-square transform units and prediction units in video coding
CN103797801A
Method of processing video signal and device for same
US20180139453A1
Systems and methods for partitioning a picture into video blocks for video coding
WO2018142903A1