Quantization for encoding or decoding video based on block faces

By using a subdivision level counter to determine quantization parameters based on block surface, the method addresses inconsistent quantization across varying block sizes, enhancing encoding and decoding efficiency.

JP2026062766APending Publication Date: 2026-04-10INTERDIGITAL VC HOLDINGS INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
INTERDIGITAL VC HOLDINGS INC
Filing Date
2025-12-22
Publication Date
2026-04-10

AI Technical Summary

Technical Problem

Existing video coding schemes face challenges in achieving consistent quantization parameters across blocks of varying sizes due to non-uniform partitioning, leading to inefficient encoding and decoding processes.

Method used

The method involves associating a subdivision level counter with each block to determine quantization parameters based on the block's surface, enabling consistent quantization by considering the type and size of sub-blocks, and using a subdivision level counter to manage quantization groups effectively.

Benefits of technology

This approach ensures consistent quantization parameters for blocks of similar sizes, improving encoding and decoding efficiency and consistency across different partition types.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026062766000001_ABST
    Figure 2026062766000001_ABST
Patent Text Reader

Abstract

The present invention provides an encoding and decoding method, apparatus, and program for determining quantization parameters based on the block subdivision level. [Solution] The method divides an image into multiple blocks of varying sizes and associates a subdivision level counter with each block. The value of this subdivision level counter for a block represents the size of the block and is used to determine the quantization parameters of the block. The value is propagated with each subdivision and incremented according to the type of subdivision. When dividing an image, an analysis is performed according to the subdivision level counter, the maximum subdivision value, and the type of subdivision to determine the start of a new quantization group. If determined, the current position of the partition is propagated to those partitions so that it is stored along with the partitions to be further divided, which is useful in the prediction process during decoding.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure is in the field of video compression, and at least one embodiment relates more particularly to determining quantization parameters based on the surface of a block. .

Background Art

[0002] To achieve high compression efficiency, video coding schemes typically utilize spatial and temporal redundancies within video content using prediction and transform. Generally, intra prediction or inter prediction is used to exploit correlations within or between frames, and then the difference between the original block and the predicted block, often shown as the prediction error or prediction residue, is transformed, quantized, and entropy coded. To reconstruct the video, the compressed data is decoded by inverse processes corresponding to entropy coding, quantization, transform, and prediction.

Summary of the Invention

Means for Solving the Problems

[0003] According to a first aspect of at least one embodiment, a method of coding video includes associating a value representing the surface of a sub-block when a block of an image is divided into sub-blocks, and determining a quantization parameter of the sub-block based on the value representing the surface of the sub-block.

[0004] According to a second aspect of at least one embodiment, a method of decoding video includes associating a value representing the surface of a sub-block when a block of an image is divided into sub-blocks, and determining a quantization parameter of the sub-block based on the value representing the surface of the sub-block.

[0005] According to a third aspect of at least one embodiment, a device including a video encoder for encoding picture data includes associating values ​​representing the faces of subblocks when blocks of an image are divided into subblocks, and determining quantization parameters for the subblocks based on the values ​​representing the faces of the subblocks.

[0006] According to a fourth aspect of at least one embodiment, a device including a video decoder for decoding picture data includes associating values ​​representing the faces of subblocks when blocks of an image are divided into subblocks, and determining quantization parameters for the subblocks based on the values ​​representing the faces of the subblocks.

[0007] According to the modified embodiments of the first, second, third, or fourth aspects, the value representing the face of a subblock is a subdivision level counter that is incremented by a value representing the type of subdivision when a block of the image is divided into subblocks. According to further modified embodiments of the first, second, third, or fourth aspects, a new quantization group is enabled according to the type of subdivision while the subdivision level counter of the subblock is less than or equal to the maximum subdivision value. According to further modified embodiments of the first, second, third, or fourth aspects, a new quantization group is disabled when a block of the image is divided into subblocks according to a ternary subdivision and the subdivision level counter of the smallest subblock exceeds the maximum subdivision value.

[0008] According to the modified embodiments of the first, second, third, or fourth embodiment, or the modified forms thereof, the increment value is 2 for all subblocks of the quad division. For all subblocks of a binary partition, the value is equal to 1; for the lateral subblocks of a ternary partition, it is equal to 2; and for the central subblock of a ternary partition, it is equal to 1. According to another variant of the first, second, third, or fourth embodiment or a variant of these embodiments, the increment value is equal to 4 for all subblocks of a quad partition, 2 for all subblocks of a binary partition, 4 for the lateral subblocks of a ternary partition, and 2 for the central subblock, 4 for the smallest subblock of an asymmetric 1 / 4 binary partition, and 1 for the largest subblock, as well as 3 for the smallest subblock of an asymmetric 1 / 3 binary partition, and 1 for the largest subblock.

[0009] According to a fifth aspect of at least one embodiment, the storage medium stores video bitstream data including at least syntactic data elements representing values ​​representing the faces of subblocks, where the subblocks are the result of dividing blocks of video images. According to a modified embodiment of the fifth embodiment, the value representing the faces of subblocks is a subdivision level counter that is incremented by a value representing the type of subblock division when a block of image is divided into subblocks. According to a further modified embodiment of the fifth embodiment, the increment value is equal to 2 for all subblocks of a quad division, 1 for all subblocks of a binary division, 2 for the lateral subblocks of a ternary division, and 1 for the central subblock of a ternary division.

[0010] According to a sixth aspect of at least one embodiment, a computer program is provided which includes program code instructions executable by a processor, the computer program performing steps of the method according to at least the first or second aspect.

[0011] According to a seventh aspect of at least one embodiment, a computer program product is provided which includes program code instructions stored on a non-temporary computer-readable medium and executable by a processor, wherein the computer program product performs steps of at least the first or second aspect of the method. [Brief explanation of the drawing]

[0012] [Figure 1] A block diagram of an example of video encoder 100 is shown. [Figure 2] A block diagram of an example of a video decoder 200 is shown. [Figure 3] A block diagram of an example of a system in which various aspects and embodiments are implemented is shown. [Figure 4] An example of a coded tree unit and coded tree within a compressed region is shown. [Figure 5] This shows an example of dividing CTU into coding units, prediction units, and transformation units. [Figure 6] For example, it shows various types of partitioning, such as those found in VVC. [Figure 7A] This shows the effect of repeated partitioning on block size. [Figure 7B] This shows the effect of repeated partitioning on block size. [Figure 8] This shows various blocks of the same size at different subdivision levels. [Figure 9] This demonstrates the use of quantization groups in the HEVC specification. [Figure 10] At least one embodiment relating to the use of the subdivision level counter subdiv is shown. [Figure 11A] This shows an example of the relationship between the type of division and the subdiv increment according to one embodiment. [Figure 11B] This shows an example of the relationship between the type of division and the subdiv increment according to one embodiment. [Figure 11C] This shows an example of the relationship between the type of division and the subdiv increment according to one embodiment. [Figure 12] An example of a block diagram of a subdiv process according to an embodiment is shown. [Figure 13A] An example of the value of the subdiv counter when the process is applied to the examples of FIGS. 6 and 7 is shown. [Figure 13B] An example of the value of the subdiv counter when the process is applied to the examples of FIGS. 6 and 7 is shown. [Figure 13C] An example of the value of the subdiv counter when the process is applied to the examples of FIGS. 6 and 7 is shown. [Figure 14A] Different types of asymmetric binary splitting are shown. [Figure 14B] Different types of asymmetric binary splitting are shown. [Figure 14C] An example of the result of T splitting is shown. [Figure 15A] An example of the relationship between the type of splitting and the increment of subdiv according to a first modified embodiment of AB splitting is shown. [Figure 15B] An example of the relationship between the type of splitting and the increment of subdiv according to a first modified embodiment of AB splitting is shown. [Figure 16A] An example of the value of the subdiv counter when the process is applied to two consecutive asymmetric binary splittings corresponding to ternary splitting is shown. [Figure 16B] An example of the value of the subdiv counter when the process is applied to two consecutive asymmetric binary splittings corresponding to ternary splitting is shown. [Figure 16C] An example of the value of the subdiv counter when the process is applied to two consecutive asymmetric binary splittings corresponding to ternary splitting is shown. [Figure 17] An example of the value of the subdiv counter when the process is applied to two consecutive asymmetric 1 / 4 binary splittings in opposite directions using a first modified form of AB splitting is shown. [Figure 18A] An example of the relationship between the type of splitting and the increment of subdiv according to a second modified embodiment of AB splitting is shown. [Figure 18B] This shows an example of the relationship between the type of partition and the subdiv increment according to a second modified embodiment of the AB partition. [Figure 18C] This shows an example of the relationship between the type of partition and the subdiv increment according to a second modified embodiment of the AB partition. [Figure 18D] This shows an example of the relationship between the type of partition and the subdiv increment according to a second modified embodiment of the AB partition. [Figure 18E] This shows an example of the relationship between the type of partition and the subdiv increment according to a second modified embodiment of the AB partition. [Figure 19] An example of QG initiation in the case of a T partition is shown. [Figure 20] An example of defining the QG in the case of a T partition is shown, according to one embodiment that corrects the QG problem. [Figure 21] A block diagram of an example embodiment of the QG identification process is shown. [Figure 22] A block diagram of another example of an embodiment of the QG identification process is shown. [Figure 23] The results of such an embodiment in the situation shown in Figure 19 are presented. [Figure 24] The table below shows an example of the syntax for a Picture Parameter Set (PPS) using an embodiment that employs a subdivision level counter. [Figure 25] The table below shows an example of syntax for implementing the main embodiments. [Figure 26] The table below shows an example of syntax for implementing the main embodiments. [Figure 27] The table below shows an example of syntax for implementing the main embodiments. [Figure 28] The table below shows an example of syntax for implementing the main embodiments. [Figure 29] The table below shows an example of syntax for implementing the main embodiments and processing QG start detection. [Figure 30]The table below shows an example of syntax for implementing the main embodiments and processing QG start detection. [Figure 31] The table below shows an example of syntax for implementing the main embodiments and processing QG start detection. [Figure 32] The table below shows an example of syntax for implementing the main embodiments and processing QG start detection for chroma-related elements. [Figure 33] The table below shows an example of syntax for implementing the main embodiments and processing QG start detection for chroma-related elements. [Figure 34] The table below shows an example of syntax for implementing the main embodiments and processing QG start detection for chroma-related elements. [Figure 35] The table below shows an example of syntax for implementing the main embodiments and processing QG start detection for chroma-related elements. [Modes for carrying out the invention]

[0013] In at least one embodiment, video encoding or decoding divides the image into multiple blocks of varying sizes, and a subdivision level counter (hereinafter referred to as "subdiv") is associated with each partition and block. The subdivision may be recursive, and therefore a block may be further divided into multiple blocks (called subblocks), etc. The value of this counter for a block or subblock represents the size of the block or subblock and is used to determine the quantization parameters of the block or subblock and the quantization group to which the block belongs. As a result, the same quantization parameters are used for blocks of similar sizes, thus providing consistent encoding / decoding.

[0014] To clarify the explanation, the following description will describe embodiments that include video compression technologies such as High Efficiency Video Coding (HEVC) or Multipurpose Video Coding (VVC), which are new standards developed by the Joint Video Experts Team (JVET). However, the embodiments described are also applicable to other video processing technologies and standards.

[0015] This application describes various embodiments, including tools, features, embodiments, models, methods, etc. Many of these embodiments are described specifically and are often described in a manner that may seem limited to illustrating at least the individual characteristics. However, this is for the purpose of clarifying the description and is not intended to limit the application or scope of those embodiments. In fact, all of the various embodiments can be combined and interchanged to produce further embodiments. Furthermore, embodiments can be combined and interchanged with embodiments described in prior applications. The embodiments described and anticipated herein can be implemented in many different forms. Figures 1, 2, and 3 below show some embodiments, but other embodiments are also anticipated, and the description of Figures 1, 2, and 3 is not intended to limit the scope of implementation forms. At least one of the embodiments generally relates to encoding and decoding video, and at least one other embodiment generally relates to transmitting generated or encoded bitstreams. These and other embodiments can be implemented as a computer-readable storage medium storing instructions for encoding or decoding video data according to any of the methods, apparatus, or described methods, and / or a computer-readable storage medium storing bitstreams generated according to any of the described methods.

[0016] In this application, the terms "reconstruct" and "decode" may be used interchangeably, the terms "pixel" and "sample" may be used interchangeably, and the terms "image," "picture," and "frame" may be used interchangeably. Although not always the case, the term "reconstruct" is usually used on the encoder side, while "decode" is usually used on the decoder side.

[0017] This specification describes various methods, each of which includes one or more steps or actions to accomplish the described method. Unless a particular order of steps or actions is required for the method to function properly, the order and / or use of any particular steps and / or actions may be modified or combined.

[0018] Using the various methods and other embodiments described herein, a module, for example, a quantization module (130) of the video encoder (100) shown in Figure 1 and / or a video decoder ( shown in Figure 2) The inverse quantization module (240) of 200) can be modified. Furthermore, embodiments of the present application are not limited to VVC or HEVC, but can be applied, for example, to other existing or future standards and recommendations and extensions to any such standards and recommendations (including VVC and HEVC). Unless otherwise specified or technically excluded, embodiments described herein can be used individually or in combination.

[0019] This application uses, for example, various numerical values ​​relating to block size. The specific values ​​are illustrative, and the embodiments described are not limited to those specific values.

[0020] Figure 1 shows a block diagram of an example of a video encoder 100. While variations of this encoder 100 are possible, it is described below for clarity without listing all expected variations. For example, the encoder in Figure 1 could be an HEVC encoder, which is an improved version of the HEVC standard, or an encoder using similar technology to HEVC, such as the JEM (Joint Exploration Model) encoder developed by JVET.

[0021] The video sequence may be subjected to pre-encoding processing (101) before encoding, for example, by applying a color conversion to the input color picture (e.g., conversion from RGB4:4:4 to YCbCr4:2:0) or by remapping the input picture components to obtain a signal distribution that is more resilient to compression (e.g., by using histogram equalization of one of the color components). Metadata may be associated with the pre-processing and may be appended to the bitstream.

[0022] In HEVC, to encode a video sequence having one or more pictures, the picture is divided into one or more slices (102), and each slice may contain one or more slice segments. A slice segment consists of a coded unit, a prediction unit, and a transform unit. The HEVC specification distinguishes between “blocks” and “units,” where a “block” deals with a specific region in a sample array (e.g., luma, Y), and a “unit” contains a collated block of all encoded color components (Y, Cb, Cr, or monochrome), syntactic elements, and prediction data associated with the block (e.g., motion vectors).

[0023] For coding in HEVC, a picture is divided into square coding tree blocks (CTBs) of a configurable size, and sets of consecutive coding tree blocks are grouped into slices. A coding tree unit (CTU) contains the CTB of the encoded color components. The CTB is the root of a quadtree division into coding blocks (CBs), which can be divided into one or more prediction blocks (PBs), forming the root of a quadtree division into transform blocks (TBs). Corresponding to the coding blocks, prediction blocks, and transform blocks, a coding unit (CU) contains a set of tree structures of prediction units (PUs) and transform units (TUs), where the PUs contain prediction information for all color components, and the TUs contain the residual coding syntactic structure for each color component. The sizes of the CBs, PBs, and TBs of the color components correspond to the corresponding CUs, PUs, and TUs. In this application, the term “block” may be used to refer to any of, for example, CTU, CU, PU, ​​TU, CB, PB, and TB. In addition, the term "block" can be used to refer to macroblocks and partitions as defined within H.264 / AVC or other video encoding standards, or more broadly, to arrays of data of various sizes.

[0024] In an example of encoder 100, a picture is encoded by the encoder's elements as described below. The picture to be encoded is divided into coded units that represent parts of the picture (102) and processed. Each unit is encoded using, for example, intra-mode or inter-mode. When a unit is encoded using intra-mode, the encoder performs intra-prediction (160). In inter-mode, motion estimation (175) and motion compensation (170) are performed. The encoder uses intra-mode or inter-mode to encode the unit. The encoder determines which to use (105), and the intra / inter decision is indicated, for example, by a prediction mode flag. The predicted residual is calculated by subtracting the predicted block from the original image block (110). The predicted residual is then transformed (125) and quantized (130). The quantized transformed coefficients, as well as the motion vector and other syntactic elements, are entropy coded (145) and the bitstream is output. The encoder can skip the transformation and apply quantization directly to the untransformed residual signal. The encoder can bypass both the transformation and quantization, i.e., the residual is coded directly without applying the transformation or quantization process. The encoder decodes the coded block to provide a reference for further prediction. The quantized transformed coefficients are inversely quantized (140) and inversely transformed (150) to decode the predicted residual. The decoded predicted residual and the predicted block are combined (155) to reconstruct the image block. For example, to reduce encoding artifacts by performing deblocking / SAO (sample adaptive offset) filtering, an in-loop filter (165) is applied to the reconstructed picture. The filtered image is stored in a reference picture buffer (180).

[0025] Figure 2 shows a block diagram of an example of video decoder 200. While variations of decoder 200 are possible, decoder 200 is described below for clarity, without describing all anticipated variations. For example, the decoder in Figure 1 could be an HEVC decoder with improvements to the HEVC standard, or a decoder using HEVC-like technology such as the JEM decoder developed by JVET.

[0026] In the decoder 200, the bitstream is decoded by the decoder's elements as described below. The video decoder 200 generally performs a decoding path that is the reverse of the encoding path shown in Figure 1. The encoder 100 also generally performs video decoding as part of encoding video data. Specifically, the decoder's input includes a video bitstream that can be generated by the video encoder 100 and syntactic data elements that allow the video to be reconstructed. The bitstream is first entropically decoded to obtain transformation coefficients, motion vectors, and other coded information (230). Picture division information indicates how the picture is divided. Thus, the decoder can divide the picture according to the decoded picture division information (235). The transformation coefficients are inversely quantized (240) and inversely transformed (250) to decode the predicted residuals. The decoded predicted residuals and predicted blocks are combined (255) to reconstruct the image blocks. Predicted blocks can be obtained from intra-prediction (260) or motion-compensated prediction (i.e., inter-prediction) (275) (270). An in-loop filter (265) is applied to the reconstructed image. The filtered image is stored in a reference picture buffer (280). The decoded picture can be subjected to further post-decoded processing (285), such as inverse color transformation (e.g., conversion from YCbCr4:2:0 to RGB4:4:4) or inverse remapping, which is the reverse of the remapping process performed in pre-encoded processing (101). Post-decoded processing can use metadata derived in pre-encoded processing and signaled in the bitstream.

[0027] Figure 3 shows a block diagram of an example of a system in which various aspects and embodiments are implemented. System 1000 can be implemented as a device including various components described below and configured to perform one or more of the aspects described herein. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. The elements of System 1000 can be implemented individually or in combination within a single integrated circuit (IC), multiple ICs, and / or individual components. For example, in at least one embodiment, the processing and encoder / decoder elements of System 1000 are distributed across multiple ICs and / or individual components. In various embodiments, system 1000 is communicably coupled to one or more other systems or other electronic devices, for example, via a communication bus or by dedicated input and / or output ports. In various embodiments, system 1000 is configured to implement one or more of the embodiments described herein.

[0028] System 1000 includes, for example, at least one processor 1010 configured to execute instructions loaded within itself to implement various embodiments described herein. Processor 1010 may include embedded memory, input / output interfaces and various other circuits known in the art. System 1000 includes at least one memory 1020 (e.g., volatile memory device and / or non-volatile memory device). System 1000 includes a storage device 1040 which may include, but is not limited to, electrically erasable programmable read-only memory (EEPROM), read-only memory (ROM), programmable read-only memory (PROM), random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), flash memory, magnetic disk drives and / or optical disk drives, and non-volatile memory and / or volatile memory. Storage device 1040 may, as non-limiting examples, include built-in storage devices, add-on storage devices (including removable and non-removable storage devices) and / or network-accessible storage devices.

[0029] System 1000 includes, for example, an encoder / decoder module 1030 configured to process data to provide encoded or decoded video, the encoder / decoder module 1030 may include its own processor and memory. The encoder / decoder module 1030 represents a module that may be included in the device to perform encoding and / or decoding functions. As is known, the device may include one or both of the encoding module and the decoding module. In addition, the encoder / decoder module 1030 may be implemented as a separate element of System 1000 or may be incorporated into the processor 1010 as a combination of hardware and software, as is known to those skilled in the art.

[0030] To perform the various embodiments described herein, program code loaded onto the processor 1010 or the encoder / decoder 1030 may be stored in the storage device 1040 and then loaded onto the memory 1020 for execution by the processor 1010. According to various embodiments, one or more of the processor 1010, memory 1020, storage device 1040 and encoder / decoder module 1030 may store one or more of various items during the execution of the processes described herein. Such items to be stored may include, but are not limited to, input video, decoded video or a portion of decoded video, bitstreams, matrices, variables, and intermediate or final results of processing expressions, formulas, operations and arithmetic logic.

[0031] In some embodiments, the internal memory of the processor 1010 and / or the encoder / decoder module 1030 is used to store instructions and provide working memory for processing required during encoding or decoding. However, in other embodiments, external memory is used for one or more of these functions (for example, the processing unit may be the processor 1010 or the encoder / decoder module 1030). The external memory may be memory 1020 and / or storage device 1040, such as dynamic volatile memory and / or non-volatile flash memory. In some embodiments, for example, external non-volatile flash memory is used to store the television's operating system. In at least one embodiment, MPEG-2 (MPEG stands for Moving Picture Experts Group, and MPEG-2 is also known as ISO / IEC 13818, 13818-1 is also known as H.222, and 13818-2 is also known as H.262), HEVC, or VVC, etc. High-speed external dynamic volatile memory, such as RAM, is used as working memory for video encoding and decoding operations.

[0032] Inputs to the elements of system 1000 may be provided by various input devices shown in block 1130. Such input devices include, but are not limited to, (i) an RF section for receiving RF (radio frequency) signals transmitted wirelessly by a broadcaster, for example, (ii) a component (COMP) input terminal (or a set of COMP input terminals), (iii) a universal serial bus (USB) input terminal, and / or (iv) a high-definition multimedia interface (HDMI) input terminal. Other examples not shown in Figure 3 include composite video.

[0033] In various embodiments, the input device of block 1130 has relevant individual input processing elements known in the art. For example, the RF portion may relate to elements suitable for (i) selecting a desired frequency (also said to select a signal or band-limit a signal to a certain frequency band), (ii) down-converting the selected signal, (iii) again band-limiting it to a narrower frequency band in order to select a signal frequency band that may (for example) be called a channel in a particular embodiment, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing in order to select a desired stream of data packets. The RF portion of various embodiments includes one or more elements for performing these functions, such as frequency selectors, signal selectors, band-limiters, channel selectors, filters, downconverters, demodulators, error correctors, and demultiplexers. The RF portion may include a tuner that performs various functions of these, including, for example, down-converting a received signal to a lower frequency (e.g., an intermediate frequency or a frequency close to the baseband) or to the baseband. In one embodiment of the set-top box, the RF section and its associated input processing elements receive an RF signal transmitted over a wired (e.g., cable) medium, filter it to a desired frequency band, downconvert it, and filter it again to select a frequency. Various embodiments may rearrange the order of the elements described above (and others), remove some of those elements, and / or add other elements that perform similar or different functions. Adding elements may include inserting elements between existing elements, e.g., amplifiers and analog-to-digital converters. In various embodiments, the RF section includes an antenna. In addition, the USB and / or HDMI terminals may include individual interface processors for connecting the system 1000 to other electronic devices between the ends of the USB and / or HDMI connections. It should be understood that various aspects of input processing, e.g., Reed-Solomon error correction, can be implemented as needed, for example, within a separate input processing IC or within processor 1010.Similarly, aspects of USB or HDMI interface processing can be implemented within a separate interface IC or within the processor 1010. Demodulated, error-corrected, and demultiplexed streams are provided to various processing elements, including, for example, the processor 1010 and the encoder / decoder 1030, which operate in conjunction with memory and storage elements, in order to process the data stream as needed for presentation on an output device.

[0034] Various elements of system 1000 can be housed within an integrated housing. Within the integrated housing, the various elements are interconnected, and data can be transmitted between them using an internal bus known in the art, such as an Inter-IC (I2C) bus, wiring, and printed circuit boards, with an appropriate connection configuration.

[0035] System 1000 includes a communication interface 1050 that enables communication with other devices via a communication channel 1060. The communication interface 1050 may include, but is not limited to, a transceiver configured to send and receive data on the communication channel 1060. The communication interface 1050 may also include, but is not limited to, a modem or This may include a network card, and the communication channel 1060 can be implemented, for example, in a wired medium and / or a wireless medium.

[0036] In various embodiments, wireless networks such as Wi-Fi networks, for example, IEEE 802.11 (IEEE stands for Institute of Electrical and Electronics Engineers), are used. Data is streamed to or provided to system 1000 using a network. In these embodiments, the Wi-Fi signal is received on a communication channel 1060 and a communication interface 1050 adapted for Wi-Fi communication. In these embodiments, the communication channel 1060 is typically connected to an access point or router that provides access to an external network, including the Internet, to enable streaming applications and other over-the-top communications. In other embodiments, streamed data is provided to system 1000 using a set-top box that delivers data over the HDMI connection of input block 1130. Still other embodiments provide streamed data to system 1000 using the RF connection of input block 1130. As shown above, various embodiments provide data in a non-streaming manner. In addition, various embodiments use wireless networks other than Wi-Fi, such as cellular networks or Bluetooth networks.

[0037] System 1000 can provide output signals to various output devices, including a display 1100, a speaker 1110, and other peripheral devices 1120. In various embodiments, the display 1100 includes, for example, one or more touchscreen displays, organic light-emitting diode (OLED) displays, curved displays, and / or foldable displays. The display 1100 may be, for example, a television, a laptop, a cell phone, or other device. The display 1100 may be integrated into other components (for example, as in a smartphone) or separate (for example, an external monitor for a laptop). In various examples of embodiments, the other peripheral devices 1120 include one or more standalone digital video discs (or digital multi-purpose discs) (DVR in both terms), disc players, stereo systems, and / or lighting systems. Various embodiments use one or more peripheral devices 1120 that provide functions based on the output of System 1000. For example, a disc player performs the function of playing back the output of System 1000.

[0038] In various embodiments, AV.Link, Consumer Electronics Control (CEC), or U Control signals are communicated between system 1000 and the display 1100, speaker 1110, or other peripheral devices 1120 using signaling such as other communication protocols that enable inter-device control with or without operator intervention. Output devices may be communicably coupled to system 1000 via dedicated connections through individual interfaces 1070, 1080, and 1090. Alternatively, output devices may be connected to system 1000 using communication channel 1060 via communication interface 1050. The display 1100 and speaker 1110 can be integrated into a single unit together with other components of system 1000 in an electronic device such as a television. In various embodiments, the display interface 1070 may be a timing controller (TCon) chip, for example. Includes display driver.

[0039] For example, if the RF portion of input 1130 is part of a separate set-top box, the display 1100 and speaker 1110 can be isolated from one or more other components instead. In various embodiments where the display 1100 and speaker 1110 are external components, the output signal can be provided by a dedicated output connection, such as an HDMI port, a USB port, or a COMP output.

[0040] The embodiment is computer software implemented by processor 1010 or This can be performed by hardware or a combination of hardware and software. In non-limiting examples, embodiments may be implemented by one or more integrated circuits. Memory 1020 may be of any type appropriate for the technical environment and may be implemented using any suitable data storage technology, such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory and removable memory, in non-limiting examples. Processor 1010 may be of any type appropriate for the technical environment and may include one or more microprocessors, general-purpose computers, dedicated computers and processors based on multicore architectures, in non-limiting examples.

[0041] Figure 4 shows an example of a coded tree unit and coded tree within the compressed region. In the HEVC video compression standard, a picture is divided into so-called coded tree units (CTUs), the size of which is, for example, 64x64, 128x128, or 256x256 pixels. Each CTU is represented by a coded tree within the compressed region. This is a quadtree division of the CTU, with each leaf being called a coded unit (CU).

[0042] Figure 5 shows an example of dividing a CTU into coding units, prediction units, and transformation units. Each CU is given some intra-prediction parameters or inter-prediction parameter prediction information. To this end, the CU is spatially divided into one or more prediction units (PUs), and some prediction information is assigned to each PU. The intra-coding mode or inter-coding mode is specified at the CU level.

[0043] A video codec divides a picture into square or rectangular blocks, traditionally called coded units (CUs) or transformed units. The division can be recursive. Therefore, the division depth of the current block refers to the number of recursive divisions required to obtain the current block. These blocks can then be predicted, and the residuals (the difference between the original and the prediction) are transformed to calculate the frequency coefficients. On the encoder side, quantization involves dividing the resulting transformed coefficients by a specific quantization scale, also known as the quantization step size (Qstep). It is usually included. The decoder then multiplies the result by the same Qstep to restore an approximation of the original coefficients. .

[0044] Typically, a quantization parameter (QP) is used to determine the quantization step size Qstep. In the HEVC example, QP can take 52 values ​​from 0 to 51 (QP range). An increase of 1 in QP means that the quantization step size Qstep is approximately 12% (i.e., 2%). 1 / 6 ) increasing This means that, in the HEVC example, the relationship between the resulting QP and the equal quantization step sizes is given by the following equation (the "equals" sign indicates integer equivalence): Qstep(QP)=(2 1 / 6 ) QP-4 (Formula 1)

[0045] In the embodiments described below, functions and QP ranges other than those defined in (Equation 1) above can be used. For example, in VVC, the QP range is extended to 63.

[0046] In the following, the term "block" will be used. This term can be equally replaced by the term "CU," which refers to a group of several blocks, such as a luma block and / or a chroma block or three RGB blocks.

[0047] Local adjustment of the quantization step is typically possible by specifying the offset (QP delta) of the current picture (or a part thereof such as a slice) from the QP. In the HEVC example, the QP delta can be specified for each group of blocks called a "quantization group" (QG), which is determined by a given maximum partitioning depth (the diff_cu_qp_delta_depth syntactic element recognized in the picture parameter set), i.e., resulting from further partitioning. All blocks belong to the same quantization group and share the same QP (more precisely, they share the same QP prediction and specify at most one QP delta). In the HEVC example, all blocks at a given partitioning depth have the same size because all partitions are quad partitions (Q partitions), and therefore yield uniform QP values ​​for blocks of the same size.

[0048] Figure 6 illustrates various types of partitioning, such as those found in VVC. In codecs like VVC, in addition to Q-partitioning, other types of partitioning may include binary partitioning (B-partitioning), terminally partitioning (T-partitioning), and asymmetric binary partitioning (AB-partitioning). In this figure, Q-partitioning is shown with a dashed line, and other types of partitioning are shown with a dashed line. The top-level Q-partition defines four blocks of the same size. In the second level of partitioning, each block resulting from the Q-partitioning is further partitioned using a different type of partitioning: the top-left block is partitioned using AB-partitioning, the top-right block using T-partitioning, the bottom-left block using Q-partitioning, and the bottom-right block using B-partitioning. These partitions result in blocks that can have different sizes at the same partitioning depth (second level). In fact, block 61 in the AB-partitioned block is larger than block 62 in the T-partitioned block, or block 63 in the Q-partitioned block, or block 64 in the B-partitioned block. Although all these blocks are at the same level, their sizes are not identical and can be quite different after multiple partitions. Therefore, the visual importance of a block, which is at least partially related to its size, is not uniform.

[0049] Figures 7A and 7B illustrate the effect of repeated partitioning on block size. Figure 7B shows repeated horizontal and vertical ternary partitioning. In this example, the central block (74) is much larger than the corner block (73) despite having the same partitioning depth. Therefore, using partitioning depth information to define quantization groups can result in quantization groups with non-uniform sizes, which can lead to undesirable results compared to the HEVC principle where the granularity of QP (size of quantization groups) is the same throughout the picture or slice. Figure 7A shows repeated horizontal and vertical AB partitioning, which causes the same problem in blocks 71 and 72.

[0050] Figure 8 shows various blocks of the same size at different subdivision levels. In fact, the same block size can be obtained at different subdivision depths depending on the type of subdivision, as shown in Figure 7, and in the figure, the numbers within the blocks indicate the subdivision depth for each block. In these examples, the blocks on 1 / 16 of the parent block have a subdivision depth of 2 (bottom left block 81) or 3 (bottom right block 82).

[0051] Figure 9 illustrates the use of quantization groups in the HEVC specification. The HEVC specification includes QP delta parsing separate from QP prediction. A new prediction and a new QP delta are made available by detecting the start of the QG. To this end, the flag (IsCuQpDeltaCoded) is set to false if the partitioning depth is less than or equal to a given threshold depthLimit which is signaled within the stream. Then, in the transformation unit (TU), if the block residual is non-empty (and QP offset signaling is enabled at a high level) and IsCuQpDeltaCoded is still false, this flag is set to true and the QP offset is coded / decoded. In the decoding process, the derivation of the QP for each block involves a QP prediction made using the upper left corner of the quantization group and the adjacent blocks to the left. The position of this upper left corner is determined using a simple alignment of the current block position on the QG grid, as shown in Figure 9. This method works and aligns with previous points because all divisions are quad divisions, and therefore QGs are aligned on a grid that has the same (minimum) size and matches the division depth limit. However, when using video encoding with different division types than the Q divisions described above, such as those used in VVC, the different division types will result in pars of various sizes. Such a simple derivation of the QG's position is no longer correct, as it leads to a discontinuity. The blocks at a given partitioning depth no longer form a normal grid.

[0052] The embodiments described below have been devised with the above in mind.

[0053] Subdivision level counter Figure 10 shows at least one embodiment relating to the use of a subdivision level counter. Such a counter (hereinafter referred to as “subdiv”) is closely related to the faces of a block or at least represents the size of the block and therefore represents the faces of the block or also represents the number of samples in the block. When an image is divided into multiple blocks of varying sizes, a subdivision level counter (hereinafter referred to as “subdiv”) is associated with each partition and block. The subdiv value for a block is determined at least according to the type of subdivision. The subdiv value can be used to determine the quantization parameters of the block and the quantization group to which the block belongs. As a result, the same quantization parameters are used for blocks of similar sizes, thus providing consistent encoding / decoding.

[0054] In at least one embodiment, when a partition is divided, an analysis is performed according to a subdivision level counter, the maximum subdivision level, and the type of division to determine the start of a new quantization group, and where applicable, the current position of a partition is propagated to those partitions so as to be stored along with the partitions to be further divided and to be useful in the prediction process at decoding.

[0055] In at least one embodiment, a recursive process assigns a subdivision level counter (a positive integer value) to each block. To do this, the process first initializes the subdiv to zero at the root of the partition tree. Then, for each partition, it propagates the subdiv value to each partition (conventionally called a subblock) created after incrementing from the previous subdiv value, the increment value being determined by the type of partition and the position of the partition within the partition. While partitioning a block or subblock, a subdivision level is added to each subpartition in addition to the partition depth. The subdivision level is incremented from 1 at the parent node, depending on the type of partition and the number of partitions.

[0056] This recursive partitioning function is shown in S1 of Figure 10. After performing other functions related to the conventional partitioning function in S11, the subdiv value is determined in S12 based on the type of partition, and the partition is recursively divided in S13 while adding the subdiv value to each subpartition. Hereafter, this overall process will be referred to as the subdiv process.

[0057] The encoder 100 in Figure 1, the decoder 200 in Figure 2, and the system 1000 in Figure 3 are adapted to implement at least one of the embodiments described herein and are therefore configured to handle subdiv counters by a subdiv process.

[0058] Figures 11A, 11B, and 11C show an example of the relationship between the type of partition and the subdiv increment according to one embodiment. In at least one embodiment, the types of partitions under consideration are Q partition, B partition, and T partition, and the corresponding increments are performed as follows. - In a Q partition: incQ = +2 for all partitions in a quad partition (Figure 11A) - In a B partition: For all partitions of a binary partition that can be horizontal or vertical, incB = +1 (Figure 11B) - In a T-partition: for the horizontal or vertical ternary partition, incTS = +2, and for the central partition, incTC = +1 (Figure 11C)

[0059] Figure 12 shows an example of a block diagram of a subdiv process according to one embodiment. In this figure, The increment of the subdiv parameter is generally represented by incQ for Q partitioning, incB for B partitioning, and incTS and incTC for T partitioning, and their values ​​are determined as described above. If the partitioning type is determined to be Q partitioning in step 401, the subdiv values ​​of all four subpartitions are incremented by incQ = +2 in step 403. If the partition type is determined to be a B partition, in step 405, increment the subdiv values ​​of both lower partitions by incB = +1. If the partition type is determined to be a T partition in step 404, If it is determined that this is the case, in step 407, the subdiv value of the adjacent partition is incremented by incTS=+2 and the subdiv value of the adjacent partition is incremented by incTC=+1.

[0060] Figures 13A, 13B, and 13C show examples of subdiv counter values ​​when the process is applied to the examples in Figures 6 and 7. However, in these figures, the AB partition in the upper left block is replaced with no partition because the embodiment in Figure 11 does not deal with AB partitions. It is observed that the subdiv value is far more related to the actual block size than to the partition depth parameter.

[0061] One application of this principle is used during quantization, where blocks with the same subdiv value have the same face and therefore are assigned the same number of samples. Thus, in at least one embodiment, the specification of the quantization group is related to the subdiv value of the coding group under consideration. In one embodiment, the determination of the quantization group is made by comparing the subdiv value with the maximum subdiv value (referred to herein as diff_cu_qp_delta_subdiv) which is signaled at a higher level (e.g., PPS, slice header, tile group header, within the tile header). This can be based on the following: For example, a quantization group has a parent subdiv >= diff_cu_qp_delta_subdiv. It is specified as a set of blocks resulting from the division of a block. Such a set of blocks forms the same quantization group. Through the subdiv derivation process described above, the quantization group is larger if it has the same number of samples (=same face) or if it has not reached the subdiv limit (the division is insufficient). For example, in Figure 13A, the lower left block and the upper right block do not have the same shape, but they have similar faces and share the same subdiv value. Furthermore, this gives similar behavior to HEVC. In fact, if only Q-partitioning is available, this method yields the same quantization group as HEVC.

[0062] In at least one embodiment, the number of samples (=faces) of a block can be easily calculated from the subdiv value as follows: block_surface=CTB_surface>>subdiv

[0063] In another embodiment, the subdiv may be useful for other purposes. One example is deriving several CABAC context IDs (for example, related to the split mode) based on the subdiv value.

[0064] First variant of AB division At least one embodiment relates to video encoding that uses all the division types shown in Figure 6, and therefore uses AB division in addition to the aforementioned Q division, B division, and T division.

[0065] Figures 14A and 14B illustrate different types of asymmetric binary partitions. In an AB partition, the number of samples is not divided on both sides in a power of 2 ratio; that is, the ratio is 3 / 4 and 1 / 4, or 2 / 3 and 1 / 3 if the 3 / 4 partition is further divided AB in the same direction.

[0066] Furthermore, two consecutive asymmetric binary partitions, equivalent to a Ternary partition, are assumed to give the same subdivision level as the uniform Ternary partition shown in Figure 14C.

[0067] In at least one embodiment, the previously described in relation to Q partitioning, B partitioning, and T partitioning is To fit the criment and continue approximating the CTB / block face ratio with 2^subdiv, apply the following subdiv increments in the case of AB partitioning. - In a 1 / 4 AB partition: incAB1 = +0 for the larger part, incAB2 = +2 for the smaller part. - In a 1 / 3 AB partition: incAB3 = +1 for the larger part, incAB4 = +2 for the smaller part.

[0068] Figures 15A and 15B show an example of the relationship between the type of partition and the subdiv increment according to a first modified embodiment of AB partitioning. Figures 16A, 16B, and 16C show examples of subdiv counter values ​​when the process is applied to two consecutive asymmetric binary partitions corresponding to ternary partitioning.

[0069] Second variant of AB division Figure 17 shows an example of the subdiv counter value when the process is applied to two consecutive asymmetric 1 / 4 binary partitions in opposing directions using the first variant of the AB partitioning. In this example, as shown in Figure 17, consecutive 1 / 4 AB partitions in opposing directions result in the subdiv not being incremented in the larger portion, despite a significant reduction in size (56% of the original face) (upper right block).

[0070] Figures 18A, 18B, 18C, 18D, and 18E illustrate an example of the relationship between the type of subdivision and the subdiv increment according to a second modified embodiment of the AB subdivision. In this embodiment, the subdiv increment is modified for all subdivision types as follows: - For all partitions of the quad partition, incQ = +4 (Figure 18A), - For all partitions in a horizontal binary partition (Figure 18B) or vertical partition (not shown), incB = +2, - For the horizontal partitions of the ternary partition (which can be vertical or horizontal as shown in Figure 18C), incTS = +4, and for the central partition, intT2 = +2. - Regarding the vertical 1 / 4 AB division, as shown in Figure 18D, in the larger part of the 1 / 4 AB division, incAB1 = +1, and in the smaller part, incAB2 = +4 (the same applies to the horizontal division). - Regarding the vertical 1 / 3 AB division, as shown in Figure 18E, in the larger part of the 1 / 3 AB division, incAB3 = +1, and in the smaller part, incAB4 = +3 (the same applies to the horizontal division).

[0071] Using this modified form, even AB partitions and Ternary partitions still yield the same subdiv, and the CTB / block face ratio is close to 2^(subdiv / 2). Therefore, the following simple calculation can be used to calculate the block face approximation: block_surface≈CTB_surface>>(subdiv / 2). If an asymmetric binary partition exists, partitions with the same subdiv will be closer in size than in the first modified form.

[0072] Influence on the delimitation of quantization groups As already discussed with respect to Figure 9, a unified detection of the start of a quantization group (hereinafter referred to as the QG start) is required for QP delta parsing and QP prediction. In at least one embodiment, the detection of the QG start is performed as follows: Two high-level syntactic elements, cu_qp_delta_enabled_flag (a flag that enables or disables the use of delta QP coding) and cu_qp_delta_subdiv (a parameter that specifies the limits of the subdiv used to set the QG), are read from the bitstream (e.g., in the PPS, slice header, tile group header, or tile header). The following applies when cu_qp_delta_enabled_flag is equal to true.

[0073] During the subdivision process, if subdiv <= cu_qp_delta_subdiv, a flag will appear to indicate the start of QG. Set the QG (CuQpDeltaCoding) property to true and save the current position as the current QG origin. As soon as the delta is coded (or decoded), reset the CuQpDeltaCoding flag to false. Set it.

[0074] However, introducing new partition types makes defining QG non-trivial due to the various partition sizes resulting from T-partitioning or AB-partitioning. QG cannot be simply defined as the smallest partition with subdiv values ​​less than or equal to cu_qp_delta_subdiv.

[0075] Figure 19 shows an example of a QG start in the case of a T partition. In this example, the limit value of cu_qp_delta_subdiv is set to 1 for the sake of brevity in illustrating the problem. Using the subdiv increment defined in Figure 11C, and assuming that the parent partition had subdiv=0, the T partition results in subdiv=2 for the horizontal partitions and 1 for the central partition (left side of Figure 19). ). The central partition should be a QG (its subdiv is within the limit: subdiv <= cu_qp_delta_subdiv), and the horizontal partition should not be a QG group (because its subdiv value exceeds cu_qp_delta_subdiv), suggesting that the QG to which the horizontal partition belongs is (or is not) its parent partition. This leads to duplicate QGs (or holes within QGs), which is impossible (a block should have a single QP prediction, i.e., belong to only one QG). This problem can be corrected as described below.

[0076] Figure 20 shows an example of defining QG in the case of a T partition according to one embodiment that corrects the QG problem. According to this embodiment, in a T partition, - The subdiv value of the first partition exceeds cu_qp_delta_subdiv, and therefore the QG start flag is not modified, but with that position as the QG origin, the QG start flag is already set to true by the parent partition. - For the central partition, its subdiv value is equal to cu_qp_delta_subdiv, and therefore the QG start flag is set to true. This means a new QG is started at the central position, which means the first partition (left side) is the completed QG. - The subdiv value of the last partition exceeds cu_qp_delta_subdiv, and therefore the QG start flag is not set. This means that the last partition is an element of the previous QG, i.e., the middle partition and the last partition form a single QG.

[0077] Regarding the AB division, - If the smallest partition is first, there are two QGs, - If the smallest partition is last, there is a single QG, - Two consecutive AB partitions are equivalent to a T partition.

[0078] The following sections use the syntax described in the JVET-L1001 document as examples of these syntactic functions in VVC (section 7.3.4.2 explicitly mentions the function coding_tree_unit(), section 7.3.4.3 explicitly mentions the function coding_quadtree(), and section 7.3.4.4 explicitly mentions the function multi_type_tree()).

[0079] Figure 21 shows a block diagram of an example embodiment of the QG identification process. In this embodiment, the coding_quadtree() syntax and the multi_type_tree() syntax (or hereafter referred to as coding_tree) are used. A subdiv parameter has been added to the uniform syntax (called ). To minimize syntax changes, the QG detection flag has been made HEVC-like, i.e., instead of the CuQpDeltaCoding proposed above. It indicates that it holds the IsCuQpDeltaCoded flag.

[0080] In step 501, the partition is started from the CTU with the subdiv parameter set to 0. At the coded tree level, in step 502, if cu_qp_delta_enabled_flag is enabled and subdiv <= cu_qp_delta_subdiv, some values, including IsCuQpDeltaCoded=0 and CuQpDeltaVal=0, are initialized in step 503, and the current position of the block is stored as the QG origin, i.e., (xQg, yQg) = (x0, y0). Step 504 checks whether a subpartition is applicable. If a subpartition is applicable, call the child subpartition (coding_tree) in step 505 with parameters based on the subpartition type. For the corresponding lower partition, the lower party The subdiv parameter for each partition is incremented by a value incX corresponding to the type of subpartition according to one of the embodiments above (for example, incX is +1 for partition B, and +2 for partition Q, etc.). If no further partitions are applicable in step 504 (meaning the leaves of the coding tree have been reached), the process moves to the CU and TU levels. In step 506, if cu_qp_delta_enabled_flag is equal to 1 and IsCuQpDeltaCoded is equal to 0, and the conditions for coding the QP delta are met (for example, non-zero coefficients are coded = cbf is non-zero), the QP delta is coded in step 507 (and (Decrypt) the data, update CuQpDeltaVal as appropriate, and set IsCuQpDeltaCoded to 1. Otherwise, no specific action is taken in step 508.

[0081] Figure 22 shows a block diagram of another example of an embodiment of the QG identification process. In this embodiment, we propose further suppression of new QG creation by adding supplementary conditions to the detection of QG start. When the parent node detects that the number of child nodes exceeds the limit, it disables the detection of QG start for all children. This results in more regular QGs.

[0082] For this purpose, the QG flag is passed as a parameter to the coding_tree() syntax. In step 601, the partitioning starts from the CTU with 0 as the subdiv parameter and 1 as the QG flag parameter. At the coded tree level, if the QG flag is true in step 602 and subdiv <= cu_qp_delta_subdiv, some values ​​are initialized in step 603, including CuQpDeltaCoding = cu_qp_delta_enabled_flag and CuQpDeltaVal = 0, and the current position of the block is stored as the QG origin, i.e., (xQg, yQg) = (x0, y0). In step 604, the subpartition is Check if applicable. If repartition is applicable, call the child partition (coding_tree) with parameters based on the partition type in step 605. Corresponding lower partition Regarding this, the subdiv parameter for each subpartition is a value incX according to one of the embodiments described above, where X is the type of subpartition, and the value incX (for example, in partition B, + 1) Increment. The QG flag parameter is set if the next subdivision cannot exceed the limit, and therefore subdiv + incMax <= cu_qp_delta_subdiv is true, where incMax is the maximum possible increment for the next subdivision under consideration. If no further subdivisions are applied in step 604 (meaning the leaves of the coding tree have been reached), the process moves to the CU and TU levels. In step 606, CuQpDeltaCoding If it is equal to 1 and the conditions for encoding the QP delta are met (for example, non-zero coefficients are encoded = cbf is non-zero), then encode the QP delta in step 607. Convert (or decode), update CuQpDeltaVal as appropriate, and set CuQpDeltaCoding to 0. If not, no specific action is taken in step 608.

[0083] Figure 23 shows the results of such an embodiment in the situation of Figure 19. Inconsistencies between QGs are eliminated at the ternary partitioning level, and therefore better results are obtained. In other words, we propose to prevent all subpartitions of a given node from starting a new QG if any of the subpartitions of that node have subdiv values ​​that exceed the subdiv limit. This is done by defining a new parameter called qgEnable, which is passed to the multi_type_tree() syntax function. qgEnable is initially equal to true, but lateral partitions If n has a subdiv value that exceeds the subdiv limit, then set it to false for all children of the terminal partition. They are set equally. qgEnable is used as an additional condition to start a new QG (and consequently preserve the QG origin and enable QP delta coding). To merge the conditions and simplify the syntax, we also propose inverting the logic of IsCuQpDeltaCoded (renamed CuQpDeltaCoding).

[0084] Other coding and decoding processes that use quantization groups can use the same principles, which have the same advantages. For example, in a VVC where a coding quadtree is not found within a multi_type_tree, the use of QG parameters can be restricted to multi_type_trees.

[0085] Furthermore, the derivation process for QP can be the same as in HEVC, except that xQg and yQg are given rather than derived from the current block position (paragraph 8.6.1 of the HEVC specification described in JCTVC-W1005-v4).

[0086] At least one embodiment involves setting the CuQpPredict internal function to 1 when QG start is detected. By adding a lag, we can use on-the-fly CU QP derivation (for example, if CuQpDeltaCoding is equal to 1, the xQg, yQg and CuQpDeltaVal variables are unnecessary). , can be deleted); if CuQpPredict is set within CU, predict QP, and Assign this to the QpY variable and reset the CuQpPredict flag. CuQpDeltaCoding within TU If QpY is 1 and Qp delta exists, QpY is incremented by the value of the decoded delta. The CuQpDeltaCoding is reset.

[0087] Syntactic elements and semantics In at least one embodiment, this is implemented by the subdiv process using a specific syntax to signal the value of the subdiv level counter. The coded syntax elements described below are based on HEVC or VVC (see [JVET_K1001]), with changes highlighted in gray background.

[0088] The initial changes involved renaming diff_cu_qp_delta_depth to cu_qp_delta_subdiv and modifying the semantics accordingly. The derived variable Log2MinCuQpDeltaSize was removed.

[0089] Figure 24 shows a table illustrating an example of the Picture Parameter Set (PPS) syntax using a subdivision level counter. In this table, a cu_qp_delta_enabled_flag equal to 1 specifies that the cu_qp_delta_subdiv syntax element is present in the PPS and that cu_qp_delta_abs may be present in the syntax of the translation unit. A cu_qp_delta_enabled_flag equal to 0 This is because the cu_qp_delta_subdiv syntax element is not present in the PPS, and cu_qp_delta_abs is the syntax of the conversion unit. It specifies that it is not present. cu_qp_delta_subdiv specifies the maximum cbSubdiv value for the coded unit that transmits cu_qp_delta_abs and cu_qp_delta_sign_flag. If it does not exist, the value of cu_qp_delta_subdiv is inferred to be equal to 0.

[0090] Syntactic elements and semantics for the main embodiments Figures 25-28 show tables illustrating example syntax for implementing the main embodiments. The syntax is illustrated with respect to VVC syntax, and modifications are highlighted with a gray background. To maintain consistency with other parameters and notation, the subdiv level counter is represented by the cbSubdiv parameter. SPLIT_BT_HOR, SPLIT_BT_VER, SPLIT_TT_HOR, and SPLIT_TT_VER correspond to horizontal B splitting, vertical B splitting, horizontal T splitting, and vertical T splitting, respectively. The condition used within the coded tree syntax to reset IsCuQpDeltaCoded and CuQpDeltaVal has been modified from (cu_qp_delta_enabled_flag && log2CbSize >= Log2MinCuQpDeltaSize) to (cu_qp_delta_enabled_flag && cbSubdiv <= cu_qp_delta_subdiv). Under these conditions, in addition to resetting IsCuQpDeltaCoded and CuQpDeltaVal, x0 and y0 are stored in xQg and yQg (step 503 in Figure 21 and step 603 in Figure 22). Main Embodiment or Main Practical As described in the modified configuration (when AB splitting is required), in order to increment the newly created cbSubdiv parameter according to the splitting type and partition index, use coding_quadtree() and multi_type_tree() (and further dual_tree_implicit_qt_split) Add syntax or semantics.

[0091] In the VVC section on "derivation process for quantization parameters," the position of the QG origin (xQg, yQg) is based on Log2MinCuQpDeltaSize, as described in HEVC, and therefore cannot be derived. However, (xQg, yQg) is precisely what is stored within coding_quadtree() and multi_type_tree().

[0092] Syntax elements and semantics for the main embodiment that restricts the detection of QG initiation In at least one embodiment, the subdiv process is implemented by using at least parameters related to detecting the start of a particular syntax and quantization group that signals the value of the subdiv level counter. Thus, QG start detection is performed by adding a QG flag parameter (renamed "QG" in the table below) within the coded tree syntax and modifying the QG start detection conditions. The modified parts are highlighted with a gray background.

[0093] Figures 29-31 show tables illustrating example syntax for implementing the main embodiments and handling QG start detection. The syntax is illustrated with respect to VVC syntax, and modifications are highlighted with a gray background. The same syntax as in coding_quadtree() is used in dual_tree_implicit_qt_split(), which is not illustrated here.

[0094] Figures 32-35 show tables illustrating example syntax for implementing the main embodiments and handling QG start detection for chroma-related elements (shown in italicized bold within the tables). In fact, the above explanation was given in relation to chroma quantization parameters, but the same principles apply to chroma quantization with the necessary modifications.

[0095] Those skilled in the art will understand that syntactic structures and element names may exist in multiple forms depending on the version of the standard. Syntactic elements may be replaced by variables that represent the same information. For example, earlier versions of VVC used the cu_qp_delta_subdiv syntactic element located in the PPS, while later versions of VVC use the CuQpDeltaSubdiv variable defined in the slice header semantics, which represents the same information but selects the appropriate value for the current slice type based on the syntactic element located in the picture header. In addition, V There are some changes in the syntactic structure of the coded tree across various versions of VC. These changes do not affect the principles of the embodiments described above. In addition, the syntax relevant to those embodiments may be located in different positions within different structures.

[0096] Various implementations include decoding. As used in this application, “decode” may encompass all or part of the processes performed on the received encoded sequence to produce a final output suitable for display. In various embodiments, such processes include one or more processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In various embodiments, such processes may further or alternatively include processes performed by the decoders of the various implementations described in this application, such as the processes shown in Figures 12, 21, and 22.

[0097] As further examples, in one embodiment, “decoding” refers only to entropy decoding; in another embodiment, “decoding” refers only to differential decoding; and in yet another embodiment, “decoding” refers to a combination of entropy decoding and differential decoding. Whether the term “decoding process” is intended to refer specifically to a subset of operations or generally to a broader decoding process is unclear. This will become clear from the context of the specific explanation and is expected to be fully understood by those skilled in the art.

[0098] Various implementations include encoding. As with the above description of "decoding," when used in this application, "encode" may encompass all or part of the processes performed on an input video sequence to produce an encoded bitstream. In various embodiments, such processes include one or more processes typically performed by an encoder, such as partitioning, differential encoding, transformation, quantization, and entropy encoding. In various embodiments, such processes may further or alternatively include processes performed by the encoders of the various implementations described in this application, such as the processes in Figures 12, 21, and 22.

[0099] As further examples, in one embodiment, “encoding” refers only to entropy coding; in another embodiment, “encoding” refers only to differential coding; and in yet another embodiment, “encoding” refers to a combination of differential coding and entropy coding. Whether the term “encoding process” is intended to refer specifically to a subset of operations or generally to a broader encoding process will become clear from the context of the specific description and should be well understood by those skilled in the art.

[0100] Please note that the syntactic elements used in this specification are descriptive terms; therefore, they do not preclude the use of other syntactic element names.

[0101] When a drawing is presented as a flowchart, it should be understood that it also provides a block diagram of the corresponding equipment. Similarly, when a drawing is presented as a block diagram, it should be understood that it also provides a flowchart of the corresponding method / process.

[0102] The implementation forms and embodiments described herein can be implemented, for example, by methods or processes, devices, software programs, data streams, or signals. Even if a feature is discussed only in relation to a single form of implementation (for example, only as a method), the implementation form of the feature discussed can be implemented in other forms (for example, devices or programs). Devices can be implemented, for example, by appropriate hardware, software, and firmware. Methods can be implemented, for example, by processors, where processor refers to any processing device, including, for example, computers, microprocessors, integrated circuits, or programmable logic devices. Processors also include communication devices, such as, for example, computers, mobile phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate the communication of information between end users.

[0103] When referring to "one embodiment," "a certain embodiment," "one implementation," or "a certain implementation," or other variations thereof, it means that the specific features, structures, characteristics, etc. described in relation to the embodiment are included in at least one embodiment. Therefore, the appearance of the phrases "in one embodiment," "in a certain embodiment," "in one implementation," or "in a certain implementation," and any other variations thereof, in various places throughout this application, does not necessarily all refer to the same embodiment.

[0104] In addition, this application may refer to "determining" various pieces of information. Determining information may include, for example, one or more of the following: estimating information, calculating information, predicting information, or retrieving information from memory.

[0105] Furthermore, this application may refer to "accessing" various pieces of information. Accessing information means, for example, receiving information, retrieving information (for example, from memory). This may include one or more of the following: storing information, moving information, replicating information, calculating information, determining information, predicting information, or estimating information.

[0106] In addition, this application may refer to "receiving" various pieces of information. Receiving is intended to be a broad term, similar to "accessing." Receiving information may include, for example, one or more of the following: accessing information or retrieving information (for example, from memory). Furthermore, "receiving" is typically involved in some form in operations such as, for example, storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.

[0107] For example, using " / ", "and / or", or "at least one of ~" in the cases of "A / B", "A and / or B", and "at least one of A and B" is intended to encompass selecting only the first option listed (A), or only the second option listed (B), or both options (A and B). As a further example, in the cases of "A, B and / or C" and "at least one of A, B and C", such expressions are intended to encompass selecting only the first option listed (A), or only the second option listed (B), or only the third option listed (C), or only the first and second options listed (A and B), or only the first and third options listed (A and C), or only the second and third options listed (B and C), or all three options (A, B, and C). As will be apparent to those skilled in the art, this expression can be extended to the number of items listed.

[0108] Furthermore, as used herein, the term “signaling” refers, in particular, to indicating something to a corresponding decoder. For example, in certain embodiments, an encoder signals a particular mode. In this way, in one embodiment, the same parameter is used on both the encoder and decoder sides. Thus, for example, an encoder can transmit a particular parameter to a decoder (explicit signaling), so that the decoder can use the same particular parameter. Conversely, if the decoder already has that particular parameter along with other parameters, signaling can be used without transmission simply to allow the decoder to know and select that particular parameter (implicit signaling). Bit saving is achieved in various embodiments by avoiding the transmission of arbitrary actual functions. It should be understood that signaling can be implemented in various ways. For example, in various embodiments, one or more syntactic elements, flags, etc., are used to signal information to a corresponding decoder. The above concerns the verb form of the word “signal,” but the word “signal” may also be used as a noun herein.

[0109] As will be apparent to those skilled in the art, the implementation can bring about various signals, for example, that are formatted to carry information that can be stored or transmitted. The information may include, for example, instructions for performing a method or data produced by one of the described implementations. For example, a signal may be formatted to carry a bitstream of the described embodiment. Such a signal may be formatted, for example, as an electromagnetic wave (e.g., using the radio frequency portion of the spectrum) or as a baseband signal. Formatting may include, for example, encoding a data stream and modulating a carrier wave with the encoded data stream. The information carried by the signal may be, for example, analog information or digital information. The signal may be transmitted over various different wired or wireless links, as is known. This can be stored on a processor-readable medium.

[0110] Several embodiments have been described. Features of these embodiments may be provided individually or in any combination. Furthermore, embodiments may include one or more of the following features, apparatus, or aspects, individually or in any combination, across various categories and types of claims.

Claims

1. A method for encoding video, - When an image block is divided into subblocks (504), - Associating a value representing the face of the subblock (505), and - Determining the quantization parameter of the subblock based on the value representing the surface of the subblock. A method that includes this.

2. A method for decoding video, - When an image block is divided into subblocks (504), - Associating a value representing the face of the subblock (505), and - Determining the inverse quantization parameter of the subblock based on the value representing the surface of the subblock. A method that includes this.

3. A device for encoding video, - When an image block is divided into subblocks (504), - Associating a value representing the face of the subblock (505), and - Determining the quantization parameter of the subblock based on the value representing the surface of the subblock. An apparatus including means for performing a certain action.

4. A device for decoding video, - When an image block is divided into subblocks (504), - Associating a value representing the face of the subblock (505), and - Determining the inverse quantization parameter of the subblock based on the value representing the surface of the subblock. An apparatus including means for performing a certain action.

5. The method according to claim 1 or 2, or the apparatus according to claim 3 or 4, wherein the value representing the surface of the subblock is a subdivision level counter (403, 405, 407) which is incremented by a value representing the type of subblock division when the image block is divided into subblocks.

6. - Enable a new quantization group according to the type of partition while the sub-block's sub-partition level counter is less than or equal to the maximum sub-partition value. The method or apparatus according to claim 5, further comprising:

7. - When a new quantization group is enabled, store the position of the block (503) The method or apparatus according to claim 6, further comprising:

8. - When an image block is divided into subblocks according to a Ternary partition, and the subdivision level counter of the smallest subblock exceeds the maximum subdivision value, the new quantization group is disabled. The method or apparatus according to claim 6 or 7, further comprising:

9. The increment value is, For all subblocks of the quad division, 2. For all subblocks of the binary partition, 1. Regarding the lateral subblocks of the ternary partition, 2, and Regarding the central subblock of the Ternary partition, 1 A method according to any one of claims 5 to 8, or an apparatus according to any one of claims 5 to 8, which is equivalent to the above.

10. The increment value is, For all subblocks of the quad division, 4. For all subblocks of the binary partition, 2. Regarding the lateral subblocks of the ternary partition, 4, and regarding the central subblock, 2. For the smallest subblock of an asymmetric 1 / 4 binary partition, 4, and for the largest subblock, 1, and For the smallest subblock of an asymmetric 1 / 3 binary partition, 3, and for the largest subblock, 1 A method according to any one of claims 5 to 8, or an apparatus according to any one of claims 5 to 8, which is equivalent to the above.

11. A storage medium having video bitstream data encoded thereon, wherein the subblocks are the result of dividing blocks of video images.

12. The storage medium according to claim 11, wherein the value representing the surface of the subblock is a subdivision level counter that is incremented by a value representing the type of subblock division when the image block is divided into subblocks.

13. The increment value is, For all subblocks of the quad division, 2. For all subblocks of the binary partition, 1. Regarding the lateral subblocks of the ternary partition, 2, and Regarding the central subblock of the Ternary partition, 1 A storage medium according to claim 12, which is equal to the one described above.

14. A computer program comprising program code instructions executable by a processor (1010) that carry out the steps of the method according to any one of claims 1, 2, or 5 to 10.

15. A computer program product comprising program code instructions stored on a non-temporary computer-readable medium and executed by a processor (1010), which enable a device (1000) to perform the method according to any one of claims 1, 2, or 5 to 10.