Video decoding method and video decoder

The video decoding method addresses the challenge of further video compression by aligning quantization parameters with coding units, enhancing decoding efficiency and accuracy through precise QP division and reconstruction.

JP2026002862AActive Publication Date: 2026-01-08HUAWEI TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2025158354
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2018-09-21
Filing Date
2025-09-24
Publication Date
2026-01-08
Estimated Expiration
2039-08-28

AI Technical Summary

Technical Problem

Existing video coding standards struggle to achieve further compression of video data without sacrificing picture quality, particularly in high-efficiency video coding (HEVC) and its extensions.

Method used

A video decoding method that analyzes coding tree partition information to determine the area covered by a current quantization group based on the depth of a current node, using thresholds and partitioning modes to ensure consistent quantization parameter (QP) alignment with coding units (CUs), thereby improving decoding efficiency and accuracy.

Benefits of technology

The method enhances decoding efficiency and quality by accurately determining QP coverage ranges, leading to improved decoding speed and accuracy through precise QP division and reconstruction of video data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026002862000001_ABST
    Figure 2026002862000001_ABST
Patent Text Reader

Abstract

To provide a video decoding method and a video decoder for improving decoding efficiency.SOLUTION: The present invention discloses a video decoding method and a video decoder. The method includes parsing coding tree split information to obtain a current node, determining, based on a depth N of the current node, a region covered by a current quantization group, obtaining a quantization parameter QP delta of a current coding unit CU in the region covered by the current quantization group, and obtaining a reconstructed picture of the current CU based on the QP delta of the current CU. By using the present invention, decoding efficiency can be improved.SELECTED DRAWING: Figure 9
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This application claims priority to Chinese Patent Application No. 201811032693.7, entitled "VIDEO DECODING METHOD AND VIDEO DECODER," filed with the State Intellectual Property Office of the People's Republic of China on September 5, 2018, and Chinese Patent Application No. 201811104788.5, entitled "VIDEO DECODING METHOD AND VIDEO DECODER," filed with the State Intellectual Property Office of the People's Republic of China on September 21, 2018, which applications are incorporated herein by reference in their entireties.

[0002] TECHNICAL FIELD Embodiments of the present application generally relate to the field of video coding, and more particularly to video decoding methods and video decoders. [Background technology]

[0003] Video coding (encoding and decoding of video) is used in a wide range of digital video applications, such as broadcast digital television, video transmission over the Internet and mobile networks, real-time conversation applications such as video chat and video conferencing, DVD and Blu-ray discs, video content collection and editing systems, and security applications in camcorders.

[0004] With the development of the block-based hybrid video coding approach in the H.261 standard in 1990, new video coding techniques and tools were developed, forming the basis for new video coding standards. Additional video coding standards include MPEG-1 video, MPEG-2 video, ITU-T H.262 / MPEG-2, ITU-T H.263, ITU-T H.264 / MPEG-4 Part 10: Advanced Video Coding (AVC), ITU-T H.265 / High Efficiency Video Coding (HEVC), and extensions to these standards, such as scalability and / or three-dimensional (3D) extensions. As video production and consumption become more ubiquitous, video traffic is becoming the largest burden on communication networks and data storage. Therefore, one of the goals of most video coding standards is to achieve a reduction in bit rate compared to previous standards without sacrificing picture quality. The latest High Efficiency video coding (HEVC) can compress video approximately twice as fast as AVC without sacrificing picture quality, but new technologies that can compress video even further than HEVC are highly desirable. Summary of the Invention [Means for solving the problem]

[0005] SUMMARY OF THE INVENTION The embodiments of the present application provide a video decoding method and a video decoder for improving decoding efficiency.

[0006] These and other objects are achieved by the subject matter of the independent claims. Further implementations are evident from the dependent claims, the description and the accompanying drawings.

[0007] According to a first aspect, the present invention relates to a video decoding method, the method being executed by a video decoder, including: analyzing coding tree partition information to obtain a current node; determining an area covered by a current quantization group based on a depth N of the current node; obtaining a QP difference value of a current CU in the area covered by the current quantization group; and obtaining a reconstructed picture of the current CU based on the QP difference value of the current CU.

[0008] It can be seen that according to the video decoding method provided in the present invention, the area covered by the current quantization group can be determined based on the depth N of the current node, thereby ensuring that the QP can be consistent with the CU, thereby avoiding one CU corresponding to two different QGs, and improving decoding efficiency.

[0009] According to the first aspect, in one possible implementation of the method, the depth N of the current node is the quadtree depth N of the current node. Determining the area covered by the current quantization group based on the depth N of the current node includes determining the area covered by the current quantization group based on the depth N of the current node or determining the area covered by the current quantization group based on the multitype depth M of the current node. If N is greater than a first threshold T1 or M is greater than 0, the area covered by the current quantization group is the area covered by the K-th layer quadtree node of the current node, where K is the smaller value of N and T1, and the K-th layer quadtree node is the quadtree node that includes the current node and is generated after K quadtree divisions starting from the coding tree unit CTU.

[0010] The Kth layer quadtree node is the (M+NK)th layer parent node of the current node.

[0011] It can be seen that the QP coverage range is determined based on the CU, which can make the QP division more accurate and improve the decoding quality.

[0012] According to the first aspect, in one possible implementation of the method, the depth N of the current node is the quadtree depth N of the current node. Determining the area covered by the current quantization group based on the depth N of the current node includes determining the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. If N is less than or equal to a first threshold T1 and M is equal to 0, the area covered by the current quantization group is the area covered by the current node.

[0013] It can be seen that the QP coverage range is determined based on the CU, which can make the QP division more accurate and improve the decoding quality.

[0014] According to the first aspect, in one possible implementation of the method, the depth N of the current node is the quadtree depth N of the current node. Determining the area covered by the current quantization group based on the depth N of the current node includes determining the area covered by the current quantization group based on the quadtree depth N of the current node, or determining the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. When N is equal to a first threshold T1 and M is equal to 0, the area covered by the current quantization group is the area covered by the current node. Alternatively, when N is less than the first threshold T1, the area covered by the current quantization group is the area covered by the current node.

[0015] It can be seen that the QP coverage range is determined based on the CU, which can make the QP division more accurate and improve the decoding quality.

[0016] According to the first aspect, in one possible implementation of the method, the depth N of the current node is the quadtree depth N of the current node. Determining the area covered by the current quantization group based on the depth N of the current node includes determining the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. If N is equal to the first threshold T1 and M is equal to 0, the area covered by the current quantization group is the area covered by the current node. Alternatively, if N is less than the first threshold T1 and M is equal to or less than the fourth threshold T4, the area covered by the current quantization group is the area covered by the current node.

[0017] According to the first aspect, in one possible implementation of the method, the fourth threshold T4 may be a preset positive integer, for example 1, 2, 3, or 4.

[0018] According to the first aspect, in one possible implementation of the method, the fourth threshold may be determined based on the first threshold T1 and the quadtree depth N of the current node, for example, T4=T1-N.

[0019] It can be seen that the QP coverage range is determined based on the CU, which can make the QP division more accurate and improve the decoding quality.

[0020] According to the first aspect, in one possible implementation of the method, the depth N of the current node is the quadtree depth N of the current node. Determining the area covered by the current quantization group based on the depth N of the current node includes determining the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. If N is less than or equal to a first threshold T1 and M is less than or equal to T1-N, the area covered by the current quantization group is the area covered by the current node.

[0021] It can be seen that the QP coverage range is determined based on the CU, which can make the QP division more accurate and improve the decoding quality.

[0022] According to a first aspect, in one possible implementation of the method, determining the area covered by the current quantization group based on the depth N of the current node includes, when the depth N of the current node is greater than a first threshold T1, obtaining a parent node of the (N-T1)th layer of the current node, and determining that the area covered by the current quantization group is the area covered by the parent node of the (N-T1)th layer.

[0023] It can be seen that the QP coverage range is determined based on the CU, which can make the QP division more accurate and improve the decoding quality.

[0024] According to the first aspect, in one possible implementation of the method, determining the area covered by the current quantization group based on the depth N of the current node includes determining that the area covered by the current quantization group is the area covered by the current node when the depth N of the current node is equal to a first threshold T1.

[0025] It can be seen that the depth N of the current node is directly compared with the first threshold T1, thereby determining the area covered by the current quantization group, thus improving the decoding speed.

[0026] According to the first aspect, in one possible implementation of the method, the depth of the current node is the QT depth of the current node, or the depth of the current node is the sum of the QT depth of the current node and the MTT depth of the current node.

[0027] It can be seen that by using different depth determination schemes, a balance can be struck between decoding speed and decoding quality, which can improve the final decoding efficiency.

[0028] According to the first aspect, in one possible implementation of the method, the first threshold T1 is 0, 1, 2 or 3.

[0029] According to the first aspect, in one possible implementation of the method, the method further includes obtaining a partitioning mode of the current node. Determining the area covered by the current quantization group based on the depth N of the current node includes: determining that the area covered by the current quantization group is the area covered by the current node when the depth N of the current node is equal to a second threshold T2-1 and the partitioning mode of the current node is a ternary partitioning mode; determining that the area covered by the current quantization group is the area covered by the current node when the depth N of the current node is equal to the second threshold T2 and the partitioning mode of the current node is a binary partitioning mode or a quadtree partitioning mode; or determining that the area covered by the current quantization group is the area covered by the current node when the depth N of the current node is equal to or less than the second threshold and the current node is no longer partitioned.

[0030] It can be seen that for different cases, different schemes are used to determine the area covered by the current quantization group, which can improve the QG partitioning accuracy, thereby improving the decoding accuracy.

[0031] According to the first aspect, in one possible implementation of the method, the second threshold is 2, 3, 4, 6, 8 or 9.

[0032] According to the first aspect, in one possible implementation of the method, the second threshold may be set to X times the first threshold, where X is an integer greater than 1. For example, X is 2, 3, or 4.

[0033] According to the first aspect, in one possible implementation of the method, the method further includes obtaining a partitioning mode of the current node. Determining the area covered by the current quantization group based on the depth N of the current node includes: determining that the area covered by the current quantization group is the area covered by the current node when the depth N of the current node is equal to a third threshold T3-1 and the partitioning mode of the current node is a ternary partitioning mode or a quadtree partitioning mode; determining that the area covered by the current quantization group is the area covered by the current node when the depth N of the current node is equal to the third threshold T3 and the partitioning mode of the current node is a binary partitioning mode; or determining that the area covered by the current quantization group is the area covered by the current node when the depth N of the current node is equal to the third threshold T3 and the current node is no longer partitioned.

[0034] It can be seen that for different cases, different methods are used to determine the area covered by the current quantization group, which can improve the QG division accuracy and thereby improve the decoding accuracy.

[0035] According to the first aspect, in one possible implementation of the method, the third threshold is 3 or 5.

[0036] According to the first aspect, in one possible implementation of the method, the depth N of the current node is determined based on the QT depth of the current node and the dual depth Db of the current node.

[0037] According to the first aspect, in one possible implementation of the method, the depth N of the current node is determined by using the formula N=Dq*2+Db, where Dq is the QT depth of the current node.

[0038] According to the first aspect, in one possible implementation form of the method, if the current node is an MTT root node, the dual depth Db of the current node is 0; or if the current node is an MTT node, but not an MTT root node, and the current node is a child node obtained in dual split mode, the dual depth Db of the current node is the dual depth of the current node's direct parent node + 1; or if the current node is an MTT node, but not an MTT root node, and the current node is an intermediate child node obtained in ternary split mode, the dual depth Db of the current node is the dual depth of the current node's direct parent node + 1; or if the current node is an MTT node, but not an MTT root node, and the current node is a non-intermediate child node obtained in ternary split mode, the dual depth Db of the current node is the dual depth of the current node's direct parent node + 2.

[0039] It can be seen that for different cases, different schemes are used to determine the depth, which can improve the QG segmentation accuracy, thereby improving the decoding accuracy.

[0040] According to a first aspect, in one possible implementation of the method, if the QP difference value of the first CU having a residual in the current quantization group is not equal to 0, the luma QP of all CUs in the coding sequence preceding the first CU having a residual in the current quantization group is modified to the luma QP of the first CU having a residual.

[0041] When the current CU is a CU before the first CU that has a residual in the current quantization group, obtaining a reconstructed picture of the current CU based on the QP difference value of the current CU specifically includes: Obtaining a reconstructed picture of the current CU based on the luma QP of the first CU with the residual.

[0042] According to a second aspect, the present invention relates to a video decoder, comprising: an entropy decoding unit configured to analyze coding tree partition information to obtain a current node, determine an area covered by a current quantization group based on a depth N of the current node, obtain a QP difference value of the current CU in the area covered by the current quantization group, and determine a luma QP of the current CU based on the QP difference value of the current CU, an inverse quantization unit configured to obtain dequantized coefficients of the current CU based on the luma QP of the current CU, an inverse transform processing unit configured to obtain a reconstructed residual block of the current CU based on the dequantized coefficients of the current CU, and a reconstruction unit configured to obtain a reconstructed picture of the current CU based on the reconstructed residual block of the current CU.

[0043] According to a second aspect, in one possible implementation of the video decoder, the depth N of the current node is the quadtree depth N of the current node. The entropy decoding unit is particularly configured to determine the area covered by the current quantization group based on the depth N of the current node, or to determine the area covered by the current quantization group based on the multi-type depth M of the current node. If N is greater than a first threshold T1 or M is greater than 0, the area covered by the current quantization group is the area covered by the K-th layer quadtree node of the current node, where K is the smaller value of N and T1, and the K-th layer quadtree node is the quadtree node that includes the current node and is generated after K quadtree divisions starting from the coding tree unit CTU.

[0044] The Kth layer quadtree node is the (M+NK)th layer parent node of the current node.

[0045] According to a second aspect, in one possible implementation of the video decoder, the depth N of the current node is the quadtree depth N of the current node. The entropy decoding unit is particularly configured to determine an area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. If N is less than or equal to a first threshold T1 and M is equal to 0, the area covered by the current quantization group is the area covered by the current node.

[0046] According to a second aspect, in one possible implementation of the video decoder, the depth N of the current node is the quadtree depth N of the current node. The entropy decoding unit is particularly configured to determine the area covered by the current quantization group based on the quadtree depth N of the current node, or to determine the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. When N is equal to a first threshold T1 and M is equal to 0, the area covered by the current quantization group is the area covered by the current node. Alternatively, when N is less than the first threshold T1, the area covered by the current quantization group is the area covered by the current node.

[0047] According to a second aspect, in one possible implementation of the video decoder, the depth N of the current node is the quadtree depth N of the current node. The entropy decoding unit is particularly configured to determine the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. When N is equal to a first threshold T1 and M is equal to 0, the area covered by the current quantization group is the area covered by the current node. Alternatively, when N is less than the first threshold T1 and M is equal to or less than a fourth threshold T4, the area covered by the current quantization group is the area covered by the current node.

[0048] According to the second aspect, in one possible implementation of the video decoder, the fourth threshold T4 may be a preset positive integer, for example, 1, 2, 3, or 4.

[0049] According to the second aspect, in one possible implementation of the video decoder, the fourth threshold may be determined based on the first threshold T1 and the quadtree depth N of the current node, for example, T4=T1-N.

[0050] According to a second aspect, in one possible implementation of the video decoder, the depth N of the current node is the quadtree depth N of the current node. The entropy decoding unit is particularly configured to determine an area covered by the current quantization group based on the quadtree depth N of the current node and the multi-type tree depth M of the current node. If N is less than or equal to a first threshold T1 and M is less than or equal to T1-N, the area covered by the current quantization group is the area covered by the current node.

[0051] According to a second aspect, in one possible implementation of the video decoder, the entropy decoding unit is particularly configured to obtain a parent node of the (N-T1)th layer of the current node when the depth N of the current node is greater than a first threshold T1, and determine that the area covered by the current quantization group is the area covered by the parent node of the (N-T1)th layer.

[0052] According to a second aspect, in one possible implementation of the video decoder, the entropy decoding unit is particularly configured to determine that the area covered by the current quantization group is the area covered by the current node when the depth N of the current node is equal to a first threshold T1.

[0053] According to a second aspect, in one possible implementation of the video decoder, the depth of the current node is the QT depth of the current node, or the depth of the current node is the sum of the QT depth of the current node and the MTT depth of the current node.

[0054] According to the second aspect, in one possible implementation of the video decoder, the first threshold T1 is 0, 1, 2 or 3.

[0055] According to a second aspect, in one possible implementation of the video decoder, the entropy decoding unit is further configured to obtain the partitioning mode of the current node, and determine that the area covered by the current quantization group is the area covered by the current node when the depth N of the current node is equal to a second threshold T2-1 and the partitioning mode of the current node is a ternary partitioning mode, or determine that the area covered by the current quantization group is the area covered by the current node when the depth N of the current node is equal to the second threshold T2 and the partitioning mode of the current node is a binary partitioning mode or a quadtree partitioning mode, or determine that the area covered by the current quantization group is the area covered by the current node when the depth N of the current node is less than or equal to the second threshold and the current node is no longer partitioned.

[0056] According to the second aspect, in one possible implementation of the video decoder, the second threshold is 2, 3, 4, 6, 8, or 9.

[0057] According to a second aspect, in one possible implementation of the video decoder, the entropy decoding unit is further configured to obtain the partitioning mode of the current node, and determine that the area covered by the current quantization group is the area covered by the current node when the depth N of the current node is equal to a third threshold T3-1 and the partitioning mode of the current node is a ternary partitioning mode or a quadtree partitioning mode, or determine that the area covered by the current quantization group is the area covered by the current node when the depth N of the current node is equal to the third threshold T3 and the partitioning mode of the current node is a binary partitioning mode, or determine that the area covered by the current quantization group is the area covered by the current node when the depth N of the current node is equal to the third threshold T3 and the current node is no longer partitioned.

[0058] According to the second aspect, in one possible implementation of the video decoder, the third threshold is 3 or 5.

[0059] According to a second aspect, in one possible implementation of the video decoder, the entropy decoding unit is particularly configured to determine the depth N of the current node based on the QT depth of the current node and the dual depth Db of the current node.

[0060] According to the second aspect, in one possible implementation of the video decoder, the entropy decoding unit is particularly configured to determine the depth N of the current node by using the following formula: N=Dq*2+Db, where Dq is the QT depth of the current node.

[0061] According to a second aspect, in one possible implementation form of a video decoder, if the current node is an MTT root node, the dual depth Db of the current node is 0; or if the current node is an MTT node, but is not an MTT root node, and the current node is a child node obtained in binary split mode, the dual depth Db of the current node is the dual depth of the current node's immediate parent node + 1; or if the current node is an MTT node, but is not an MTT root node, and the current node is an intermediate child node obtained in ternary split mode, the dual depth Db of the current node is the dual depth of the current node's immediate parent node + 1; or if the current node is an MTT node, but is not an MTT root node, and the current node is a non-intermediate child node obtained in ternary split mode, the dual depth Db of the current node is the dual depth of the current node's immediate parent node + 2.

[0062] According to a second aspect, in one possible implementation of the video decoder, the entropy decoding unit is further configured to modify the luma QP of all CUs in the coding sequence that precede the first CU having a residual in the current quantization group to the luma QP of the first CU having a residual, when the QP difference value of the first CU having a residual in the current quantization group is not equal to 0. If the current CU is a CU preceding the first CU having a residual in the current quantization group, the inverse quantization unit is particularly configured to obtain dequantized coefficients of the current CU based on the luma QP of the first CU having a residual.

[0063] According to a third aspect, one embodiment of the present invention provides a video decoding method, the method including: analyzing coding tree partitioning information to obtain a current node; determining, based on a depth N of the current node, a coordinate of an upper left corner of an area covered by a current quantization group; obtaining a quantization parameter QP difference value of a current coding unit (CU) in the area covered by the current quantization group; and obtaining a reconstructed picture of the current CU based on the QP difference value of the current CU.

[0064] According to a third aspect, in one possible implementation of the method, the depth N of the current node is the quadtree depth N of the current node. Determining the coordinate of the upper left corner of the area covered by the current quantization group based on the depth N of the current node includes determining the coordinate of the upper left corner of the area covered by the current quantization group based on the depth N of the current node, or determining the coordinate of the upper left corner of the area covered by the current quantization group based on the multi-type depth M of the current node. If N is greater than a first threshold T1 or M is greater than 0, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the K-th layer quadtree node of the current node. K is the smaller value of N and T1, and the K-th layer quadtree node is the quadtree node that includes the current node and is generated after K quadtree divisions starting from the coding tree unit CTU.

[0065] According to the third aspect, in one possible implementation of the method, the depth N of the current node is the quadtree depth N of the current node. Determining the coordinate of the upper left corner of the area covered by the current quantization group based on the depth N of the current node includes determining the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. If N is less than or equal to a first threshold T1 and M is equal to 0, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

[0066] According to a third aspect, in one possible implementation of the method, the depth N of the current node is the quadtree depth N of the current node. Determining the coordinate of the upper left corner of the area covered by the current quantization group based on the depth N of the current node includes determining the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node, or determining the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. When N is equal to a first threshold T1 and M is equal to 0, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node. Alternatively, when N is less than the first threshold T1, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

[0067] According to the third aspect, in one possible implementation of the method, the depth N of the current node is the quadtree depth N of the current node. Determining the coordinate of the upper left corner of the area covered by the current quantization group based on the depth N of the current node includes determining the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. When N is equal to the first threshold T1 and M is equal to 0, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node. Alternatively, when N is less than the first threshold T1 and M is equal to or less than the fourth threshold T4, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

[0068] According to the third aspect, in one possible implementation of the method, the depth N of the current node is the quadtree depth N of the current node. Determining the coordinate of the upper left corner of the area covered by the current quantization group based on the depth N of the current node includes determining the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. If N is less than or equal to a first threshold T1 and M is less than or equal to T1-N, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

[0069] According to a third aspect, in one possible implementation of the method, determining the coordinate of the upper left corner of the area covered by the current quantization group based on the depth N of the current node includes, when the depth N of the current node is greater than a first threshold T1, obtaining a parent node of the (N-T1)th layer of the current node, and determining that the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the parent node of the (N-T1)th layer.

[0070] According to a third aspect, in one possible implementation of the method, determining the coordinate of the upper left corner of the area covered by the current quantization group based on the depth N of the current node includes determining that the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node when the depth N of the current node is equal to a first threshold T1.

[0071] According to the third aspect, in one possible implementation of the method, the first threshold T1 is a preset non-negative integer.

[0072] According to the third aspect, in one possible implementation of the method, the first threshold T1 is 0, 1, 2 or 3.

[0073] According to the third aspect, in one possible implementation of the method, the depth of the current node is the quadtree QT depth of the current node.

[0074] According to the third aspect, in one possible implementation of the method, the depth of the current node is the sum of the QT depth of the current node and the multitype tree depth MTT depth of the current node.

[0075] According to a third aspect, in one possible implementation of the method, the method further includes obtaining a partitioning mode of a current node. Determining the coordinate of the upper left corner of the area covered by the current quantization group based on the depth N of the current node includes determining, when the depth N of the current node is equal to a second threshold T2-1 and the partitioning mode of the current node is a ternary partitioning mode, that the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node, or determining, when the depth N of the current node is equal to the second threshold T2 and the partitioning mode of the current node is a binary partitioning mode or a quadtree partitioning mode, that the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

[0076] According to a third aspect, in one possible implementation of the method, the method further includes obtaining a partitioning mode of a current node. Determining the coordinate of the upper left corner of the area covered by the current quantization group based on the depth N of the current node includes determining, when the depth N of the current node is equal to a third threshold T3-1 and the partitioning mode of the current node is a ternary partitioning mode or a quadtree partitioning mode, that the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node, or determining, when the depth N of the current node is equal to the third threshold T3 and the partitioning mode of the current node is a binary partitioning mode, that the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

[0077] According to the third aspect, in one possible implementation of the method, the depth N of the current node is determined based on the QT depth of the current node and the dual depth Db of the current node.

[0078] According to the third aspect, in one possible implementation of the method, the depth N of the current node is determined by using the formula N=Dq*2+Db, where Dq is the QT depth of the current node.

[0079] According to a third aspect, in one possible implementation form of the method, if the current node is a multi-type tree MTT split root node, the dual depth Db of the current node is 0; or if the current node is an MTT node, but not an MTT root node, and the current node is a child node obtained in dual split mode, the dual depth Db of the current node is the dual depth of the current node's direct parent node + 1; or if the current node is an MTT node, but not an MTT root node, and the current node is an intermediate child node obtained in ternary split mode, the dual depth Db of the current node is the dual depth of the current node's direct parent node + 1; or if the current node is an MTT node, but not an MTT root node, and the current node is a non-intermediate child node obtained in ternary split mode, the dual depth Db of the current node is the dual depth of the current node's direct parent node + 2.

[0080] According to a third aspect, in one possible implementation of the method, if the QP difference value of the first CU having a residual in the current quantization group is not equal to 0, the luma QP of all CUs in the coding sequence preceding the first CU having a residual in the current quantization group is modified to the luma QP of the first CU having a residual. If the current CU is a CU preceding the first CU having a residual in the current quantization group, obtaining a reconstructed picture of the current CU based on the QP difference value of the current CU specifically refers to obtaining a reconstructed picture of the current CU based on the luma QP of the first CU having a residual.

[0081] According to a fourth aspect, one embodiment of the present invention provides a video decoder, comprising: an entropy decoding unit configured to analyze coding tree partitioning information to obtain a current node; determine a coordinate of a top-left corner of an area covered by a current quantization group based on a depth N of the current node; obtain a quantization parameter QP difference value of a current coding unit CU that covers the coordinate of the top-left corner of the area covered by the current quantization group; and determine a luma QP of the current CU based on the QP difference value of the current CU; an inverse quantization unit configured to obtain dequantized coefficients of the current CU based on the luma QP of the current CU; an inverse transform processing unit configured to obtain a reconstructed residual block of the current CU based on the dequantized coefficients of the current CU; and a reconstruction unit configured to obtain a reconstructed picture of the current CU based on the reconstructed residual block of the current CU.

[0082] According to a fourth aspect, in one possible implementation of the video decoder, the depth N of the current node is the quadtree depth N of the current node. The entropy decoding unit is particularly configured to determine the coordinate of the upper left corner of the area covered by the current quantization group based on the depth N of the current node, or to determine the coordinate of the upper left corner of the area covered by the current quantization group based on the multi-type depth M of the current node. If N is greater than a first threshold T1 or M is greater than 0, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the K-th layer quadtree node of the current node. K is the smaller value of N and T1, and the K-th layer quadtree node is the quadtree node that includes the current node and is generated after K quadtree divisions starting from the coding tree unit CTU.

[0083] According to a fourth aspect, in one possible implementation of the video decoder, the depth N of the current node is the quadtree depth N of the current node. The entropy decoding unit is particularly configured to determine the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. If N is less than or equal to a first threshold T1 and M is equal to 0, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

[0084] According to a fourth aspect, in one possible implementation of the video decoder, the depth N of the current node is the quadtree depth N of the current node. The entropy decoding unit is particularly configured to determine the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node, or to determine the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. When N is equal to a first threshold T1 and M is equal to 0, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node. Alternatively, when N is less than the first threshold T1, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

[0085] According to a fourth aspect, in one possible implementation of the video decoder, the depth N of the current node is the quadtree depth N of the current node. The entropy decoding unit is particularly configured to determine the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. When N is equal to the first threshold T1 and M is equal to 0, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node. Alternatively, when N is less than the first threshold T1 and M is equal to or less than the fourth threshold T4, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

[0086] According to a fourth aspect, in one possible implementation of the video decoder, the depth N of the current node is the quadtree depth N of the current node. The entropy decoding unit is particularly configured to determine the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. If N is less than or equal to a first threshold T1 and M is less than or equal to T1-N, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

[0087] According to a fourth aspect, in one possible implementation of the video decoder, the entropy decoding unit is particularly configured to: obtain a parent node of the (N-T1)th layer of the current node when the depth N of the current node is greater than a first threshold T1; and determine that the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by the parent node of the (N-T1)th layer.

[0088] According to a fourth aspect, in one possible implementation of the video decoder, the entropy decoding unit is particularly configured to determine that the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by the current node when the depth N of the current node is equal to a first threshold T1.

[0089] According to a fourth aspect, in one possible implementation of the video decoder, the first threshold T1 is a preset non-negative integer.

[0090] According to the fourth aspect, in one possible implementation of the video decoder, the first threshold T1 is 0, 1, 2 or 3.

[0091] According to a fourth aspect, in one possible implementation of the video decoder, the depth of the current node is the quadtree depth QT depth of the current node.

[0092] According to a fourth aspect, in one possible implementation of the video decoder, the depth of the current node is the sum of the QT depth of the current node and the multi-type depth tree MTT depth of the current node.

[0093] According to a fourth aspect, in one possible implementation of the video decoder, the entropy decoding unit is further configured to obtain the partitioning mode of the current node, and determine that the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by the current node when the depth N of the current node is equal to a second threshold T2-1 and the partitioning mode of the current node is a ternary partitioning mode, or determine that the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by the current node when the depth N of the current node is equal to a second threshold T2 and the partitioning mode of the current node is a binary partitioning mode or a quadtree partitioning mode.

[0094] According to a fourth aspect, in one possible implementation of the video decoder, the entropy decoding unit is further configured to obtain the partitioning mode of the current node, and determine that the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by the current node when the depth N of the current node is equal to a third threshold T3-1 and the partitioning mode of the current node is a ternary partitioning mode or a quadtree partitioning mode, or determine that the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by the current node when the depth N of the current node is equal to a third threshold T3 and the partitioning mode of the current node is a binary partitioning mode.

[0095] According to a fourth aspect, in one possible implementation of the video decoder, the entropy decoding unit is particularly configured to determine the depth N of the current node based on the QT depth of the current node and the dual depth Db of the current node.

[0096] According to a fourth aspect, in one possible implementation of the video decoder, the entropy decoding unit is particularly configured to determine the depth N of the current node by using the following formula: N=Dq*2+Db, where Dq is the QT depth of the current node.

[0097] According to a fourth aspect, in one possible implementation form of a video decoder, if the current node is a multi-type tree MTT split root node, the dual depth Db of the current node is 0; or if the current node is an MTT node, but not an MTT root node, and the current node is a child node obtained in binary split mode, the dual depth Db of the current node is the dual depth of the current node's immediate parent node + 1; or if the current node is an MTT node, but not an MTT root node, and the current node is an intermediate child node obtained in ternary split mode, the dual depth Db of the current node is the dual depth of the current node's immediate parent node + 1; or if the current node is an MTT node, but not an MTT root node, and the current node is a non-intermediate child node obtained in ternary split mode, the dual depth Db of the current node is the dual depth of the current node's immediate parent node + 2.

[0098] According to a fourth aspect, in one possible implementation of the video decoder, the entropy decoding unit is further configured to modify the luma QP of all CUs in the coding sequence that precede the first CU having a residual in the current quantization group to the luma QP of the first CU having a residual, if the QP difference value of the first CU having a residual in the current quantization group is not equal to 0. If the current CU is a CU preceding the first CU having a residual in the current quantization group, the inverse quantization unit is particularly configured to obtain dequantized coefficients of the current CU based on the luma QP of the first CU having a residual.

[0099] According to a fifth aspect, the present invention relates to a video stream decoding device comprising a processor and a memory, the memory storing instructions enabling the processor to perform a method according to the first or third aspect or any possible implementation thereof.

[0100] According to a sixth aspect, there is provided a computer-readable storage medium having instructions stored thereon that, when executed, enable one or more processors to encode video data, the instructions enabling the one or more processors to perform a method according to the first or third aspect or any possible embodiment of the first or third aspect.

[0101] According to a seventh aspect, the present invention relates to a computer program comprising program code which, when run on a computer, performs a method according to the first or third aspect or any possible implementation thereof.

[0102] The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will become apparent from the description, drawings, and claims.

[0103] In order to more clearly describe the technical solutions in the embodiments or background art of the present application, reference will now be made to the accompanying drawings for illustrating the embodiments or background art of the present application. [Brief explanation of the drawings]

[0104] [Figure 1] 1 is a block diagram of an example use case of a video coding system for implementing an embodiment of the present invention; [Figure 2] 1 is a block diagram illustrating an exemplary structure of a video encoder used to implement one embodiment of the present invention; [Figure 3] FIG. 2 is a block diagram illustrating an exemplary structure of a video decoder that may be used to implement one embodiment of the present invention. [Figure 4] 4 is a schematic diagram illustrating a video coding system 40 comprising the encoder 20 of FIG. 2 and / or the decoder 30 of FIG. 3. [Figure 5] FIG. 10 is a block diagram showing an example of another encoding device or decoding device. [Figure 6] 1A-1C are schematic diagrams illustrating binary, ternary, and quadtree splitting modes according to one embodiment. [Figure 7] FIG. 1 is a schematic diagram illustrating QT-MTT splitting according to one embodiment. [Figure 8] FIG. 1 is a schematic diagram illustrating QG partitioning according to one embodiment. [Figure 9] 1 is a flowchart illustrating a video decoding method according to one embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0105] In the following description, identical reference symbols denote identical or at least functionally equivalent features unless otherwise stated.

[0106] In the following description, reference is made to the accompanying drawings which form a part of this disclosure and which show, by way of example, specific aspects of embodiments of the invention or in which embodiments of the invention may be practiced. It is to be understood that embodiments of the invention may be practiced in other ways and may include structural or logical changes not depicted in the accompanying drawings. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims.

[0107] For example, it should be understood that disclosure related to a described method may also apply to a corresponding device or system configured to perform that method, and vice versa. For example, where one or more particular method steps are described, a corresponding device may include one or more units, such as functional units, to perform the described method step(s) (e.g., one unit that performs one or more steps, or multiple units that each perform one or more of the steps), even if such one or more units are not explicitly described or illustrated in the accompanying drawings. On the other hand, for example, where a particular apparatus is described based on one or more units, such as functional units, a corresponding method may include one step used to perform the function of one or more units (e.g., one step used to perform the function of one or more units, or multiple steps each used to perform the function of one or more units of the multiple units), even if such one or more steps are not explicitly described or illustrated in the accompanying drawings. Furthermore, it should be understood that features of various exemplary embodiments and / or aspects described herein may be combined with each other, unless otherwise noted.

[0108] Video coding typically refers to processing a sequence of pictures that constitute a video or video sequence. In the field of video coding, the terms "picture," "frame," and "image" may be used synonymously. Video coding, as used in this application (or this disclosure), refers to either video encoding or video decoding. Video encoding is performed at the source side and typically involves processing original video pictures (e.g., by compressing) to reduce the amount of data required to represent the video picture (for more efficient storage and / or transmission). Video decoding is performed at the destination side and typically involves the reverse process of an encoder to reconstruct the video picture. The "coding" of video pictures (or collectively referred to as pictures, described below) in the embodiments should be understood as the "encoding" or "decoding" of a video sequence. The combination of an encoder and a decoder is also referred to as a CODEC (encoding and decoding).

[0109] In the case of lossless video coding, the original video picture can be reconstructed. In other words, the reconstructed video picture has the same image quality as the original video picture (assuming no transmission loss or other data loss occurs during storage or transmission). In the case of lossy video coding, further compression is performed, for example through quantization, to reduce the amount of data required to represent the video picture, and the video picture cannot be completely reconstructed at the decoder side. In other words, the image quality of the reconstructed video picture is lower or inferior to that of the original video picture.

[0110] Some H.261 video coding standards use "lossy hybrid video coding" (specifically, spatial and temporal prediction in the sample domain is combined with 2D transform coding to apply quantization in the transform domain). Each picture in a video sequence is typically divided into a set of non-overlapping blocks, and coding is typically performed at the block level. Specifically, at the encoder side, video is usually processed, i.e., encoded, at the block (video block) level. For example, a predictive block is generated through spatial (intra-picture) prediction and temporal (inter-picture) prediction, and this predictive block is subtracted from a current block (a block being processed or to be processed) to obtain a residual block. This residual block is then transformed and quantized in the transform domain to reduce the amount of data to be transmitted (compressed). At the decoder side, an inverse processing unit as in the encoder is applied to the coded or compressed block to reconstruct the current block for representation. Furthermore, the encoder replicates the decoder processing loop, so that the encoder and decoder generate the same predictions (e.g., intra-frame and inter-frame predictions) and / or reconstructions for processing, i.e., coding, of subsequent blocks.

[0111] As used herein, the term "block" may refer to a portion of a picture or a frame. For ease of explanation, embodiments of the present invention are described herein with reference to Versatile Video Coding (VVC) or High-Efficiency Video Coding (HEVC) developed by the ITU-T Video Coding Experts Group (VCEG) and the Joint Collaboration Team on Video Coding (JCT-VC) of the ISO / IEC Motion Picture Experts Group (MPEG). Those skilled in the art will understand that embodiments of the present invention are not limited to HEVC or VVC. A block may be a CU, PU, ​​or TU. In HEVC, a CTU is divided into multiple CUs by using a quadtree structure represented as a coding tree. The decision of whether to code a picture region through inter-picture (temporal) prediction or intra-picture (spatial) prediction is made at the CU level. Each CU may be further divided into one, two, or four PUs based on a PU partitioning pattern. Within one PU, the same prediction process is applied, and related information is transmitted to the decoder on a PU-by-PU basis. After obtaining the residual block by applying the prediction process based on the PU partitioning pattern, the CU can be divided into transform units (TUs) based on another quad-tree structure similar to the coding tree used for CUs. In recent developments in video compression technology, a quad-tree plus binary tree (QTBT) partition frame is used to divide coding blocks. In the QTBT block structure, CUs can be square or rectangular. In VVC, coding tree units (CTUs) are first divided using a quad-tree structure.The leaf nodes of the quadtree are further divided by using a binary tree structure. The leaf nodes of the binary tree are called coding units (CUs), and the segment division is used for prediction and transform processing without further division. This means that CUs, PUs, and TUs have the same block size in the QTBT coding block structure. In addition, multiple divisions such as ternary tree divisions have been proposed to be used in combination with the QTBT block structure.

[0112] Next, embodiments of the encoder 20, decoder 30, and coding systems 10 and 40 will be described with reference to FIGS. 1 to 4 (before embodiments of the present invention are described in more detail with reference to FIG. 9).

[0113] 1 is a conceptual or schematic block diagram of an example coding system 10, e.g., a video coding system 10 that may employ techniques of the present application (this disclosure). An encoder 20 (e.g., video encoder 20) and a decoder 30 (e.g., video decoder 30) of video coding system 10 represent example devices that may be configured to perform techniques (segmentation / intra-frame prediction / ...) used for... based on various examples described in the present application. As shown in FIG. 1, coding system 10 includes a source device 12 configured to provide coded data 13, such as coded picture 13, to a destination device 14 that decodes coded data 13, for example.

[0114] Source device 12 includes an encoder 20 and may optionally include a picture source 16 , eg, a preprocessing unit 18 of a picture preprocessing unit 18 , and a communication interface or unit 22 .

[0115] Picture source 16 may include or be, for example, any type of picture capture device configured to capture real-world pictures, and / or any type of device for generating pictures or comments (in screen content coding, any text on the screen is also considered part of the picture or image to be coded), such as a computer graphics processor configured to generate computer-animated pictures, or any type of device configured to obtain and / or provide real-world or computer-animated pictures (e.g., screen content or virtual reality (VR) pictures), and / or any combination thereof (e.g., augmented reality (AR) pictures).

[0116] A (digital) picture is or can be considered as a two-dimensional array or matrix of samples with intensity values. The samples in the array are sometimes called pixels (short for picture element) or pels. The amount of samples in the horizontal and vertical directions (or axes) of the array or picture defines the size and / or resolution of the picture. For color representation, three color components are usually employed; specifically, a picture can be represented as or contain three sample arrays. In an RBG format or color space, a picture contains corresponding red, green, and blue sample arrays. However, in video coding, each pixel is usually represented in a luminance / chrominance format or color space, e.g., YCbCr, which contains a luminance component denoted Y (sometimes alternatively denoted L) and two chrominance components denoted Cb and Cr. The luminance (abbreviated luma) component Y represents brightness or gray-level intensity (e.g., both are the same in a grayscale picture), and the two chrominance (abbreviated chroma) components Cb and Cr represent chrominance or color information components. Correspondingly, a picture in YCbCr format includes a luminance sample array of luminance sample values ​​(Y) and two chrominance sample arrays of chrominance values ​​(Cb and Cr). A picture in RGB format can be converted or transformed into YCbCr format, and vice versa. This process is also referred to as color conversion or translation. If a picture is monochrome, the picture may include only a luminance sample array.

[0117] Picture source 16 (e.g., video source 16) may be, for example, a camera for capturing a picture, or a memory such as a picture memory that contains or stores previously captured or generated pictures, and / or any type of interface (internal or external) for acquiring or receiving pictures. The camera may be, for example, a local camera or an integrated camera integrated within the source device, and the memory may be, for example, a local memory or an integrated memory integrated within the source device. The interface may be, for example, an external interface for receiving pictures from an external video source. The external video source may be, for example, an external picture capture device such as a camera, an external memory, or an external picture generation device. The external picture generation device may be, for example, an external computer graphics processor, computer, or server. The interface may be any kind of interface, for example, a wired or wireless interface or an optical interface following any proprietary or standardized interface protocol. The interface for acquiring picture data 17 may be the same interface as or part of communication interface 22.

[0118] Unlike pre-processing unit 18 and the processing performed by pre-processing unit 18, pictures or picture data 17 (eg, video data 16) may also be referred to as raw pictures or raw picture data 17.

[0119] Pre-processing unit 18 is configured to receive (raw) picture data 17 and perform pre-processing on the picture data 17 to obtain a pre-processed picture 19 or pre-processed picture data 19. For example, the pre-processing performed by pre-processing unit 18 may include cropping, color format conversion (e.g., from RGB to YCbCr), color correction, or noise removal. It may be understood that pre-processing unit 18 may be an optional component.

[0120] The encoder 20 (e.g., video encoder 20) is configured to receive pre-processed picture data 19 and provide encoded picture data 21 (details of which are further described below, e.g., with reference to Figure 2 or Figure 4).

[0121] Communications interface 22 of source device 12 may be configured to receive encoded picture data 21 and transmit the encoded picture data 21 to another device, such as destination device 14 or any other device, for storage or direct reconstruction. Alternatively, communications interface 22 is configured to process encoded picture data 21 and then correspondingly store and / or transmit encoded data 13 to another device, such as destination device 14 or any other device used for decoding or storage.

[0122] Destination device 14 includes a decoder 30 (eg, a video decoder 30), and may optionally include a communication interface or unit 28, a post-processing unit 32, and a display device 34.

[0123] Communications interface 28 of destination device 14 is configured to receive, for example, encoded picture data 21 or encoded data 13 directly from source device 12 or any other source, such as a storage device. The storage device may be, for example, an encoded picture data storage device.

[0124] Communication interface 22 and communication interface 28 may be configured to transmit or receive encoded picture data 21 or encoded data 13 over a direct communication link between source device 12 and destination device 14, or over any type of network, such as a direct wired or wireless connection, or a wired or wireless network, or any combination thereof, or any type of private or public network, or any combination thereof.

[0125] The communications interface 22 may be configured to package the encoded picture data 21 in an appropriate format, eg, packets, for transmission over a communications link or network.

[0126] A communications interface 28 forming a corresponding part of communications interface 22 may be configured to depackage encoded data 13 to obtain, for example, encoded picture data 21 .

[0127] Both communication interface 22 and communication interface 28 may be configured as unidirectional communication interfaces, as indicated by the arrows pointing from source device 12 to destination device 14 and used for encoded picture data 13 in FIG. 1, or may be configured as bidirectional communication interfaces, for example, to send and receive messages to establish a connection, and to acknowledge and exchange any other information related to the communication link and / or data transmission, such as the transmission of encoded picture data.

[0128] The decoder 30 is configured to receive the coded picture data 21 and provide decoded picture data 31 or decoded pictures 31 (details are further described below, for example, with reference to Figure 3 or Figure 5).

[0129] Post-processor 32 of destination device 14 is configured to post-process decoded picture data 31 (also referred to as reconstructed picture data), e.g., decoded picture 131, to obtain post-processed picture data 33, e.g., post-processed picture 33. The post-processing performed by post-processing unit 32 may include, e.g., color format conversion (e.g., from YCbCr to RGB), color correction, cropping, resampling, or any other processing to, e.g., prepare decoded picture data 31 for display by display device 34, for example.

[0130] Display device 34 of destination device 14 is configured to receive post-processed picture data 33, for example, to display the picture to a user or viewer. Display device 34 may be or include any type of display for presenting the reconstructed picture, e.g., an integrated or external display or monitor. For example, the display may include a liquid crystal display (LCD), an organic light emitting diode (OLED) display, a plasma display, a projector, a micro-LED display, a liquid crystal on silicon (LCoS), a digital light processor (DLP), or any type of other display.

[0131] 1 depicts source device 12 and destination device 14 as separate devices, an embodiment of the device may alternatively include both source device 12 and destination device 14, or the functionality of both source device 12 and destination device 14, i.e., source device 12 or corresponding functionality and destination device 14 or corresponding functionality. In such an embodiment, source device 12 or corresponding functionality and destination device 14 or corresponding functionality may be implemented using the same hardware and / or software, separate hardware and / or software, or any combination thereof.

[0132] As will be clear to those skilled in the art based on the description, the existence and (exact) division of functionality of different units, or functionality of source device 12 and / or destination device 14 shown in FIG. 1, may vary depending on the actual device and application.

[0133] Encoder 20 (e.g., video encoder 20) and decoder 30 (e.g., video decoder 30) may each be implemented as any one of a variety of suitable circuits, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, hardware, or any combination thereof. If the techniques are implemented in part using software, a device may store software instructions on a suitable non-transitory computer-readable storage medium and execute the instructions by using hardware, such as one or more processors, to perform the techniques of this disclosure. Any of the foregoing (including hardware, software, combinations of hardware and software, and the like) may be considered one or more processors. Video encoder 20 and video decoder 30 may each be included in one or more encoders or decoders, which may be integrated as part of a combined encoder / decoder (codec) within the corresponding device.

[0134] Source device 12 may be referred to as a video encoding device or video encoding apparatus. Destination device 14 may be referred to as a video decoding device or video decoding apparatus. Source device 12 and destination device 14 may be examples of video coding devices or video coding apparatuses.

[0135] The source device 12 and the destination device 14 may include any one of a wide range of devices, including any type of handheld or stationary device, such as a notebook or laptop computer, a mobile phone, a smartphone, a tablet or tablet computer, a video camera, a desktop computer, a set-top box, a television, a display device, a digital media player, a video game console, a video streaming device (such as a content service server or content distribution server), a broadcast receiver device, or a broadcast transmitter device, and may use any type of operating system or not.

[0136] In some cases, source device 12 and destination device 14 may be equipped for wireless communication. Thus, source device 12 and destination device 14 may be wireless communication devices.

[0137] In some cases, the video coding system 10 shown in FIG. 1 is merely an example, and the techniques of the present application may be applicable to video coding settings (e.g., video encoding or video decoding) that do not necessarily involve data communication between an encoding device and a decoding device. In another example, data may be retrieved from local memory, streamed over a network, or similarly processed. A video encoding device may encode data and store the data in memory, and / or a video decoding device may retrieve data from memory and decode the data. In some examples, encoding and decoding do not communicate with each other, but are simply performed by devices that encode data into memory and / or retrieve data from memory and decode the data.

[0138] For each of the examples described with reference to video encoder 20, it should be understood that video decoder 30 may be configured to perform the inverse process. With respect to signaling syntax elements, video decoder 30 may be configured to receive and parse such syntax elements and correspondingly decode the associated video data. In some examples, video encoder 20 may entropy encode one or more syntax elements that define... into the encoded video bitstream. In such examples, video decoder 30 may parse such syntax elements and correspondingly decode the associated video data.

[0139] Encoder & Encoding Method

[0140] Figure 2 is a schematic / conceptual block diagram of an example of a video encoder 20 configured to implement the techniques of the present disclosure. In the example of Figure 2, the video encoder 20 includes a residual calculation unit 204, a transform processing unit 206, a quantization unit 208, an inverse quantization unit 210, an inverse transform processing unit 212, a reconstruction unit 214, a buffer 216, a loop filter unit 220, a decoded picture buffer (DPB) 230, a prediction processing unit 260, and an entropy coding unit 270. The prediction processing unit 260 may include an inter-frame prediction unit 244, an intra-frame prediction unit 254, and a mode selection unit 262. The inter-frame prediction unit 244 may include a motion estimation unit and a motion compensation unit (not shown). The video encoder 20 shown in Figure 2 may also be referred to as a hybrid video encoder or a video encoder based on a hybrid video codec.

[0141] For example, the residual calculation unit 204, the transform processing unit 206, the quantization unit 208, the prediction processing unit 260, and the entropy coding unit 270 form a forward signal path of the encoder 20, while for example, the inverse quantization unit 210, the inverse transform processing unit 212, the reconstruction unit 214, the buffer 216, the loop filter 220, the decoded picture buffer (DPB) 230, and the prediction processing unit 260 form a backward signal path of the encoder. The backward signal path of the encoder corresponds to the signal path of the decoder (see decoder 30 in FIG. 3).

[0142] Encoder 20 receives, for example, via input 202, picture 201 or block 203 of picture 201, e.g., a picture in a sequence of pictures forming a video or a video sequence. Picture block 203 may also be referred to as a current picture block or a picture block to be coded. Picture 201 may also be referred to as a current picture or a picture to be coded (particularly in video coding, to distinguish the current picture from other pictures, e.g., previously coded and / or decoded pictures in the same video sequence, i.e., the video sequence that also includes the current picture).

[0143] Split

[0144] One embodiment of encoder 20 may include a division unit (not shown in FIG. 2) configured to divide picture 201 into multiple blocks, such as block 203. Picture 201 is typically divided into multiple non-overlapping blocks. The division unit may be configured to use the same block size for all pictures in a video sequence and a corresponding grid that defines the block sizes, or to vary the block size between pictures or subsets or groups of pictures, and divide each picture into corresponding blocks.

[0145] In one example, prediction processing unit 260 of video encoder 20 may be configured to perform any combination of the partitioning techniques described above.

[0146] Like picture 201, block 203 may also be or be considered to be a two-dimensional array or matrix of samples having luma values ​​(sample values), but the size of block 203 is smaller than the size of picture 201. In other words, block 203 may include, for example, one sample array (e.g., a luma array in the case of monochrome picture 201), three sample arrays (e.g., one luma array and two chroma arrays in the case of a color picture), or any other quantity and / or type of arrays depending on the applied color format. The amount of samples in the horizontal and vertical directions (or axes) of block 203 defines the size of block 203.

[0147] The encoder 20 shown in FIG. 2 is configured to encode a picture 201 block by block, eg, to perform encoding and prediction on each block 203 .

[0148] Residual calculation

[0149] The residual calculation unit 204 is configured to calculate the residual block 205 based on the picture block 203 and the prediction block 265, for example, by subtracting the sample values ​​of the prediction block 265 from the sample values ​​of the picture block 203 on a sample-by-sample (pixel-by-pixel) basis (the prediction block 265 will be described in more detail below), to obtain the residual block 205 in the sample domain.

[0150] conversion

[0151] The transform processing unit 206 is configured to apply a transform, for example a discrete cosine transform (DCT) or a discrete sine transform (DST), to the sample values ​​of the residual block 205 to obtain transform coefficients 207 in the transform domain. The transform coefficients 207, sometimes referred to as transform residual coefficients, represent the residual block 205 in the transform domain.

[0152] The transform processing unit 206 may be configured to apply an integer approximation of a DCT / DST, such as the transform specified in HEVC / H.265. Compared to an orthogonal DCT transform, such an integer approximation is typically scaled based on a coefficient. To preserve the norm of the residual block processed by using the forward transform and the inverse transform, an additional scale factor is applied as part of the transform process. The scale factor is typically selected based on several constraints, such as the scale factor being a power of two relative to the shift operation, the bit depth of the transform coefficients, and a trade-off between accuracy and implementation cost. For example, a particular scale factor may be specified for the inverse transform, e.g., by the inverse transform processing unit 212 on the decoder 30 side (and the corresponding inverse transform, e.g., by the inverse transform processing unit 212 on the encoder 20 side), and a corresponding scale factor may be specified for the forward transform, e.g., by the transform processing unit 206 on the encoder 20 side.

[0153] quantization

[0154] The quantization unit 208 is configured to quantize the transform coefficients 207, for example, by applying scalar quantization or vector quantization, to obtain quantized transform coefficients 209. The quantized transform coefficients 209 may also be referred to as quantized residual coefficients 209. The quantization process may reduce a bit depth associated with some or all of the transform coefficients 207. For example, an n-bit transform coefficient may be truncated to an m-bit transform coefficient during quantization, where n is greater than m. The degree of quantization may be modified by adjusting a quantization parameter (QP). For example, for scalar quantization, different scales may be applied to achieve finer or coarser quantization. A smaller quantization step corresponds to finer quantization, and a larger quantization step corresponds to coarser quantization. The appropriate quantization step may be indicated by the quantization parameter (QP). For example, the quantization parameter may be an index into a predefined set of appropriate quantization steps. For example, a small quantization parameter may correspond to finer quantization (smaller quantization step), and a larger quantization parameter may correspond to coarser quantization (larger quantization step), or vice versa. Quantization may include division by the quantization step and corresponding quantization or inverse quantization, or multiplication by the quantization step, for example, performed by the inverse quantization unit 210. In embodiments according to some standards, such as HEVC, the quantization parameter may be used to determine the quantization step. Generally, the quantization step may be calculated based on the quantization parameter by using a fixed-point approximation of an equation involving division. An additional scale factor may be introduced for quantization and dequantization to restore the norm of the residual block, which may be modified because the scale is used in the fixed-point approximation of the equation for the quantization step and quantization parameter. In an example implementation, the scale of the inverse transform may be combined with the scale of the dequantization.Alternatively, customized quantization tables may be used, e.g., signaled from the encoder to the decoder in the bitstream. Quantization is a lossy operation, with larger quantization steps indicating more loss.

[0155] The inverse quantization unit 210 is configured to apply the inverse quantization of the quantization unit 208 to the quantized coefficients to obtain dequantized coefficients 211, e.g., apply the inverse of the quantization scheme applied by the quantization unit 208 based on or by using the same quantization step as the quantization unit 208. The dequantized coefficients 211 may also be referred to as dequantized residual coefficients 211 and may correspond to the transform coefficients 207, although the dequantized coefficients 211 typically differ from the transform coefficients due to losses caused by quantization.

[0156] The inverse transform processing unit 212 is configured to apply an inverse transform of the transform applied by the transform processing unit 206, for example, an inverse discrete cosine transform (DCT) or an inverse discrete sine transform (DST), to obtain an inverse transformed block 213 in the sample domain. The inverse transformed block 213 may be referred to as an inverse transformed dequantized block 213 or an inverse transformed residual block 213.

[0157] The reconstruction unit 214 (e.g., adder 214) is configured to add the inverse transform block 213 (i.e., the reconstructed residual block 213) to the prediction block 265, for example, by adding the sample values ​​of the reconstructed residual block 213 and the sample values ​​of the prediction block 265, to obtain the reconstructed block 215 in the sample domain.

[0158] Optionally, for example, a buffer unit 216 (or "buffer" 216 for short) of the line buffer 216 is configured to buffer or store the reconstructed blocks 215 and corresponding sample values, e.g., for intra-frame prediction. In other embodiments, the encoder may be configured to use the unfiltered reconstructed blocks and / or corresponding sample values ​​stored in the buffer unit 216 for any type of estimation and / or prediction, e.g., intra-frame prediction.

[0159] For example, in one embodiment, encoder 20 may be configured such that buffer unit 216 stores reconstructed blocks 215 that are used not only for intra prediction 254 but also for loop filter unit 220 (not shown in FIG. 2), and / or such that buffer unit 216 and decoded picture buffer 230 form one buffer, for example. In other embodiments, filtered blocks 221 and / or blocks or samples from decoded picture buffer 230 (blocks or samples not shown in FIG. 2) are used as input to or the basis of intra prediction unit 254.

[0160] The loop filter unit 220 (or “loop filter” 220 for short) is configured to filter the reconstructed block 215 to obtain a filtered block 221 to smooth pixel transitions or improve video quality. The loop filter unit 220 is intended to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or another filter, e.g., a bilateral filter, an adaptive loop filter (ALF), a sharpening or smoothing filter, or a collaborative filter. Although the loop filter unit 220 is shown in FIG. 2 as an in-loop filter, in another implementation, the loop filter unit 220 may be implemented as a post-loop filter. The filtered block 221 may also be referred to as a filtered reconstructed block 221. The decoded picture buffer 230 may store the reconstructed coded block after the loop filter unit 220 performs a filter operation on the reconstructed coded block.

[0161] In one embodiment, the encoder 20 (and correspondingly the loop filter unit 220) may be configured to output loop filter parameters (e.g., sample adaptive offset information), e.g., directly or after entropy coding performed by the entropy coding unit 270 or any other entropy coding unit, so that, e.g., the decoder 30 can receive and apply the same loop filter parameters for decoding.

[0162] The decoded picture buffer (DPB) 230 may be a reference picture memory that stores reference picture data for use in video data encoding by the video encoder 20. The DPB 230 may be formed by any one of a variety of memory devices, such as dynamic random access memory (DRAM) (synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM)), or another type of memory device. The DPB 230 and the buffer 216 may be formed by the same memory device or separate memory devices. In one example, the decoded picture buffer (DPB) 230 is configured to store the filtered block 221. The decoded picture buffer 230 may further be configured to store another previously filtered block, e.g., the previously reconstructed filtered block 221, of the same current picture or of a different picture, e.g., a previously reconstructed picture, to provide a complete previously reconstructed, i.e., decoded, picture (and corresponding reference blocks and samples) and / or a partially reconstructed current picture (and corresponding reference blocks and samples), e.g., for inter-frame prediction. In one example, if the reconstructed block 215 is reconstructed without in-loop filtering, the decoded picture buffer (DPB) 230 is configured to store the reconstructed block 215.

[0163] The prediction processing unit 260, also referred to as the block prediction processing unit 260, is configured to receive or obtain the block 203 (the current block 203 of the current picture 201) and reconstructed picture data, e.g., reference samples of the same (current) picture from the buffer 216 and / or reference picture data 231 of one or more previously decoded pictures from the decoded picture buffer 230, and process such data for prediction, specifically to provide a prediction block 265, which may be an inter-frame prediction block 245 or an intra-frame prediction block 255.

[0164] The mode selection unit 262 may be configured to select a prediction mode (e.g., an intra-frame prediction mode or an inter-frame prediction mode) to be used as the prediction block 265 and / or the corresponding prediction block 245 or 255 to calculate the residual block 205 and for reconstruction of the reconstructed block 215.

[0165] In one embodiment, mode selection unit 262 may be configured to select a prediction mode (e.g., from prediction modes supported by prediction processing unit 260) that provides the best match or smallest residual (smallest residual means better compression for transmission or storage), or that provides the smallest signaling overhead (smallest signaling overhead means better compression for transmission or storage), or that considers or balances both. Mode selection unit 262 may be configured to determine the prediction mode based on rate distortion optimization (RDO), and specifically, to select a prediction mode that provides the smallest rate distortion optimization, or to select a prediction mode whose associated rate distortion at least satisfies a prediction mode selection criterion.

[0166] The prediction processing performed (eg, by prediction processing unit 260) and mode selection performed (eg, by mode selection unit 262) according to an example of encoder 20 will now be described in detail.

[0167] As described above, encoder 20 is configured to determine or select an optimal or best prediction mode from a (predetermined) set of prediction modes, which may include, for example, intra-frame and / or inter-frame prediction modes.

[0168] The set of intra-frame prediction modes may include 35 different intra-frame prediction modes, e.g., non-directional modes such as DC (or average) mode and planar mode, or directional modes as defined in H.265, or may include 67 different intra-frame prediction modes, e.g., non-directional modes such as DC (or average) mode and planar mode, or directional modes as defined in the developing H.266.

[0169] The (possible) set of inter-frame prediction modes depends on the available reference pictures (i.e., at least some decoded pictures stored in DBP230, e.g., as described above) and other inter-frame prediction parameters, e.g., whether the entire reference picture or only a portion of the reference picture, e.g., a search window area around the area of ​​the current picture block, is used to search for the best-matching reference block, and / or whether pixel interpolation, e.g., half-pel and / or quarter-pel interpolation, is applied.

[0170] In addition to the aforementioned prediction modes, skip mode and / or direct mode may also be applied.

[0171] Prediction processing unit 260 may be further configured to divide block 203 into smaller block partitions or sub-blocks, e.g., by iteratively using quad-tree (QT) partitioning, binary-tree (BT) partitioning, triple-tree (TT) partitioning, or any combination thereof, and perform prediction on each of the block partitions or sub-blocks. Mode selection includes selecting a tree structure for divided block 203 and selecting a prediction mode to apply to each of the block partitions or sub-blocks.

[0172] The inter-frame prediction unit 244 may include a motion estimation (ME) unit (not shown in FIG. 2) and a motion compensation (MC) unit (not shown in FIG. 2). The motion estimation unit is configured to receive or obtain the picture block 203 (the picture block 203 of the current picture 201) and the decoded picture 231, or at least one or more previously reconstructed blocks, e.g., one or more reconstructed blocks of other / different previously decoded pictures 231, for motion estimation. For example, a video sequence may include the current picture and the previously decoded picture 31, or in other words, the current picture and the previously decoded picture 31 may be part of pictures forming a video sequence or form a sequence of pictures.

[0173] For example, the encoder 20 may be configured to select a reference block from multiple reference blocks in the same picture or multiple reference blocks in different pictures among multiple other pictures, and provide the reference picture (or reference picture index) and / or an offset (spatial offset) between the location (X, Y coordinates) of the reference block and the location of the current block as an inter-frame prediction parameter to a motion estimation unit (not shown in FIG. 2 ). This offset is also referred to as a motion vector (MV).

[0174] The motion compensation unit is configured to obtain inter-frame prediction parameters, e.g., receive the inter-frame prediction parameters and perform inter-frame prediction based on or by using the inter-frame prediction parameters to obtain inter-frame prediction block 245. The motion compensation performed by the motion compensation unit (not shown in FIG. 2) may include fetching or generating a predictive block based on a motion / block vector determined through motion estimation (possibly performing interpolation with sub-pixel accuracy). Interpolation filtering may generate additional pixel samples from known pixel samples, thereby potentially increasing the amount of candidate predictive blocks that can be used to code the picture block. After receiving the motion vector for the PU of the current picture block, motion compensation unit 246 may identify the predictive block to which the motion vector points in one of the reference picture lists. Motion compensation unit 246 may also generate syntax elements associated with blocks and video slices, so that video decoder 30 uses the syntax elements to decode picture blocks of the video slices.

[0175] The intra prediction unit 254 is configured to obtain, e.g., receive, the picture block 203 (the current picture block) and one or more previously reconstructed blocks of the same picture, e.g., reconstructed neighboring blocks, for intra prediction. For example, the encoder 20 may be configured to select an intra prediction mode from a plurality of (predetermined) intra prediction modes.

[0176] In one embodiment, the encoder 20 may be configured to select an intra-frame prediction mode according to an optimization criterion, for example, based on the minimum residual (e.g., the intra-frame prediction mode that provides the predicted block 255 that most closely resembles the current picture block 203) or the minimum rate distortion.

[0177] The intra prediction unit 254 is further configured to determine the intra prediction block 255, for example, based on intra prediction parameters in the selected intra prediction mode. In any case, after selecting the intra prediction mode for the block, the intra prediction unit 254 is further configured to provide the intra prediction parameters, i.e., information indicating the selected intra prediction mode for the block, to the entropy coding unit 270. In one example, the intra prediction unit 254 may be configured to perform any combination of the intra prediction techniques described below.

[0178] The entropy coding unit 270 is configured to apply (or avoid applying) an entropy coding algorithm or scheme (e.g., a variable length coding (VLC) scheme, a context adaptive VLC (CAVLC) scheme, an arithmetic coding scheme, context adaptive binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE) coding, or another entropy coding method or technique) to one or all of the quantized coefficients 209, the inter-frame prediction parameters, the intra-frame prediction parameters, and / or the loop filter parameters, to obtain coded picture data 21, which may be output, for example, through an output 272, in the form of a coded bitstream 21. The encoded bitstream may be transmitted to video decoder 30 or archived for subsequent transmission or retrieval by video decoder 30. Entropy encoding unit 270 may further be configured to entropy encode another syntax element for the current video slice being encoded.

[0179] Other structural variations of the video encoder 20 can be used to encode the video stream. For example, a non-transform-based encoder 20 may directly quantize the residual signal for some blocks or frames, without the transform processing unit 206. In another implementation, the encoder 20 may have the quantization unit 208 and the inverse quantization unit 210 combined into a single unit.

[0180] 3 shows an exemplary video decoder 30 configured to implement the techniques of the present application. Video decoder 30 is configured to receive coded picture data (e.g., coded bitstream) 21, e.g., coded by encoder 20, to obtain decoded picture 231. In the decoding process, video decoder 30 receives video data from video encoder 20, e.g., a coded video bitstream representing picture blocks of coded video slices, and associated syntax elements.

[0181] 3, decoder 30 includes an entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a reconstruction unit 314 (e.g., adder 314), a buffer 316, a loop filter 320, a decoded picture buffer 330, and a prediction processing unit 360. Prediction processing unit 360 may include an inter-frame prediction unit 344, an intra-frame prediction unit 354, and a mode selection unit 362. In some examples, video decoder 30 may perform a decoding path that is generally the reverse of the encoding path described with reference to video encoder 20 of FIG.

[0182] Entropy decoding unit 304 is configured to perform entropy decoding on coded picture data 21, e.g., to obtain quantized coefficients 309 and / or decoded coding parameters (not shown in FIG. 3), e.g., any one or all (decoded) of inter-frame prediction parameters, intra-frame prediction parameters, loop filter parameters, and / or another syntax element. Entropy decoding unit 304 is further configured to forward the inter-frame prediction parameters, intra-frame prediction parameters, and / or another syntax element to prediction processing unit 360. Video decoder 30 may receive syntax elements at a video slice level and / or a video block level.

[0183] The inverse quantization unit 310 may have the same functionality as the inverse quantization unit 110. The inverse transform processing unit 312 may have the same functionality as the inverse transform processing unit 212. The reconstruction unit 314 may have the same functionality as the reconstruction unit 214. The buffer 316 may have the same functionality as the buffer 216. The loop filter 320 may have the same functionality as the loop filter 220. The decoded picture buffer 330 may have the same functionality as the decoded picture buffer 230.

[0184] Prediction processing unit 360 may include an inter-frame prediction unit 344 and an intra-frame prediction unit 354. Inter-frame prediction unit 344 may be functionally the same as inter-frame prediction unit 244, and intra-frame prediction unit 354 may be functionally the same as intra-frame prediction unit 254. Prediction processing unit 360 is typically configured to perform block prediction and / or obtain prediction blocks 365 from coded data 21, and to receive or obtain (explicitly or implicitly) information regarding prediction-related parameters and / or selected prediction modes, for example, from entropy decoding unit 304.

[0185] When a video slice is coded as an intra-coded (I) slice, intra prediction unit 354 of prediction processing unit 360 is configured to generate a prediction block 365 for a picture block of the current video slice based on a signaled intra prediction mode and data from a previously decoded block of the current frame or picture. When a video frame is coded as an inter-coded (B or P) slice, inter prediction unit 344 (e.g., a motion compensation unit) of prediction processing unit 360 is configured to generate a prediction block 365 for a video block of the current video slice based on a motion vector and another syntax element received from entropy decoding unit 304. For inter prediction, the prediction block may be generated from one of the reference pictures in a reference picture list. Video decoder 30 may construct the reference frame lists, List 0 and List 1, by using a default construction technique and based on the reference pictures stored in DPB 330.

[0186] Prediction processing unit 360 is configured to determine prediction information for video blocks of the current video slice by analyzing motion vectors and other syntax elements, and to use the prediction information to generate a predictive block for the current video block being decoded. For example, prediction processing unit 360 uses some received syntax elements to determine a prediction mode (e.g., intra or inter prediction) for encoding video blocks in the video slice, a type of inter predicted slice (e.g., B slice, P slice, or GPB slice), construction information of one or more of a reference picture list for the slice, a motion vector of each inter coded video block for the slice, an inter prediction status of each inter coded video block in the slice, and other information for decoding video blocks in the current video slice.

[0187] Inverse quantization unit 310 may be configured to perform inverse quantization (i.e., dequantization) on the quantized transform coefficients provided in the bitstream and decoded by entropy decoding unit 304. The inverse quantization process may include using quantization parameters calculated by video encoder 20 for each video block in a video slice to determine the degree of quantization to be applied, and similarly, the degree of inverse quantization to be applied.

[0188] Inverse transform processing unit 312 is configured to apply an inverse transform (eg, an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process) to the transform coefficients, producing residual blocks in the pixel domain.

[0189] The reconstruction unit 314 (e.g., adder 314) is configured to add the inverse transform block 313 (i.e., the reconstructed residual block 313) to the prediction block 365, for example, by adding the sample values ​​of the reconstructed residual block 313 and the sample values ​​of the prediction block 365, to obtain a reconstructed block 315 in the sample domain.

[0190] The loop filter unit 320 (during or after the coding loop) is configured to filter the reconstructed block 315 to obtain a filtered block 321 to smooth pixel transitions or improve video quality. In one example, the loop filter unit 320 may be configured to perform any combination of the filtering techniques described below. The loop filter unit 320 is intended to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or another filter, e.g., a bilateral filter, an adaptive loop filter (ALF), a sharpening or smoothing filter, or a collaborative filter. Although the loop filter unit 320 is shown in FIG. 3 as an in-loop filter, in another implementation, the loop filter unit 320 may be implemented as a post-loop filter.

[0191] The decoded video blocks 321 in a given frame or picture are then stored in a decoded picture buffer 330, which stores reference pictures used for subsequent motion compensation.

[0192] The decoder 30 is arranged to output the decoded pictures 31 via an output 332, for example for presentation to or viewing by a user.

[0193] Other variations of the video decoder 30 may be used to decode the compressed bitstream. For example, the decoder 30 may generate an output video stream without the loop filter unit 320. For example, a non-transform-based decoder 30 may directly inverse quantize the residual signal for some blocks or frames without the inverse transform processing unit 312. In another implementation, the video decoder 30 may combine the inverse quantization unit 310 and the inverse transform processing unit 312 into a single unit.

[0194] 4 is an illustration of an example video coding system 40 including the encoder 20 of FIG. 2 and / or the decoder 30 of FIG. 3, according to an example embodiment. System 40 may implement a combination of various techniques of the present application. In the illustrated implementation, video coding system 40 may include an imaging device 41, a video encoder 20, a video decoder 30 (and / or a video encoder implemented by using logic 47 of a processing unit 46), an antenna 42, one or more processors 43, one or more memories 44, and / or a display device 45.

[0195] As shown in the figure, imaging device 41, antenna 42, processing unit 46, logic circuitry 47, video encoder 20, video decoder 30, processor 43, memory 44, and / or display device 45 may be in communication with one another. As described, video coding system 40 is illustrated using video encoder 20 and video decoder 30, but in other different examples, video coding system 40 may include only video encoder 20 or only video decoder 30.

[0196] In some examples, as shown, video coding system 40 may include an antenna 42. For example, antenna 42 may be configured to transmit or receive an encoded bitstream of video data. Additionally, in some examples, video coding system 40 may include a display device 45. Display device 45 may be configured to present the video data. In some examples, as shown, logic circuitry 47 may be implemented by a processing unit 46. Processing unit 46 may include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, or the like. Video coding system 40 may further include an optional processor 43. Optional processor 43 may also include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, or the like. In some examples, logic circuitry 47 may be implemented by hardware, e.g., hardware dedicated to video coding. Processor 43 may be implemented by general-purpose software, an operating system, or the like. Additionally, memory 44 may be any type of memory, for example, volatile memory (e.g., Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM)) or non-volatile memory (e.g., flash memory). In a non-limiting example, memory 44 may be implemented as a cache memory. In some examples, logic circuitry 47 may access memory 44 (e.g., for implementing a picture buffer). In another example, logic circuitry 47 and / or processing unit 46 may comprise memory (e.g., a cache) for implementing a picture buffer or the like.

[0197] In some examples, video encoder 20 implemented using logic circuitry may include a picture buffer (e.g., implemented by processing unit 46 or memory 44) and a graphics processing unit (e.g., implemented by processing unit 46). The graphics processing unit may be communicatively coupled to the picture buffer. The graphics processing unit may include video encoder 20 implemented using logic circuitry 47 to implement various modules described with reference to FIG. 2 and / or any other encoder system or subsystem described herein. The logic circuitry may be configured to perform various operations described herein.

[0198] Video decoder 30 may be implemented by using logic circuitry 47 in a similar manner to implement the various modules described with reference to decoder 30 of FIG. 3 and / or any other decoder system or subsystem described herein. In some examples, video decoder 30 implemented by using logic circuitry may include a picture buffer (implemented by processing unit 2820 or memory 44) and a graphics processing unit (e.g., implemented by processing unit 46). The graphics processing unit may be communicatively coupled to the picture buffer. The graphics processing unit may include video decoder 30 implemented by using logic circuitry 47 to implement the various modules described with reference to FIG. 3 and / or any other decoder system or subsystem described herein.

[0199] In some examples, antenna 42 of video coding system 40 may be configured to receive an encoded bitstream of video data. As described, the encoded bitstream may include data, indicators, index values, mode selection data, or the like, described herein, related to video frame coding, such as data related to a coding partition (e.g., transform coefficients or quantized transform coefficients, optional indicators (as described), and / or data defining a coding partition). Video coding system 40 may further comprise a video decoder 30 coupled to antenna 42 and configured to decode the encoded bitstream. Display device 45 is configured to present the video frames.

[0200] 5 is a simplified block diagram of an apparatus 500 that may be used as either or both of source device 12 and destination device 14 of FIG. 1 according to an example embodiment. Apparatus 500 may implement the techniques of the present application. Apparatus 500 may be a form of a computing system that includes multiple computing devices, or may be a form of a single computing device such as a mobile phone, tablet computer, laptop computer, notebook computer, or desktop computer.

[0201] The processor 502 in the apparatus 500 may be a central processing unit. Alternatively, the processor 502 may be any other type of device or devices capable of manipulating or processing information, existing or to be developed in the future. As shown, the disclosed implementations may be implemented using a single processor, such as the processor 502, although advantages in terms of speed and efficiency may be achieved by using multiple processors.

[0202] In one implementation, the memory 504 in the device 500 may be a read-only memory (ROM) device or a random access memory (RAM) device. Any other suitable type of storage device may be used as the memory 504. The memory 504 may include code and data 506 accessed by the processor 502 through a bus 512. The memory 504 may further house an operating system 508 and application programs 510. The application programs 510 include at least one program that enables the processor 502 to perform the methods described herein. For example, the application programs 510 may include applications 1 through N, which may further include a video coding application that performs the methods described herein. The device 500 may further comprise additional memory in the form of a secondary memory 514. The secondary memory 514 may be, for example, a memory card used with a mobile computing device. Because a video communication session may involve a large amount of information, the information may be stored completely or partially in secondary memory 514 and loaded into memory 504 for processing as needed.

[0203] The device 500 may further include one or more output devices, such as a display 518. In one example, the display 518 may be a touch-sensitive display coupled with touch-sensitive elements operable to sense touch input. The display 518 may be coupled to the processor 502 through the bus 512. Another output device may be provided in addition to or as an alternative to the display 518 to enable a user to program or otherwise use the device 500. When the output device is or includes a display, the display may be implemented in different manners, including using a liquid crystal display (LCD), a cathode-ray tube (CRT) display, a plasma display, or a light emitting diode (LED) display such as an organic LED (OLED) display.

[0204] The apparatus 500 may further include or be connected to an image sensing device 520. The image sensing device 520 may be, for example, a camera or any other image sensing device 520, existing or to be developed in the future, that is capable of sensing an image. The picture may be, for example, a picture of a user operating the apparatus 500. The image sensing device 520 may be positioned directly facing the user operating the apparatus 500. In one example, the placement and optical axis of the image sensing device 520 may be configured such that the field of view of the image sensing device 520 includes an area adjacent to the display 518, and the display 518 is visible from that area.

[0205] Apparatus 500 may further include or be connected to a sound sensing device 522. Sound sensing device 522 may be, for example, a microphone or any other existing or future developed sound sensing device that can sense sounds near apparatus 500. Sound sensing device 522 may be positioned directly facing a user operating apparatus 500 and may be configured to receive sounds, such as voice or other sounds, made by the user when the user operates apparatus 500.

[0206] Although the processor 502 and memory 504 of device 500 are depicted in FIG. 5 as being integrated into a single unit, other configurations may also be used. Execution of processor 502 may be distributed across multiple machines (each machine having one or more processors) that may be directly coupled, or may be distributed within a local area or another network. Memory 504 may also be distributed across multiple machines. For example, memory 504 may be a network-based memory or memory within multiple machines that operate device 500. While depicted herein as a single bus, bus 512 of device 500 may be formed by multiple buses. Furthermore, secondary memory 514 may be directly coupled to another component of device 500 or may be accessed over a network. Additionally, secondary memory 514 may comprise a single integrated unit, e.g., a memory card, or multiple units, e.g., multiple memory cards. Thus, device 500 may be implemented in multiple configurations.

[0207] Figure 6 illustrates the binary, ternary, and quadtree splitting modes.

[0208] A quadtree is a tree structure that indicates that one node can be divided into four child nodes. The H265 video coding standard uses a quadtree-based CTU division mode. A CTU is used as the root node, and each node corresponds to a square region. A node cannot be divided (in this case, the region corresponding to the node is a CU), or the node can be divided into four lower-level nodes. Specifically, as shown in (a) of FIG. 6, the square region is divided into four equally sized square regions (each of the four square regions has half the length and width of the square region before division), and each region corresponds to one node.

[0209] A binary tree is a tree structure that indicates that one node can be divided into two child nodes. In existing coding methods that use binary trees, a node on a binary tree structure cannot be divided, or the node is divided into two lower-level nodes. There are two ways to divide a node into two nodes: (1) horizontal binary division: As shown in Figure 6(b), the region corresponding to the node is divided into two equal-sized regions, an upper region and a lower region, each of which corresponds to one node; or (2) vertical binary division: As shown in Figure 6(c), the region corresponding to the node is divided into two equal-sized regions, a left region and a right region, each of which corresponds to one node.

[0210] A ternary tree is a tree structure that indicates that one node can be divided into three child nodes. In existing coding methods that use ternary trees, nodes on a ternary tree structure cannot be divided, or the node is divided into three lower-level nodes. There are two ways to divide a node into three nodes: (1) horizontal ternary division: As shown in Figure 6(d), the area corresponding to the node is divided into three regions: an upper region, a middle region, and a lower region. Each region corresponds to one node, and the heights of the upper region, middle region, and lower region are 1 / 4, 1 / 2, and 1 / 4 of the node height, respectively; or (2) vertical ternary division: As shown in Figure 6(e), the area corresponding to the node is divided into three regions: a left region, a middle region, and a right region. Each region corresponds to one node, and the widths of the left region, middle region, and right region are 1 / 4, 1 / 2, and 1 / 4 of the node width, respectively.

[0211] In the H.265 video coding standard, a picture frame is divided into non-overlapping coding tree units (CTUs). The CTU size may be set to 64x64 (alternatively, the CTU size may be set to another value, for example, the CTU size in the JVET reference software JEM is increased to 128x128 or 256x256). A 64x64 CTU includes a rectangular pixel matrix with 64 columns and 64 pixels per column, and each pixel includes a luminance component or / and a chrominance component.

[0212] H.265 uses a quad-tree (QT)-based CTU splitting mode. A CTU is used as the root node of the quad-tree, and the CTU is recursively split into multiple leaf nodes in the quad-tree splitting mode. One node corresponds to one picture region. If a node is not split, the node is called a leaf node, and the picture region corresponding to the node becomes a CU. If a node is further split, the picture region corresponding to the node is split into four equally sized regions (the lengths and widths of the four regions are 1 / 2 of the length and width of the split region, respectively), and each region corresponds to one node. Whether these nodes are further split must be determined separately. Whether a node should be split is indicated by a split flag split_cu_flag in the bitstream and corresponding to the node. Node A is split into four nodes Bi, with i=0, 1, 2, and 3. Bi is called A's child node, and A is called Bi's parent node. The quadtree depth (qtDepth) of the root node is 0. The quadtree depth of a node is the quadtree depth of its parent node + 1. For simplicity, in the following, the size and shape of a node are the size and shape of the picture region corresponding to the node.

[0213] More specifically, for a 64x64 CTU node (whose quadtree depth is 0), no splitting can be performed based on the split_cu_flag corresponding to the CTU node, and the CTU node can become a 64x64 CU, or the CTU node can be split into four 32x32 nodes (whose quadtree depth is 1). Each of the four 32x32 nodes can be further split or not split based on the split_cu_flag corresponding to the node. If the 32x32 node is further split, four 16x16 nodes (whose quadtree depth is 2) are generated. The rest can be inferred by analogy until the node cannot be further split. In this way, one CTU is split into one group of CUs. The minimum size of a CU is identified in the Sequence Parameter Set (SPS). For example, an 8x8 CU is the smallest CU. In the recursive splitting process described above, if the size of a node is equal to the minimum CU size, the node will not be split further by default and the split flag for the node does not need to be included in the bitstream.

[0214] After a node is analyzed to be a leaf node, the leaf node is a CU, and coding information corresponding to the CU (including information such as a prediction mode and the transform coefficients of the CU, for example, the coding_unit() syntax structure in H.265) is further analyzed. Then, decoding processes such as prediction, dequantization, inverse transform, and loop filtering are performed on the CU based on the coding information to generate a reconstructed picture corresponding to the CU. The quadtree structure allows the CTU to be divided into groups of CUs of appropriate sizes based on local picture characteristics. For example, flat regions are divided into relatively large CUs, and regions with rich texture are divided into relatively small CUs.

[0215] Based on quadtree partitioning, binary tree (BT) and ternary tree (TT) partitioning modes are added to the Versatile Video Coding Test Model (VTM) reference software. VTM is a new codec reference software developed by JVET.

[0216] Binary split is the division of a node into two child nodes. There are two specific binary split modes: (1) horizontal binary split: As shown in Figure 6(b), the region corresponding to the node is divided into two equally sized regions, the upper region and the lower region (specifically, the width remains unchanged and the height is half the height of the region before the split), and each region corresponds to one node; or (2) vertical binary split: As shown in Figure 6(c), the region corresponding to the node is divided into two equally sized regions, the left region and the right region (specifically, the height remains unchanged and the width is half the width of the region before the split).

[0217] A ternary split is the division of a node into three child nodes. There are two specific ternary split modes: (1) Horizontal ternary division: As shown in Figure 6(d), the area corresponding to a node is divided into three regions: upper, middle, and lower, each corresponding to one node, and the heights of the upper, middle, and lower regions are 1 / 4, 1 / 2, and 1 / 4 of the node's height, respectively; or (2) Vertical ternary division: As shown in Figure 6(e), the area corresponding to a node is divided into three regions: left, middle, and right, each corresponding to one node, and the widths of the left, middle, and right regions are 1 / 4, 1 / 2, and 1 / 4 of the node's width, respectively.

[0218] VTM uses a partitioning mode that cascades QT and BT / TT, which is abbreviated as QT-MTT (Quad Tree plus Multi-Type Tree) partitioning mode. More specifically, a CTU is partitioned using QT, thereby generating a QT leaf node. A node in QT can be further partitioned into four QT child nodes by using quadtree partitioning, or one QT leaf node can be generated without using quadtree partitioning. The QT leaf node serves as the root node of MTT. A node in MTT can be partitioned into child nodes by using one of four partitioning modes: horizontal binary partitioning, vertical binary partitioning, horizontal ternary partitioning, and vertical ternary partitioning, or become an MTT leaf node without further partitioning. The leaf node of MTT is a coding unit (CU).

[0219] Figure 7 shows an example of how a CTU is partitioned into 16 CUs, a through p, using QT-MTT. In the right diagram of Figure 7, each endpoint represents a node. Four lines connected to a node indicate a quadtree partition, two lines connected to a node indicate a binary partition, and three lines connected to a node indicate a ternary partition. Solid lines indicate QT partitions, dashed lines indicate the first-layer partition of a multi-type tree (MTT), and dashed lines indicate the second-layer partition of an MTT. a through p are 16 MTT leaf nodes, and each MTT leaf node represents one CU. The partition diagram of the CU shown in the left diagram of Figure 7 is obtained for a CTU by using the partitioning mode shown in the right diagram of Figure 7.

[0220] In the QT-MTT split mode, each CU has a QT depth (also called Quad-tree depth or QT depth) and an MTT depth (also called Multi-Type-Tree depth or MTT depth). The QT depth indicates the QT depth of the QT leaf node to which the CU belongs, and the MTT depth indicates the MTT depth of the MTT leaf node to which the CU belongs. For the root node of the coding tree, the QT depth is 0 and the MTT depth is 0. When QT split is used for a node on the coding tree, the QT depth of a child node obtained through splitting is the QT depth of the node + 1, and the MTT depth remains unchanged. Similarly, when MTT split (i.e., either BT split or TT split) is used for a node on the coding tree, the MTT depth of a child node obtained through splitting is the MTT depth of the node + 1, and the QT depth remains unchanged. For example, in Figure 7, the QT depth of a, b, c, d, e, f, g, i, or j is 1 and the MTT depth is 2; the QT depth of h is 1 and the MTT depth is 1; the QT depth of n, o, or p is 2 and the MTT depth is 0; and the QT depth of l or m is 2 and the MTTT depth is 1. If a CTU is divided into only one CU, the QT depth of the CU is 0 and the MTT depth is 0.

[0221] In HEVC, one CU includes one luma block quantization parameter (QP) and two chrominance block quantization parameters, and the chrominance block quantization parameter is derived from the luma block quantization parameter. The chrominance block quantization parameter is abbreviated as chrominance QP, and the luma block quantization parameter is abbreviated as luma QP. Decoding the luma QP of the current CU includes the following processes:

[0222] The diff_cu_qp_delta_depth syntax element is obtained from a Picture Parameter Set (PPS), and a Quantization Group (QG) is derived based on this syntax element. Specifically, a quantization group is an N×N region, where N=CTUSize>>diff_cu_qp_delta_depth, and CTUSize is the side length of a CTU. For example, the CTUSize of a 64×64 CTU is 64. A 64×64 CTU is divided into M QGs, each of which has a size of N×N, where M is a positive integer. For example, when diff_cu_qp_delta_depth=2, the CTU is divided into 16 QGs, each of which has a size of 16×16, as shown in FIG. 8. Because HEVC uses only QT partitioning, if a QG obtained by the above-mentioned QG determination method contains multiple CUs whose size is smaller than the size of the QG, the QG is guaranteed to contain multiple complete CUs. In other words, multiple CUs whose size is smaller than the size of the QG are completely contained in the QG, and CUs whose size is smaller than the size of the QG cannot be contained in multiple QGs. In addition, when only QT division is used, the QG obtained by the above-mentioned QG determination method can further ensure that a CU is definitely contained in the QG when it has the same size as the QG. When a CU is larger than the QG, the CU definitely contains multiple complete QGs.

[0223] The current quantization group (current QG) in which the current CU is located is determined. The current QG is the QG that covers the coordinates of the top-left corner of the current CU. If the coordinates of the top-left corner of the current CU are Pcu = (xCb, yCb), the coordinates of the top-left corner of the current quantization group are Pqg = (xQg, yQg), as follows: xQg=xCb-(xCb&((1< <Log2MinCuQpDeltaSize)-1)) yQg=yCb-(yCb&((1< <Log2MinCuQpDeltaSize)-1))

[0224] Log2MinCuQpDeltaSize=log2(CTUSize)-diff_cu_qp_delta_depth, where log2(x) is the base 2 logarithm of x.

[0225] A QP differential value of the current CU, for example, CuQpDeltaVal in the HEVC standard, is obtained. If the current CU is the first CU with a residual in the QG (for example, if one of the coded block flags cbf_luma, cbf_cb, and cbf_cr of the current CU has a non-zero value, it indicates that the current CU has a residual), the QP differential value of the current CU is parsed from the bitstream. The QP differential component is used as the QP differential value of all CUs whose coding sequence is after that of the current CU in the current QG. The QP differential value of all CUs whose coding sequence is before that of the current CU in the current QG is 0.

[0226] The luma block quantization parameter predictor of the current QG, e.g., qP in the HEVC standard. Y_PRED is obtained. qP Y_PRED can be obtained through prediction based on the luma QP of the left neighboring arrangement of the current QG and the luma QP of the upper neighboring arrangement. The left neighboring arrangement of the current QG is (xQg-1, yQg), and the upper neighboring arrangement is (xQg, yQg-1). The luma QP in the upper neighboring arrangement is the luma QP of the coding unit covering the upper neighboring arrangement. If the upper neighboring arrangement is unavailable or does not belong to the same tile as the current block, the luma QP in the upper neighboring arrangement is the luma QP of the last CU in the previous QG (for example, qP in the HEVC standard). Y_PREV) Similarly, the luma QP in the left neighboring arrangement is the luma QP of the coding unit covering the left neighboring arrangement. If the left neighboring arrangement is unavailable or does not belong to the same tile as the current block, the luma QP in the left neighboring arrangement is set to the luma QP of the last CU in the previous QG. There may be multiple ways to determine that a neighboring arrangement is unavailable. For example, if the neighboring arrangement is outside the current strip, the neighboring arrangement is unavailable. In another example, if the neighboring arrangement is outside the current picture, the neighboring arrangement is unavailable. In another example, if the neighboring arrangement is not inside the current CTU, the neighboring arrangement is unavailable. In another example, if the pixels in the neighboring arrangement have not been reconstructed, the neighboring arrangement is unavailable.

[0227] The luma QP of the current CU is obtained by adding the luma block quantization parameter predictor of the current QG to the QP delta value of the current CU.

[0228] In the QT-MTT split mode, by using the aforementioned QG split mode, it can be seen that one QG may only contain a part of one CU, or one CU may contain multiple different QGs. Therefore, a new decoding (QG decision) method is needed to ensure matching between QGs and CUs, i.e., to ensure that one CU does not belong to two different QGs, thereby improving decoding efficiency.

[0229] 9 is a flowchart illustrating an exemplary operation of a video decoder (e.g., video decoder 30 of FIG. 3) according to one embodiment of the present application. One or more structural elements of video decoder 30 may be used to perform the technique of FIG. 9. This embodiment includes the following steps.

[0230] 901: Analyze coding tree division information to obtain the current node.

[0231] The coding tree split information is obtained from the bitstream received by video decoder 30, and this step may be particularly performed by an entropy decoding unit within video decoder 30.

[0232] The current node may be a CU, for example, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, or p in Figure 7. Alternatively, the current node may be a node that needs to be further divided in the QT-MTT division process of the CTU. Figure 7 is used as an example, and the current node may be the node corresponding to a and b, the node corresponding to c and d, the node corresponding to e, f, and g, the node corresponding to i and j, the node corresponding to l, m, n, o, and p, the node corresponding to l and m, the node corresponding to a, b, c, d, e, f, and g, or the node corresponding to h, i, and j.

[0233] 902: Determine an area covered by the current quantization group based on the depth N of the current node. In one implementation, determining an area covered by the current quantization group based on the depth N of the current node includes determining the coordinate of the upper left corner of the area covered by the current quantization group. After the coordinate of the upper left corner is determined, the specific area covered by the current quantization group can be determined. Therefore, in the following description, determining an area covered by the current quantization group may be understood as determining the coordinate of the upper left corner of the area covered by the current quantization group.

[0234] It may be understood that there may be different ways to determine the depth N of the current node based on different requirements.

[0235] In this embodiment of the present invention, four ways are provided to determine the area covered by the current quantization group based on the depth N of the current node, as follows:

[0236] Method 1: Determine the area covered by the current quantization group based on the depth N of the current node and the first threshold T1.

[0237] Specifically, first, it is determined that the depth N of the current node is greater than a first threshold T1. If the depth N of the current node is greater than the first threshold T1, the parent node of the (N-T1)th layer of the current node is obtained. Then, it is determined that the area covered by the current quantization group is the area covered by the parent node of the (N-T1)th layer. The first threshold T1 may be a preset non-negative integer, for example, 0, 1, 2, or 3.

[0238] There are two ways to determine the depth N of the current node. One way is to determine the depth N of the current node as the QT depth of the current node. For example, in Figure 7, the QT depth of nodes a, b, c, d, e, f, g, h, i, j, or k is 1, and the QT depth of l, m, n, o, or p is 2. The other way is to determine the depth N of the current node as the sum of the QT depth of the current node and the MTT depth of the current node. For example, in Figure 7, the QT depth of node k is 1 and the MTT depth is 0. Therefore, the depth N of node k is 1. In Figure 7, the QT depth of node a is 1 and the MTT depth is 2. Therefore, the depth N of node a is 3. The QT depth of the root node of the coding tree is 0. When QT splitting is used for a node on the QT coding tree, the QT depth of a child node obtained through splitting is the QT depth of that node + 1. If QT splitting is not used for a node on the QT, the node is an MTT root node. The MTT depth of the MTT root node is 0. If MTT splitting is used for a node on the MTT coding tree, the MTT depth of a child node obtained through splitting is the MTT depth of the node + 1, and the QT depth of the child node is the QT depth of the node. In other words, starting from the CTU root node, if the current node is obtained after S1 QT splits and S2 MTT splits, the QT depth of the current node is S1, and the MTT depth of the current node is S2. Figure 7 is used as an example. Nodes with an MTT depth of 1 include the nodes corresponding to a and b (i.e., the nodes containing the regions where a and b are located), the nodes corresponding to c and d, the nodes corresponding to e, f, and g, the nodes corresponding to h, the nodes corresponding to i and j, the node corresponding to l, and the node corresponding to m. An MTT depth of 1 indicates that the node can be obtained by performing MTT splitting only once on the QT leaf nodes obtained after QT splitting is performed on the CTU.Nodes with an MTT depth of 2 include the node corresponding to a, the node corresponding to b, the node corresponding to c, the node corresponding to d, the node corresponding to e, the node corresponding to f, the node corresponding to g, the node corresponding to i, and the node corresponding to j. An MTT depth of 2 indicates that the nodes are obtained by performing MTT split twice on the QT leaf nodes obtained after QT split is performed on the CTU. By analogy, there may be nodes with an MTT depth of 3, 4, 5, or similar values ​​(there are no nodes in Figure 7 with an MTT depth greater than 2).

[0239] Method 2: Determine the area covered by the current quantization group based on the depth N of the current node and the first threshold T1. In this implementation, the depth N of the current node is determined as the QT depth of the current node.

[0240] If the depth N of the current node is greater than a first threshold T1, or if the multitype tree depth M of the current node is greater than 0, the Kth layer quadtree node of the current node is obtained, where K=min(N, T1), and min(a, b) indicates that the smaller value of a and b is used. Then, the area covered by the current quantization group is determined to be the area covered by the Kth layer quadtree node. The first threshold T1 may be a preset non-negative integer, for example, 0, 1, 2, or 3.

[0241] The K-th layer quadtree node is the node generated after K quadtree divisions starting from CTU, including the current node, i.e., the parent node of the current node in the (M+NK)th layer. The coordinates (xK, yK) of the upper left corner of the K-th layer quadtree node are as follows: xK=xCb-(xCb&((1< <K1)-1)) yK=yCb-(yCb&((1< <K1)-1))

[0242] xCb and yCb represent the horizontal and vertical coordinates of the coordinates (xCb, yCb) of the upper left corner of the current node, and K1 = log2(CTUSize) - K.

[0243] The width and height of the quadtree node of the K-th layer are less than (1<<K1), and a<<b represents the operation of shifting a to the left by b bits.

[0244] Method 3: Based on the depth N of the current node and the first threshold T1, determine the area covered by the current quantization group. The current node is a node on the QT-MTT coding tree, and the current node can be further divided or cannot be divided.

[0245] Specifically, first determine whether the depth N of the current node is equal to the first threshold T1. If the depth N of the current node is equal to the first threshold T1, it is determined that the area covered by the current quantization group is the area covered by the current node. Correspondingly, the coordinates of the upper left corner of the node are saved, and the width and height of the node may also be saved. The CUs within the current quantization group may read the information saved during processing such as luminance QP prediction.

[0246] For the method of determining the value of the first threshold T1 and the depth N, refer to Method 1.

[0247] Method 4: Based on the depth N of the current node and the first threshold T1, determine the area covered by the current quantization group. In this implementation form, the depth N of the current node is determined as the QT depth of the current node.

[0248] When both Condition 1 and Condition 2 are satisfied, it is determined that the area covered by the current quantization group is the area covered by the current node. Condition 1 means that the depth N of the current node is less than or equal to the first threshold T1. Condition 2 means that the multi-type tree depth M of the current node is equal to 0.

[0249] Method 5: Determine the area covered by the current quantization group based on the depth N of the current node and the first threshold T1. In this implementation, the depth N of the current node is determined as the QT depth of the current node.

[0250] If both Condition 3 and Condition 4 are satisfied, or Condition 5 is satisfied, the area covered by the current quantization group is determined to be the area covered by the current node. Condition 3 is that the depth N of the current node is equal to a first threshold T1. Condition 4 is that the multitype tree depth M of the current node is equal to 0. Condition 5 is that the depth N of the current node is less than the first threshold T1.

[0251] Method 6: Determine the area covered by the current quantization group based on the depth N of the current node and the first threshold T1. In this implementation, the depth N of the current node is determined as the QT depth of the current node.

[0252] If both Condition 3 and Condition 4 are satisfied, or if both Condition 5 and Condition 6 are satisfied, the area covered by the current quantization group is determined to be the area covered by the current node. Condition 3 is that the depth N of the current node is equal to the first threshold T1. Condition 4 is that the multitype tree depth M of the current node is equal to 0. Condition 5 is that the depth N of the current node is less than the first threshold T1. Condition 6 is that the multitype tree depth M of the current node is equal to or less than the fourth threshold T4.

[0253] The fourth threshold T4 is a preset positive integer. For example, T4 may be 1, 2, or 3. In another example, T4=T1−N.

[0254] Method 7: Determine the area covered by the current quantization group based on the depth N of the current node and the first threshold T1. In this implementation, the depth N of the current node is determined as the QT depth of the current node.

[0255] If both Condition 1 and Condition 7 are met, the area covered by the current quantization group is determined to be the area covered by the current node. Condition 1 is that the depth N of the current node is less than or equal to a first threshold T1. Condition 7 is that the multitype tree depth M of the current node is less than or equal to T1-N.

[0256] Method 8: Determine the area covered by the current quantization group based on the depth N of the current node, the division mode of the current node, and the second threshold T2.

[0257] The details are as follows:

[0258] 1. If the depth N of the current node is equal to the second threshold T2-1 and the division mode of the current node is a ternary division mode, it is determined that the area covered by the current quantization group is the area covered by the current node.

[0259] 2. Alternatively, if the depth N of the current node is equal to the second threshold T2 and the partitioning mode of the current node is a binary partitioning mode or a quadtree partitioning mode, it is determined that the area covered by the current quantization group is the area covered by the current node.

[0260] 3. Alternatively, if the depth of the current node is less than or equal to the second threshold and the current node is no longer divided, it is determined that the area covered by the current quantization group is the area covered by the current node. In this case, the area covered by the current quantization group is the coverage area of ​​the CU.

[0261] The second threshold T2 is a preset positive integer. For example, the second threshold T2 may be set to X times the first threshold T1, where X is an integer greater than 1. For example, X may be 2, 3, or 4. Alternatively, T2 may be directly set to 2, 3, 4, 6, 8, 9, or a similar value.

[0262] The depth N of the current node is determined based on the QT depth of the current node and the dual depth Db of the current node. For example, in one implementation, N=Dq*2+Db, and in another implementation, N=Dq+Db, where Dq is the QT depth of the current node.

[0263] The MTT partitioning may be a binary partitioning, a ternary partitioning, or a quadtree partitioning. Therefore, in different partitioning modes, the binary depth Db of the current node may be determined in different manners. In particular, the depth of a non-binary partitioning needs to be converted to a binary depth. For example, the conversion may be performed as follows:

[0264] If the current node is the MTT root node, the dual depth Db of the current node is 0.

[0265] Alternatively, if the current node is an MTT node but not an MTT root node (in other words, the MTT depth of the current node is greater than 0), and the current node is a child node obtained in binary split mode, the binary depth Db of the current node is the binary depth of the current node's immediate parent node + 1.

[0266] Alternatively, if the current node is an MTT node, but not an MTT root node, and the current node is a middle child node (i.e., a middle child node among three child nodes) obtained in ternary split mode, the dual depth Db of the current node is the dual depth of the current node's immediate parent node + 1.

[0267] Alternatively, if the current node is an MTT node and not an MTT root node, and the current node is a non-meson node obtained in ternary split mode, the dual depth Db of the current node is the dual depth of the current node's immediate parent node + 2.

[0268] It can be seen that the depth determined by the formula N=Dq*2+Db has a one-to-one correspondence with the area of ​​the node. For example, when the CTU is 128×128 and the depth of the node is N, the area of ​​the node is (128×128)>>N.

[0269] Method 9: Determine the area covered by the current quantization group based on the depth N of the current node, the splitting mode of the current node, and the second threshold T3.

[0270] The details are as follows:

[0271] 1. If the depth N of the current node is equal to the third threshold T3-1 and the partitioning mode of the current node is a ternary partitioning mode or a quadtree partitioning mode, it is determined that the area covered by the current quantization group is the area covered by the current node.

[0272] 2. Alternatively, if the depth N of the current node is equal to the third threshold T3 and the division mode of the current node is a binary division mode, it is determined that the area covered by the current quantization group is the area covered by the current node.

[0273] 3. Alternatively, if the depth N of the current node is equal to the third threshold T3 and the current node is no longer divided, it is determined that the area covered by the current quantization group is the area covered by the current node. In this case, the area covered by the current quantization group is the coverage area of ​​the CU.

[0274] The third threshold T3 may be a preset positive integer, for example, 3, 4, or 5.

[0275] See Method 3 for the method to determine the depth N of the current node.

[0276] 903: Obtain the QP differential value of the current CU in the area covered by the current quantization group.

[0277] For a specific implementation of this step, see existing implementations, for example, the CuQpDeltaVal method in the HEVC standard. More specifically, if the current CU is the first CU that has a residual within the current QG, the QP differential value (e.g., including absolute value and symbol) of the current CU is parsed from the bitstream. If the coding sequence of the current CU is after the coding sequence of the first CU that has a residual within the current QG, the QP differential value of the current CU is determined as the QP differential value of the first CU that has a residual within the current QG. If the coding sequence of the current CU is before the coding sequence of the first CU that has a residual within the current QG, the QP differential value of the current CU is determined to be 0. If at least one of the coded block flags (cbf) cbf_luma, cbf_cb, and cbf_cr of the current CU has a non-zero value, it indicates that the current CU has a residual.

[0278] 904: Obtain a reconstructed picture of the current CU based on the QP differential value of the current CU.

[0279] For a specific implementation of this step, refer to existing implementations, for example, refer to the scheme in the HEVC standard, or in another example, refer to the scheme in the H.264 / AVC standard. For example, the dequantized coefficients of the current CU may be obtained based on the QP difference value of the current CU. The reconstructed residual block of the current CU is obtained based on the dequantized coefficients of the current CU. Then, the reconstructed picture of the current CU is obtained based on the reconstructed residual block of the current CU.

[0280] Specifically, the luma QPA in the left adjacent arrangement and the luma QPB in the upper adjacent arrangement are first obtained based on the coordinates of the upper left corner of the current quantization group, and the luma QP predictor of the current QG is obtained based on the QPA and QPB. Y_PRED See the calculation method for . The coordinates of the top-left corner of the current QG are recorded as Pqg = (xQg, yQg). The left-neighboring configuration of the current QG is PA = (xQg-1, yQg), and the top-neighboring configuration of the current QG is PB = (xQg, yQg-1). The luma QP of the top-neighboring configuration is the luma QP of the coding unit that covers the top-neighboring configuration PB. If the top-neighboring configuration is unavailable (e.g., it is outside the current strip or the top-neighboring configuration reconstruction is not complete) or does not belong to the same tile as the current block, the luma QP of the top-neighboring configuration is the luma QP of the last CU in the previous QG (e.g., qP in the HEVC standard). Y_PREV ) Similarly, the luma QP in the left neighboring arrangement is the luma QP of the coding unit that covers the left neighboring arrangement PA. If the left neighboring arrangement is unavailable or does not belong to the same tile as the current block, the luma QP in the left neighboring arrangement is set to the luma QP of the last CU in the previous QG.

[0281] The luminance QP predictor for the current QG may be obtained based on QPA and QPB using one of the following methods:

[0282] Method 1: The average value of QPA and QPB is used as the luma QP predictor. The method is the same as that in HEVC.

[0283] Method 2: The area of the current CU is R1, the area of the CU where the left adjacent arrangement is located is R2, and the area of the CU where the upper adjacent arrangement is located is R3. When max(R1, R2) / min(R1, R2)*Th < max(R1, R3) / min(R1, R3), the luminance QP prediction factor is set to QPA. When max(R1, R2) / min(R1, R2) > max(R1, R3) / min(R1, R3)*Th, the luminance QP prediction factor is set to QPB. Otherwise, the luminance QP prediction factor is set to the average value of QPA and QPB. max(a, b) is the larger value of a and b, min(a, b) is the smaller value of a and b, and Th is a positive number greater than or equal to 1, for example, Th = 1, 2, 4.

[0284] The calculation method of the luminance QP prediction factor for all CUs in QG is the same. Therefore, as a simplified implementation form, when the first CU of QG is decoded, the calculation process for the luminance QP prediction factor of QG may be executed, and the luminance QP prediction factor is used for other CUs in QG. In this way, the calculation amount is reduced.

[0285] Next, the luminance QP of the current CU is obtained by adding the QP difference value (QP delta) of the current CU to the luminance block quantization parameter prediction factor of the current QG. Specifically, Qp Y =((qP Y_PRED +CuQpDeltaVal+52+2*QpBdOffset Y )%(52+QpBdOffset Y ))-QpBdOffset Y where qP Y_PRED is the luminance block quantization parameter prediction factor, CuQpDeltaVal is the QP difference value of the current CU, and QpBdOffsetY is a preset constant related to the bit width of the luminance component (for example, when the bit width of the luminance component is 8, QpBdOffsetY is 0, and when the bit width of the luminance component is 10, QpBdOffsetY is 12).

[0286] Optionally, in the improved processing method, if the QP difference value of the first CU having a residual in the current QG is not equal to 0, the luma QP of all CUs whose coding sequences precede the coding sequence of the first CU having a residual in the current QG is modified to the luma QP of the first CU having a residual. In other words, the QP difference values ​​of all CUs in the current QG are set to the QP difference value of the current CU, and the QP values ​​of all CUs in the current QG are set to the QP value of the current CU. The specified QP value is used for subsequent coding operations, such as deblocking filtering or QP prediction.

[0287] After the luma QP and chrominance QP of the current CU are obtained, dequantization and inverse transform operations may be performed on the transform coefficients of the current CU, thereby obtaining a residual picture of the current CU.

[0288] An inter-frame prediction process or an intra-frame prediction process is performed on the current CU based on the prediction mode of the current CU, thereby obtaining an inter-frame predicted picture or an intra-frame predicted picture of the current CU.

[0289] The residual picture of the current CU is overlaid onto the predicted picture of the current CU to generate a reconstructed picture of the current CU.

[0290] In one implementation, after the luminance QP is obtained, the chrominance QP can be further obtained based on the mapping relationship between the luminance QP and the chrominance QP and the offset value of the chrominance QP. The specific embodiment is not limited to this embodiment of the present invention.

[0291] Another embodiment of the present invention further provides a video decoder 30, which comprises: The entropy decoding unit 304 is configured to analyze coding tree partitioning information to obtain a current node, determine an area covered by a current quantization group based on a depth N of the current node, obtain a QP difference value of the current CU in the area covered by the current quantization group, and determine a luma QP of the current CU based on the QP difference value of the current CU.

[0292] In one implementation, determining the area covered by the current quantization group based on the depth N of the current node includes determining the coordinate of the upper left corner of the area covered by the current quantization group. After the coordinate of the upper left corner is determined, the specific area covered by the current quantization group can be determined. Therefore, in the following description, determining the area covered by the current quantization group may be understood as determining the coordinate of the upper left corner of the area covered by the current quantization group.

[0293] The inverse quantization unit 310 is configured to obtain dequantized coefficients of the current CU based on the luma QP of the current CU.

[0294] The inverse transform processing unit 312 is configured to obtain a reconstructed residual block of the current CU based on the dequantized coefficients of the current CU.

[0295] The reconstruction unit 314 is configured to obtain a reconstructed picture of the current CU based on the reconstructed residual block of the current CU.

[0296] For a specific implementation of video decoder 30, please refer to the method described in Figure 9. The details will not be described again here.

[0297] In one implementation, the depth N of the current node is the quadtree depth N of the current node. The entropy decoding unit 304 is particularly configured to determine the area covered by the current quantization group based on the depth N of the current node, or to determine the area covered by the current quantization group based on the multi-type depth M of the current node. If N is greater than a first threshold T1 or M is greater than 0, the area covered by the current quantization group is the area covered by the K-th layer quadtree node of the current node, where K is the smaller value of N and T1, and the K-th layer quadtree node is the quadtree node that includes the current node and is generated after K quadtree divisions starting from the coding tree unit CTU.

[0298] The Kth layer quadtree node is the (M+NK)th layer parent node of the current node.

[0299] In one implementation, the depth N of the current node is the quadtree depth N of the current node. The entropy decoding unit 304 is specifically configured to determine the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. If N is less than or equal to a first threshold T1 and M is equal to 0, the area covered by the current quantization group is the area covered by the current node.

[0300] In one implementation, the depth N of the current node is the quadtree depth N of the current node. The entropy decoding unit 304 is particularly configured to determine the area covered by the current quantization group based on the quadtree depth N of the current node, or to determine the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. When N is equal to the first threshold T1 and M is equal to 0, the area covered by the current quantization group is the area covered by the current node. Alternatively, when N is less than the first threshold T1, the area covered by the current quantization group is the area covered by the current node.

[0301] In one implementation, the depth N of the current node is the quadtree depth N of the current node. The entropy decoding unit 304 is specifically configured to determine the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. When N is equal to the first threshold T1 and M is equal to 0, the area covered by the current quantization group is the area covered by the current node. Alternatively, when N is less than the first threshold T1 and M is equal to or less than the fourth threshold T4, the area covered by the current quantization group is the area covered by the current node.

[0302] In one implementation, the fourth threshold T4 may be a preset positive integer, for example, 1, 2, 3, or 4.

[0303] In one implementation, the fourth threshold may be determined based on the first threshold T1 and the quadtree depth N of the current node, for example, T4=T1−N.

[0304] In one implementation, the depth N of the current node is the quadtree depth N of the current node. The entropy decoding unit 304 is specifically configured to determine the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node. If N is less than or equal to a first threshold T1 and M is less than or equal to T1-N, the area covered by the current quantization group is the area covered by the current node.

[0305] In one implementation, the entropy decoding unit 304 may be specifically configured to obtain the parent node of the (N-T1)th layer of the current node when the depth N of the current node is greater than a first threshold T1, and determine that the area covered by the current quantization group is the area covered by the parent node of the (N-T1)th layer.

[0306] In one implementation, the entropy decoding unit 304 may be specifically configured to determine that the area covered by the current quantization group is the area covered by the current node when the depth N of the current node is equal to a first threshold T1.

[0307] In one implementation, the depth of the current node is the QT depth of the current node, or the depth of the current node is the sum of the QT depth of the current node and the MTT depth of the current node.

[0308] In one implementation, the first threshold T1 is 0, 1, 2, or 3.

[0309] In one implementation, the entropy decoding unit 304 may be further configured to obtain the partitioning mode of the current node, and determine that the area covered by the current quantization group is the area covered by the current node if the depth N of the current node is equal to a second threshold T2-1 and the partitioning mode of the current node is a ternary partitioning mode, or determine that the area covered by the current quantization group is the area covered by the current node if the depth N of the current node is equal to the second threshold T2 and the partitioning mode of the current node is a binary partitioning mode or a quadtree partitioning mode, or determine that the area covered by the current quantization group is the area covered by the current node if the depth N of the current node is less than or equal to the second threshold and the current node is no longer partitioned.

[0310] In one implementation, the second threshold is 2, 3, 4, 6, 8, or 9.

[0311] In one implementation, the entropy decoding unit 304 may be further configured to obtain the partitioning mode of the current node, and determine that the area covered by the current quantization group is the area covered by the current node if the depth N of the current node is equal to a third threshold T3-1 and the partitioning mode of the current node is a ternary partitioning mode or a quadtree partitioning mode, or determine that the area covered by the current quantization group is the area covered by the current node if the depth N of the current node is equal to the third threshold T3 and the partitioning mode of the current node is a binary partitioning mode, or determine that the area covered by the current quantization group is the area covered by the current node if the depth N of the current node is equal to the third threshold T3 and the current node is no longer partitioned.

[0312] In one implementation, the third threshold may be 3, 4, 5, or a similar value.

[0313] In one implementation, the entropy decoding unit 304 may be specifically configured to determine the depth N of the current node based on the QT depth of the current node and the binary depth Db of the current node.

[0314] In one implementation, the entropy decoding unit 304 may be specifically configured to determine the depth N of the current node by using the following formula: N=Dq*2+Db, where Dq is the QT depth of the current node.

[0315] In one implementation, if the current node is an MTT root node, the dual depth Db of the current node is 0; or if the current node is an MTT node, but is not an MTT root node, and the current node is a child node obtained in dual split mode, the dual depth Db of the current node is the dual depth of the current node's immediate parent node + 1; or if the current node is an MTT node, but is not an MTT root node, and the current node is an intermediate child node obtained in ternary split mode, the dual depth Db of the current node is the dual depth of the current node's immediate parent node + 1; or if the current node is an MTT node, but is not an MTT root node, and the current node is a non-intermediate child node obtained in ternary split mode, the dual depth Db of the current node is the dual depth of the current node's immediate parent node + 2.

[0316] In one implementation, the entropy decoding unit 304 is further configured to modify the luma QP of all CUs whose coding sequences precede the coding sequence of the first CU having a residual in the current quantization group to the luma QP of the first CU having a residual, when the QP difference value of the first CU having a residual in the current quantization group is not equal to 0. Correspondingly, when the current CU is a CU preceding the first CU having a residual in the current quantization group, the inverse quantization unit 310 is particularly configured to obtain dequantized coefficients of the current CU based on the luma QP of the first CU having a residual.

[0317] An embodiment of the present invention further provides a video decoder including an implementation circuit configured to perform any one of the methods described above.

[0318] An embodiment of the present invention further provides a video decoder comprising at least one processor and a non-volatile computer-readable storage medium coupled to the at least one processor, the non-volatile computer-readable storage medium storing a computer program executable by the at least one processor, the video decoder being configured to perform any one of the aforementioned methods when the computer program is executed by the at least one processor.

[0319] An embodiment of the present invention further provides a computer-readable storage medium configured to store a computer program executable by a processor, the computer program, when executed by at least one processor, performing any one of the methods described above.

[0320] An embodiment of the present invention further provides a computer program, which when executed performs any one of the methods described above.

[0321] In one or more examples, the functions described may be implemented by hardware, software, firmware, or any combination thereof. If implemented by software, the functions may be stored on or transmitted as one or more instructions or code on a computer-readable medium and executed by a hardware-based processing unit. A computer-readable medium may include a computer-readable storage medium, which corresponds to a tangible medium such as a data storage medium or a communication medium. A communication medium includes any medium that facilitates the transfer of a computer program from one place to another, for example, according to a communication protocol. In this manner, a computer-readable medium may generally correspond to (1) a non-transitory tangible computer-readable storage medium or (2) a communication medium such as a signal or carrier wave. A data storage medium may be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and / or data structures to implement the techniques described in embodiments of the present invention. A computer program product may include a computer-readable medium.

[0322] For example, without limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory, or any other medium accessible by a computer that can be used to store necessary program code in the form of instructions or data structures. Additionally, any connection may be properly termed a computer-readable medium. For example, if instructions are transmitted from a website, server, or another remote source using coaxial cable, fiber optic cable, twisted pair wire, digital subscriber line (DSL), or wireless technologies such as infrared, radio waves, and microwaves, the coaxial cable, fiber optic cable, twisted pair wire, DSL, or wireless technologies such as infrared, radio waves, and microwaves are included in the definition of medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transitory media, and in fact refer to non-transitory, tangible storage media. As used herein, disk and disc include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), floppy disks, and Blu-ray discs. Disks typically reproduce data magnetically, while discs reproduce data optically through the use of lasers. Combinations of the foregoing items should also be included within the scope of computer-readable media.

[0323] The instructions may be executed by one or more processors. The one or more processors may be, for example, one or more digital signal processors (DSPs), general-purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Accordingly, the term "processor" as used herein may refer to any of the foregoing structures or any other structure suitable for implementing the techniques described herein. Additionally, in some aspects, the functionality described herein may be realized in dedicated hardware and / or software modules configured to perform encoding and decoding, or incorporated into a combined codec. Additionally, these techniques may be implemented entirely in one or more circuits or logic elements.

[0324] The techniques of this disclosure may be implemented in a variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC), or a set of ICs (e.g., a chipset). Various components, modules, or units are described in this disclosure to highlight functional aspects of devices configured to perform the disclosed techniques, but are not necessarily implemented by different hardware units. Rather, as described above, the various units may be combined into a codec hardware unit in combination with suitable software and / or firmware, or provided by a set of interoperable hardware units. The hardware units include one or more processors as described above. [Explanation of symbols]

[0325] 10 Coding Systems 12 Source Devices 13 Encoded Picture, Encoded Data 14 Destination Device 16 Picture Source 17 Picture Data 18 Picture Preprocessing Unit, Preprocessing Unit 19 Picture Data 20 Encoder 21 Encoded Picture Data 22 Communication Interface or Communication Unit 28 Communication Interface or Communication Unit 30 Decoder 32 Post-processing unit, post-processor 33 Picture Data 34 Display Devices 40 Video Coding System 41 Imaging Device 42 Antenna 43 processors 44 memory 45 Display Devices 46 Processing Unit 47 Logic Circuits 201 Pictures 202 Input Block 203 204 Residual Calculation Unit 205 Residual Blocks 206 Conversion Processing Unit 207 Conversion Factor 208 quantization units 209 Conversion Factor 210 Inverse Quantization Unit 211 Dequantized Coefficients 212 Inverse Transformation Processing Unit 213 Inverse Transform Block 214 Reconstruction Unit 215 reconstructed blocks 216 buffers 220 Loop Filter Unit 221 Filtered Blocks 230 Decoded Picture Buffer 231 Reference Picture Data 244 Inter-frame Prediction Unit 245 Interframe Prediction Blocks 246 Motion Compensation Unit 254 intra-frame prediction units 255 intra-frame prediction blocks 260 Prediction Processing Unit 262 Mode Selection Unit 265 predicted blocks 270 Entropy Coding Unit 304 Entropy Decoding Unit 309 Quantized Coefficients 310 Inverse Quantization Unit 312 Inverse Transformation Processing Unit 314 Reconstruction Unit, Adder 316 buffers 320 Loop Filter 321 decoded video blocks 330 Decoded Picture Buffer 332 Output 344 Inter-frame Prediction Unit 354 Intra-frame prediction units 360 Prediction Processing Unit 362 Mode Selection Unit 500 devices 502 processor 504 memory 506 Bus 508 Operating Systems 510 Application Program 512 Code and Data 514 Secondary Memory 518 Display 520 Image sensing device 522 Sound sensing device 2820 Processing Unit

Claims

1. 1. A video decoding method comprising: analyzing the coding tree split information to obtain a current node; determining the coordinates of the upper left corner of the area covered by the current quantization group based on the depth N of the current node; obtaining a quantization parameter QP difference value of a current coding unit CU in the region covered by the current quantization group; and obtaining a reconstructed picture of the current CU based on the QP differential value of the current CU.

2. the depth N of the current node is the quadtree depth N of the current node, determining the coordinates of the upper left corner of the area covered by the current quantization group based on the depth N of the current node, 2. The method of claim 1, comprising: determining the coordinate of the upper left corner of the area covered by the current quantization group based on the depth N of the current node; or determining the coordinate of the upper left corner of the area covered by the current quantization group based on a multi-type depth M of the current node; wherein, if N is greater than a first threshold T1 or M is greater than 0, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by a K-th layer quadtree node of the current node, where K is the smaller value of N and T1, and the K-th layer quadtree node is a quadtree node generated after K quadtree divisions starting from a coding tree unit CTU, including the current node.

3. the depth N of the current node is the quadtree depth N of the current node, determining the coordinates of the upper left corner of the area covered by the current quantization group based on the depth N of the current node, 2. The method of claim 1, comprising: determining the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node, wherein when N is less than or equal to a first threshold T1 and M is equal to 0, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

4. the depth N of the current node is the quadtree depth N of the current node, determining the coordinates of the upper left corner of the area covered by the current quantization group based on the depth N of the current node, 2. The method of claim 1, comprising: determining the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node; or determining the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node, wherein when N is equal to a first threshold T1 and M is equal to 0, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node; or when N is less than a first threshold T1, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

5. the depth N of the current node is the quadtree depth N of the current node, determining the coordinates of the upper left corner of the area covered by the current quantization group based on the depth N of the current node, 2. The method of claim 1, comprising: determining the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node, wherein when N is equal to a first threshold T1 and M is equal to 0, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node, or when N is less than a first threshold T1 and M is equal to or less than a fourth threshold T4, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

6. the depth N of the current node is the quadtree depth N of the current node, determining the coordinates of the upper left corner of the area covered by the current quantization group based on the depth N of the current node, 2. The method of claim 1, comprising: determining the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node, wherein if N is less than or equal to a first threshold T1 and M is less than or equal to T1-N, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

7. determining the coordinates of the upper left corner of the area covered by the current quantization group based on the depth N of the current node, If the depth N of the current node is greater than a first threshold T1, obtaining a parent node of the (N-T1)th layer of the current node; and determining that the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by a parent node of the (N-T1) layer.

8. determining the coordinates of the upper left corner of the area covered by the current quantization group based on the depth N of the current node, 2. The method of claim 1, further comprising determining that the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by the current node when the depth N of the current node is equal to a first threshold T1.

9. 9. The method according to claim 2, wherein the first threshold T1 is a preset non-negative integer.

10. 10. The method of claim 2, wherein the first threshold T1 is 0, 1, 2, or 3.

11. 11. The method of claim 7, wherein the depth of the current node is the quadtree QT depth of the current node.

12. 11. The method of claim 7, wherein the depth of the current node is the sum of the QT depth of the current node and the multitype tree depth MTT depth of the current node.

13. The method comprises: obtaining a partition mode of the current node; determining the coordinates of the upper left corner of the area covered by the current quantization group based on the depth N of the current node, If the depth N of the current node is equal to a second threshold T2-1 and the partitioning mode of the current node is a ternary partitioning mode, determine that the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by the current node; or 2. The method of claim 1, further comprising: determining, when the depth N of the current node is equal to a second threshold T2 and the partitioning mode of the current node is a binary partitioning mode or a quadtree partitioning mode, that the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by the current node.

14. The method comprises: obtaining a partition mode of the current node; determining the coordinates of the upper left corner of the area covered by the current quantization group based on the depth N of the current node, If the depth N of the current node is equal to a third threshold T3-1 and the partitioning mode of the current node is a ternary partitioning mode or a quadtree partitioning mode, determine that the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by the current node; or 2. The method of claim 1, further comprising: determining, when the depth N of the current node is equal to a third threshold T3 and the partitioning mode of the current node is a binary partitioning mode, that the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by the current node.

15. 15. The method of claim 13 or 14, wherein the depth N of the current node is determined based on the QT depth of the current node and the dual depth Db of the current node.

16. The depth N of the current node is calculated using the following formula: N=Dq*2+Db is determined by using The method of claim 15, wherein Dq is the QT depth of the current node.

17. If the current node is a multi-type tree MTT split root node, the dual depth Db of the current node is 0; or If the current node is an MTT node, not an MTT root node, and the current node is a child node obtained in the dual splitting mode, the dual depth Db of the current node is the dual depth of the immediate parent node of the current node + 1; or If the current node is an MTT node, but is not an MTT root node, and the current node is a meson node obtained in the ternary split mode, the dual depth Db of the current node is the dual depth of the immediate parent node of the current node + 1; or 17. The method according to claim 15 or 16, wherein if the current node is an MTT node and not an MTT root node, and the current node is a non-meson node obtained in the ternary splitting mode, the dual depth Db of the current node is the dual depth of the immediate parent node of the current node + 2.

18. If the QP difference value of the first CU having a residual in the current quantization group is not equal to 0, the luma QPs of all CUs whose coding sequences precede the coding sequence of the first CU having a residual in the current quantization group are modified to the luma QP of the first CU having a residual; When the current CU is a CU preceding the first CU having a residual in the current quantization group, obtaining a reconstructed picture of the current CU based on the QP difference value of the current CU particularly includes: The method according to any one of claims 1 to 17, further comprising obtaining the reconstructed picture of the current CU based on the luma QP of the first CU with a residual.

19. an entropy decoding unit configured to analyze coding tree partition information to obtain a current node; determine a coordinate of an upper left corner of an area covered by a current quantization group according to a depth N of the current node; obtain a quantization parameter QP difference value of a current coding unit CU that covers the coordinate of the upper left corner of the area covered by the current quantization group; and determine a luma QP of the current CU according to the QP difference value of the current CU; an inverse quantization unit configured to obtain dequantized coefficients of the current CU based on the luma QP of the current CU; an inverse transform processing unit configured to obtain a reconstructed residual block of the current CU based on the dequantized coefficients of the current CU; a reconstruction unit configured to obtain a reconstructed picture of the current CU based on the reconstructed residual block of the current CU.

20. the depth N of the current node is the quadtree depth N of the current node, 20. The video decoder of claim 19, wherein the entropy decoding unit is specifically configured to determine the coordinate of the upper-left corner of the area covered by the current quantization group based on the depth N of the current node, or to determine the coordinate of the upper-left corner of the area covered by the current quantization group based on a multi-type depth M of the current node, wherein if N is greater than a first threshold T1 or M is greater than 0, the coordinate of the upper-left corner of the area covered by the current quantization group is the coordinate of the upper-left corner of an area covered by a K-th layer quadtree node of the current node, where K is the smaller value of N and T1, and the K-th layer quadtree node is a quadtree node generated after K quadtree divisions starting from a coding tree unit CTU, including the current node.

21. the depth N of the current node is the quadtree depth N of the current node, 20. The video decoder of claim 19, wherein the entropy decoding unit is specifically configured to determine the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node, and when N is less than or equal to a first threshold T1 and M is equal to 0, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

22. the depth N of the current node is the quadtree depth N of the current node, 20. The video decoder of claim 19, wherein the entropy decoding unit is specifically configured to determine the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node, or to determine the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and a multitype tree depth M of the current node, wherein if N is equal to a first threshold T1 and M is equal to 0, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node, or if N is less than a first threshold T1, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

23. the depth N of the current node is the quadtree depth N of the current node, 20. The video decoder of claim 19, wherein the entropy decoding unit is specifically configured to determine the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node, wherein when N is equal to a first threshold T1 and M is equal to 0, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node, or when N is less than the first threshold T1 and M is equal to or less than a fourth threshold T4, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

24. the depth N of the current node is the quadtree depth N of the current node, 20. The video decoder of claim 19, wherein the entropy decoding unit is specifically configured to determine the coordinate of the upper left corner of the area covered by the current quantization group based on the quadtree depth N of the current node and the multitype tree depth M of the current node, wherein if N is less than or equal to a first threshold T1 and M is less than or equal to T1-N, the coordinate of the upper left corner of the area covered by the current quantization group is the coordinate of the upper left corner of the area covered by the current node.

25. The entropy decoding unit If the depth N of the current node is greater than a first threshold T1, obtain a parent node of the (N-T1)th layer of the current node; 20. The video decoder of claim 19, specifically configured to determine that the coordinates of the top left corner of the area covered by the current quantization group are the coordinates of the top left corner of the area covered by a parent node of the (N-T1) layer.

26. The entropy decoding unit 20. The video decoder of claim 19, specifically configured to determine that the coordinates of the top left corner of the area covered by the current quantization group are the coordinates of the top left corner of the area covered by the current node when the depth N of the current node is equal to a first threshold T1.

27. 27. The video decoder of claim 20, wherein the first threshold T1 is a preset non-negative integer.

28. 28. A video decoder according to any one of claims 20 to 27, wherein the first threshold T1 is 0, 1, 2 or 3.

29. 29. A video decoder according to any one of claims 25 to 28, wherein the depth of the current node is the quadtree depth QT depth of the current node.

30. 29. A video decoder according to any one of claims 25 to 28, wherein the depth of the current node is the sum of the QT depth of the current node and the multitype tree depth MTT depth of the current node.

31. The entropy decoding unit obtains the split mode of the current node; If the depth N of the current node is equal to a second threshold T2-1 and the partitioning mode of the current node is a ternary partitioning mode, determine that the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by the current node; or 20. The video decoder of claim 19, further configured to determine that when the depth N of the current node is equal to a second threshold T2 and the partitioning mode of the current node is a binary partitioning mode or a quadtree partitioning mode, the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by the current node.

32. The entropy decoding unit obtains the split mode of the current node; If the depth N of the current node is equal to a third threshold T3-1 and the partitioning mode of the current node is a ternary partitioning mode or a quadtree partitioning mode, determine that the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by the current node; or 20. The video decoder of claim 19, further configured to determine that when the depth N of the current node is equal to a third threshold T3 and the partitioning mode of the current node is a binary partitioning mode, the coordinates of the upper left corner of the area covered by the current quantization group are the coordinates of the upper left corner of the area covered by the current node.

33. 33. A video decoder according to claim 31 or 32, wherein the entropy decoding unit is particularly configured to determine the depth N of the current node based on a QT depth of the current node and a binary depth Db of the current node.

34. The entropy decoding unit is configured to: N=Dq*2+Db where Dq is the QT depth of the current node.

34. The video decoder of claim 33, specifically configured to determine the depth N of the current node by using

35. If the current node is a multi-type tree MTT split root node, the dual depth Db of the current node is 0; or If the current node is an MTT node, not an MTT root node, and the current node is a child node obtained in the dual splitting mode, the dual depth Db of the current node is the dual depth of the immediate parent node of the current node + 1; or If the current node is an MTT node, but is not an MTT root node, and the current node is a meson node obtained in the ternary split mode, the dual depth Db of the current node is the dual depth of the immediate parent node of the current node + 1; or 35. A video decoder as described in claim 33 or 34, wherein if the current node is an MTT node and not an MTT root node, and the current node is a non-mesoton node obtained in the ternary splitting mode, the dual depth Db of the current node is the dual depth of the current node's immediate parent node + 2.

36. the entropy decoding unit is further configured to, when a QP difference value of a first CU having a residual in the current quantization group is not equal to 0, modify luma QPs of all CUs whose coding sequences precede a coding sequence of the first CU having a residual in the current quantization group to the luma QP of the first CU having a residual; 36. A video decoder according to claim 19, wherein if the current CU is an earlier CU than the first CU having a residual in the current quantization group, the inverse quantization unit is specifically configured to obtain the dequantized coefficients of the current CU based on the luma QP of the first CU having a residual.

37. 19. A video decoder comprising an implementation circuit configured to perform the method of any one of claims 1 to 18.

38. 1. A video decoder comprising: at least one processor; a non-volatile computer-readable storage medium coupled to the at least one processor, the non-volatile computer-readable storage medium storing a computer program executable by the at least one processor, the computer program, when executed by the at least one processor, configuring the video decoder to perform the method of any one of claims 1 to 18.

39. 19. A computer-readable storage medium configured to store a computer program executable by a processor, the computer program, when executed by the at least one processor, performing the method of any one of claims 1 to 18.

Citation Information

Patent Citations

  • Method and Apparatus of Delta Quantization Parameter Processing for High Efficiency Video Coding

    US20120114034A1

  • Methods for delta-QP signaling for decoder parallelization in hevc

    US20120183049A1

  • Coding unit quantization parameters in video coding

    US20160249062A1

  • Electronic control unit, communication method, and in-vehicle network system

    WO2017203903A1

  • Methods and apparatuses of reference quantization parameter derivation in video processing system

    WO2018019248A1