Flexible block partitioning for chroma components

Flexible block partitioning for chroma components in video coding formats addresses the limited quantization step size issue in AV1 by using different coding tree structures for luma and chroma blocks, enhancing bitrate granularity and compression efficiency.

JP7852113B2Active Publication Date: 2026-04-27TENCENT AMERICA LLC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
TENCENT AMERICA LLC
Filing Date
2025-03-19
Publication Date
2026-04-27

AI Technical Summary

Technical Problem

The existing video coding formats, such as AV1, have limited resolution for quantization step sizes, particularly with 10-bit and 12-bit internal bit depths, affecting the granularity of bitrates and efficiency in video compression.

Method used

Implementing flexible block partitioning for chroma components by using different coding tree structures for luma and chroma blocks based on specific thresholds, allowing independent partitioning of chroma blocks when necessary, and incorporating a nested multi-type tree structure for enhanced flexibility and efficiency in video encoding and decoding.

Benefits of technology

Enhances the granularity of bitrates and improves the efficiency of video compression by allowing for more flexible and adaptive block partitioning, particularly for chroma components, addressing the limitations of existing video coding formats like AV1.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007852113000002
    Figure 0007852113000002
  • Figure 0007852113000003
    Figure 0007852113000003
  • Figure 0007852113000004
    Figure 0007852113000004
Patent Text Reader

Abstract

To provide a video encoding and / or decoding method including flexible block partitioning division for chroma components.SOLUTION: An approach for encoding / decoding video data includes analyzing video data to obtain partitioning division parameters, obtaining a partition-divided super-block, and decoding based on the partition-divided super-block. Based on a luma block region size or a minimum luma block luma division depth, either a luma block or chroma block of a partition-divided super-block is partition-divided based on a first block partitioning division structure or the luma block is partition-divided based on a first block partitioning division structure, and the chroma block is partition-divided based on a second block partitioning division structure.SELECTED DRAWING: Figure 9
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Cross - reference to Related Applications This application claims priority from U.S. Provisional Patent Application No. 62 / 958,422, filed on January 8, 2020, and U.S. Patent Application No. 17 / 087,236, filed on November 2, 2020, the entire contents of which are incorporated herein by reference.

[0002] The present disclosure generally relates to the field of data processing, and more specifically, to video encoding and / or decoding including flexible block partitioning for chroma components.

Background Art

[0003] AOMedia Video 1 (AV1) is an open video coding format designed for video transmission over the Internet. It was developed as a successor to VP9 by AOMedia (Alliance for Open Media), a consortium founded in 2015 that includes semiconductor companies, video-on-demand providers, video content producers, software development companies, and web browser vendors. Many of the AV1 project's components were derived from previous research efforts by alliance members. Individual contributors launched experimental technology platforms several years prior. Xiph / Mozilla's Daala released its code as early as 2010, Google's experimental VP9 evolution project VP10 was announced on September 12, 2014, and Cisco's Thor was released on August 11, 2015. Building upon the VP9 codebase, AV1 incorporates additional technologies, some of which were developed in these experimental formats. The first version of the AV1 reference codec, 0.1.0, was released on April 7, 2016. The Alliance announced the release of the AV1 bitstream specification on March 28, 2018, along with a reference, software-based encoder, and decoder. A verified version 1.0.0 of the specification was released on June 25, 2018. A verified version 1.0.0 including Errata 1 of the specification was released on January 8, 2019. The AV1 bitstream specification includes a reference video codec. AOMedia Video 2 (AV2) is currently under development. AV1 has a limited resolution for quantization step size.

[0004] The ITU-T VCEG (Q6 / 16) and ISO / IEC MPEG (JTC1 / SC29 / WG11) published the H.265 / HEVC (High Efficiency Video Coding) standard in 2013 (version 1), 2014 (version 2), 2015 (version 3), and 2016 (version 4). In 2015, these two standards bodies jointly formed JVET (Joint Video Exploration Team) to explore the possibility of developing the next video coding standard beyond HEVC. In October 2017, these standards bodies issued a Call for Proposals (CfP) for video compression that includes features beyond HEVC. By February 15, 2018, a total of 22 CfP responses had been submitted for Standard Dynamic Range (SDR), 12 for High Dynamic Range (HDR), and 12 for the 360 ​​video category. In April 2018, all CfP responses received were evaluated at the 122nd MPEG / 10th JVET meeting. As a result of this meeting, JVET officially launched the standardization process for next-generation video coding beyond HEVC. The new standard was named VVC (Versatile Video Coding), and JVET is working to standardize Joint Video It was renamed Expert Team. [Overview of the Initiative]

[0005] The embodiments relate to methods, systems, and computer-readable media for encoding and / or decoding video data.

[0006] According to one embodiment, a method for encoding and / or decoding video data is provided. This method may include the steps of: acquiring video data; analyzing the acquired video data to obtain partitioning parameters; obtaining partitioned superblocks based on the partitioning parameters; and decoding the video data based on the partitioned superblocks. Based on whether the luma block region size of the smallest luma block in the partitioned superblock is greater than a first threshold, or whether the luma partitioning depth of the smallest luma block is less than a second threshold, the luma blocks and chroma blocks of the partitioned superblock are partitioned based on a first block partitioning structure. Based on whether the luma block region size is smaller than a first threshold or the luma partitioning depth is larger than a second threshold, the luma blocks of the partitioned superblock are partitioned based on a first block partitioning structure, and the chroma blocks of the partitioned superblock are partitioned based on a second block partitioning structure different from the first block partitioning structure.

[0007] According to one embodiment, an apparatus for encoding and / or decoding video data is provided. The apparatus may include: at least one memory configured to store program code; and at least one processor configured to read the program code and to operate as directed by the program code; and the program code includes: The code includes: a first acquisition code configured to cause at least one processor to acquire video data; an analysis code configured to cause at least one processor to analyze the acquired video data and obtain partitioning parameters; a second acquisition code configured to cause at least one processor to acquire superblocks partitioned based on the partitioning parameters; and a decoding code configured to cause at least one processor to decode the video data based on the partitioned superblocks. Based on whether the luma block region size of the smallest luma block in the partitioned superblock is greater than a first threshold, or whether the luma partitioning depth of the smallest luma block is less than a second threshold, the luma blocks and chroma blocks of the partitioned superblock are partitioned based on a first block partitioning structure. Based on whether the luma block region size is smaller than a first threshold or the luma partitioning depth is larger than a second threshold, the luma blocks of the partitioned superblock are partitioned based on a first block partitioning structure, and the chroma blocks of the partitioned superblock are partitioned based on a second block partitioning structure different from the first block partitioning structure.

[0008] According to one embodiment, a non-temporary computer-readable medium is provided for encoding and / or decoding video data. The non-temporary computer-readable medium can store instructions, which include one or more instructions, and when an instruction is executed by one or more processors of the device for video coding, the one or more processors, The process involves: acquiring video data; analyzing the acquired video data to obtain partitioning parameters; obtaining superblocks partitioned based on the partitioning parameters; and decoding the video data based on the partitioned superblocks. Based on whether the luma block region size of the smallest luma block in the partitioned superblock is greater than a first threshold, or whether the luma partitioning depth of the smallest luma block is less than a second threshold, the luma blocks and chroma blocks of the partitioned superblock are partitioned based on a first block partitioning structure. Based on whether the luma block region size is smaller than a first threshold or the luma partitioning depth is larger than a second threshold, the luma blocks of the partitioned superblock are partitioned based on a first block partitioning structure, and the chroma blocks of the partitioned superblock are partitioned based on a second block partitioning structure different from the first block partitioning structure. [Brief explanation of the drawing]

[0009] These and other purposes, features, and advantages will become apparent from the following detailed description of exemplary embodiments, which should be read in conjunction with the attached drawings. Various features of the drawings are not to scale, as this is to make it clear that the drawings, together with the detailed description, will be easily understood by those skilled in the art. [Figure 1] This figure shows a networked computer environment according to at least one embodiment. [Figure 2] This figure shows an example of a multi-type tree partitioning mode according to at least one embodiment. [Figure 3] This figure shows an example of partitioning flag signaling in a quadtree having a nested multi-type tree coding tree structure, according to at least one embodiment. [Figure 4] This figure shows an example of a quadtree having a nested multi-type tree coding block structure according to at least one embodiment. [Figure 5] This figure shows an example of a coding tree structure in VP9 according to at least one embodiment. [Figure 6] This figure shows an example of a coding tree structure in AV1 according to at least one embodiment. [Figure 7] This figure shows an example of a restricted partitioned area according to at least one embodiment. [Figure 8] This figure shows an example of a coding tree structure for luma and chroma components according to at least one embodiment. [Figure 9] This is an operation flowchart illustrating the steps performed by a program that codes video data, according to at least one embodiment. [Figure 10] Figure 1 is a block diagram of the internal and external components of a computer and server, according to at least one embodiment. [Figure 11] This is a block diagram of an exemplary cloud computing environment, including the computer system shown in Figure 1, according to at least one embodiment. [Figure 12] This is a block diagram of the functional layers of the exemplary cloud computing environment shown in Figure 11, according to at least one embodiment. [Modes for carrying out the invention]

[0010] Detailed embodiments of the structures and methods described in the claims are disclosed herein. However, it should be understood that the disclosed embodiments are merely illustrative of the structures and methods described in the claims, which can be embodied in various forms. Nevertheless, these structures and methods can be embodied in many different forms and should not be construed as being limited to the exemplary embodiments described herein. Rather, these exemplary embodiments are provided to fully convey to those skilled in the art that this disclosure is complete and perfect and of its scope. In the detailed description, well-known features and technical details may be omitted to avoid unnecessarily obscuring the embodiments presented.

[0011] The embodiments generally relate to the field of data processing, more specifically to the encoding and decoding of video. The exemplary embodiments described below provide, among other things, systems, methods, and computer programs for encoding and / or decoding video data using an extended quantizer for efficient compression of video data. Thus, some embodiments have the ability to improve the field of computing by providing an extended quantizer for AV2.

[0012] As mentioned earlier, AOMedia Video 1 (AV1) is an open video coding format designed for video transmission over the Internet. It was developed as a successor to VP9 by AOMedia (Alliance for Open Media), a consortium established in 2015 that includes semiconductor companies, video-on-demand providers, video content producers, software development companies, and web browser vendors. Currently, the resolution of AV1 quantization step sizes is limited. While the range of step sizes has expanded, the effective range of Q_index remains the same. This limitation on the resolution of quantization steps becomes more apparent with respect to the internal bit depth of 10-bit and 12-bit, with the corresponding 8-bit step sizes (obtained using q_idx) scaling by 4 and 16, respectively. This can affect the granularity of the bitrates that can be achieved by the codec. Therefore, increasing the resolution of the quantization step size by expanding the range of the quantization index may be advantageous.

[0013] Embodiments are described herein with reference to flowcharts and / or block diagrams of various embodiments of methods, devices (systems), and computer-readable media. It will be understood that each block in a flowchart and / or block diagram, and combinations of blocks in a flowchart and / or block diagram, can be implemented by computer-readable program instructions.

[0014] Referring here to Figure 1, a functional block diagram of a networked computer environment is shown illustrating a video coding system 100 (hereinafter referred to as the "System") for encoding and / or decoding video data according to an exemplary embodiment as described herein. It should be understood that Figure 1 provides only an example of one embodiment and does not imply any limitation on the environment in which different embodiments may be implemented. Many modifications can be made to the shown environment based on the requirements of the design and embodiment.

[0015] System 100 may include a computer 102 and a server computer 114. The computer 102 may communicate with the server computer 114 via a communication network 110 (hereinafter referred to as the "network"). The computer 102 may include a processor 104 and a software program 108 that are stored in a data storage device 106, interface with a user, and are capable of communicating with the server computer 114. As will be discussed below with respect to FIG. 10, the computer 102 may include internal components 800A and external components 900A, respectively, and the server computer 114 may include internal components 800B and external components 900B, respectively. The computer 102 may be, for example, a mobile device, a telephone, a personal digital assistant, a netbook, a laptop computer, a tablet computer, a desktop computer, or any type of computing device capable of executing a program, accessing the network, and accessing a database.

[0016] As will be discussed below with respect to FIGS. 11 and 12, the server computer 114 may also operate in a cloud computing service model such as software as a service (SaaS), platform as a service (PaaS), or infrastructure as a service (IaaS). The server computer 114 may also be deployed in a cloud computing deployment model such as a private cloud, a community cloud, a public cloud, or a hybrid cloud.

[0017] Server computer 114 that can be used to encode video data can execute a video encoding program 116 (hereinafter referred to as "program") that can interact with database 112. The method of the video encoding program will be described in more detail below with respect to FIG. 4. In one embodiment, computer 102 can operate as an input device including a user interface while program 116 can be mainly executed on server computer 114. In an alternative embodiment, program 116 can be mainly executed on one or more computers 102, but server computer 114 can be used for processing and storing data used by program 116. It should be noted that program 116 may be a stand-alone program or may be integrated into a larger video encoding program.

[0018] However, it should be noted that the processing of program 116 can be shared between computer 102 and server computer 114 at any ratio in some cases. In another embodiment, program 116 can operate on a plurality of computers, server computers, or any combination of computers and server computers, for example, a plurality of computers 102 that communicate with a single server computer 114 via network 110. In another embodiment, for example, program 116 can operate on a plurality of server computers 114 that communicate with a plurality of client computers via network 110. Alternatively, the program can also operate on a network server that communicates with a server and a plurality of client computers via a network.

[0019] Network 110 may include wired connections, wireless connections, fiber optic connections, or any combination thereof. Generally, network 110 may be any combination of connections and protocols that support communication between computer 102 and server computer 114. Network 110 may include various types of networks, such as local area networks (LANs), wide area networks (WANs) such as the Internet, telecommunications networks such as public switched telephone networks (PSTNs), wireless networks, public switching networks, satellite networks, cellular networks (e.g., fifth-generation) (5G) networks, long-term evolution (LTE) networks, third-generation (3G) networks, code division multiple access (CDMA) networks, etc.), public land mobile networks (PLMNs), metropolitan networks (MANs), private networks, ad hoc networks, intranets, fiber optic-based networks, etc., and / or combinations of these or other types of networks.

[0020] The number and arrangement of devices and networks shown in Figure 1 are provided as an example. In practice, there may be additional devices and / or networks, fewer devices and / or networks than those shown in Figure 1, different devices and / or networks, or devices and / or networks in different arrangements. Furthermore, two or more devices shown in Figure 1 may be implemented within a single device, or a single device shown in Figure 1 may be implemented as multiple distributed devices. Additionally or alternatively, a set of devices in system 100 (e.g., one or more devices) may perform one or more functions that are described as being performed by another set of devices in system 100.

[0021] In HEVC, a coding tree unit (CTU) can be partitioned into coding units (CUs) by using a quadtree structure, represented as a coding tree, to adapt to various local characteristics. The decision of whether to code a picture region using inter-picture (temporal) or intra-picture (spatial) prediction can be made at the CU level. Each CU can be further partitioned into one, two, or four PUs, depending on the PU partitioning type. Within a single PU, the same prediction process may be applied, and the relevant information may be sent to the decoder on a PU basis. After obtaining residual blocks by applying the prediction process based on the PU partitioning type, the CU can be partitioned into translation units (TUs) according to another quadtree structure, such as the coding tree of the CU. One of the key features of the HEVC structure is the concept of multiple partitions, including CUs, PUs, and TUs.

[0022] In VVC, a quadtree, including nested multi-type trees using binary split and ternary split segmentation structures, replaces the concept of multiple partition unit types. That is, the quadtree eliminates the separation of the concepts of CU, PU, ​​and TU, except when required for CUs whose size is too large relative to the maximum conversion length, and provides greater flexibility in CU partition shapes. In coding tree structures, CUs can be either square or rectangular in shape. A coding tree unit (CTU) can first be partitioned by a quaternary tree (also known as a quadtree) structure. Then, the quadtree leaf nodes can be further partitioned by a multi-type tree structure. As shown in Figure 2, there can be four partition types in a multi-type tree structure: vertical bipartite (SPLIT_BT_VER), horizontal bipartite (SPLIT_BT_HOR), vertical ternary split (SPLIT_TT_VER), and horizontal ternary split (SPLIT_TT_HOR). A multitype tree leaf node is called a coding unit (CU), and this segmentation can be used for prediction and transformation processing without further partitioning, as long as the CU is not too large relative to the maximum transformation length. This means that in most cases, the CU, PU, ​​and TU have the same block size in a quadtree with a nested multitype tree coding block structure. An exception occurs when the supported maximum transformation length is smaller than the width or height of the color component of the CU.

[0023] Figure 3 shows an example of a signaling mechanism for partitioning information in a quadtree having a nested multitype tree coding tree structure, according to an embodiment. The CTU may be treated as the root of the quadtree and may first be partitioned by the quadtree structure. Next, each quadtree leaf node (if large enough to allow for that quadtree leaf node) may be further partitioned by the multitype tree structure. In the multitype tree structure, a first flag (mtt_split_cu_flag) may be signaled to indicate whether the node is further partitioned; if the node is further partitioned, a second flag (mtt_split_cu_vertical_flag) may be signaled to indicate the direction of the partition, and then a third flag (mtt_split_cu_binary_flag) may be signaled to indicate whether the partition is bipartite or tripartite. Based on the values ​​of mtt_split_cu_vertical_flag and mtt_split_cu_binary_flag, the multi-type tree splitting mode (MttSplitMode) of the CU can be derived as shown in Table 1. [Table 1]

[0024] Figure 4 shows an example of a CTU divided into multiple CUs having a quadtree and a nested multi-type tree coding block structure according to an embodiment, where bold block edges represent quadtree partitioning and the remaining edges represent multi-type tree partitioning. A quadtree with nested multi-type tree partitions provides a content-adaptive coding tree structure including CUs. The size of a CU may be about the same as the CTU, or it may be as small as 4x4 in units of luma (luminance) samples. In the case of a 4:2:0 chroma format, the maximum chroma CB size may be 64x64 and the minimum chroma CB size may be 2x2.

[0025] In VVC, the maximum supported luma conversion size may be 64x64, and the maximum supported chroma conversion size may be 32x32. If the width or height of the CB may be greater than the maximum conversion width or height, the CB may be automatically split horizontally and / or vertically to satisfy the conversion size limitations in that direction.

[0026] In VTM7, the coding tree scheme supports the ability for luma and chroma to have separate block tree structures. Currently, for P-slice and B-slice, the luma CTB and chroma CTB within a single CTU must share the same coding tree structure. However, for I-slice, luma and chroma can have separate block tree structures. When the separate block tree mode is applied, the luma CTB may be partitioned into CUs by one coding tree structure, and the chroma CTB may be partitioned into chroma CUs by another coding tree structure. This means that a CU in an I-slice may consist of coding blocks for the luma component or coding blocks for the two chroma components, while a CU in a P or B-slice will always consist of coding blocks for all three color components unless the video is monochrome.

[0027] As shown in Figure 5, VP9 uses a 4-way partition tree that starts at a 64x64 level and descends to a 4x4 level, although there are some additional limitations on the 8x8 block. As shown in Figure 5, a partition designated as R can be called recursive in that the same partition tree can be repeated at lower scales until the lowest 4x4 level is reached.

[0028] As shown in Figure 6, AV1 not only extends the partition tree to a 10-way structure, but also extends the maximum size (called a superblock in VP9 / AV1 terminology) to start from 128x128. Note that this may include 4:1 / 1:4 rectangular partitions, which did not exist in VP9. Note that rectangular partitions cannot be further subdivided. In addition to the coding block size, the coding tree depth can be defined to indicate the subdivision depth from the root note. Specifically, the coding tree depth of the root node, for example, 128x128, can be set to 0, and after subdividing the tree block once more, the coding tree depth can be increased by 1.

[0029] Instead of implementing a fixed conversion unit size like VP9, ​​AV1 allows partitioning a chroma coding block into multiple conversion unit sizes, which can be represented by recursive partitions that descend only two levels. To incorporate AV1's extended coding block partitioning, we support conversion sizes of 4x4 to 64x64 squares, 2:1 / 1:2, and 4:1 / 1:4. For chroma blocks, only the largest possible conversion unit is allowed.

[0030] In AV1, luma CUs and chroma CUs within a single CTU must share the same coding tree structure. In embodiments, a CU may correspond to, for example, a block, and a CTU may correspond to, for example, a superblock. However, chroma components may have less texture than luma components, and it is not always optimal to use the same coding tree structure as the luma components.

[0031] In the embodiment, if the luma block region size is greater than one threshold T1, or the coding tree partitioning depth of the luma block is less than or equal to one threshold T2, then the chroma block can use the same coding tree structure as the luma. Otherwise, if the block region size is less than or equal to T1, or the luma partitioning depth is greater than T2, the corresponding chroma block can have a different coding block partitioning that includes luma components, which may be called a flexible block partitioning of chroma components. T1 can be a positive integer such as 128 or 256. T2 can be a positive integer such as 1 or 2.

[0032] In at least one embodiment, flexible block partitioning with respect to chroma components may be applied only to I-frames (intra-frames).

[0033] In at least one embodiment, if the luma block region size is greater than one threshold T1, or the coding tree depth is less than or equal to one threshold T2, then the chroma block can use the same coding tree structure as the luma. Otherwise, if the block region size is less than or equal to T1, or the luma partitioning depth is greater than T2, the coding block depth of the chroma component may be less than or equal to the coding block depth of the luma component.

[0034] In at least one embodiment, if the luma block region size is greater than one threshold T1, or the coding tree depth is less than or equal to one threshold T2, then the chroma block can use the same coding tree structure as the luma. Otherwise, the luma block may still have the flexibility to be further subdivided, while the chroma block may not be subdivided further. The coding block depth of a chroma component can be derived as coLocatedDepthLuma > T2 ? T2 : coLocatedDepthLuma, where coLocatedDepthLuma is the coding block depth of the block located in the same location within the luma component, and T2 is a positive integer such as 1 or 2.

[0035] In at least one embodiment, if the luma block region size is greater than one threshold T1 or the coding tree depth is less than or equal to one threshold T2, then the chroma block can use the same coding tree structure as the luma. Otherwise, the coding block depth of the chroma component may depend on the coding block depth of the luma component. In at least one embodiment, if the luma block region size is greater than one threshold T1 or the coding tree depth is less than or equal to one threshold T2, then the chroma block can use the same coding tree structure as the luma. Otherwise, the coding block depth of the chroma component is derived as min(max(maxDepthLuma-N1,T2), coLocatedDepthLuma), where maxDepthLuma may be the maximum coding block depth of the luma component within a limited partitioned region, coLocatedDepthLuma may be the coding block depth of blocks located in the same location within the luma component, and N1 may be a positive integer such as 1 or 2. An example is shown in Figure 7. As shown in Figure 7, the restricted partitioning regions of the luma and chroma components are highlighted with dashed circles, and the luma blocks adjacent to each chroma block are marked with solid arrows. Furthermore, in this example, T2 is set to 1 and N1 is also set to 1. It can be seen that maxDepthLuma is 3 in the restricted partitioning region. Additionally, the YUV format in this example is YUV420.

[0036] In at least one embodiment, if the luma block region size is greater than one threshold T1, or the coding tree depth is less than or equal to one threshold T2, then the chroma block can use the same coding tree structure as the luma. Otherwise, if the area of ​​the block region size is less than or equal to one threshold T1, or the luma partitioning depth is greater than T2, the block partitioning of the luma and chroma components may be separated, meaning that the block partitioning of the chroma component may be independent of the block partitioning of the luma component. An example is shown in Figure 8. In the example in Figure 8, T2 is set to 1.

[0037] In at least one embodiment, if the Luma block region size is greater than a threshold T1 or the coding tree depth is less than or equal to a threshold T2, the block partitioning may be signaled jointly among different color components. Otherwise, if the block region size is less than or equal to T1 or the Luma partitioning depth is greater than T2, the block partitioning may be signaled individually to different color components. In one example, when the block partitioning is signaled individually to different color components, the Cb and Cr color components may still share the same block partitioning signal, but their signals may be separated from the Luma block partitioning signal.

[0038] In at least one embodiment, one or more of the T1 and T2 discussed above may be signaled by a high-level syntax that includes, but is not limited to, a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS), an adaptive parameter set (APS), a slice header, and a tile header.

[0039] Referring here to Figure 9, an operational flowchart illustrating the steps of method 9000 for encoding and / or decoding video data is shown. In some embodiments, one or more process blocks in Figure 4 may be executed by computer 102 (Figure 1) and server computer 114 (Figure 1). In some embodiments, one or more process blocks in Figure 4 may be executed by a separate device or group of devices separate from computer 102 and server computer 114, or including them.

[0040] In 9100, method 9000 includes the step of acquiring video data.

[0041] In 9200, method 9000 includes the step of analyzing acquired video data to obtain partitioning parameters.

[0042] In 9300, method 9000 includes the step of obtaining a superblock partitioned based on partitioning parameters. In embodiments, the luma blocks and chroma blocks of a partitioned superblock may be partitioned based on a first block partitioning structure, based on whether the luma block region size of the smallest luma block of the partitioned superblock is greater than a first threshold or the luma partitioning depth of the smallest luma block is less than a second threshold. In embodiments, the luma blocks of a partitioned superblock may be partitioned based on a first block partitioning structure, and the chroma blocks of a partitioned superblock may be partitioned based on a second block partitioning structure different from the first block partitioning structure, based on whether the luma block region size is less than a first threshold or the luma partitioning depth is greater than a second threshold.

[0043] In 9400, method 9000 includes the step of decoding video data based on a partitioned superblock.

[0044] In one or more embodiments, the first threshold may be one of 128 and / or 256, and the second threshold may be one of 1 and / or 2.

[0045] In one or more embodiments, the partitioned superblock may correspond to an intraframe.

[0046] In one or more embodiments, the chroma partitioning depth of the smallest chroma block partitioned based on the second block partitioning structure may be smaller than the luma partitioning depth.

[0047] In one or more embodiments, the chroma partitioning depth of the smallest chroma block partitioned based on the second block partitioning structure can be determined based on the chroma partitioning depth.

[0048] In one or more embodiments, the first block partition structure may include a partition of a second block partition structure that includes an additional partition.

[0049] In one or more embodiments, the partitioning parameters may be signaled together for multiple color components based on whether the luma block region size is greater than a first threshold or the luma partitioning depth is less than a second threshold. Based on whether the luma block region size is smaller than a first threshold or the luma partitioning depth is smaller than a second threshold, the partitioning parameters can be signaled separately among multiple color components.

[0050] In one or more embodiments, partitioning parameters may be signaled by at least one of the following: a video parameter set, a sequence parameter set, a picture parameter set, an adaptive parameter set, a slice header, and / or a tile header.

[0051] Figure 9 provides only an example of one embodiment and does not imply any limitation on how different embodiments may be implemented. Many modifications can be made to the shown environment based on the design and embodiment requirements.

[0052] Figure 10 is a block diagram 500 of the internal and external components of the computer shown in Figure 1, according to an exemplary embodiment. Figure 10 provides only an example of one embodiment and does not imply any limitation on the environment in which different embodiments may be implemented. Many modifications can be made to the shown environment based on the requirements of the design and embodiment.

[0053] Computer 102 (Figure 1) and server computer 114 (Figure 1) may include sets of internal components 800A, B and external components 900A, B, respectively, as shown in Figure 4. Each set of internal components 800 includes one or more processors 820, one or more computer-readable RAMs 822 and one or more computer-readable ROMs 824 on one or more buses 826, one or more operating systems 828, and one or more tangible computer-readable storage devices 830.

[0054] The processor 820 is implemented as hardware, firmware, or a combination of hardware and software. The processor 820 is a central processing unit (CPU), graphics processing unit (GPU), acceleration unit (APU), microprocessor, microcontroller, digital signal processor (DSP), field-programmable gate array (FPGA), application-specific integrated circuit (ASIC), or another type of processing component. In some embodiments, the processor 820 includes one or more processors that can be programmed to perform functions. Bus 826 includes components that enable communication between internal components 800A and B.

[0055] One or more operating systems 828, software programs 108 (Figure 1) on the server computer 114 (Figure 1), and video encoding programs 116 (Figure 1) are stored in one or more of the respective tangible computer-readable storage devices 830, which are executed by one or more of the respective processors 820 via one or more of the respective RAMs 822 (typically including cache memory). In the embodiment shown in Figure 10, each of the tangible computer-readable storage devices 830 is a magnetic disk storage device of an internal hard drive. Alternatively, each of the tangible computer-readable storage devices 830 is a semiconductor storage device such as a ROM 824, EPROM, flash memory, optical disk, magneto-optical disk, solid-state disk, compact disk (CD), digital versatile disk (DVD), floppy disk, cartridge, magnetic tape, and / or another type of tangible non-temporary computer-readable storage device capable of storing computer programs and digital information.

[0056] Each set of internal components 800A and B also includes an R / W drive or interface 832 for reading from and writing to one or more tangible portable computer-readable storage devices 936, such as CD-ROMs, DVDs, memory sticks, magnetic tapes, magnetic disks, optical disks, or semiconductor storage devices. Software programs, such as software program 108 (Figure 1) and video encoding program 116 (Figure 1), can be stored in one or more of the respective tangible portable computer-readable storage devices 936, read via their respective R / W drives or interfaces 832, and loaded into their respective hard drives 830.

[0057] Each set of internal components 800A and B also includes network adapters or interfaces 836 such as TCP / IP adapter cards, wireless Wi-Fi interface cards, or 3G, 4G, or 5G wireless interface cards, or other wired or wireless communication links. Software programs 108 (Figure 1) and video encoding programs 116 (Figure 1) on server computer 114 (Figure 1) can be downloaded from an external computer to computer 102 (Figure 1) and server computer 114 via a network (e.g., the Internet, a local area network, or another wide area network) and their respective network adapters or interfaces 836. From the network adapters or interfaces 836, software programs 108 and video encoding programs 116 on server computer 114 are loaded onto their respective hard drives 830. The network may include copper, fiber optic, wireless transmitters, routers, firewalls, switches, gateway computers, and / or edge servers.

[0058] Each set of external components 900A and B may include a computer display monitor 920, a keyboard 930, and a computer mouse 934. External components 900A and B may also include a touchscreen, virtual keyboard, touchpad, pointing device, and other human interface devices. Each set of internal components 800A and B also includes a device driver 840 for interface with the computer display monitor 920, keyboard 930, and computer mouse 934. The device driver 840, R / W drive or interface 832, and network adapter or interface 836 include hardware and software (stored in storage device 830 and / or ROM 824).

[0059] While this disclosure includes a detailed description of cloud computing, it should be understood in advance that the embodiments of the teachings enumerated herein are not limited to cloud computing environments. Rather, some embodiments can be implemented in combination with other types of computing environments that are currently known or may be developed later.

[0060] Cloud computing is a service delivery model that enables convenient on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and deployed with minimal management effort or interaction with service providers. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0061] The features are as follows: On-demand self-service: Cloud consumers can unilaterally provision computing functions such as server time and network storage automatically as needed, without requiring human interaction with service providers. Broad network access: The functionality is available over a network and accessed via standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, PDAs). Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with various physical and virtual resources dynamically allocated and reallocated as needed. Consumers typically do not control or have knowledge of the exact location of the resources provided, but they have a sense of location independence in that they may be able to specify the location at a higher level of abstraction (country, state, data center, etc.). Rapid adaptability (elasticity): Features can be provisioned quickly and adaptively, and in some cases, they can scale out quickly automatically, be released quickly, and scale in quickly. To consumers, the features available for provisioning often appear unlimited and can be purchased in any quantity at any time. Measurement Services: Cloud systems automatically control and optimize resource usage by leveraging measurement capabilities at an appropriate level of abstraction for the type of service (e.g., storage, processing, bandwidth, active user count). They can monitor, control, and report on resource usage, providing transparency to both service providers and consumers.

[0062] The service model is as follows: Software as a Service (SaaS): The functionality provided to consumers is the use of a provider's applications running on cloud infrastructure. These applications can be accessed from various client devices via thin client interfaces such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or individual application functionalities, except for limited, user-specific application configuration settings. Platform as a Service (PaaS): The function provided to consumers is the deployment of applications created or acquired by the consumer, using programming languages ​​and tools supported by the provider, onto the cloud infrastructure. Consumers do not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, and storage, but they do control the deployed applications and, in some cases, the configuration of the application hosting environment. Infrastructure as a Service (IaaS): The functionality provided to consumers is the provisioning of processing, storage, networking, and other basic computing resources, where consumers can deploy and run any software, including operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but they do control the operating system, storage, and deployed applications, and, in some cases, limit their control over selected network components (e.g., host firewalls).

[0063] The deployment model is as follows: Private Cloud: The cloud infrastructure is operated solely for the benefit of an organization. This cloud infrastructure is managed by the organization or a third party and can reside either on-premises or off-premises. Community Cloud: Cloud infrastructure is shared by multiple organizations to support a specific community that shares concerns (such as mission, security requirements, policies, and compliance considerations). This cloud infrastructure may be managed by the organization or a third party and may reside on-premises or off-premises. Public cloud: Cloud infrastructure is made available to the general public or large industry groups and is owned by organizations that sell cloud services. Hybrid Cloud: Cloud infrastructure is a configuration of two or more clouds (private, community, or public) that remain unique entities but are coupled together by standardized or proprietary technologies (e.g., cloud burst for load balancing between clouds) that enable data and application portability.

[0064] Cloud computing environments are service-oriented, focusing on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure consisting of a network of interconnected nodes.

[0065] Referring to Figure 11, an exemplary cloud computing environment 600 that may be suitable for carrying out a particular embodiment of the subject matter disclosed is shown. As shown, the cloud computing environment 600 includes one or more cloud computing nodes 10 that can communicate with local computing devices used by a cloud consumer, such as a personal digital assistant (PDA) or mobile phone 54A, a desktop computer 54B, a laptop computer 54C, and / or an automotive computer system 54N. The cloud computing nodes 10 can communicate with each other. These nodes can be grouped physically or virtually into one or more networks, such as a private, community, public, or hybrid cloud, or a combination thereof (not shown). This allows the cloud computing environment 600 to provide infrastructure, platform, and / or software as a service, eliminating the need for cloud consumers to maintain resources on their local computing devices. The types of computing devices 54A-N shown in Figure 11 are for illustrative purposes only, and it should be understood that the cloud computing node 10 and the cloud computing environment 600 can communicate with any type of computerized device via any type of network and / or network addressable connection (e.g., using a web browser).

[0066] Referring to Figure 12, a set of functional abstraction layers 700 provided by the cloud computing environment 600 (Figure 11) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 12 are for illustrative purposes only and that embodiments are not limited thereto. As shown, the following layers and corresponding functions are provided:

[0067] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include a mainframe 61, RISC (Reduced Instruction Set Computer) architecture-based servers 62, 63, blade servers 64, storage devices 65, and network and networking components. In some embodiments, the software components include network application server software 67 and database software 68.

[0068] The virtualization layer 70 provides an abstraction layer that may provide the following examples of virtual entities, which include virtual servers 71, virtual storage 72, virtual networks 73 including virtual private networks, virtual applications and operating systems 74, and virtual clients 75.

[0069] For example, the management layer 80 can provide the following functions: Resource provisioning 81 provides the dynamic procurement of computing resources and other resources used to perform tasks within the cloud computing environment. Measurement and pricing 82 provides cost tracking when resources are used within the cloud computing environment and billing or payment for the consumption of these resources. For example, these resources may include application software licenses. Security provides identity verification of cloud consumers and tasks, as well as protection of data and other resources. The user portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 provides the allocation and management of cloud computing resources to ensure that the required service levels are met. Service Level Agreement (SLA) planning and execution 85 provides the advance preparation and procurement of cloud computing resources for which future requirements are anticipated in accordance with the SLA.

[0070] Workload layer 90 provides examples of functions that can utilize a cloud computing environment. Examples of workloads and functions that can be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, provision of virtual classroom education 93, data analysis processing 94, transaction processing 95, and video encoding / decoding 96. Video encoding / decoding 96 can encode / decode video data using a delta angle derived from a nominal angle.

[0071] Some embodiments may relate to systems, methods, and / or computer-readable media in integration at any possible level of technical detail. Computer-readable media may include non-temporary computer-readable storage media (or more media) having computer-readable program instructions thereon for causing a processor to perform an action.

[0072] A computer-readable storage medium can be a tangible device capable of holding and storing instructions for use by an instruction execution device. A computer-readable storage medium may be, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital multipurpose disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punched cards or raised structures in grooves on which instructions are recorded, and any suitable combination thereof. The computer-readable storage medium as used herein should not be construed as a transient signal itself, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., optical pulses passing through optical fiber cables), or electrical signals transmitted over wires.

[0073] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may consist of copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface within each computing / processing device receives computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium within each computing / processing device.

[0074] Computer-readable program code / instructions for performing an operation may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk and C++ and procedural programming languages ​​such as the C programming language or similar programming languages. Computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer, partially on a remote computer, or fully on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or wide area network (WAN), or it may be connected to an external computer (for example, via the Internet using an Internet service provider). In some embodiments, for example, an electronic circuit including a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA) can execute computer-readable program instructions by personalizing the electronic circuit using state information of computer-readable program instructions in order to perform an action or operation.

[0075] These computer-readable program instructions are provided to the processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device for manufacturing a machine, thereby creating means for instructions executed via the processor of the computer or other programmable data processing device to perform functions / actions specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can instruct a computer, a programmable data processing device, and / or other device to function in a particular way, thereby including a computer-readable storage medium containing instructions stored therein in a product containing instructions that perform a mode of function / action specified in one or more blocks of a flowchart and / or block diagram.

[0076] Computer-readable program instructions can be loaded into a computer, other programmable data processing device, or other device to execute a series of operational steps on the computer, other programmable device, or other device, thereby generating a computer-implemented process in which the instructions executed on the computer, other programmable device, or other device perform functions / actions specified in one or more blocks of a flowchart and / or block diagram.

[0077] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible embodiments of the system, method, and computer-readable medium in various forms. In this regard, each block in a flowchart or block diagram may represent a module, segment, or part of an instruction, which contains one or more executable instructions for implementing a specified logical function. This method, computer system, and computer-readable medium may include additional blocks, fewer blocks than those shown in the figures, different blocks, or blocks in different arrangements. In some alternative embodiments, the functions shown in the blocks may differ from the order shown in the figures. For example, two blocks shown consecutively may actually be executed simultaneously or substantially simultaneously, or blocks may be executed in reverse order depending on the related functions. It should also be noted that each block in a block diagram and / or flowchart diagram, and combinations of blocks in a block diagram and / or flowchart diagram, can be implemented by a special-purpose hardware-based system that performs a specified function or action, or a combination of special-purpose hardware and computer instructions.

[0078] It will be apparent that the systems and / or methods described herein may be implemented in different forms of hardware, firmware, or combinations of hardware and software. The specific control hardware or software code used to implement these systems and / or methods does not limit the embodiments. Thus, the operation and behavior of the systems and / or methods have been described herein without reference to specific software code. It will be understood that software and hardware may be designed to implement the systems and / or methods based on the descriptions herein.

[0079] Any elements, actions, or instructions used herein should not be construed as important or essential unless expressly stated otherwise. Furthermore, where used herein, the articles “a, an” are intended to include one or more items and may be used interchangeably with “one or more.” Additionally, where used herein, the term “set” is intended to include one or more items (e.g., related items, unrelated items, combinations of related and unrelated items, etc.) and may be used interchangeably with “one or more.” When only one item is intended, “one” or similar language is used. Also, where used herein, “has, an” may be used interchangeably with “has, an.” Terms such as "have" and "having" are intended to be open-ended terms. Furthermore, the phrase "based on" is intended to mean "based at least partially on" unless otherwise specified.

[0080] The descriptions of various aspects and embodiments are presented for illustrative purposes only and are not intended to be exhaustive or to limit the embodiments disclosed. Where combinations of features are described in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of possible embodiments. In fact, many of these features can be combined in ways not specifically described in the claims and / or disclosed in the specification. Each dependent claim listed below may depend directly on only one claim, but the disclosure of possible embodiments includes each dependent claim combined with all other claims in the claim set. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the embodiments described. The terminology used herein has been chosen to best describe the principles of the embodiments, their practical application to the technology available in the market or technical improvements, or to enable those skilled in the art to understand the embodiments disclosed herein.

[0081] The following is an example of the claims as originally filed. [Example 1] A video decoding method using at least one processor, the method is: Steps to acquire video data, The steps include: analyzing the acquired video data to obtain partitioning parameters, The steps include obtaining a partitioned superblock based on the partitioning parameters, The steps include decoding the video data based on the partitioned superblock, Based on whether the luma block region size of the smallest luma block of the partitioned superblock is greater than a first threshold, or whether the luma division depth of the smallest luma block is less than a second threshold, the luma blocks of the partitioned superblock and the chroma blocks of the partitioned superblock are partitioned based on a first block partitioning structure. Based on whether the luma block region size is smaller than the first threshold or the luma partitioning depth is larger than the second threshold, the luma block of the partitioned superblock is partitioned based on the first block partitioning structure, and the chroma block of the partitioned superblock is partitioned based on a second block partitioning structure different from the first block partitioning structure. method. [Example 2] The method according to Example 1, wherein the first threshold is one of 128 and 256, and the second threshold is one of 1 and 2. [Example 3] The partitioned superblock corresponds to an intraframe, as described in Example 1 or 2. [Example 4] The method according to any one of Examples 1 to 3, wherein the chromatic partitioning depth of the smallest chromatic block partitioned based on the second block partitioning structure is smaller than the chromatic partitioning depth. [Example 5] The method according to any one of Examples 1 to 3, wherein the chroma partitioning depth of the smallest chroma block partitioned based on the second block partitioning structure is determined based on the chroma partitioning depth. [Example 6] The method according to any one of Examples 1 to 5, wherein the first block partition structure includes a partition of the second block partition structure which includes an additional partition. [Example 7] Based on whether the luma block region size is greater than the first threshold or the luma partitioning depth is less than the second threshold, the partitioning parameters are signaled together for multiple color components. The method according to any one of Examples 1 to 6, wherein the partitioning parameter is signaled separately among the plurality of color components based on whether the luma block region size is smaller than the first threshold or the luma partitioning depth is smaller than the second threshold. [Example 8] The method according to any one of Examples 1 to 7, wherein the partitioning parameters are signaled by at least one of the video parameter set, sequence parameter set, picture parameter set, adaptive parameter set, slice header, and tile header. [Example 9] A device for video coding, said device, At least one memory configured to store program code, The system includes at least one processor configured to read the program code and operate as instructed by the program code, When the program code is executed by the at least one processor, The method described in any one of Examples 1 to 8 is performed. Device. [Example 10] A computer program comprising one or more instructions, wherein when the instructions are executed by one or more processors of the device for video coding, the one or more processors, The method described in any one of Examples 1 to 8 is performed. Computer program.

[0082] Selected acronym: HEVC: High-Efficiency Video Coding VVC: Versatile Video Coding CfL: Chroma from Luma SDT: Semi-Separated Tree SDP: Semi-Separated Partitioning SST: Semi-separated tree SB: Superblock CTU: Coding Tree Unit

Claims

1. A video decoding method using at least one processor, the method is: Steps to acquire video data, A step of analyzing acquired video data to obtain partitioning parameters, wherein the partitioning parameters include a luma partitioning parameter corresponding to the luma component and one or more chroma partitioning parameters corresponding to multiple color components. The steps include obtaining a partitioned superblock based on the partitioning parameters, The steps include decoding the video data based on the partitioned superblock, Based on whether the luma block region size of the smallest luma block of the partitioned superblock is greater than a first threshold, or whether the luma division depth of the smallest luma block is less than or equal to a second threshold, the luma blocks of the partitioned superblock and the chroma blocks of the partitioned superblock are partitioned based on a first block partitioning structure. Based on whether the luma block region size is less than or equal to the first threshold, or whether the luma partitioning depth is greater than the second threshold, the luma block of the partitioned superblock is partitioned based on the first block partitioning structure, and the chroma block of the partitioned superblock is partitioned based on a second block partitioning structure different from the first block partitioning structure. Based on whether the luma block region size of the smallest luma block is greater than the first threshold, or whether the luma partitioning depth of the smallest luma block is less than or equal to the second threshold, the one or more chroma partitioning parameters include chroma partitioning parameters that are signaled together for the plurality of color components. Based on whether the luma block region size of the smallest luma block is less than or equal to the first threshold, or whether the luma partitioning depth of the smallest luma block is greater than the second threshold, the one or more chroma partitioning parameters include a plurality of chroma partitioning parameters that are separately signaled for the plurality of color components. method.

2. The method according to claim 1, wherein the first threshold is one of 128 and 256, and the second threshold is one of 1 and 2.

3. The method according to claim 1 or 2, wherein the chroma partitioning depth of the smallest chroma block partitioned based on the second block partitioning structure is smaller than the luma partitioning depth.

4. The method according to any one of claims 1 to 3, wherein the first threshold or the second threshold is signaled by at least one of the video parameter set, sequence parameter set, picture parameter set, adaptive parameter set, slice header, and tile header.

5. A device for video coding, said device, At least one memory configured to store program code, The system includes at least one processor configured to read the program code and operate as instructed by the program code, When the program code is executed by the at least one processor, The method according to any one of claims 1 to 4 is performed. Device.

6. A computer program comprising one or more instructions, wherein when the instructions are executed by one or more processors of the device for video coding, the one or more processors, To cause the method described in any one of claims 1 to 4 to be carried out Computer program.

Citation Information

Patent Citations

  • System and method for scaling transform coefficient level values

    JP2020506593A

  • Image decoding apparatus and image coding apparatus

    WO2018037853A1