Flexible block partitioning division for chroma components

Flexible block partitioning for chroma components in video coding formats addresses the limitation of quantization step size in AV1, enhancing bitrate granularity and optimizing encoding and decoding processes.

JP2025098104AActive Publication Date: 2025-07-01TENCENT AMERICA LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2025044372
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2020-11-02
Filing Date
2025-03-19
Publication Date
2025-07-01
Estimated Expiration
2041-01-07

AI Technical Summary

Technical Problem

The existing video coding formats, such as AV1, have limitations in the resolution of quantization step size, particularly for 10-bit and 12-bit internal bit depths, affecting the granularity of bitrate achievable by the codec.

Method used

Implementing flexible block partitioning for chroma components by using different block partitioning structures based on luma block area size or partitioning depth, allowing separate coding tree structures for luma and chroma blocks when necessary, enhancing the resolution of quantization step size.

Benefits of technology

Improves the granularity of bitrate achievable by the codec, optimizing video encoding and decoding processes, especially for intra-frames.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025098104000001_ABST
    Figure 2025098104000001_ABST
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 to 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 entireties 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 established in 2015 that includes semiconductor companies, video-on-demand providers, video content producers, software development companies, and web browser vendors. Many of the components of the AV1 project were provided from previous research efforts by alliance members. Individual contributors started experimental technology platforms several years ago. Xiph / Mozilla's Daala had already made its code public in 2010, Google's experimental VP9 evolution project VP10 was announced on September 12, 2014, and Cisco's Thor was made public on August 11, 2015. Based on the VP9 codebase, AV1 incorporates additional technologies, some of which were developed in these experimental formats. The first version 0.1.0 of the AV1 reference codec was made public 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. On June 25, 2018, a verified version 1.0.0 of the specification was released. On January 8, 2019, a verified version 1.0.0 including Errata1 of the specification was released. The AV1 bitstream specification includes a reference video codec. AOMedia Video 2 (AV2) is currently under development. In AV1, the resolution of the quantization step size is limited.

[0004] 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 standardization 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 standardization bodies issued a Call for Proposals (CfP) for a joint proposal regarding video compression including features beyond HEVC. By February 15, 2018, a total of 22 CfP responses regarding standard dynamic range (SDR), 12 CfP responses regarding high dynamic range (HDR), and 12 CfP responses regarding the 360 video category were submitted respectively. In April 2018, all received CfP responses were evaluated at the 122nd MPEG / 10th JVET meeting. As a result of this meeting, JVET officially started the standardization process for the next-generation video coding beyond HEVC. The new standard was named VVC (Versatile Video Coding), and JVET was renamed Joint Video Expert Team.

Summary of the Invention

[0005] Embodiments relate to a method, a system, and a computer-readable medium for encoding and / or decoding video data.

[0006] According to one aspect, a method for encoding and / or decoding video data is provided. The method may include the steps of: obtaining video data; analyzing the obtained video data to obtain partition splitting parameters; obtaining partitioned super blocks based on the partition splitting parameters; and decoding the video data based on the partitioned super blocks. Based on that the luma block area size of the smallest luma block of the partitioned superblock is larger than a first threshold value, or the luma partition depth of the smallest luma block is smaller than a second threshold value, the luma block of the partitioned superblock and the chroma block of the partitioned superblock are partitioned based on a first block partitioning structure, Based on that the luma block area size is smaller than the first threshold value, or the luma partition depth is larger than the second threshold value, the luma block of the partitioned superblock is partitioned based on a 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.

[0007] According to one aspect, 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 operate as instructed by the program code. The program code includes a first acquisition code configured to cause the at least one processor to acquire video data; an analysis code configured to cause the at least one processor to analyze the acquired video data to obtain partition parameters; a second acquisition code configured to cause the at least one processor to obtain a partitioned superblock based on the partition parameters; and a decoding code configured to cause the at least one processor to decode the video data based on the partitioned superblock. Based on that the luma block area size of the smallest luma block of the partitioned superblock is larger than a first threshold or the luma partition depth of the smallest luma block is smaller 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 that the luma block area size is smaller than the first threshold or the luma partition depth is larger than the 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 aspect, a non-transitory computer-readable medium for encoding and / or decoding video data is provided. The non-transitory computer-readable medium can store instructions including one or more instructions, and when the instructions are executed by one or more processors of a device for video coding, cause the one or more processors to obtain video data; analyze the obtained video data to obtain partition parameters; obtain partitioned superblocks based on the partition parameters; and decode the video data based on the partitioned superblocks; Based on that the luma block area size of the smallest luma block of the partitioned superblock is larger than a first threshold or the luma partition depth of the smallest luma block is smaller 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 the luma block area size being smaller than a first threshold or the luma partition depth being greater 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 Description of the Drawings

[0009] These and other objects, features, and advantages will become apparent from the following detailed description of exemplary embodiments to be read in conjunction with the accompanying drawings. The various features of the drawings are not to scale as they are meant to clearly illustrate the understanding of those skilled in the art when combined with the detailed description.

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

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

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

[0012] As described above, 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 the AV1 quantization step size is limited. Although the range of the step size has been expanded, the effective range of Q_index remains the same. This limitation in the resolution of the quantization step becomes more apparent for 10 - bit and 12 - bit internal bit depths, and the corresponding 8 - bit step sizes (obtained using q_idx) are scaled by 4 and 16 respectively. This can affect the granularity of the bitrate achievable by the codec. Therefore, it can be advantageous to increase the resolution of the quantization step size by extending the range of the quantization index.

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

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

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

[0016] 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), as will be discussed below with respect to FIGS. 11 and 12. 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, "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, in some cases, be shared between computer 102 and server computer 114 in any ratio. In another embodiment, program 116 can operate on a plurality of computers, server computers, or some 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 operate on a network server that communicates with a server and a plurality of client computers via a network.

[0019] Network 110 may include a wired connection, a wireless connection, an optical fiber connection, or some combination thereof. Generally, Network 110 can be any combination of connections and protocols that support communication between Computer 102 and Server Computer 114. Network 110 can be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, a telecommunications network such as the public switched telephone network (PSTN), a wireless network, a public switched network, a satellite network, a cellular network (e.g., fifth generation (5G) network, long term evolution (LTE) network, third generation (3G) network, code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a metropolitan area network (MAN), a private network, an ad hoc network, an intranet, an optical fiber-based network, etc., and / or a combination of these or other types of networks, and the like.

[0020] The number and arrangement of the devices and networks shown in FIG. 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 FIG. 1, different devices and / or networks, or devices and / or networks in a different arrangement. Further, two or more of the devices shown in FIG. 1 may be implemented within a single device, or the single device shown in FIG. 1 may be implemented as multiple distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) of System 100 can perform one or more functions described as being performed by another set of devices of System 100.

[0021] In HEVC, a coding tree unit (CTU) can be divided into coding units (CUs) by using a quadtree structure shown as a coding tree in order to adapt to various local characteristics. The decision of whether to code a picture area using inter-picture (temporal) or intra-picture (spatial) prediction can be made at the CU level. Each CU can be further divided into one, two, or four prediction units (PUs) depending on the PU partition type. Inside one PU, the same prediction process can be applied, and the related information can be sent to the decoder on a PU basis. After obtaining a residual block by applying a prediction process based on the PU partition type, the CU can be partitioned into transform units (TUs) according to another quadtree structure such as the coding tree of the CU. One of the important features of the HEVC structure is the concept of multiple partitions including CUs, PUs, and TUs.

[0022] In VVC, a quadtree including a nested multi-type tree using a binary split and a ternary split segmentation structure 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 necessary for a CU whose size is too large for the maximum transform length, and enhances the flexibility of the CU partition shape. In the coding tree structure, a CU 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. Next, a quaternary tree leaf node can be further partitioned by a multi-type tree structure. As shown in Figure 2, the multi-type tree structure can have four split types: vertical binary split (SPLIT_BT_VER), horizontal binary split (SPLIT_BT_HOR), vertical ternary split (SPLIT_TT_VER), and horizontal ternary split (SPLIT_TT_HOR). A multi-type tree leaf node is called a coding unit (CU), and this segmentation can be used for prediction and transform processing without further partitioning as long as the CU is not too large for the maximum transform length. This means that in most cases, the CU, PU, and TU have the same block size in a quadtree with a nested multi-type tree coding block structure. An exception occurs when the supported maximum transform length is smaller than the width or height of the color component of the CU.

[0023] FIG. 3 shows an example of a signaling mechanism for partition split information in a quadtree having a nested multi-type tree coding tree structure according to an embodiment. A CTU can be treated as the root of a quadtree and can first be partitioned by the quadtree structure. Next, each quadtree leaf node (if of a size sufficient to enable that quadtree leaf node) can be further partitioned by the multi-type tree structure. In the multi-type tree structure, a first flag (mtt_split_cu_flag) can be signaled to indicate whether a node is further partitioned; when a node is further partitioned, a second flag (mtt_split_cu_vertical_flag) can be signaled to indicate the split direction, and then a third flag (mtt_split_cu_binary_flag) can be signaled to indicate whether the split is a binary split or a ternary split. Based on the values of mtt_split_cu_vertical_flag and mtt_split_cu_binary_flag, the multi-type tree split mode (MttSplitMode) of a CU can be derived as shown in Table 1. [Table 1]

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

[0025] In VVC, the maximum supported luma transform size can be 64×64, and the maximum supported chroma transform size can be 32×32. If the width or height of a CB may be larger than the maximum transform width or height, the CB can be automatically split horizontally and / or vertically to meet the transform size limit 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 slices and B slices, the luma CTB and chroma CTB within one CTU need to share the same coding tree structure. However, for I slices, luma and chroma can have separate block tree structures. When the individual block tree mode is applied, the luma CTB can be partitioned into CUs by one coding tree structure, and the chroma CTB is partitioned into chroma CUs by another coding tree structure. This means that the CUs of I slices can be composed of coding blocks of the luma component or coding blocks of two chroma components, and the CUs of P or B slices are always composed of coding blocks of 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 the 64×64 level and goes down to the 4×4 level, but there are some additional restrictions for blocks of 8×8. As shown in Figure 5, the partition designated as R can be called recursive in that the same partition tree may be repeated at a lower scale until the lowest 4×4 level is reached.

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

[0029] Instead of implementing a fixed transform unit size like VP9, AV1 allows the luma coding block to be partitioned into transform units of multiple sizes, which can be represented by a recursive partition that goes down a maximum of 2 levels. To incorporate the extended coding block partition of AV1, we support square, 2:1 / 1:2, and 4:1 / 1:4 transform sizes from 4×4 to 64×64. In the case of chroma blocks, only the largest possible transform unit is permitted.

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

[0031] In an embodiment, when the luma block area size is greater than a threshold T1 or the coding tree split depth of the luma block is less than or equal to a threshold T2, then, next, the chroma block can use the same coding tree structure as the luma. In other cases, when the block area size is less than or equal to T1 or the luma split depth is greater than T2, the corresponding chroma block can have a different coding block partition that includes the luma component, which can be referred to as flexible block partitioning of the chroma component. 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, the flexible block partitioning for the chroma component can be applied only to I-frames (intra-frames).

[0033] In at least one embodiment, when the luma block area size is greater than a threshold T1 or the coding tree depth is less than or equal to a threshold T2, then, next, the chroma block can use the same coding tree structure as the luma. In other cases, when the block area size is less than or equal to T1 or the luma split depth is greater than T2, the coding block depth of the chroma component can be less than or equal to the coding block depth of the luma component.

[0034] In at least one embodiment, when 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, then, next, the chroma block can use the same coding tree structure as the luma. Otherwise, although the luma block may still have the flexibility to be further divided, the chroma block may not be further divided. The coding block depth of the chroma component can be derived as coLocatedDepthLuma> T2? T2: coLocatedDepthLuma, where coLocatedDepthLuma is the coding block depth of the block located at the same location within the luma component, and T2 is a positive integer such as 1 or 2.

[0035] In at least one embodiment, when the luma block area size is greater than a threshold T1 or the coding tree depth is less than or equal to a threshold T2, then, next, the chroma block can use the same coding tree structure as the luma. Otherwise, the coding block depth of the chroma component can depend on the coding block depth of the luma component. In at least one embodiment, when the luma block area size is greater than a threshold T1 or the coding tree depth is less than or equal to a threshold T2, then, next, 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 can be the maximum coding block depth of the luma component within the restricted partition area, coLocatedDepthLuma can be the coding block depth of the block located at the same location within the luma component, and N1 can be a positive integer such as 1 or 2. An example is shown in FIG. 7. As shown in FIG. 7, the restricted partition areas of the luma and chroma components are highlighted by dashed circles, and the co-located luma blocks of each chroma block are marked using solid arrows. Further, 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 partition area. Further, the YUV format of this example is YUV420.

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

[0037] In at least one embodiment, when the luma block area size is greater than a threshold T1 or the coding tree depth is less than or equal to a threshold T2, the block partitioning can be signaled jointly among different color components. Otherwise, when the block area size is less than or equal to T1 or the luma partition depth is greater than T2, the block partitioning can be signaled separately for different color components. In one example, when the block partitioning is signaled separately for different color components, the Cb and Cr color components can still share the same block partitioning signal, but the signal can be separated from the luma block partitioning signal.

[0038] In at least one embodiment, one or more values of T1 and T2 discussed above can be signaled in a high-level syntax including, but 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 now to FIG. 9, an operational flowchart showing the steps of a method 9000 for encoding and / or decoding video data is shown. In some embodiments, one or more of the process blocks of FIG. 4 may be performed by computer 102 (FIG. 1) and server computer 114 (FIG. 1). In some embodiments, one or more of the process blocks of FIG. 4 may be performed by another device or group of devices separate from, or including, computer 102 and server computer 114.

[0040] At 9100, method 9000 includes the step of obtaining video data.

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

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

[0043] At 9400, method 9000 includes decoding video data based on partitioned superblocks.

[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 superblocks may correspond to intra frames.

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

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

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

[0049] In one or more embodiments, based on the luma block area size being greater than the first threshold or the luma partition depth being less than the second threshold, the partitioning parameters may be signaled together for a plurality of color components. Based on the luma block area size being less than the first threshold or the luma partition depth being less than the second threshold, the partitioning parameters may be signaled separately among a plurality of color components.

[0050] In one or more embodiments, the partitioning parameter may be signaled in at least one of 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] FIG. 9 provides only an illustration of one embodiment and is not meant to impose limitations as to how different embodiments may be implemented. Many modifications may be made to the environment shown, based on design and implementation requirements.

[0052] FIG. 10 is a block diagram 500 of the internal and external components of the computer shown in FIG. 1 according to an exemplary embodiment. FIG. 10 provides only an illustration of one embodiment and is not meant to impose limitations as to the environment in which different embodiments may be implemented. Many modifications may be made to the environment shown, based on design and implementation requirements.

[0053] Computer 102 (FIG. 1) and server computer 114 (FIG. 1) may each include a respective set of internal components 800A, B and external components 900A, B shown in FIG. 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] Processor 820 is implemented in hardware, firmware, or a combination of hardware and software. Processor 820 is a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or another type of processing component. In some embodiments, Processor 820 includes one or more processors that can be programmed to execute functions. Bus 826 includes components that enable communication between internal components 800A, B.

[0055] One or more operating systems 828, software programs 108 (FIG. 1) and video encoding programs 116 (FIG. 1) on server computer 114 (FIG. 1) are stored in one or more of respective tangible computer-readable storage devices 830, and they are executed by one or more of respective processors 820 via one or more of respective RAMs 822 (typically including cache memory). In the embodiment shown in FIG. 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 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-transitory computer-readable storage device capable of storing computer programs and digital information.

[0056] Each set of internal components 800A, B also includes an R / W drive or interface 832 for reading and writing to and from 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 memory devices. Software programs such as software program 108 (FIG. 1) and video encoding program 116 (FIG. 1) are stored on one or more of the respective tangible portable computer-readable storage devices 936, read via the respective R / W drives or interfaces 832, and can be loaded onto the respective hard drives 830.

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

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

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

[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), where the configurable computing resources can be rapidly provisioned and released with minimal management effort or interaction with a service provider. This cloud model can include at least five characteristics, at least three service models, and at least four deployment models.

[0061] The characteristics are as follows. On-demand self-service: Cloud consumers can automatically and unilaterally provision computing capabilities such as server time and network storage as needed, without the need for interaction between humans and service providers. Broad network access: The functions are available via the network and are accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, PDAs). Resource pooling: The provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, and various physical and virtual resources are dynamically allocated and reallocated according to demand. Consumers generally do not control or have knowledge of the exact location of the provided resources, but may have a location-independent sense in that they can specify the location at a higher level of abstraction (country, state, data center, etc.). Rapid elasticity: The functions are provisioned quickly and adaptively, and in some cases can be automatically scaled out quickly, released quickly, and scaled in quickly. For consumers, the functions available for provisioning often appear unlimited and can be purchased in any quantity at any time. Measured service: The cloud system automatically controls and optimizes resource use by leveraging measurement capabilities at an abstraction level appropriate for the type of service (e.g., storage, processing, bandwidth, active user count). Monitoring, controlling, and reporting resource usage can provide transparency to both the provider and the consumer of the services utilized.

[0062] The service model is as follows: Software as a Service (SaaS): The functionality provided to the consumer is to use the provider's application running on cloud infrastructure. The application can be accessed from various client devices via a client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, and even the individual application functionality, except for limited user-specific application configuration settings. Platform as a Service (PaaS): The functionality provided to the consumer is to deploy the consumer-created or -acquired application, created using the programming languages and tools supported by the provider, onto the cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, and storage, but controls the deployed application and, in some cases, the configuration of the application hosting environment. Infrastructure as a Service (IaaS): The functionality provided to the consumer is to provision processing, storage, network, and other basic computing resources, where the consumer can deploy and run any software that may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but controls the operating systems, storage, deployed applications, and, in some cases, restricts the control of selected network components (e.g., host firewalls).

[0063] The deployment models are as follows: Private Cloud: The cloud infrastructure is operated solely for an organization. The cloud infrastructure can be managed by the organization or a third party and can exist on-premise or off-premise. Community Cloud: The cloud infrastructure is shared by multiple organizations and supports a specific community that shares concerns (missions, security requirements, policies, compliance considerations, etc.). The cloud infrastructure can be managed by an organization or a third party and can exist on-premise or off-premise. Public Cloud: The cloud infrastructure is made available to the general public or large industry groups and is owned by an organization that sells cloud services. Hybrid Cloud: The cloud infrastructure remains a single entity but is a composition of two or more clouds (private, community, or public) joined by standardized or proprietary technologies (e.g., cloud bursting for load balancing between clouds) that enable data and application portability.

[0064] The cloud computing environment is service-oriented, focusing on statelessness, loose coupling, modularity, and semantic interoperability. The core of cloud computing is an infrastructure composed of a network of interconnected nodes.

[0065] Referring to FIG. 11, an exemplary cloud computing environment 600 is shown that may be suitable for implementing certain embodiments of the disclosed subject matter. As shown, cloud computing environment 600 includes one or more cloud computing nodes 10 that can communicate with local computing devices used by cloud consumers, such as, for example, a personal digital assistant (PDA) or cellular telephone 54A, a desktop computer 54B, a laptop computer 54C, and / or an automotive computer system 54N. The cloud computing nodes 10 can communicate with one another. These nodes can be grouped physically or virtually into one or more networks such as the private, community, public, or hybrid clouds described above, or a combination thereof (not shown). Thereby, cloud computing environment 600 can provide infrastructure, platforms, and / or software as services such that a cloud consumer need not maintain resources on a local computing device. The types of computing devices 54A - N shown in FIG. 11 are intended only as examples, and it is understood that cloud computing nodes 10 and 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 FIG. 12, a set of functional abstraction layers 700 provided by cloud computing environment 600 (FIG. 11) is shown. It should be understood upfront that the components, layers, and functions shown in FIG. 12 are for purposes of illustration 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 mainframe 61, servers 62 based on RISC (Reduced Instruction Set Computer) architecture, server 63, blade server 64, storage device 65, and networks and networking components. In some embodiments, software components include network application server software 67 and database software 68.

[0068] The virtualization layer 70 provides an abstraction layer that can provide the following examples of virtual entities, including virtual server 71, virtual storage 72, virtual network 73 including a virtual private network, virtual applications and operating systems 74, and virtual clients 75.

[0069] In one example, the management layer 80 can provide the functions described below. Resource provisioning 81 provides for the dynamic procurement of computing resources and other resources used to execute tasks within a cloud computing environment. Metering and pricing 82 provides for cost tracking when resources are utilized within a cloud computing environment and for billing or invoicing for the consumption of these resources. In one example, these resources can include application software licenses. Security provides protection for data and other resources, as well as ID verification for cloud consumers and tasks. The user portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides for the allocation and management of cloud computing resources such that the required service levels are met. SLA (Service Level Agreement) planning and fulfillment 85 provides for the advance preparation and procurement of cloud computing resources for which future requirements are anticipated in accordance with the SLA.

[0070] The 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. The 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 the integration of any possible level of technical detail. The computer-readable media can include a non-transitory computer-readable storage medium (or media) having thereon computer-readable program instructions for causing a processor to execute an operation.

[0072] A computer-readable storage medium can be a tangible device that holds and stores instructions for use by an instruction execution device. The computer-readable storage medium can be, for example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing, but is not limited thereto. 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 versatile disks (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or raised structures in grooves in which instructions are recorded, and any suitable combination of the foregoing. The computer-readable storage medium as used herein should not be construed as being a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., an optical pulse passing through an optical fiber cable), or an electrical signal transmitted via a wire.

[0073] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to respective computing / processing devices, 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 can be composed of copper wire transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface within each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium within each respective computing / processing device.

[0074] The computer-readable program code / instructions for performing the operations can be in any combination of one or more programming languages, including assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuits, or source code or object code written in any combination of object-oriented programming languages such as Smalltalk, C++, and procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions can be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer, partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (e.g., 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 the computer-readable program instructions by utilizing the state information of the computer-readable program instructions to personalize the electronic circuit for performing the aspects or operations.

[0075] These computer-readable program instructions are provided to the processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions executed via the processor of the computer or other programmable data processing device create means for implementing the functions / acts specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer-readable storage medium containing the instructions stored therein comprises a manufacture including instructions for implementing the aspects of the functions / acts specified in one or more blocks of the flowchart and / or block diagram.

[0076] The computer-readable program instructions may be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions / acts specified in one or more blocks of the flowchart and / or block diagram.

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

[0078] It will be apparent that the systems and / or methods described herein can be implemented in different forms of hardware, firmware, or a combination of hardware and software. The actual special control hardware or software code used to implement these systems and / or methods does not limit the embodiments. Thus, the operation and actions of the systems and / or methods are described herein without reference to specific software code. It is understood that software and hardware can be designed based on the description herein to implement the systems and / or methods.

[0079] Elements, acts, or instructions used in this specification should not be construed as important or essential unless so explicitly stated. Also, as used in this specification, the article "a, an" is intended to include one or more items and may be used interchangeably with "one or more." Further, as used in this specification, 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." The term "one" or similar language is used when only one item is intended. Also, as used in this specification, terms such as "has, have, having" are intended to be open-ended terms. Further, the phrase "based on" is intended to mean "at least partially based on" unless otherwise specified.

[0080] The descriptions of the various aspects and embodiments are presented for illustrative purposes but are not intended to be exhaustive or to limit the disclosed embodiments. Even if a combination of functions is recited 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 recited in the claims and / or not disclosed in the specification. Each of the dependent claims listed below may be directly dependent 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 described embodiments. The terms used in this specification are chosen to best explain the principles of the embodiments, the practical application to technologies as seen in the market, or the technological improvements, or to enable those skilled in the art to understand the embodiments disclosed in this specification.

[0081] The content of the original claims at the time of filing is described below as an example. [Example 1] A method for video decoding using at least one processor, the method comprising: acquiring video data; analyzing the acquired video data to obtain partition splitting parameters; obtaining a partitioned superblock based on the partition splitting parameters; decoding the video data based on the partitioned superblock, and based on that the luma block area size of the smallest luma block of the partitioned superblock is larger than a first threshold or the luma splitting depth of the smallest luma block is smaller 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 that the luma block area size is smaller than the first threshold or the luma splitting depth is larger than the second threshold, the luma blocks of the partitioned superblock are partitioned based on the 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. Method. [Example 2] The method according to Example 1, wherein the first threshold is one of 128 and 256, and the second threshold is either 1 or 2. [Example 3] The method according to Example 1 or 2, wherein the partitioned superblock corresponds to an intra-frame. [Example 4] The method according to any one of Embodiments 1 to 3, wherein a chroma division depth of a minimum chroma block partitioned based on the second block partition structure is smaller than the luma division depth. [Embodiment 5] The method according to any one of Embodiments 1 to 3, wherein a chroma division depth of a minimum chroma block partitioned based on the second block partition structure is determined based on the luma division depth. [Embodiment 6] The method according to any one of Embodiments 1 to 5, wherein the first block partition structure includes partitions of the second block partition structure including additional partitions. [Embodiment 7] Based on the luma block area size being greater than the first threshold or the luma division depth being smaller than the second threshold, the partition parameters are signaled together for a plurality of color components. Based on the luma block area size being smaller than the first threshold or the luma division depth being smaller than the second threshold, the partition parameters are signaled separately among the plurality of color components. The method according to any one of Embodiments 1 to 6. [Embodiment 8] The method according to any one of Embodiments 1 to 7, wherein the partition parameters are signaled by at least one of a video parameter set, a sequence parameter set, a picture parameter set, an adaptive parameter set, a slice header, and a tile header. [Embodiment 9] An apparatus for video coding, the apparatus comprising: at least one memory configured to store program code; 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, An apparatus in which the method according to any one of Examples 1 to 8 is executed. Apparatus. [Example 10] A computer program comprising one or more instructions which, when executed by one or more processors of a device for video coding, cause the one or more processors to execute the method according to any one of Examples 1 to 8. Computer program.

[0082] Selected acronyms: HEVC: High Efficiency Video Coding VVC: Versatile Video Coding CfL: Chroma from Luma SDT: Semi-Detached Tree SDP: Semi-Detached Partitioning SST: Semi-Separate Tree SB: Super Block CTU: Coding Tree Unit

Claims

[Claim 1] 1. A method of video decoding using at least one processor, the method comprising: acquiring video data; analyzing the acquired video data to acquire partitioning parameters, the partitioning parameters including a luma partitioning parameter corresponding to a luma component and one or more chroma partitioning parameters corresponding to a plurality of color components; obtaining a partitioned super-block based on the partitioning parameters; determining whether the one or more chroma partitioning parameters are signaled individually or together based on at least one of a luma block region size of a smallest luma block of the partitioned super-block and a luma partitioning depth of the smallest luma block; and decoding the video data based on the result of the determination. based on the luma block region size of the smallest luma block being greater than a first threshold or the luma partitioning depth being less than a second threshold, the luma blocks of the partitioned super-block and the chroma blocks of the partitioned super-block are partitioned based on a first block partitioning structure; based on the luma block region size being smaller than the first threshold or the luma partitioning depth being greater than the second threshold, the luma blocks of the partitioned super-block are partitioned based on the first block partitioning structure and the chroma blocks of the partitioned super-block are partitioned based on a second block partitioning structure different from the first block partitioning structure. method.

Citation Information

Patent Citations

  • System and method for scaling transform coefficient level values

    JP2020506593A

  • Image decoding apparatus and image coding apparatus

    WO2018037853A1