Video decoding method and video decoder

By analyzing coding tree partitioning information to determine quantization group regions based on node depth and using threshold-based QP adjustments, the method improves decoding efficiency and quality in video decoding, addressing the limitations of existing standards like HEVC.

JP7877561B2Active Publication Date: 2026-06-22HUAWEI TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2025-09-24
Publication Date
2026-06-22

AI Technical Summary

Technical Problem

Existing video coding standards struggle to further reduce bitrate without compromising picture quality, particularly in the context of High Efficiency Video Coding (HEVC), necessitating improved decoding efficiency.

Method used

A video decoding method that analyzes coding tree partitioning information to determine the region covered by a current quantization group based on the depth of a current node, using thresholds and partitioning modes to accurately set quantization parameter (QP) values, thereby improving decoding efficiency and quality.

Benefits of technology

The method enhances decoding accuracy and speed by precisely determining QP coverage ranges, leading to improved decoding quality and efficiency in video decoding processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007877561000001
    Figure 0007877561000001
  • Figure 0007877561000002
    Figure 0007877561000002
  • Figure 0007877561000003
    Figure 0007877561000003
Patent Text Reader

Abstract

A video decoding method and a video decoder for improving decoding efficiency are provided. [Solution] The present invention discloses a video decoding method and a video decoder. The method includes: 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 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. By using the present invention, decoding efficiency can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This application claims priority based on Chinese Patent Application No. 201811032693.7, titled "VIDEO DECODING METHOD AND VIDEO DECODER," filed with the China National Intellectual Property Administration on September 5, 2018, and Chinese Patent Application No. 201811104788.5, also titled "VIDEO DECODING METHOD AND VIDEO DECODER," filed with the China National Intellectual Property Administration on September 21, 2018, the entirety of which these applications are incorporated herein by reference.

[0002] Embodiments of this application generally relate to the field of video coding, and more specifically 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 like video chat and video conferencing, DVDs and Blu-ray discs, video content collection and editing systems, and camcorder security applications.

[0004] With the development of the block-based hybrid video coding approach in the 1990 H.261 standard, new video coding techniques and tools were developed, forming the foundation for new video coding standards. Further 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 3D (three-dimensional) extensions. As video creation and use become more ubiquitous, video traffic is becoming the greatest load on communication networks and data storage. Therefore, one of the goals of most video coding standards is to achieve a reduction in bitrate compared to previous standards without sacrificing picture quality. While the latest High Efficiency Video Coding (HEVC) can compress video about twice as much as AVC without sacrificing picture quality, there is a strong demand for new technologies that can compress video even further than HEVC. [Overview of the project] [Means for solving the problem]

[0005] Embodiments of this application provide a video decoding method and a video decoder for improving decoding efficiency.

[0006] The aforementioned and other objectives are achieved by the subject matter of the independent claims. Other implementations are evident from the dependent claims, the specification, and the accompanying drawings.

[0007] According to a first aspect, the present invention relates to a video decoding method. The method is performed by a video decoder. The method includes: analyzing coding tree partitioning information to obtain the current node; determining the region covered by the current quantization group based on the depth N of the current node; obtaining the QP difference value of the current CU in the region covered by the current quantization group; and obtaining the reconstructed picture of the current CU based on the QP difference value of the current CU.

[0008] According to the video decoding method provided in the present invention, the region covered by the current quantization group can be determined based on the current node depth N, ensuring that the QP can match 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 current node depth N is the quadtree depth N of the current node. Determining the region covered by the current quantization group based on the current node depth N is equivalent to determining the region covered by the current quantization group based on the current node depth N, or the multitype of the current node. tree This includes determining the region covered by the current quantization group based on the depth M. If N is greater than a first threshold T1 or M is greater than 0, the region covered by the current quantization group is the region covered by the K-th layer quadtree node of the current node. K is the smaller of N and T1, and the K-th layer quadtree node is the quadtree node that contains the current node and is generated after K quadtree splits starting from the coding tree unit CTU.

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

[0011] The QP coverage range is determined based on CU, which can lead to more accurate QP partitioning and improved decoding quality.

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

[0013] The QP coverage range is determined based on CU, which can lead to more accurate QP partitioning and improved decoding quality.

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

[0015] The QP coverage range is determined based on CU, which can lead to more accurate QP partitioning and improved decoding quality.

[0016] According to the first aspect, in one possible implementation of the method, the current node depth N is the current node's quadtree depth N. Determining the region covered by the current quantization group based on the current node depth N includes determining the region covered by the current quantization group based on the current node's quadtree depth N and the current node's multitype tree depth M. If N is equal to a first threshold T1 and M is equal to 0, the region covered by the current quantization group is the region covered by the current node. Alternatively, if N is less than the first threshold T1 and M is less than or equal to a fourth threshold T4, the region covered by the current quantization group is the region 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 embodiment, 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] The QP coverage range is determined based on CU, which can lead to more accurate QP partitioning and improved decoding quality.

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

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

[0022] According to the first aspect, in a 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 the first threshold T1, obtaining the 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, whereby the QP division can be made more accurate and the decoding quality can be improved.

[0024] According to the first aspect, in a 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 equal to the first threshold T1, determining that the area covered by the current quantization group is the area covered by the current node.

[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. In this way, the decoding speed is improved.

[0026] According to the first aspect, in a 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 methods, a balance between the decoding speed and the decoding quality can be achieved, thereby improving the final decoding efficiency.

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

[0029] According to a first aspect, in one possible implementation of the method, the method further includes obtaining the partitioning mode of the current node. Determining the region covered by the current quantization group based on the depth N of the current node includes determining that the region covered by the current quantization group is the region 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 determining that the region covered by the current quantization group is the region covered by the current node if 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, or determining that the region covered by the current quantization group is the region covered by the current node if the depth of the current node is less than or equal to a second threshold and the current node is no longer partitioned.

[0030] In the case of different cases, a different method is used to determine the region covered by the current quantization group, which can improve the QG partitioning accuracy and thereby improve the decoding accuracy.

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

[0032] According to the first embodiment, 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 a first aspect, in one possible implementation of the method, the method further includes obtaining the partitioning mode of the current node. Determining the region covered by the current quantization group based on the depth N of the current node includes determining that the region covered by the current quantization group is the region 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 determining that the region covered by the current quantization group is the region covered by the current node if 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; or determining that the region covered by the current quantization group is the region covered by the current node if the depth N of the current node is equal to a third threshold T3 and the current node is no longer partitioned.

[0034] In the different cases, a different method is used to determine the region covered by the current quantization group, which can improve the QG partitioning accuracy and thereby improve the decoding accuracy.

[0035] According to the first embodiment, 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 current node depth N is determined based on the current node's QT depth and the current node's binary depth Db.

[0037] According to the first aspect, in one possible implementation of the method, the current node depth N 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 of the method, if the current node is an MTT root node, the binary depth Db of the current node is 0; or if the current node is an MTT node but not an MTT root node and is a child node acquired in binary partitioning mode, the binary depth Db of the current node is the binary 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 is a meson node acquired in ternary partitioning mode, the binary depth Db of the current node is the binary 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 is a non-meson node acquired in ternary partitioning mode, the binary depth Db of the current node is the binary depth of the current node's direct parent node + 2.

[0039] In the case of different methods, a different method is used to determine the depth, which can improve the QG partitioning accuracy and thereby improve the decoding accuracy.

[0040] According to the first embodiment, in one possible implementation of the method, if the QP difference value of a first CU having residuals in the current quantization group is not equal to 0, the luminance QP of all CUs whose coding sequence precedes the first CU having residuals in the current quantization group is corrected to the luminance QP of the first CU having residuals.

[0041] If the current CU is the CU preceding the first CU that has residuals in the current quantization group, then obtaining a reconstructed picture of the current CU based on the QP difference value of the current CU is, specifically, The goal is to obtain a reconstructed picture of the current CU based on the luminance QP of the first CU, which has residuals.

[0042] According to a second aspect, the present invention relates to a video decoder. The video decoder is an entropy decoding unit configured to analyze coding tree partitioning information to obtain the current node, determine the region covered by the current quantization group based on the depth N of the current node, obtain the QP difference value of the current CU in the region covered by the current quantization group, and determine the luminance QP of the current CU based on the QP difference value of the current CU; an inverse quantization unit configured to obtain the dequantized coefficient of the current CU based on the luminance QP of the current CU; an inverse transformation processing unit configured to obtain the reconstructed residual block of the current CU based on the dequantized coefficient of the current CU; and a reconstruction unit configured to obtain the reconstructed picture of the current CU based on the reconstructed residual block of the current CU.

[0043] According to a second embodiment, in one possible implementation of the video decoder, the current node depth N is the current node quadtree depth N. The entropy decoding unit determines the region covered by the current quantization group or the multitype of the current node based on the current node depth N. tree It is specifically configured to determine the region covered by the current quantization group based on the depth M. If N is greater than a first threshold T1 or M is greater than 0, the region covered by the current quantization group is the region covered by the K-th layer quadtree node of the current node. K is the smaller of N and T1, and the K-th layer quadtree node is the quadtree node that contains the current node and is generated after K quadtree splits, starting from the coding tree unit CTU.

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

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

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

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

[0048] According to the second embodiment, 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 embodiment, 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 embodiment, in one possible implementation of the video decoder, the current node depth N is the current node's quadtree depth N. The entropy decoding unit is specifically configured to determine the region covered by the current quantization group based on the current node's quadtree depth N and the current node's multitype tree depth M. If N is less than or equal to a first threshold T1 and M is less than or equal to T1-N, the region covered by the current quantization group is the region covered by the current node.

[0051] According to a second embodiment, in one possible implementation of the video decoder, the entropy decoding unit is particularly configured to acquire 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 to determine that the region covered by the current quantization group is the region covered by the parent node of the (N-T1)th layer.

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

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

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

[0055] According to a second embodiment, in one possible implementation of a video decoder, the entropy decoding unit is further configured to acquire the partitioning mode of the current node and determine that the region covered by the current quantization group is the region 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 if 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, or if the depth N of the current node is less than or equal to a second threshold and the current node is no longer partitioned, then the region covered by the current quantization group is the region covered by the current node.

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

[0057] According to a second embodiment, in one possible implementation of a video decoder, the entropy decoding unit is further configured to acquire the partitioning mode of the current node and determine that the region covered by the current quantization group is the region 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 region covered by the current quantization group is the region covered by the current node if 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; or determine that the region covered by the current quantization group is the region covered by the current node if the depth N of the current node is equal to a third threshold T3 and the current node is no longer partitioned.

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

[0059] According to a second embodiment, 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 and the binary depth Db of the current node.

[0060] According to a second aspect, in one possible implementation of the video decoder, the entropy decoding unit is 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.

[0061] According to the second aspect, in one possible implementation of the video decoder, if the current node is an MTT root node, the binary depth Db of the current node is 0; or if the current node is an MTT node but not an MTT root node and is a child node acquired in binary partitioning mode, the binary depth Db of the current node is the binary 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 is a meson node acquired in ternary partitioning mode, the binary depth Db of the current node is the binary 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 is a non-meson node acquired in ternary partitioning mode, the binary depth Db of the current node is the binary depth of the current node's direct parent node + 2.

[0062] According to a second embodiment, in one possible implementation of the video decoder, the entropy decoding unit is further configured to correct the luminance QP of all CUs whose coding sequence precedes the first CU having residuals in the current quantization group to the luminance QP of the first CU having residuals, if the QP difference value of the first CU having residuals in the current quantization group is not equal to 0. If the current CU is the CU preceding the first CU having residuals in the current quantization group, the inverse quantization unit is particularly configured to obtain the dequantized coefficient of the current CU based on the luminance QP of the first CU having residuals.

[0063] According to a third aspect, one embodiment of the present invention provides a video decoding method which includes analyzing coding tree partitioning information to obtain the current node; determining the coordinates of the upper left corner of the region covered by the current quantization group based on the depth N of the current node; obtaining the quantization parameter QP difference value of the 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 difference value of the current CU.

[0064] According to a third aspect, in one possible implementation of the method, the current node depth N is the quadtree depth N of the current node. Determining the coordinates of the upper left corner of the region covered by the current quantization group based on the current node depth N is equivalent to determining the coordinates of the upper left corner of the region covered by the current quantization group based on the current node depth N, or the multitype of the current node tree This involves determining the coordinates of the upper-left corner of the region covered by the current quantization group, based on the depth M. If N is greater than a first threshold T1 or M is greater than 0, the coordinates of the upper-left corner of the region covered by the current quantization group are the coordinates of the upper-left corner of the region covered by the K-th layer quadtree node of the current node. K is the smaller of N and T1, and the K-th layer quadtree node is the quadtree node that contains the current node and is generated after K quadtree splits, starting from the coding tree unit CTU.

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

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

[0067] According to a third aspect, in one possible implementation of the method, the current node depth N is the current node's quadtree depth N. Determining the coordinates of the upper-left corner of the region covered by the current quantization group based on the current node depth N includes determining the coordinates of the upper-left corner of the region covered by the current quantization group based on the current node's quadtree depth N and the current node's multitype tree depth M. If N is equal to a first threshold T1 and M is equal to 0, the coordinates of the upper-left corner of the region covered by the current quantization group are the coordinates of the upper-left corner of the region covered by the current node. Alternatively, if N is less than the first threshold T1 and M is less than or equal to a fourth threshold T4, the coordinates of the upper-left corner of the region covered by the current quantization group are the coordinates of the upper-left corner of the region covered by the current node.

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

[0069] According to a third aspect, in one possible implementation of the method, determining the coordinates of the upper-left corner of the region covered by the current quantization group based on the depth N of the current node includes obtaining 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 determining that the coordinates of the upper-left corner of the region covered by the current quantization group are the coordinates of the upper-left corner of the region 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 coordinates of the upper-left corner of the region covered by the current quantization group based on the depth N of the current node includes determining that the coordinates of the upper-left corner of the region covered by the current quantization group are the coordinates of the upper-left corner of the region covered by the current node when the depth N of the current node is equal to a first threshold T1.

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

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

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

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

[0075] According to a third aspect, in one possible implementation of the method, the method further includes obtaining the partitioning mode of the current node. Determining the coordinates of the upper-left corner of the region covered by the current quantization group based on the depth N of the current node includes determining that the coordinates of the upper-left corner of the region covered by the current quantization group are the coordinates of the upper-left corner of the region 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 determining that the coordinates of the upper-left corner of the region covered by the current quantization group are the coordinates of the upper-left corner of the region covered by the current node if 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.

[0076] According to a third aspect, in one possible implementation of the method, the method further includes obtaining the partitioning mode of the current node. Determining the coordinates of the upper-left corner of the region covered by the current quantization group based on the depth N of the current node includes determining that the coordinates of the upper-left corner of the region covered by the current quantization group are the coordinates of the upper-left corner of the region 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 determining that the coordinates of the upper-left corner of the region covered by the current quantization group are the coordinates of the upper-left corner of the region covered by the current node if 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.

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

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

[0079] According to a third aspect, in one possible implementation of the method, the current node is a multi-type tree MT T If the node is a root node, the binary depth Db of the current node is 0; or if the current node is an MTT node, not an MTT root node, and is a child node acquired in binary partitioning mode, the binary depth Db of the current node is the binary depth of the current node's direct parent node + 1; or if the current node is an MTT node, not an MTT root node, and is a meson node acquired in ternary partitioning mode, the binary depth Db of the current node is the binary depth of the current node's direct parent node + 1; or if the current node is an MTT node, not an MTT root node, and is a non-meson node acquired in ternary partitioning mode, the binary depth Db of the current node is the binary 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 a first CU having residuals in the current quantization group is not equal to 0, the luminance QP of all CUs whose coding sequence precedes the first CU having residuals in the current quantization group is corrected to the luminance QP of the first CU having residuals. If the current CU is the CU preceding the first CU having residuals in the current quantization group, obtaining a reconstructed picture of the current CU based on the QP difference value of the current CU is, specifically, obtaining a reconstructed picture of the current CU based on the luminance QP of the first CU having residuals.

[0081] According to a fourth aspect, one embodiment of the present invention provides a video decoder, which is an entropy decoding unit configured to analyze coding tree partitioning information to obtain the current node, determine the coordinates of the upper left corner of the region covered by the current quantization group based on the depth N of the current node, obtain the quantization parameter QP difference value of the current coding unit CU covering the coordinates of the upper left corner of the region covered by the current quantization group, and determine the luminance QP of the current CU based on the QP difference value of the current CU; an inverse quantization unit configured to obtain the dequantized coefficients of the current CU based on the luminance QP of the current CU; an inverse transformation processing unit configured to obtain the reconstructed residual block of the current CU based on the dequantized coefficients of the current CU; and a reconstruction unit configured to obtain the 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 current node depth N is the quadtree depth N of the current node. The entropy decoding unit determines the coordinates of the upper left corner of the region covered by the current quantization group or the multitype of the current node based on the current node depth N. tree Based on the depth M, it is specifically configured to determine the coordinates of the upper-left corner of the region covered by the current quantization group. If N is greater than a first threshold T1 or M is greater than 0, the coordinates of the upper-left corner of the region covered by the current quantization group are the coordinates of the upper-left corner of the region covered by the K-th layer quadtree node of the current node. K is the smaller of N and T1, and the K-th layer quadtree node is the quadtree node that contains the current node and is generated after K quadtree splits starting from the coding tree unit CTU.

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

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

[0085] According to a fourth aspect, in one possible implementation of the video decoder, the current node depth N is the current node's quadtree depth N. The entropy decoding unit is specifically configured to determine the coordinates of the upper-left corner of the region covered by the current quantization group, based on the current node's quadtree depth N and the current node's multitype tree depth M. If N is equal to a first threshold T1 and M is equal to 0, the coordinates of the upper-left corner of the region covered by the current quantization group are the coordinates of the upper-left corner of the region covered by the current node. Alternatively, if N is less than the first threshold T1 and M is less than or equal to a fourth threshold T4, the coordinates of the upper-left corner of the region covered by the current quantization group are the coordinates of the upper-left corner of the region covered by the current node.

[0086] According to a fourth aspect, in one possible implementation of the video decoder, the current node depth N is the current node's quadtree depth N. The entropy decoding unit is specifically configured to determine the coordinates of the upper-left corner of the region covered by the current quantization group, based on the current node's quadtree depth N and the current node's multitype tree depth M. When N is less than or equal to a first threshold T1 and M is less than or equal to T1-N, the coordinates of the upper-left corner of the region covered by the current quantization group are the coordinates of the upper-left corner of the region 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 acquire 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 to determine that the coordinates of the upper left corner of the region covered by the current quantization group are the coordinates of the upper left corner of the region 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 region covered by the current quantization group are the coordinates of the upper-left corner of the region covered by the current node, when the depth N of the current node is equal to a first threshold T1.

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

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

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

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

[0093] According to a fourth aspect, in one possible implementation of a video decoder, the entropy decoding unit is further configured to acquire the partitioning mode of the current node and determine that the coordinates of the upper left corner of the region covered by the current quantization group are the coordinates of the upper left corner of the region 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 to determine that the coordinates of the upper left corner of the region covered by the current quantization group are the coordinates of the upper left corner of the region covered by the current node if 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 a video decoder, the entropy decoding unit is further configured to acquire the partitioning mode of the current node and determine that the coordinates of the upper left corner of the region covered by the current quantization group are the coordinates of the upper left corner of the region 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 to determine that the coordinates of the upper left corner of the region covered by the current quantization group are the coordinates of the upper left corner of the region covered by the current node if 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 and the binary 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 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.

[0097] According to the fourth aspect, in one possible implementation of the video decoder, the current node is a multi-type tree MT TIf the node is a root node, the binary depth Db of the current node is 0; or if the current node is an MTT node, not an MTT root node, and is a child node acquired in binary partitioning mode, the binary depth Db of the current node is the binary depth of the current node's direct parent node + 1; or if the current node is an MTT node, not an MTT root node, and is a meson node acquired in ternary partitioning mode, the binary depth Db of the current node is the binary depth of the current node's direct parent node + 1; or if the current node is an MTT node, not an MTT root node, and is a non-meson node acquired in ternary partitioning mode, the binary depth Db of the current node is the binary depth of the current node's direct 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 correct the luminance QP of all CUs whose coding sequence precedes the first CU having residuals in the current quantization group to the luminance QP of the first CU having residuals, if the QP difference value of the first CU having residuals in the current quantization group is not equal to 0. If the current CU is the CU preceding the first CU having residuals in the current quantization group, the inverse quantization unit is particularly configured to obtain the dequantized coefficient of the current CU based on the luminance QP of the first CU having residuals.

[0099] According to a fifth aspect, the present invention relates to a video stream decoding device comprising a processor and memory. The memory stores instructions, which enable the processor to perform a method according to the first or third aspect or any possible embodiment of the first or third aspect.

[0100] According to the sixth aspect, a computer-readable storage medium is provided. The computer-readable storage medium stores instructions and enables one or more processors to encode video data when the instructions are executed. The instructions enable 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 including program code. When the program code is executed on a computer, a method according to the first or third aspect, or any possible embodiment of the first or third aspect, is performed.

[0102] Details of one or more embodiments are described in the accompanying drawings and the following description. Other features, purposes, and advantages will become apparent from the specification, drawings, and claims.

[0103] To more clearly illustrate the technical solutions in the embodiments or background art of this application, the accompanying drawings illustrating the embodiments or background art of this application will now be described. [Brief explanation of the drawing]

[0104] [Figure 1] This is a block diagram of an example use case of a video coding system for implementing one embodiment of the present invention. [Figure 2] This is a block diagram showing an exemplary structure of a video encoder used to implement one embodiment of the present invention. [Figure 3] This is a block diagram showing an exemplary structure of a video decoder used to implement one embodiment of the present invention. [Figure 4] This is a schematic diagram illustrating a video coding system 40 comprising the encoder 20 shown in Figure 2 and / or the decoder 30 shown in Figure 3. [Figure 5] This block shows an example of another encoding or decoding device. [Figure 6] This is a schematic diagram illustrating the partitioning modes of a binary tree, ternary tree, and quadary tree according to one embodiment. [Figure 7] This is a schematic diagram illustrating a QT-MTT partition according to one embodiment. [Figure 8] This is a schematic diagram illustrating a QG partition according to one embodiment. [Figure 9] This is a flowchart illustrating a video decoding method according to one embodiment. [Modes for carrying out the invention]

[0105] In the following explanation, unless otherwise noted, the same reference numeral represents the same, or at least functionally equivalent, feature.

[0106] The following description refers to accompanying drawings, which form part of the present disclosure and illustrate by example specific aspects of embodiments of the present invention or specific aspects in which embodiments of the present invention may be used. Embodiments of the present invention may be used in other aspects and may include structural or logical modifications not depicted in the accompanying drawings. Accordingly, the following detailed description should not be construed as restrictive, and the scope of the present disclosure is defined by the accompanying claims.

[0107] For example, disclosures relating to a described method may also apply to a corresponding device or system configured to perform that method, and vice versa. For instance, where one or more specific method steps are described, a corresponding device may include one or more units, such as functional units (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, in order to perform one or more of the described method steps. Conversely, where a particular device is described based on one or more units, such as functional units, the 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 that each perform the function of one or more of the units), even if such one or more steps are not explicitly described or illustrated in the accompanying drawings. Furthermore, it should be understood that the various exemplary embodiments and / or features of the aspects described herein can be combined with each other unless otherwise noted.

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

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

[0110] Some H.261 video coding standards are used for "lossy hybrid video coding" (specifically, spatial and temporal predictions within the sample region are combined with 2D transform coding to apply quantization within the transform region). 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, on the encoder side, video is typically processed, i.e., encoded, at the block (video block) level. For example, a predicted block is generated through spatial (in-picture) and temporal (inter-picture) predictions, this predicted block is subtracted from the current block (the block being processed or to be processed) to obtain a residual block, this residual block is transformed and quantized within the transform region to reduce the amount of data to be transmitted (compressed). On the decoder side, the inverse processing for the encoder is applied to the encoded or compressed block to reconstruct the current block for representation. Furthermore, the encoder replicates the decoder processing loop, thereby enabling the encoder and decoder to generate the same predictions (e.g., intra-frame and inter-frame predictions) and / or reconstructions for processing, i.e., for coding subsequent blocks.

[0111] As used herein, the term “block” may refer to a portion of a picture or 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 Joint Collaboration Team on Video Coding (JCT-VC) of the ITU-T Video Coding Experts Group (VCEG) and 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 encode 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 division pattern. Within a single PU, the same prediction process is applied, and the relevant information is transmitted to the decoder via the PU. After obtaining the residual blocks by applying a prediction process based on the PU partitioning pattern, the CU can be partitioned into transform units (TUs) based on another quadtree structure similar to the coding tree used for the CU. Recent developments in video compression technology have added quadtrees to binary trees (quadtrees). plusA binary tree (QTBT) partitioning frame is used to partition coding blocks. In a QTBT block structure, the CU can be square or rectangular. In VVC, a coding tree unit (CTU) is first partitioned using a quadtree structure. The leaf nodes of the quadtree are further partitioned using a binary tree structure. The leaf nodes of the binary tree are called coding units (CUs). CU This is used for prediction and transformation processing without further partitioning. This means that CU, PU, ​​and TU have the same block size in the QTBT coding block structure. In addition, it has been proposed that multiple partitions, such as ternary tree partitioning, be used in combination with the QTBT block structure.

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

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

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

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

[0116] A (digital) picture can be considered, or may be considered, a two-dimensional array or matrix of samples having intensity values. Samples within the array are sometimes referred to as pixels (short for picture element) or pels. The number of samples in the horizontal and vertical (or axis) directions of the array or picture defines the size and / or resolution of the picture. For color representation, typically three color components are employed; specifically, a picture can be represented as or contain three sample arrays. In RGB format or color space, a picture contains corresponding red, green, and blue sample arrays. However, in video coding, each pixel is typically represented in luminance / chrominance format or color space, for example, YCbCr, which includes a luminance component represented by Y (sometimes alternatively represented by L) and two chrominance components represented by Cb and Cr. The luminance (abbreviated as luma) component Y represents brightness or gray level intensity (for example, both are the same in a grayscale picture), and the two chrominance (abbreviated as chroma) components Cb and Cr represent chrominance or color information components. Correspondingly, a picture in YCbCr format contains 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 to or transformed into YCbCr format, and vice versa. This process is also called color conversion or transformation. If the picture is monochrome, the picture may contain only a luminance sample array.

[0117] The picture source 16 (for example, the video source 16) may be, for example, a camera for capturing pictures, or memory such as 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 into the source device, and the memory may be local memory or, for example, an integrated memory integrated into 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, external memory, or an external picture generation device. The external picture generation device may be, for example, an external computer graphics processor, a computer, or a server. The interface may be any type of interface, for example, a wired or wireless interface or an optical interface that conforms to any proprietary or standardized interface protocol. The interface for acquiring picture data 17 may be the same interface as the communication interface 22 or part of the communication interface 22.

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

[0119] The preprocessing unit 18 is configured to receive (raw) picture data 17, perform preprocessing on the picture data 17 to obtain a preprocessed picture 19 or preprocessed picture data 19. For example, the preprocessing performed by the preprocessing unit 18 may include cropping, color format conversion (e.g., from RGB to YCbCr), color correction, or denoising. It should be understood that the preprocessing unit 18 may be an optional component.

[0120] The encoder 20 (for example, a video encoder 20) is configured to receive preprocessed picture data 19 and provide encoded picture data 21 (further details are described below, for example, based on Figure 2 or Figure 4).

[0121] The communication interface 22 of the source device 12 may be configured to receive the encoded picture data 21, transmit the encoded picture data 21 to another device, for example, the destination device 14 or any other device, and store or directly reconstruct it. Alternatively, the communication interface 22 may be configured to process the encoded picture data 21, store the corresponding encoded data 13, and / or transmit the encoded data 13 to another device, for example, the destination device 14, or any other device used for decoding or storage.

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

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

[0124] Communication interfaces 22 and 28 may be configured to transmit or receive encoded picture data 21 or encoded data 13 through a direct communication link between the source device 12 and the destination device 14, or through any type of network. The direct communication link is, for example, a direct wired connection or a wireless connection. The any type of network is, for example, a wired or wireless network, or any combination thereof, or any type of private or public network, or any combination thereof.

[0125] The communication interface 22 may be configured to package the encoded picture data 21 into an appropriate format, such as a packet, for transmission over a communication link or communication network.

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

[0127] Both communication interfaces 22 and 28 point from source device 12 to destination device 14, and the encoded picture data in Figure 1 21As indicated by the arrows used, it may be configured as a one-way communication interface or as a two-way communication interface, and may be configured, for example, to send and receive messages to establish a connection, and to acknowledge and exchange any other information relating 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 encoded picture data 21 and provide the decoded picture data 31 or the decoded picture 31 (further details are described below, for example, based on Figure 3 or Figure 5).

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

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

[0131] In Figure 1, the source device 12 and the destination device 14 are depicted as separate devices. However, the device embodiment may alternatively include the functionality of both the source device 12 and the destination device 14, or both, i.e., the source device 12 or its corresponding functionality and the destination device 14 or its corresponding functionality. In such embodiments, the source device 12 or its corresponding functionality and the destination device 14 or its 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 apparent to those skilled in the art based on the description, the existence and (exact) division of different units, or the functionality of the source device 12 and / or destination device 14 shown in Figure 1, may vary depending on the actual device and application.

[0133] The encoder 20 (e.g., video encoder 20) and the 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. Where the technology is implemented in part by using software, the device may store software instructions in a suitable non-temporary computer-readable storage medium and execute the instructions by using hardware such as one or more processors to perform the technology of this disclosure. Any of the foregoing (including hardware, software, combinations of hardware and software, and similar) may be considered as one or more processors. The video encoder 20 and the video decoder 30 may each be included in one or more encoders or decoders, and the encoder or decoder may be integrated as part of an encoder / decoder (codec) combined in the corresponding device.

[0134] Source device 12 may be referred to as a video coding device or video coding 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 apparatus.

[0135] The source device 12 and destination device 14 may include any one of a broad 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 or may not use any type of operating system.

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

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

[0138] For each of the examples described with reference to the video encoder 20, it should be understood that the video decoder 30 may be configured to perform the reverse process. With respect to signaling syntax elements, the video decoder 30 may be configured to receive and parse such syntax elements and decode the corresponding related video data. In some examples, the video encoder 20 may entropy encode one or more syntax elements defining ... in the encoded video bitstream. In such examples, the video decoder 30 may parse such syntax elements and decode the corresponding related 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 technology of the present application (disclosure). In the example of Figure 2, the video encoder 20 comprises a residual calculation unit 204, a transformation unit 206, a quantization unit 208, an inverse quantization unit 210, an inverse transformation unit 212, a reconstruction unit 214, a buffer 216, a loop filter unit 220, a decoded picture buffer (DPB) 230, a prediction unit 260, and an entropy coding unit 270. The prediction unit 260 may comprise 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 comprise 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 transformation processing unit 206, the quantization unit 208, the prediction processing unit 260, and the entropy coding unit 270 form the forward signal path of the encoder 20, while, for example, the inverse quantization unit 210, the inverse transformation 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 the reverse signal path of the encoder. The reverse signal path of the encoder corresponds to the signal path of the decoder (see decoder 30 in Figure 3).

[0142] The encoder 20 receives, for example, a picture 201 or a block 203 of picture 201, for example, a picture in a sequence of pictures that form a video or video sequence, through input 202. Picture block 203 may also be referred to as the current picture block or the picture block to be encoded. Picture 201 may be referred to as the current picture or the picture to be encoded (particularly in video coding, to distinguish the current picture from other pictures, the other pictures being, for example, previously encoded and / or decoded pictures in the same video sequence, i.e., the video sequence that also contains the current picture).

[0143] division

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

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

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

[0147] The encoder 20 shown in Figure 2 is configured to encode the picture 201 block by block, for example, 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 by subtracting the sample values ​​of the prediction block 265 from the sample values ​​of the picture block 203 sample by sample (per pixel) (details about the prediction block 265 will be described later), and to obtain the residual block 205 within the sample region.

[0150] conversion

[0151] The transformation processing unit 206 is configured to apply a transformation, such as a discrete cosine transform (DCT) or a discrete sine transform (DST), to the sample values ​​of the residual block 205 to obtain transformation coefficients 207 within the transformation region. These transformation coefficients 207 are sometimes referred to as transformation residual coefficients and represent the residual block 205 within the transformation region.

[0152] The conversion processing unit 206 may be configured to apply an integer approximation of DCT / DST, such as the conversion specified in HEVC / H.265. Compared to the orthogonal DCT conversion, such an integer approximation is typically scaled based on coefficients. Additional scaling factors are applied as part of the conversion process to maintain the norm of the residual blocks processed by using the forward and inverse conversions. The scaling factors are typically selected based on several constraints, such as the scaling factor being a power of 2 for the shift operation, the bit depth of the conversion coefficients, and the trade-off between precision and implementation cost. For example, a specific scaling factor may be specified for the inverse conversion by, for example, the inverse conversion processing unit 212 on the decoder 30 side (and the corresponding inverse conversion by, for example, the inverse conversion processing unit 212 on the encoder 20 side), and correspondingly, a corresponding scaling factor may be specified for the forward conversion by the conversion processing unit 206 on the encoder 20 side.

[0153] quantization

[0154] The quantization unit 208 is configured to quantize the transformation coefficients 207, for example by applying scalar quantization or vector quantization, to obtain the quantized transformation coefficients 209. The quantized transformation coefficients 209 may also be referred to as the quantized residual coefficients 209. The quantization process may reduce the bit depth associated with some or all of the transformation coefficients 207. For example, an n-bit transformation coefficient may be truncated to an m-bit transformation coefficient during quantization, where n is greater than m. The degree of quantization can be modified by adjusting the quantization parameter (QP). For example, for scalar quantization, different scales may be applied to achieve finer or coarser quantization. Smaller quantization steps correspond to finer quantization, and larger quantization steps correspond to coarser quantization. The appropriate quantization step may be indicated by the quantization parameter (QP). For example, the quantization parameter may be an index to a predefined set of appropriate quantization steps. For example, smaller quantization parameters may correspond to finer quantization (smaller quantization steps), and larger quantization parameters may correspond to coarser quantization (larger quantization steps), or vice versa. Quantization may include division by the quantization step and the corresponding quantization or inverse quantization, or multiplication by the quantization step, for example, performed by the inverse quantization unit 210. In embodiments of some standards, such as HEVC, quantization parameters may be used to determine the quantization step. Generally, the quantization step can be calculated based on the quantization parameter by using a fixed-point approximation of the equation involving division. Additional scale factors may be introduced for quantization and dequantization, thereby restoring the norm of the residual block, which may be modified because scales are used in the fixed-point approximations of the equations for the quantization step and quantization parameter. In exemplary implementations, the scale of the inverse transform may be combined with the scale of the dequantization.Alternatively, a customized quantization table may be used and signaled, for example, from the encoder to the decoder within the bitstream. Quantization is an irreversible operation, meaning that larger quantization steps result in greater losses.

[0155] The inverse quantization unit 210 is configured to apply the inverse of the quantization scheme applied by the quantization unit 208 to the quantization coefficients to obtain the dequantized coefficients 211, for example, based on or using the same quantization steps as the quantization unit 208. The dequantized coefficients 211 may also be called the dequantized residual coefficients 211 and may correspond to the conversion coefficients 207, although the dequantized coefficients 211 are usually different from the conversion coefficients due to losses caused by quantization.

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

[0157] The reconstruction unit 214 (for example, an 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 within the sample region.

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

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

[0160] The loop filter unit 220 (abbreviated as "loop filter" 220) is configured to filter the reconstructed block 215 to obtain a filtered block 221, which smooths pixel transitions or improves 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, such as a bidirectional filter, an adaptive loop filter (ALF), a sharpening or smoothing filter, or a co-filter. In Figure 2, the loop filter unit 220 is shown as an in-loop filter, but in other implementations, 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 encoded block after the loop filter unit 220 has performed a filtering operation on the reconstructed encoded block.

[0161] In one embodiment, the encoder 20 (correspondingly the loop filter unit 220) may be configured to output loop filter parameters (e.g., sample adaptive offset information) either directly or after entropy coding performed by the entropy coding unit 270 or any other entropy coding unit, so that, for example, 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 various memory devices, such as dynamic random access memory (DRAM) (synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM®)), or other types of memory devices. The DPB 230 and 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 filtered blocks 221. The decoded picture buffer 230 may further be configured to store another previously filtered block of the same current picture or a different picture, for example, a previously reconstructed picture, such as a previously reconstructed and filtered block 221, for example, 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) for interframe 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] Also referred to as the block prediction processing unit 260, the prediction processing unit 260 is configured to receive or acquire block 203 (the current block 203 of the current picture 201) and reconstructed picture data, for example, reference sample of the same (current) picture from buffer 216 and / or reference picture data 231 of one or more previously decoded pictures from the decoded picture buffer 230, process such data for prediction, and specifically provide prediction blocks 265 which may be interframe prediction blocks 245 or intraframe prediction blocks 255.

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

[0165] In one embodiment, the mode selection unit 262 may be configured to select a prediction mode (for example, from prediction modes supported by the prediction processing unit 260) that provides best match or minimum residual (minimum residual means good compression for transmission or storage), or minimum signaling overhead (minimum signaling overhead means good compression for transmission or storage), or both, or a balance between the two. The mode selection unit 262 may be configured to determine the prediction mode based on rate distortion optimization (RDO), specifically by selecting a prediction mode that provides minimum rate distortion optimization, or by selecting a prediction mode in which the rate distortion at issue satisfies at least the prediction mode selection criteria.

[0166] Next, we will describe in detail the prediction processing performed by (for example, the prediction processing unit 260) and the mode selection performed by (for example, the mode selection unit 262) using an example of the encoder 20.

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

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

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

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

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

[0172] The interframe prediction unit 244 may include a motion estimation (ME) unit (not shown in Figure 2) and a motion compensation (MC) unit (not shown in Figure 2). The motion estimation unit is configured to receive or acquire, for motion estimation, picture block 203 (picture block 203 of the current picture 201) and the decoded picture 231, or at least one or more previously reconstructed blocks, for example, one or more reconstructed blocks of other / different previously decoded picture 231. 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 a picture that forms a video sequence, or may form a sequence of pictures.

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

[0174] The motion compensation unit is configured to acquire interframe prediction parameters, for example, by receiving interframe prediction parameters and performing interframe prediction based on or using the interframe prediction parameters, thereby acquiring an interframe prediction block 245. Motion compensation performed by a motion compensation unit (not shown in Figure 2) may include fetching or generating (possibly performing interpolation with sub-pixel precision) prediction blocks based on motion / block vectors determined through motion estimation. Interpolation filtering may generate additional pixel samples from known pixel samples, thereby potentially increasing the amount of candidate prediction blocks that can be used to encode picture blocks. After receiving the motion vector for the current picture block's PU, the motion compensation unit 246 may identify the prediction block pointed to by the motion vector in one of the reference picture lists. The motion compensation unit 246 may also generate syntax elements associated with blocks and video slices, so that the video decoder 30 can use the syntax elements to decode the picture blocks of the video slice.

[0175] The in-frame prediction unit 254 is configured to receive, for example, the picture block 203 (the current picture block) and one or more previously reconfigured blocks of the same picture, such as reconfigured adjacent blocks, for in-frame prediction. For example, the encoder 20 may be configured to select an in-frame prediction mode from a plurality of (predetermined) in-frame prediction modes.

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

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

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

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

[0180] Figure 3 shows an exemplary video decoder 30 configured to implement the technology of the present application. The video decoder 30 is configured to receive, for example, encoded picture data (e.g., encoded bitstream) 21 encoded by the encoder 20 and obtain a decoded picture 231. In the decoding process, the video decoder 30 receives video data from the video encoder 20, for example, an encoded video bitstream representing a picture block of an encoded video slice, and associated syntax elements.

[0181] In the example shown in Figure 3, the decoder 30 comprises an entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a reconstruction unit 314 (e.g., an adder 314), a buffer 316, a loop filter 320, a decoded picture buffer 330, and a prediction processing unit 360. The prediction processing unit 360 may comprise an interframe prediction unit 344, an intraframe prediction unit 354, and a mode selection unit 362. In some examples, the video decoder 30 may perform a decoding path that is generally the reverse of the encoding path described with reference to the video encoder 20 in Figure 2.

[0182] The entropy decoding unit 304 is configured to perform entropy decoding on the encoded picture data 21 to obtain, for example, quantized coefficients 309 and / or decoded encoding parameters (not shown in Figure 3), such as inter-frame prediction parameters, intra-frame prediction parameters, loop filter parameters, and / or other syntax elements (which have been decoded). The entropy decoding unit 304 is further configured to transfer the inter-frame prediction parameters, intra-frame prediction parameters, and / or other syntax elements to the prediction processing unit 360. The video decoder 30 may receive the syntax elements at the video slice level and / or video block level.

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

[0184] The prediction processing unit 360 may include an interframe prediction unit 344 and an intraframe prediction unit 354. The interframe prediction unit 344 may be functionally the same as the interframe prediction unit 244, and the intraframe prediction unit 354 may be functionally the same as the intraframe prediction unit 254. The prediction processing unit 360 is typically configured to perform block prediction and / or obtain prediction blocks 365 from the encoded data 21, and to receive or obtain information about prediction relation parameters and / or selected prediction modes from, for example, the entropy decoding unit 304 (explicitly or implicitly).

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

[0186] The prediction processing unit 360 is configured to determine prediction information for the video block in the current video slice by analyzing motion vectors and other syntax elements, and to use that prediction information to generate a prediction block for the current video block being decoded. For example, by using several received syntax elements, the prediction processing unit 360 determines the prediction mode for encoding the video block in the video slice (e.g., intra-frame or inter-frame prediction), the type of inter-frame prediction slice (e.g., B-slice, P-slice, or GPB-slice), the construction information of one or more reference picture lists for the slice, the motion vector for each inter-frame encoded video block for the slice, the inter-frame prediction status for each inter-frame encoded video block in the slice, and other information in order to decode the video block in the current video slice.

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

[0188] The inverse transformation processing unit 312 is configured to apply an inverse transformation (for example, an inverse DCT, an inverse integer transformation, or a conceptually similar inverse transformation process) to the transformation coefficients to generate residual blocks within the pixel region.

[0189] The reconstruction unit 314 (for example, an 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 the reconstructed block 315 within the sample region.

[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, smoothing pixel transitions or improving video quality. In one example, the loop filter unit 320 may be configured to perform any combination of 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, such as a bidirectional filter, an adaptive loop filter (ALF), a sharpening or smoothing filter, or a co-filter. In Figure 3, the loop filter unit 320 is shown as an in-loop filter, but in another implementation, the loop filter unit 320 may be implemented as a post-loop filter.

[0191] Next, the decoded video block 321 within a given frame or picture is stored in a decoded picture buffer 330 that stores a reference picture to be used for subsequent motion compensation.

[0192] The decoder 30 is configured to output a decoded picture 31 through output 332 for presentation to or viewing by the user, for example.

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

[0194] Figure 4 is an illustrative diagram of an example video coding system 40 comprising the encoder 20 of Figure 2 and / or the decoder 30 of Figure 3, according to an exemplary embodiment. The system 40 may implement a combination of various technologies of this application. In the implementation described, the video coding system 40 may comprise an imaging device 41, a video encoder 20, a video decoder 30 (and / or a video encoder implemented by using the logic circuits 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, the imaging device 41, antenna 42, processing unit 46, logic circuit 47, video encoder 20, video decoder 30, processor 43, memory 44, and / or display device 45 can communicate with each other. As described, the video coding system 40 is illustrated by using the video encoder 20 and video decoder 30, but in another different example, the video coding system 40 may include only the video encoder 20 or only the video decoder 30.

[0196] In some examples, as illustrated, the video coding system 40 may include an antenna 42. For example, the antenna 42 may be configured to transmit or receive an encoded bitstream of video data. In addition, in some examples, the video coding system 40 may include a display device 45. The display device 45 may be configured to present video data. In some examples, as illustrated, the logic circuits 47 may be implemented by a processing unit 46. The processing unit 46 may include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, or the like. The video coding system 40 may further include an optional processor 43. The optional processor 43 may similarly include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, or the like. In some examples, the logic circuits 47 may be implemented by hardware, for example, hardware dedicated to video coding. The processor 43 may be implemented by general-purpose software, an operating system, or the like. In addition, 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 an unrestricted example, memory 44 may be implemented as cache memory. In some examples, logic circuits 47 may access memory 44 (for example, for the implementation of a picture buffer). In another example, logic circuits 47 and / or processing units 46 may have memory (e.g., a cache) for the implementation of a picture buffer or similar.

[0197] In some examples, a video encoder 20 implemented using logic circuits may comprise a picture buffer (for example, implemented by a processing unit 46 or memory 44) and a graphics processing unit (for example, implemented by a processing unit 46). The graphics processing unit may be communicatively coupled to the picture buffer. The graphics processing unit may comprise a video encoder 20 implemented using logic circuits 47 to implement various modules described with reference to Figure 2, and / or any other encoder systems or subsystems described herein. The logic circuits may be configured to perform various operations described herein.

[0198] The video decoder 30 may be implemented by using the logic circuit 47 in a similar manner to implement various modules described with reference to the decoder 30 in Figure 3, and / or any other decoder systems or subsystems described herein. In some examples, the video decoder 30 implemented by using the logic circuit may include a picture buffer (processing unit). 46 The system may include a graphics processing unit (for example, implemented by a processing unit 46), which may be implemented by memory 44. The graphics processing unit may be communicatively coupled to a picture buffer. The graphics processing unit may include a video decoder 30, which may be implemented by using logic circuits 47 to implement various modules described with reference to Figure 3, and / or any other decoder systems or subsystems described herein.

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

[0200] Figure 5 is a simplified block diagram of a device 500 that may be used as either or both of the source device 12 and destination device 14 in Figure 1, according to an exemplary embodiment. The device 500 may implement the technology of the present application. The device 500 may be a form of a computing system comprising multiple computing devices, or it 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 within the device 500 may be a central processing unit. Alternatively, the processor 502 may be any other type of device or multiple devices capable of manipulating or processing existing or future-developed information. As illustrated, the disclosed implementation can be carried out using a single processor such as the processor 502, but speed and efficiency advantages can 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 memory 504. Memory 504 may contain code and data 506 accessed by the processor 502 via the bus 512. Memory 504 may further contain an operating system 508 and an application program 510. The application program 510 includes at least one program that enables the processor 502 to perform the method described herein. For example, the application program 510 may include applications 1 to N, and applications 1 to N may further include a video coding application that performs the method described herein. The device 500 may further include additional memory in the form of secondary memory 514. The secondary memory 514 may be, for example, a memory card used with a mobile computing device. Since a video communication session may contain a large amount of information, the information may be stored entirely 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, for example, a display 518. In one example, the display 518 may be a touch-sensitive display, wherein the display is coupled to a touch-sensitive element that is operable to sense touch input. The display 518 may be coupled to the processor 502 via a bus 512. In addition to the display 518, other output devices may be provided that enable a user to program the device 500 or otherwise use the device 500, or other output devices may be provided as an alternative to the display 518. When the output device is a display, or includes a display, the display may be implemented in different ways, including using a light-emitting diode (LED) display such as a liquid crystal display (LCD), a cathode-ray tube (CRT) display, a plasma display, or an organic LED (OLED) display.

[0204] The device 500 may further include or be connected to an image sensing device 520. The image sensing device 520 is, for example, a camera, or any other image sensing device 520 that is existing or planned to be developed in the future and capable of sensing an image. The picture is, for example, a picture of the user operating the device 500. The image sensing device 520 may be positioned directly opposite the user operating the device 500. In one example, the positioning 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] The device 500 may further include or be connected to a sound sensing device 522. The sound sensing device 522 may be, for example, a microphone, or any other sound sensing device that is existing or planned to be developed in the future and capable of sensing sounds near the device 500. The sound sensing device 522 may be positioned directly opposite the user operating the device 500 and may be configured to receive sounds emitted by the user when the user operates the device 500, such as a voice or other sounds.

[0206] Although the processor 502 and memory 504 of the device 500 are depicted as integrated into a single unit in Figure 5, other configurations may also be used. The execution of the processor 502 may be distributed across multiple machines (each machine having one or more processors) that can be directly coupled, or it may be distributed in a local area or within another network. The memory 504 may be distributed across multiple machines. For example, the memory 504 may be network-based memory or memory in multiple machines operating the device 500. Although depicted as a single bus in this specification, the bus 512 of the device 500 may be formed by multiple buses. Furthermore, the secondary memory 514 may be directly coupled to another component of the device 500 or it may be accessed via a network. In addition, the secondary memory 514 may comprise a single integrated unit, e.g., one memory card, or multiple units, e.g., multiple memory cards. Thus, the device 500 may be implemented in multiple configurations.

[0207] Figure 6 illustrates the partitioning modes of a binary tree, ternary tree, and quadrown tree.

[0208] A quadtree is a tree structure that shows that one node can be divided into four child nodes. H.265The video coding standard uses a quadtree-based CTU partitioning mode. The CTU is used as the root node, and each node corresponds to a square region. A node can either not be partitioned (in which case the region corresponding to the node is the CU), or it can be partitioned into four lower-level nodes, specifically, as shown in Figure 6(a), where the square region is divided into four equally sized square regions (the length and width of each of the four square regions is half the length and width of the original square region), and each region corresponds to one node.

[0209] A binary tree is a tree structure in which one node can be divided into two child nodes. In existing coding methods that use binary trees, a node on a binary tree structure can either not be divided, or it can be divided into two lower-level nodes. There are two ways to divide a node into two nodes: (1) Horizontal binary partitioning: As shown in Figure 6(b), the area corresponding to the node is divided into two equally sized areas, an upper area and a lower area, each corresponding to one node; or (2) Vertical binary partitioning: As shown in Figure 6(c), the area corresponding to the node is divided into two equally sized areas, a left area and a right area, each corresponding to one node.

[0210] A ternary tree is a tree structure in which one node can be divided into three child nodes. In existing coding practices where ternary trees are used, a node on a ternary tree structure is either indivisible or divided into three lower-level nodes. There are two ways to divide a node into three nodes: (1) Horizontal ternary: As shown in Figure 6(d), the region corresponding to the node is divided into three regions: an upper region, a middle region, and a lower region, 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: As shown in Figure 6(e), the region corresponding to the node is divided into three regions: a left region, a middle region, and a right region, 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.

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

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

[0213] More specifically, for a 64x64 CTU node (with a quadtree depth of 0), based on the split_cu_flag corresponding to the CTU node, a split may not occur, and the CTU node may become a 64x64 CU, or it may be split into four 32x32 nodes (with a quadtree depth of 1). Each of the four 32x32 nodes may or may not be further split based on the split_cu_flag corresponding to that node. If a 32x32 node is further split, four 16x16 nodes (with a quadtree depth of 2) are generated. The remainder can be inferred by analogy until no more nodes are split. In this way, one CTU is split into one group of CUs. The minimum size of a CU is identified by the Sequence Parameter Set (SPS). For example, an 8x8 CU is the minimum CU. In the aforementioned recursive partitioning process, if a node's size is equal to the minimum CU size, that node will not be further partitioned by default, and the node's partitioning flag 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 the coding information corresponding to the CU (information such as the prediction mode and the CU's transformation coefficients, including, for example, the coding_unit() syntax structure in H.265) is further analyzed. Then, decoding processes such as prediction, dequantization, inverse transformation, 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 appropriately sized CUs based on the features of the local picture. 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 Split mode and SangenA split mode will be added to the Versatile Video Coding Test Model (VTM) reference software. VTM is new codec reference software developed by JVET.

[0216] Binary partitioning is the process of dividing a node into two child nodes. There are two specific modes of binary partitioning: (1) Horizontal binary partitioning: As shown in Figure 6(b), the area corresponding to a node is divided into two equally sized areas, an upper area and a lower area (specifically, the width remains unchanged, and the height is half the height of the area before partitioning), with each area corresponding to one node; or (2) Vertical binary partitioning: As shown in Figure 6(c), the area corresponding to a node is divided into two equally sized areas, a left area and a right area (specifically, the height remains unchanged, and the width is half the width of the area before partitioning).

[0217] Ternary partitioning is the process of dividing a node into three child nodes. There are two specific modes of ternary partitioning: (1) Horizontal ternary division: As shown in Figure 6(d), the region corresponding to a node is divided into three regions: an upper region, an intermediate region, and a lower region, each corresponding to one node, and the heights of the upper region, intermediate region, and lower region 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 region corresponding to a node is divided into three regions: a left region, an intermediate region, and a right region, each corresponding to one node, and the widths of the left region, intermediate region, and right region are 1 / 4, 1 / 2, and 1 / 4 of the node's width, respectively.

[0218] In VTM, a partitioning mode is used 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 QT leaf nodes. Nodes within QT can be further partitioned into four QT child nodes using quadtree partitioning, or a single QT leaf node can be generated without using quadtree partitioning. The QT leaf node functions as the root node of the MTT. Nodes within the MTT can be partitioned into child nodes using one of four partitioning modes: horizontal binary partitioning, vertical binary partitioning, horizontal ternary partitioning, and vertical ternary partitioning, or they can become MTT leaf nodes without further partitioning. The leaf nodes of the MTT are coding units (CUs).

[0219] Figure 7 shows an example where a CTU is divided into 16 CUs from a to p using QT-MTT. In the right-hand panel of Figure 7, each endpoint represents one node. Four lines connected to one node represent a quadtree partition, two lines connected to one node represent a binary partition, and three lines connected to one node represent a ternary partition. Solid lines represent QT partitions, and dashed lines represent MTT split This shows the first layer decomposition, with the dashed line representing MTT. division This shows the second layer partitioning. a through p are 16 MTT leaf nodes, and each MTT leaf node is one CU. The partitioning diagram of the CUs shown in the left panel of Figure 7 is obtained for the CTU by using the partitioning mode shown in the right panel of Figure 7.

[0220] In QT-MTT split mode, each CU is defined as having a QT depth (Quad-tree depth, QT dept h) and MTT depth (Multi-Type-Tree depth, MTT dept h)QT depth indicates the QT depth of the QT leaf node to which the CU belongs, and 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 a QT partition is used on a node in the coding tree, the QT depth of the child nodes obtained through the partition is the QT depth of that node + 1, and the MTT depth remains unchanged. Similarly, when an MTT partition (i.e., either a BT partition or a TT partition) is used on a node in the coding tree, the MTT depth of the child nodes obtained through the partition 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. MTT The depth is 1. If the CTU is divided into only one CU, the CU's QT depth is 0 and the MTT depth is 0.

[0221] In HEVC, one CU contains one luminance block quantization parameter (QP) and two chrominance block quantization parameters, the chrominance block quantization parameters being derived from the luminance block quantization parameters. The chrominance block quantization parameters are abbreviated as chrominance QPs, and the luminance block quantization parameters are abbreviated as luminance QPs. Decoding the luminance QP of the current CU involves the following process:

[0222] The diff_cu_qp_delta_depth syntax element is obtained from the Picture Parameter Set (PPS), and the Quantization Group (QG) is derived based on this syntax element. Specifically, the quantization group is an N×N region, where N=CTUSize>>diff_cu_qp_delta_depth, and CTUSize is the side length of the CTU. For example, the CTUSize of a 64×64 CTU is 64. A 64×64 CTU is divided into M QGs of size N×N, where M is a positive integer. For example, when diff_cu_qp_delta_depth=2, the CTU is divided into 16 QGs of size 16×16, as shown in Figure 8. Since HEVC only uses QT partitioning, if a QG obtained using the aforementioned QG determination scheme contains multiple CUs whose size is smaller than the size of the QG, then that QG will certainly contain multiple complete CUs. In other words, multiple CUs whose size is smaller than the size of the QG are entirely contained within the QG, and CUs whose size is smaller than the size of the QG cannot be contained within multiple QGs. In addition, when only QT partitioning is used, the QG obtained by the aforementioned QG determination scheme can further ensure that CUs are certainly contained within the QG if they have the same size as the QG. When a CU is larger than a QG, the CU certainly contains multiple complete QGs.

[0223] The current quantization group (QG) to which the current CU is located is determined, and the current QG is the QG that covers the coordinates of the upper-left corner of the current CU. If the coordinates of the upper-left corner of the current CU are Pcu=(xCb,yCb), then the coordinates of the upper-left corner of the current quantization group are Pqg=(xQg,yQg), and are 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] The QP difference value of the current CU, for example, CuQpDeltaVal in the HEVC standard, is obtained. If the current CU is the first CU with residuals in the QG (for example, if one of the coded block flags of the current CU, cbf_luma, cbf_cb, or cbf_cr, has a non-zero value, it indicates that the current CU has residuals), the QP difference value of the current CU is parsed from the bitstream. Difference This is used as the QP difference value for all CUs whose coding sequence is later than that of the current CU in the current QG. The QP difference value for all CUs whose coding sequence is earlier than that of the current CU in the current QG is 0.

[0226] Current QG luminance block quantization parameter predictors, for example, qP in the HEVC standard. Y_PRED qP is obtained. Y_PRED This can be obtained through prediction based on the luminance QP of the left adjacent and upper adjacent of the current QG. The left adjacent of the current QG is (xQg-1, yQg) and the upper adjacent is (xQg, yQg-1). The luminance QP in the upper adjacent is the luminance QP of the coding unit covering the upper adjacent. If the upper adjacent is unavailable or does not belong to the same tile as the current block, the luminance QP in the upper adjacent is the luminance QP of the last CU in the previous QG (e.g., qP in the HEVC standard). Y_PREV) is set to ). Similarly, the luminance QP for the left adjacent placement is the luminance QP of the coding unit covering the left adjacent placement. If the left adjacent placement is unavailable or does not belong to the same tile as the current block, the luminance QP for the left adjacent placement is set to the luminance QP of the last CU in the previous QG. There are several ways in which an adjacent placement can be determined to be unavailable. For example, if the adjacent placement is outside the current strip, the adjacent placement is unavailable. In another example, if the adjacent placement is outside the current picture, the adjacent placement is unavailable. In yet another example, if the adjacent placement is not inside the current CTU, the adjacent placement is unavailable. In yet another example, if the pixels in the adjacent placement have not been reconfigured, the adjacent placement is unavailable.

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

[0228] In the QT-MTT splitting mode, using the aforementioned QG splitting mode reveals that one QG may contain only a portion of one CU, or one CU may contain multiple different QGs. Therefore, a new decoding (QG determination) 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] Figure 9 is a flowchart illustrating exemplary operation of a video decoder according to one embodiment of the present application (for example, the video decoder 30 in Figure 3). One or more structural elements of the video decoder 30 may be used to perform the technique of Figure 9. This embodiment includes the following steps.

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

[0231] The coding tree segmentation information is obtained from the bitstream received by the video decoder 30, and this step may be specifically performed by the entropy decoding unit within the 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 partitioned in the QT-MTT partitioning 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: Based on the current node depth N, the region covered by the current quantization group is determined. In one implementation, determining the region covered by the current quantization group based on the current node depth N includes determining the coordinates of the upper-left corner of the region covered by the current quantization group. After the coordinates of the upper-left corner are determined, a specific region covered by the current quantization group can be determined. Therefore, in the following description, determining the region covered by the current quantization group may be understood as determining the coordinates of the upper-left corner of the region covered by the current quantization group.

[0234] It should be understood that there may be different methods for determining the current node depth N based on different requirements.

[0235] In this embodiment of the present invention, four methods are provided for determining the region covered by the current quantization group based on the current node depth N, which are as follows:

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

[0237] In particular, it is first determined that the depth N of the current node is greater than the 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. Next, it is determined that the region covered by the current quantization group is the region 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 current node's depth N. One way is to determine the current node's depth N as the current node's QT depth. 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 current node's depth N as the sum of the current node's QT depth and the current node's MTT depth. For example, in Figure 7, node k has a QT depth of 1 and an MTT depth of 0. Therefore, the depth N of node k is 1. In Figure 7, node a has a QT depth of 1 and an MTT depth of 2. Therefore, the depth N of node a is 3. The root node of the coding tree has a QT depth of 0. When QT partitioning is used on a node in a QT coding tree, the QT depth of the child nodes obtained through the partitioning is the QT depth of that node + 1. If QT partitioning is not used on a node on QT, that node is the MTT root node. The MTT depth of the MTT root node is 0. If MTT partitioning is used on a node on the MTT coding tree, the MTT depth of the child nodes obtained through the partitioning is the node's MTT depth + 1, and the QT depth of the child nodes is the node's QT depth. In other words, starting from the CTU root node, if the current node has been obtained with the values ​​of S1 QT partitioning and S2 MTT partitioning, 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. A node with an MTT depth of 1 includes the nodes corresponding to a and b (i.e., the node containing the region where a and b are located), the nodes corresponding to c and d, the nodes corresponding to e, f and g, the node 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 a node can be obtained by performing MTT partitioning only once on a QT leaf node that is obtained after QT partitioning has been performed on the CTU.Nodes with an MTT depth of 2 include the node corresponding to a, b, c, d, e, f, g, i, and j. An MTT depth of 2 indicates that the node is obtained by performing the MTT decomposition twice on the QT leaf nodes, which are acquired after the QT decomposition is performed on the CTU. By analogy, there may be nodes with an MTT depth of 3, 4, 5, or similar values ​​(in Figure 7, there are no nodes with an MTT depth greater than 2).

[0239] Method 2: The region covered by the current quantization group is determined based on the current node depth N and a first threshold T1. In this implementation, the current node depth N is determined as the current node's QT depth.

[0240] If the current node's depth N is greater than a first threshold T1, or if the current node's multitype tree depth M 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 of a and b is used. It is then determined that the region covered by the current quantization group is the region 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 contains the current node and is the node generated after K quadtree splits starting from the CTU, 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 indicate 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 indicates 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 is that the depth N of the current node is less than or equal to the first threshold T1. Condition 2 is that the multi-type tree depth M of the current node is equal to 0.

[0249] Method 5: The region covered by the current quantization group is determined based on the current node depth N and a first threshold T1. In this implementation, the current node depth N is determined as the current node's QT depth.

[0250] If both conditions 3 and 4 are met, or if condition 5 is met, then the region covered by the current quantization group is determined to be the region 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.

[0251] Method 6: The region covered by the current quantization group is determined based on the current node depth N and a first threshold T1. In this implementation, the current node depth N is determined as the current node's QT depth.

[0252] If both conditions 3 and 4 are met, or both conditions 5 and 6 are met, then the region covered by the current quantization group is determined to be the region 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 less than or equal to the fourth threshold T4.

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

[0254] Method 7: The region covered by the current quantization group is determined based on the current node depth N and a first threshold T1. In this implementation, the current node depth N is determined as the current node's QT depth.

[0255] If both conditions 1 and 7 are met, it is determined that the region covered by the current quantization group is the region covered by the current node. Condition 1 is that the depth N of the current node is less than or equal to the 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 region covered by the current quantization group based on the current node depth N, the current node partitioning mode, and a second threshold T2.

[0257] Details are as follows:

[0258] 1. If the current node depth N is equal to the second threshold T2-1 and the current node's partitioning mode is a ternary partitioning mode, then the region covered by the current quantization group is determined to be the region covered by the current node.

[0259] 2. Alternatively, if the current node's depth N is equal to the second threshold T2, and the current node's partitioning mode is either binary or quadtree, then the region covered by the current quantization group is determined to be the region covered by the current node.

[0260] 3. Alternatively, if the current node's depth is below the second threshold and the current node can no longer be partitioned, the region covered by the current quantization group is determined to be the region covered by the current node. In this case, the region covered by the current quantization group is the CU coverage region.

[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 similar values.

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

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

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

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

[0266] Alternatively, if the current node is an MTT node and not an MTT root node, and the current node is a meson node obtained in ternary partitioning mode (i.e., a meson node among three child nodes), then the binary depth Db of the current node is the binary depth of the current node's direct 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 acquired in ternary partitioning mode, then the binary depth Db of the current node is the binary depth of the current node's direct parent node + 2.

[0268] The depth determined by the formula N = Dq*2 + Db has a one-to-one correspondence with the node area. For example, if the CTU is 128 × 128 and the node depth is N, then the node area is (128 × 128) >> N.

[0269] Method 9: Current node depth N, current node partitioning mode, and 3 Based on the threshold T3, the region covered by the current quantization group is determined.

[0270] Details are as follows:

[0271] 1. If the current node's depth N is equal to the third threshold T3-1, and the current node's partitioning mode is either ternary or quadtree, then the region covered by the current quantization group is determined to be the region covered by the current node.

[0272] 2. Alternatively, if the current node's depth N is equal to a third threshold T3 and the current node's partitioning mode is a binary partitioning mode, then the region covered by the current quantization group is determined to be the region covered by the current node.

[0273] 3. Alternatively, if the current node's depth N is equal to a third threshold T3 and the current node can no longer be partitioned, then the region covered by the current quantization group is determined to be the region covered by the current node. In this case, the region covered by the current quantization group is the coverage region of the CU.

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

[0275] For the method of determining the depth N of the current node, refer to Method 3.

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

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

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

[0279] For the specific implementation form of this step, refer to the existing implementation forms, for example, refer to the method in the HEVC standard, or in another example, refer to the method in the H.264 / AVC standard. For example, the dequantized coefficients of the current CU can 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 luminance QPA in the left adjacent arrangement and the luminance 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 luminance QP predictor of the current QG is obtained based on QPA and QPB. For specific implementation forms, refer to the calculation method of qP in HEVC. Y_PRED The coordinates of the upper left corner of the current QG are recorded as Pqg = (xQg, yQg). The left adjacent arrangement of the current QG is PA = (xQg - 1, yQg), and the upper adjacent arrangement of the current QG is PB = (xQg, yQg - 1). The luminance QP in the upper adjacent arrangement is the luminance QP of the coding unit covering the upper adjacent arrangement PB. If the upper adjacent arrangement is unavailable (for example, the upper adjacent arrangement is outside the current strip or the reconstruction of the upper adjacent arrangement is not completed), or if it does not belong to the same tile as the current block, the luminance QP of the upper adjacent arrangement is set to the luminance QP of the last CU in the previous QG (for example, qP in the HEVC standard). Y_PREV Similarly, the luminance QP in the left adjacent arrangement is the luminance QP of the coding unit covering the left adjacent arrangement PA. If the left adjacent arrangement is unavailable or does not belong to the same tile as the current block, the luminance QP in the left adjacent arrangement is set to the luminance QP of the last CU in the previous QG.

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

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

[0283] Method 2: The area of the current CU is R1, the area of the CU where the left adjacent arrangement is placed is R2, and the area of the CU where the upper adjacent arrangement is placed 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; when the bit width of the luminance component is 10, QpBdOffsetY is 12).

[0286] Optionally, in the improved processing scheme, if the QP difference value of a first CU with residuals in the current QG is not equal to 0, the luminance QP of all CUs whose coding sequence precedes the coding sequence of the first CU with residuals in the current QG is corrected to the luminance QP of the first CU with residuals. 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 values ​​of the current CU. The specified QP values ​​are used in subsequent coding operations, such as deblocking filtering or QP prediction.

[0287] After the current luminance QP and chrominance QP of the CU are obtained, dequantization and inverse transformation processes are performed on the transformation coefficients of the current CU, thereby obtaining the residual picture of the current CU.

[0288] Inter-frame prediction processing or intra-frame prediction processing is performed on the current CU based on the prediction mode of the current CU, thereby obtaining the inter-frame prediction picture or intra-frame prediction picture of the current CU.

[0289] The residual picture of the current CU is overlaid on 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 may be further obtained based on the mapping relationship between the luminance QP and the chrominance QP, and the offset value of the chrominance QP. Specific embodiments are not limited to this embodiment of the present invention.

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

[0292] In one implementation, determining the region covered by the current quantization group, based on the current node's depth N, involves determining the coordinates of the upper-left corner of the region covered by the current quantization group. After the coordinates of the upper-left corner are determined, a specific region covered by the current quantization group can be determined. Therefore, in the following description, determining the region covered by the current quantization group may be understood as determining the coordinates of the upper-left corner of the region covered by the current quantization group.

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

[0294] The inverse transformation 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 the reconstructed picture of the current CU based on the reconstructed residual block of the current CU.

[0296] For specific implementations of the video decoder 30, please refer to the method described in Figure 9. Further details will not be explained here.

[0297] In one implementation, the current node depth N is the quadtree depth N of the current node. The entropy decoding unit 304 determines the region covered by the current quantization group or the multitype of the current node based on the current node depth N. tree It is specifically configured to determine the region covered by the current quantization group based on the depth M. If N is greater than a first threshold T1 or M is greater than 0, the region covered by the current quantization group is the region covered by the K-th layer quadtree node of the current node. K is the smaller of N and T1, and the K-th layer quadtree node is the quadtree node that contains the current node and is generated after K quadtree splits, starting from the coding tree unit CTU.

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

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

[0300] In one implementation form, 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, or to determine the 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. 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 form, 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 multi-type 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 less than or equal to the fourth threshold T4, the area covered by the current quantization group is the area covered by the current node.

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

[0303] In one implementation form, 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 current node depth N is the current node's quadtree depth N. The entropy decoding unit 304 is specifically configured to determine the region covered by the current quantization group based on the current node's quadtree depth N and the current node's multitype tree depth M. When N is less than or equal to a first threshold T1 and M is less than or equal to T1-N, the region covered by the current quantization group is the region covered by the current node.

[0305] In one implementation, the entropy decoding unit 304 may be specifically configured to acquire 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 to determine that the region covered by the current quantization group is the region 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 region covered by the current quantization group is the region 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 current node depth is either the current node's QT depth or the sum of the current node's QT depth and the current node's MTT depth.

[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 region covered by the current quantization group is the region 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 region covered by the current quantization group is the region covered by the current node if 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; or determine that the region covered by the current quantization group is the region covered by the current node if the depth N of the current node is less than or equal to a 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 region covered by the current quantization group is the region 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 region covered by the current quantization group is the region covered by the current node if 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; or determine that the region covered by the current quantization group is the region covered by the current node if the depth N of the current node is equal to a 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 current node's QT depth and the current node's binary depth Db.

[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 binary depth Db of the current node is 0; or if the current node is an MTT node but not an MTT root node, and is a child node acquired in binary partitioning mode, the binary depth Db of the current node is the binary 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 is a meson node acquired in ternary partitioning mode, the binary depth Db of the current node is the binary 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 is a non-meson node acquired in ternary partitioning mode, the binary depth Db of the current node is the binary depth of the current node's direct parent node + 2.

[0316] In one implementation, the entropy decoding unit 304 is further configured to correct the luminance QP of all CUs whose coding sequence precedes the coding sequence of the first CU with residuals in the current quantization group to the luminance QP of the first CU with residuals, if the QP difference value of the first CU with residuals in the current quantization group is not equal to 0. Correspondingly, if the current CU is a CU prior to the first CU with residuals in the current quantization group, the inverse quantization unit 310 is specifically configured to obtain the dequantized coefficient of the current CU based on the luminance QP of the first CU with residuals.

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

[0318] One 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 stores a computer program that can be executed by the at least one processor, and the video decoder is configured to perform one of the methods described above when the computer program is executed by the at least one processor.

[0319] One embodiment of the present invention is at least one Further, a computer-readable storage medium is provided, configured to store computer programs that can be executed by a processor. When a computer program is executed by at least one processor, one of the methods described above is performed.

[0320] One embodiment of the present invention further provides a computer program. When the computer program is executed, one of the methods described above is performed.

[0321] In one or more examples, the functions described may be implemented by hardware, software, firmware, or any combination thereof. If implemented by software, these functions may be stored or transmitted as one or more instructions or codes on a computer-readable medium and executed by a hardware-based processing unit. The 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, for example, any medium that facilitates the transmission of a computer program from one location to another according to a communication protocol. In this scheme, the computer-readable medium may generally correspond to (1) a non-temporary 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 implement the techniques described in embodiments of the present invention, and from which instructions, codes, and / or data structures can be retrieved. A computer program product may include a computer-readable medium.

[0322] For example, but not limited to, 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 media accessible by a computer that can be used to store program code required in the form of instructions or data structures. In addition, any connection may appropriately be called 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, then 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 a medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carriers, signals, or other temporary media, and in practice mean non-temporary tangible storage media. As used herein, "disk" and "disc" include compact discs (CDs), laserdiscs (registered trademark), optical discs, digital versatile discs (DVDs), floppy disks, and Blu-ray discs. A disk typically reproduces data magnetically, while a disc reproduces data optically using a laser. Combinations of the aforementioned items should also be included within the scope of computer-readable media.

[0323] Instructions can be executed by one or more processors. These processors may include, for example, one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), or field-programmable logic arrays (FIELDS). y、 This includes FPGAs, or other equivalent integrated or discrete logic circuits. Therefore, the term “processor” as used herein may refer to either the aforementioned structures or any other structure suitable for implementing the techniques described herein. In addition, in some embodiments, the functionality described herein may be implemented within dedicated hardware and / or software modules configured to perform encoding and decoding, or incorporated into a combined codec. Furthermore, these techniques may all be implemented using one or more circuits or logic elements.

[0324] The technology of this disclosure may be implemented in a variety of devices or apparatus, including wireless handsets, integrated circuits (ICs), or sets of ICs (e.g., chipsets). Various components, modules, or units are described in this disclosure to highlight functional aspects of devices configured to perform the disclosed technology, but are not necessarily implemented by different hardware units. More precisely, as described above, various units may be combined within a codec hardware unit in combination with suitable software and / or firmware, or provided by a set of interoperability hardware units. A hardware unit may include one or more processors as described above. [Explanation of symbols]

[0325] 10 Coding Systems 12 Source Devices 13 Encoded pictures, encoded data 14 Destination device 16 Picture Sources 17 Picture Data 18 Picture preprocessing unit, preprocessing unit 19 Picture data 20 encoders 21 Encoded picture data 22 Communication interface or communication unit 28 Communication interface or communication unit 30 Decoders 32 Post-processing units, post-processors 33 Picture Data 34 Display Devices 40 Video Coding Systems 41 Imaging devices 42 Antennas 43 processors 44 memory 45 Display devices 46 Processing Units 47 Logic Circuits 201 Pictures 202 inputs 203 Blocks 204 Residual Calculation Unit 205 Residual Block 206 Conversion Processing Unit 207 Conversion coefficient 208 Quantization Units 209 conversion coefficients 210 Inverse Quantization Unit 211 Dequantized coefficients 212 Inverse Transform Processing Unit 213 Inverse Transform Block 214 Reconfiguration 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 units 245 Inter-frame prediction block 246 Motion Compensation Unit 254 frame prediction units 255 frame prediction blocks 260 Prediction Processing Units 262 Mode Selection Unit 265 Prediction Blocks 270 Entropy Coding Units 304 Entropy Decoding Unit 309 Quantized coefficients 310 Inverse Quantization Unit 312 Inverse Transform Processing Unit 314 Reconfiguration Unit, Adder 316 buffers 320 Loop Filter 321 decoded video blocks 330 Decode picture buffer 332 output 344 inter-frame prediction units 354 In-frame prediction units 360 Predictive Processing Unit 362 Mode Selection Unit 500 devices 502 Processors 504 memory 506 Bus 508 Operating Systems 510 Application Programs 512 Codes and Data 514 Secondary memory 518 displays 520 Image Sensing Devices 522 Sound-sensing devices 2820 Processing Unit

Claims

1. A video decoding method, Steps include receiving an encoded bitstream of video, The steps include performing entropy decoding on the bitstream to obtain coding tree partitioning information and syntax elements, The steps include: executing a splitting process according to the coding tree splitting information to obtain the current node; A step of determining whether the coverage area of ​​the current node is the same as the coverage area of ​​the current quantization group (QG), based at least on the depth of the current node, The steps include determining that the coverage area of ​​the current node is the same as the coverage area of ​​the current QG, and obtaining the coordinates of the upper left corner of the coverage area of ​​the current QG, The steps include obtaining the quantization parameter (QP) difference value of the current coding unit (CU) in the coverage area of ​​the current QG, A step of obtaining the predicted block of the current CU based on the syntax element, A step of obtaining a reconfigured picture of the current CU based on the QP difference value and the prediction block of the current CU, A method that includes this.

2. When the depth of the current node is equal to the second threshold T2-1 and the partitioning mode of the current node is the ternary partitioning mode, the coverage area of ​​the current node is the same as the coverage area of ​​the current QG, If the depth of the current node is equal to the second threshold T2, and the partitioning mode of the current node is either binary partitioning mode or quadtree partitioning mode, then the coverage area of ​​the current node is the same as the coverage area of ​​the current QG. If the current node's depth N is equal to the third threshold T3-1, and the current node's partitioning mode is either ternary partitioning mode or quadtree partitioning mode, then the current node's coverage area is the same as the current QG's coverage area. The method according to claim 1, wherein, 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 coverage area of ​​the current node is the same as the coverage area of ​​the current QG.

3. The method according to claim 2, wherein the depth of the current node is determined based on the quadtree (QT) depth and the binary depth of the current node.

4. The current node depth is calculated using the following formula: N = Dq * 2 + Db The method according to claim 3, wherein the following conditions are met, where Dq represents the QT depth of the current node, Db represents the binary depth of the current node, and N represents the depth of the current node.

5. The method according to claim 1, wherein the QP difference value is analyzed from the bitstream.

6. The method according to claim 5, wherein the QP difference value is expressed by an absolute value and a sign.

7. A video decoding device, At least one processor, A video decoding device comprising one or more memories coupled to the at least one processor, which store programming instructions executed by the at least one processor to cause the video decoding device to perform the method according to any one of claims 1 to 6.

8. A video encoder comprising the video decoding device according to claim 7 and a memory, wherein the video decoding device is further configured to acquire a bitstream containing coding tree partitioning information, The memory is a video encoder configured to store the bitstream.

9. A video decoder comprising a memory and the video decoding device described in Claim 7, The memory is configured to store a bitstream containing coding tree partitioning information, The video decoding device is further configured to analyze the bitstream to obtain the coding tree segmentation information and to perform a segmentation process based at least on the coding tree segmentation information, and is a video decoder.

10. A computer-readable storage medium on which a program is recorded, wherein the program causes a computer to execute the method according to any one of claims 1 to 6.

11. A computer program configured to cause a computer to perform the method described in any one of claims 1 to 6.