Scalar Quantizer Decision Scheme for Scalar Quantization Dependence

The scalar quantizer determination scheme addresses inefficiencies in dependent scalar quantization by switching quantizers based on SIG, optimizing throughput and coding efficiency in video encoding and decoding.

JP7887008B2Active Publication Date: 2026-07-08INTERDIGITAL VC HOLDINGS INC

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
INTERDIGITAL VC HOLDINGS INC
Filing Date
2025-09-05
Publication Date
2026-07-08

AI Technical Summary

Technical Problem

Existing video encoding and decoding methods face inefficiencies in processing transformation coefficients due to increased complexity and reduced throughput in dependent scalar quantization schemes, particularly in high-throughput hardware implementations.

Method used

A scalar quantizer determination scheme that switches quantizers based on the significance (SIG) of preceding transformation coefficients, separating normal and bypass coded bins to maintain high throughput and coding efficiency, similar to HEVC and VTM-1 designs.

Benefits of technology

The proposed scheme achieves nearly the same throughput as HEVC and VTM-1 while preserving the coding efficiency gains of dependent scalar quantization, reducing the number of normal coding bins and interleaving bypass bins to optimize processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007887008000012
    Figure 0007887008000012
  • Figure 0007887008000013
    Figure 0007887008000013
  • Figure 0007887008000014
    Figure 0007887008000014
Patent Text Reader

Abstract

A method and apparatus for video encoding or decoding is provided. In a method using dependent scalar quantization, the selection of a quantizer depends on the decoding of a preceding transform coefficient, and the entropy decoding of the transform coefficient depends on the selection of the quantizer. To maintain high throughput in a hardware implementation of transform coefficient entropy coding, several scalar quantizer decision schemes are proposed, in which the state transition and context model selection are based solely on the normal coding bins. For example, the state transition is based solely on the sum of the SIG, gt1, and gt2 flags, the exclusive-OR function of the SIG, gt1, and gt2 flags, or the gt1 or gt2 flags. When a block of transform coefficients is coded, the normal mode bins are coded first with one or more scan paths, and the remaining bypass coded bins are grouped with another one or more scan paths.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This embodiment generally relates to methods and apparatuses for video encoding or decoding.

Background Art

[0002] To achieve high compression efficiency, video and image encoding schemes typically utilize spatial and temporal redundancy of video content using prediction and transform. Generally, intra or inter prediction is used to exploit intra or inter picture correlation, and then the difference between the original block and the predicted block, often referred to as the prediction error or prediction residual, is transformed, quantized, and entropy encoded. To reconstruct the video, the compressed data is decoded by inverse processes corresponding to entropy encoding, quantization, transform, and prediction.

Summary of the Invention

Problems to be Solved by the Invention

[0003] According to the embodiment, a video decoding method comprising accessing a first parameter set associated with a first transformation coefficient in a block of a picture, wherein the first transformation coefficient precedes a second transformation coefficient in the block of the picture in the decoding order, and accessing a second parameter set associated with the second transformation coefficient, wherein the first and second parameter sets are entropy coded in normal mode, and the context modeling of at least the parameters of the second parameter set of the second transformation coefficient depends on the decoding of the first transformation coefficient, and the preceding first scan of the block A method is provided for entropy decoding a first and second set of parameters, wherein the first scan is performed before any other scans of the entropy-decoded transformation coefficients of the block, each set of the first and second set of parameters for the first and second transformation coefficients includes at least one of a gt1 flag and a gt2 flag, the gt1 flag indicating whether the absolute value of the corresponding transformation coefficient is greater than 1, and the gt2 flag indicating whether the absolute value of the corresponding transformation coefficient is greater than 2, and the block is reconstructed in response to the decoded transformation coefficients.

[0004] According to the embodiment, a video coding method comprising accessing a first parameter set associated with a first transformation coefficient in a block of a picture, wherein the first transformation coefficient precedes a second transformation coefficient in the block of the picture in the coding order, and accessing a second parameter set associated with the second transformation coefficient, wherein the first and second parameter sets are entropy coded in normal mode, and the context modeling of at least the parameters of the second parameter set of the second transformation coefficient depends on the coding of the first transformation coefficient, and the block A method is provided for entropy coding the first and second parameter sets in a first scan of a block, wherein the first scan is performed before other scans of the entropy coded transformation coefficients of the block, and each set of the first and second parameter sets for the first and second transformation coefficients includes at least one of a gt1 flag and a gt2 flag, wherein the gt1 flag indicates whether the absolute value of the corresponding transformation coefficient is greater than 1, and the gt2 flag indicates whether the absolute value of the corresponding transformation coefficient is greater than 2.

[0005] According to another embodiment, a video decoding apparatus comprising one or more processors, wherein the one or more processors access a first parameter set associated with a first transformation coefficient in a block of a picture, the first transformation coefficient precedes a second transformation coefficient in the block of the picture in the decoding order, accesses a second parameter set associated with the second transformation coefficient, the first and second parameter sets are entropy coded in normal mode, the context modeling of at least the parameters of the second parameter set of the second transformation coefficient depends on the decoding of the first transformation coefficient, and the first skim of the block An apparatus is provided which entropy decodes the first and second parameter sets in a campus, the first campus being performed before other campuses of the entropy decoded transformation coefficients of the block, each set of the first and second parameter sets for the first and second transformation coefficients comprising at least one of a gt1 flag and a gt2 flag, the gt1 flag indicating whether the absolute value of the corresponding transformation coefficient is greater than 1, the gt2 flag indicating whether the absolute value of the corresponding transformation coefficient is greater than 2, and which is configured to reconstruct the block in response to the decoded transformation coefficients. The apparatus may further comprise one or more memories coupled to the one or more processors.

[0006] According to another embodiment, a video encoding apparatus comprising one or more processors, wherein the one or more processors access a first parameter set associated with a first transformation coefficient in a block of picture, the first transformation coefficient precedes a second transformation coefficient in the block of picture in the encoding order, accesses a second parameter set associated with the second transformation coefficient, the first and second parameter sets are entropy encoded in normal mode, and the context modeling of at least the parameters of the second parameter set of the second transformation coefficient depends on the encoding of the first transformation coefficient. An apparatus is provided which entropy encodes the first and second parameter sets in a first scan of the block, the first scan is performed before any other scans of the entropy encoded transform coefficients of the block, and each set of the first and second parameter sets for the first and second transform coefficients includes at least one of a gt1 flag and a gt2 flag, the gt1 flag indicating whether the absolute value of the corresponding transform coefficient is greater than 1, and the gt2 flag indicating whether the absolute value of the corresponding transform coefficient is greater than 2.

[0007] According to another embodiment, a video decoding apparatus comprising means for accessing a first parameter set associated with a first transformation coefficient in a block of a picture, wherein the first transformation coefficient precedes a second transformation coefficient in the block of the picture in the decoding order; means for accessing a second parameter set associated with the second transformation coefficient, wherein the first and second parameter sets are entropy coded in normal mode, and the context modeling of at least the parameters of the second parameter set of the second transformation coefficient depends on the decoding of the first transformation coefficient; and in the first scan of the block An apparatus is provided for entropy decoding the first and second parameter sets, wherein the first scan is performed before other scans of the entropy-decoded transformation coefficients of the block, and each set of the first and second parameter sets for the first and second transformation coefficients includes at least one of a gt1 flag and a gt2 flag, wherein the gt1 flag indicates whether the absolute value of the corresponding transformation coefficient is greater than 1, and the gt2 flag indicates whether the absolute value of the corresponding transformation coefficient is greater than 2; and means for reconstructing the block in response to the decoded transformation coefficients.

[0008] According to another embodiment, a video coding apparatus comprising means for accessing a first parameter set associated with a first transformation coefficient in a block of a picture, wherein the first transformation coefficient precedes a second transformation coefficient in the block of the picture in the coding order; and means for accessing a second parameter set associated with the second transformation coefficient, wherein the first and second parameter sets are entropy coded in normal mode, and the context modeling of at least the parameters of the second parameter set of the second transformation coefficient depends on the coding of the first transformation coefficient; and the block An apparatus is provided comprising means for entropy coding the first and second parameter sets in a first scan of a block, wherein the first scan is performed before other scans of the entropy coded transformation coefficients of the block, and each set of the first and second parameter sets for the first and second transformation coefficients includes at least one of a gt1 flag and a gt2 flag, wherein the gt1 flag indicates whether the absolute value of the corresponding transformation coefficient is greater than 1, and the gt2 flag indicates whether the absolute value of the corresponding transformation coefficient is greater than 2.

[0009] According to another embodiment, a signal including encoded video, accessing a first parameter set associated with a first transformation coefficient in a block of picture, wherein the first transformation coefficient precedes a second transformation coefficient in the block of picture in the encoding order, and accessing a second parameter set associated with the second transformation coefficient, wherein the first and second parameter sets are entropy encoded in normal mode, and the context modeling of at least the parameters of the second parameter set of the second transformation coefficient depends on the encoding of the first transformation coefficient, and the block Entropy coding the first and second parameter sets in a first scan of a block, wherein the first scan is performed before any other scans of the entropy coded transformation coefficients of the block, and each set of the first and second parameter sets for the first and second transformation coefficients includes at least one of a gt1 flag and a gt2 flag, the gt1 flag indicating whether the absolute value of the corresponding transformation coefficient is greater than 1, and the gt2 flag indicating whether the absolute value of the corresponding transformation coefficient is greater than 2, thereby forming a signal. [Brief explanation of the drawing]

[0010] [Figure 1] Figure 1 shows a block diagram of a system in which an embodiment of this model can be implemented. [Figure 2] Figure 2 shows a block diagram of an embodiment of the video encoder. [Figure 3] Figure 3 shows a block diagram of an embodiment of the video decoder. [Figure 4] Figure 4 is an example of a diagram showing two scalar quantizers used in dependent quantization proposed in JVET-J0014. [Figure 5] Figure 5 is an example of a diagram showing the state transitions and quantizer selection for dependent quantization proposed in JVET-J0014. [Figure 6]Figure 6 is an example of a diagram showing the order of coefficient bins in CG, as proposed in JVET-J0014. [Figure 7] Figure 7 is an example of a diagram showing SIG-based state transitions, as proposed in JVET-K0319. [Figure 8] Figure 8 is an example of a diagram showing the order of coefficient bins in CG, as proposed in JVET-K0319. [Figure 9] Figure 9 is an example of a diagram showing the order of coefficient bins in CG according to one embodiment. [Figure 10] Figure 10 is an example of a diagram showing a state transition based on SUM(SIG,gt1,gt2) according to one embodiment. [Figure 11] Figure 11 is an example of a diagram showing an XOR(SIG, gt1, gt2)-based state transition according to one embodiment. [Figure 12] Figure 12 is an example of a diagram showing a GT1-based state transition according to one embodiment. [Figure 13] Figure 13 shows the process for encoding the current block according to one embodiment. [Figure 14] Figure 14 shows the process of decrypting the current block according to one embodiment. [Modes for carrying out the invention]

[0011] Figure 1 shows a block diagram of an example of a system in which various embodiments and forms can be implemented. System 100 can be materialized as a device comprising various components described below and configured to perform one or more of the embodiments described in this application. 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 100 can be materialized individually or in combination as a single integrated circuit, multiple ICs, and / or distinct components. For example, in at least one embodiment, the processing and encoding / decoding elements of System 100 are distributed across multiple ICs and / or distinct components. In various embodiments, System 100 is communicably coupled to other systems or other electronic devices, for example, via a communication bus or via dedicated input and / or output ports. In various embodiments, System 100 is configured to implement one or more of the embodiments described in this application.

[0012] System 100 includes at least one processor 110 configured to execute instructions loaded therein, for example, to implement various embodiments described in this application. The processor 110 may include embedded memory, input / output interfaces, and various other circuits as known in the art. System 100 includes at least one memory 120 (e.g., a volatile memory device and / or a non-volatile memory device). System 100 includes a storage device 140 which may include non-volatile memory and / or volatile memory, including but not limited to EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash, magnetic disk drives, and / or optical disk drives. The storage device 140 may, in non-limiting examples, include an internal storage device, a removable storage device, and / or a network-accessible storage device.

[0013] System 100 includes, for example, an encoder / decoder module 130 configured to process data to provide encoded or decoded video, the encoder / decoder module 130 of which may include its own processor and memory. Encoder / decoder module 130 represents a module (may be one) that can be included in a device that performs encoding and / or decoding functions. As is well known, the device may include one or both of the encoding module and the decoding module. Furthermore, the encoder / decoder module 130 may be implemented as a separate element of System 100, or it may be incorporated into the processor 110 as a combination of hardware and software known to those skilled in the art.

[0014] Program code to be loaded into the processor 110 or the encoder / decoder 130 to perform the embodiments described in this application may be stored in the storage device 140 and subsequently loaded onto the memory 120 for execution by the processor 110. According to various embodiments, one or more of the processor 110, the memory 120, the storage device 140, and the encoder / decoder module 130 may store one or more of various items during the execution of the processes described in this application. Such stored items 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 from the processing of equations, expressions, operations, and arithmetic logic.

[0015] In some embodiments, the internal memory of the processor 110 and / or the encoder / decoder module 130 is used to store instructions and provide a working memory for the processing required during encoding or decoding. However, in other embodiments, an external memory of the processing device (e.g., the processing device can be either the processor 110 or the encoder / decoder module 130) is used for one or more of these functions. The external memory can be the memory 120 and / or the storage device 140 and can be, for example, dynamic volatile memory and / or non-volatile flash memory. In some embodiments, an external non-volatile flash memory is used to store the operating system of the television. In at least one embodiment, a high-speed external dynamic volatile memory such as RAM is used as the working memory for video encoding and decoding operations such as MPEG-2, HEVC, or VVC.

[0016] Inputs to the elements of the system 100 can be provided via various input devices as shown in block 105. Such input devices include, but are not limited to, (i) an RF section that receives RF signals transmitted wirelessly, for example, by a broadcaster, (ii) composite input terminals, (iii) USB input terminals, and / or (iv) HDMI input terminals.

[0017] In various embodiments, the input device of block 105 has a corresponding input processing element known in the art. For example, the RF section may be associated with an element suitable for (i) selecting a desired frequency (also referred to as selecting a signal or band-limiting a signal to a certain frequency band), (ii) down-converting the selected signal, (iii) again band-limiting to a narrower frequency band so as to select a signal frequency band that may be referred to as a channel in a particular embodiment, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired data packet stream. The RF section of various embodiments may include one or more elements that perform these functions, such as a frequency selector, a signal selector, a band limiter, a channel selector, a filter, a downconverter, a demodulator, an error corrector, and a demultiplexer. The RF section may include a tuner that performs various functions, such as 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 a set-top box, the RF unit and its associated input processing elements perform frequency selection by receiving, filtering, down-converting, and filtering again to a desired frequency band of RF signals transmitted over a wired (e.g., cable) medium. Various embodiments may rearrange the order of the above (and other) elements, remove some of these elements, and / or add other elements that perform similar or different functions. Adding elements may include inserting elements between existing elements, for example, an amplifier and an analog-to-digital converter. In various embodiments, the RF unit includes an antenna.

[0018] Furthermore, the USB and / or HDMI terminals can each include an interface processor for connecting the system 100 to other electronic devices over a USB and / or HDMI connection. It should be understood that various aspects of input processing, such as Reed-Solomon error correction, can be implemented, for example, within a separate input processing IC or within the processor 110 as needed. Similarly, aspects of USB or HDMI interface processing can be implemented, as needed, within a separate interface IC or within the processor 110. The demodulated, error-corrected, and multiplexed streams are provided to various processing elements including, for example, the processor 110 and an encoder / decoder 130 that operates in combination with memory and storage elements to process the data stream as needed for display on an output device.

[0019] The various elements of the system 100 can be provided within an integrated housing in which the various elements are interconnected and data can be transmitted between them using an internal bus, such as an I²C bus, wiring, and a printed circuit board, including a suitable connection arrangement 115, as known in the art.

[0020] The system 100 includes a communication interface 150 that enables communication with other devices via a communication channel 190. The communication interface 150 can include, but is not limited to, a transceiver configured to transmit and receive data via the communication channel 190. The communication interface 150 can include, but is not limited to, a modem or a network card, and the communication channel 190 can be implemented, for example, within a wired and / or wireless medium.

[0021] In various embodiments, data is streamed to system 100 using a Wi-Fi network such as IEEE 802.11. In these embodiments, the Wi-Fi signal is received via a communication channel 190 and a communication interface 150 adapted for Wi-Fi communication. In these embodiments, the communication channel 190 is typically connected to an access point or router that provides access to an external network, including the Internet, to enable application streaming and other over-the-top communication. In other embodiments, the streamed data is provided to system 100 using a set-top box that delivers data via an HDMI connection on input block 105. In yet another embodiment, the streamed data is provided to system 100 using an RF connection on input block 105.

[0022] System 100 can provide output signals to various output devices, including a display 165, a speaker 175, and other peripheral devices 185. In various embodiments, the other peripheral devices 185 include one or more of a standalone DVR, a disc player, a stereo system, a lighting system, and other devices that provide functionality based on the output of System 100. In various embodiments, control signals are transmitted between System 100 and the display 165, the speaker 175, or other peripheral devices 185 using signaling such as AV Link, CEC, or other communication protocols that enable device-to-device control, with or without user intervention. The output devices can be communicatively coupled to System 100 via dedicated connections through their respective interfaces 160, 170, and 180. Alternatively, the output devices can be connected to System 100 via a communication interface 150 using a communication channel 190. The display 165 and speaker 175 can be integrated into a single unit with other components of System 100 in an electronic device, such as a television. In various embodiments, the display interface 160 includes a display driver, such as a timing controller (TCon) chip.

[0023] The display 165 and speaker 175 can be separated from one or more other components, for example, if the RF section of input 105 is part of a separate set-top box. In various embodiments where the display 165 and speaker 175 are external components, the output signal can be provided via a dedicated output connection, for example, including an HDMI port, a USB port, or a composite (COMP) output.

[0024] Figure 2 shows examples of 200 video encoders, including a High Efficiency Video Coding (HEVC) encoder. Figure 2 can also show encoders that improve upon the HEVC standard or employ HEVC-like technologies, such as the Versatile Video Coding (VVC) encoder currently under development by JVET (Joint Video Exploration Team).

[0025] In this application, the terms “reconstructed” and “decoded” may be used interchangeably, the terms “encoded” or “coded” may be used interchangeably, and the terms “image,” “picture,” and “frame” may be used interchangeably. Although not required, the term “reconstructed” is typically used on the encoder side, while “decoded” is typically used on the decoder side.

[0026] Before encoding, the video sequence may undergo pre-encoding (201), for example, applying a color conversion to the input color picture (e.g., from RGB 4:4:4 to YCbCr 4:2:0), or performing a remapping of the input picture components to obtain a signal distribution that is more resilient to compression (e.g., using histogram equalization of one of the color components). Metadata may be associated with the pre-processing and attached to the bitstream.

[0027] To encode a video sequence with one or more pictures, the picture is divided into one or more slices, each slice containing one or more slice segments (202). In HEVC, a slice segment is organized into an encoding unit, a prediction unit, and a transformation unit. The HEVC specification distinguishes between a “block” and a “unit,” where a “block” addresses a specific region of a sample array (e.g., luminance, Y), and a “unit” contains an arrayed block of all encoded color components (Y, Cb, Cr, or monochrome), syntactic elements, and prediction data associated with the block (e.g., motion vectors).

[0028] In HEVC coding, a picture is divided into square coding tree blocks (CTBs) with configurable sizes (typically 64x64, 128x128, or 256x256 pixels), and a contiguous set of coding tree blocks is grouped into slices. A coding tree unit (CTU) contains the CTBs of the encoded color components. A CTB is the root of the quadtree division into coding blocks (CBs), which can be divided into one or more prediction blocks (PBs) that form the root of the quadtree division into transform blocks (TBs). Transform blocks (TBs) larger than 4x4 are divided into 4x4 subblocks of quantization coefficients called coefficient groups (CGs). Corresponding to coding blocks, prediction blocks, and transform blocks, a coding unit (CU) contains a tree structure set 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 luminance components CB, PB, and TB are applied to the corresponding CU, PU, ​​and TU. In this application, the term “block” may be used to refer to, for example, any of CTU, CU, PU, ​​TU, CG, CB, PB, and TB. Furthermore, “block” may also be used to refer to macroblocks and partitions as defined in H.264 / AVC or other video coding standards, and more generally, to refer to arrays of data of various sizes.

[0029] In the encoder 200, the picture is encoded by the encoder elements as described below. The picture to be encoded is processed in units of CUs, for example. Each coding unit is encoded using either intra-mode or inter-mode. When a coding unit is encoded in intra-mode, intra-prediction is performed (260). In inter-mode, motion estimation (275) and motion compensation (270) are performed. The encoder decides whether to use intra-mode or inter-mode for encoding the coding unit (205), and indicates the intra / inter decision by a prediction mode flag. The prediction residual is calculated by subtracting the predicted block from the original image block (210).

[0030] Next, the prediction residuals are transformed (225) and quantized (230). In addition to the quantized transformation coefficients, the motion vector and other syntactic elements are entropy encoded to output a bitstream (245). As a non-restrictive example, context-based adaptive binary arithmetic coding (CABAC) can be used to encode syntactic elements into a bitstream.

[0031] For encoding in CABAC, the values ​​of non-binary syntactic elements are mapped to a binary sequence called a binstring via a binarization process. For a bin, a context model is selected. A "context model" is a probabilistic model for one or more bins, selected from a selection of available models based on the statistics of recently coded symbols. The context model for each bin is identified by a context model index (also called a "context index"), with different context indices corresponding to different context models. The context model stores the probability that each bin is "1" or "0" and can be adaptive or static. A static model triggers the coding engine with equal probability for bins "0" and "1". In an adaptive coding engine, the context model is updated based on the actual coded value of the bin. The operating modes corresponding to adaptive and static models are called normal mode and bypass mode, respectively. Based on the context, the binary arithmetic coding engine encodes or decodes the bins according to the corresponding probabilistic model.

[0032] A scan pattern transforms a two-dimensional block into a one-dimensional array and defines the processing order of samples or coefficients. A scan is an iteration across transformation coefficients within a block (following the selected scan pattern) to encode a specific syntactic element.

[0033] In HEVC, a scan across the TB then consists of sequentially processing each CG according to the scan pattern (diagonal, horizontal, vertical), with the 16 coefficients within each CG being scanned according to a similarly considered scan order. The scan begins with the last significance coefficient of the TB and processes all coefficients up to the DC coefficient. The CGs are scanned sequentially. A maximum of five scans can be applied to a CG. Each scan encodes the syntactic elements of the coefficients within the CG as follows: • Significance coefficient flag (SIG, significant_coeff_flag): The significance level of the coefficient (zero / non-zero). • Coefficient absolute level flag greater than 1 (gt1, coeff_abs_level_greater1_flag): Indicates whether the absolute value of the coefficient level is greater than 1. • Coefficient absolute level greater than the two flags (gt2, coeff_abs_level_greater2_flag): Indicates whether the absolute value of the coefficient level is greater than 2. • Coefficient sign flag (coeff_sign_flag): The sign of the significance coefficient (0: positive, 1: negative). • Remaining absolute level of the coefficient (coeff_abs_level_remaining): The remaining absolute value of the coefficient level (if the value is greater than the value coded in the previous pass). A maximum of eight coeff_abs_level_greater1_flags can be coded for a given CG, and coeff_abs_level_greater2_flag is coded only for the first coefficient of a CG whose magnitude is greater than 1.

[0034] In each scancanteen, syntax is coded only if necessary, as determined in the previous scancanteen. For example, if a coefficient is not significant, the remaining scancanteens are not needed for that coefficient. The bins in the first three scancanteens are coded in normal mode, and the context model index depends on the location of a particular coefficient in the TB and the values ​​of previously coded coefficients in the neighboring area covered by the local template. The bins in scancanteens 4 and 5 are coded in bypass mode so that all bypass bins in the CG are grouped together.

[0035] The encoder can also skip the transformation and apply quantization directly to the untransformed residual signal on a 4x4TU basis. The encoder can also bypass both transformation and quantization, i.e., the residual is encoded directly without applying any transformation or quantization process. In direct PCM encoding, no prediction is applied, and the encoded unit samples are encoded directly into the bitstream.

[0036] The encoder decodes the encoded blocks to provide a reference for further prediction. The quantized transformation coefficients are inversely quantized (240), inversely transformed (250), and the prediction residuals are decoded. The decoded prediction residuals and the prediction blocks are combined (255) to reconstruct the image blocks. An in-loop filter (265) is applied to the reconstructed picture to perform, for example, deblocking / SAO (sample-fitted offset) filtering to reduce encoding artifacts. The filtered image is stored in a reference picture buffer (280).

[0037] Figure 3 shows a block diagram of an example video decoder 300, such as an HEVC decoder. In decoder 300, the bitstream is decoded by the decoder elements, as described below. Video decoder 300 generally performs a decoding pass which is the reverse of the encoding pass as described in Figure 2, and this performs video decoding as part of the encoding of the video data. Figure 3 can also show decoders that are improvements on the HEVC standard or decoders that employ HEVC-like techniques, such as VVC decoders.

[0038] In particular, the decoder input contains a video bitstream that can be generated by the video encoder 200. The bitstream is first entropy-decoded (330) to obtain transformation coefficients, motion vectors, picture partitioning information, and other encoded information. When CABAC is used for entropy coding, the context model is initialized in the same way as the encoder context model, and syntactic elements are decoded from the bitstream based on the context model.

[0039] The picture partitioning information indicates how the picture is partitioned, for example, the size of the CTU, and how the CTU is partitioned as much as possible into CUs and, where applicable, into PUs. Thus, the decoder can, according to the decoded picture partitioning information, for example, partition the picture into CTUs (335) and then partition each CTU into CUs. The transformation coefficients are inversely quantized (340), inversely transformed (350), and the predicted residuals are decoded.

[0040] The decoded prediction residuals and prediction blocks are combined (355) to reconstruct the image block. The prediction block can be obtained from intra-prediction (360) or motion-compensated prediction (i.e., inter-prediction) (375) (370). An in-loop filter (365) is applied to the reconstructed image. The filtered image is stored in a reference picture buffer (380).

[0041] The decoded picture may further undergo a post-decoding process (385), such as an inverse color conversion (e.g., conversion from YCbCr 4:2:0 to RGB 4:4:4), or a reverse remapping process that performs the reverse of the remapping process performed in the pre-encoding process (201). The post-decoding process may use metadata derived in the pre-encoding process and signaled in the bitstream.

[0042] Dependent scalar quantization was proposed in the article titled "Description of SDR, HDR and 360° video coding technology proposal by Fraunhofer HHI," Document JVET-J0014, 10th Meeting: San Diego, USA, April 10-20, 2018 (hereinafter, "JVET-J0014"), in which two scalar quantizers with different reconstruction levels are switched for quantization. Compared to conventional independent scalar quantization (used in HEVC and VTM-1), the set of acceptable reconstruction values ​​for the transformation coefficients depends on the values ​​of the transformation coefficient levels preceding the current transformation coefficient level in the reconstruction order.

[0043] The dependent scalar quantization approach is achieved by (a) defining two scalar quantizers by different reconstruction levels, and (b) defining a process for switching between the two scalar quantizers.

[0044] The two scalar quantizers used, represented by Q0 and Q1, are shown in Figure 4. The position of the available reconstruction levels is uniquely specified by the quantization step size Δ. Ignoring the fact that the actual reconstruction of the transformation coefficients uses integer arithmetic, the two scalar quantizers Q0 and Q1 are characterized as follows: Q0: The reconstruction level of the first quantizer Q0 is given by an even integer multiple of the quantization step size Δ. When this quantizer is used, the reconstructed transformation coefficients t' are calculated as follows: t'=2·k·Δ, Here, k represents the relevant transformation coefficient level. Note that the term "transformation coefficient level" (k) refers to the quantized transformation coefficient value, for example, it corresponds to TransCoeffLevel as described in the residual_coding syntax structure below. The term "reconstructed transformation coefficient" (t') refers to the inversely quantized transformation coefficient value. Q1: The reconstruction level of the second quantizer Q1 is given by an odd integer multiple of the quantization step size Δ, and furthermore, the reconstruction level is equal to zero. The mapping of the transformation coefficient level k to the reconstructed transformation coefficient t' is specified by: t'=(2·k-sgn(k))·Δ, Here, sgn(·) represents the sign function, and sgn(x) = (k == 0 ≤ 0 ≤ (k < 0 ≤ -1 ≤ 1 ≤ 1)).

[0045] The scalar quantizer used (Q0 or Q1) is not explicitly signaled in the bitstream. Instead, the quantizer used for the current transformation coefficient is determined by the parity of the transformation coefficient level preceding the current transformation coefficient in the coding / reconstruction order.

[0046] As shown in Figure 5, the switching between the two scalar quantizers (Q0 and Q1) is performed via a state machine having four states. The state can take four different values: 0, 1, 2, and 3. The state is uniquely determined by the parity of the transformation coefficient level preceding the current transformation coefficient in the coding / reconstruction order. At the start of the inverse quantization of the transformation block, the state is set to 0. The transformation coefficients are reconstructed in scan order (i.e., in the same order in which they are entropy coded / decoded). After the current transformation coefficients have been reconstructed, the state is updated as shown in Table 1, where k represents the value of the transformation coefficient level. Note that the next state depends only on the current state and the parity (k&1) of the current transformation coefficient level k. If k represents the value of the current transformation coefficient level, the state update can be described as follows: State = stateTransTable[state][k&1], Here, stateTransTable represents the table shown in Figure 5 and Table 1, and the operator & specifies the bitwise "and" operator in two's complement arithmetic.

[0047] The state uniquely specifies the scalar quantizer to be used. If the state for the current transformation coefficient is equal to 0 or 1, scalar quantizer Q0 is used. Otherwise (the state is equal to 2 or 3), scalar quantizer Q1 is used. [Table 1]

[0048] More generally, the quantizer for the transformation coefficients can be selected from three or more scalar quantizers, and the state machine can have five or more states. Alternatively, the switching of quantizers can be handled through other possible mechanisms.

[0049] A coefficient coding scheme combined with dependent scalar quantization was also proposed in JVET-J0014, where the context modeling of the quantized coefficients depends on the quantizer used. Specifically, each of the significance flag (SIG) and the flag greater than 1 (gt1) has two sets of context models, and the set selected for a particular SIG or gt1 depends on the quantizer used for the relevant coefficient. Thus, the coefficient coding proposed in JVET-J0014 requires a complete reconstruction of the absolute level (absLevel) of the quantized coefficient before moving to the next scan position in order to know the quantizer and therefore the parity used to determine the context set for the next coefficient. That is, the entropy decoding of the coefficient n (SIG, gt1, ..., gt4, sign flag, absolute residual level) must be completed in order to obtain the context model for entropy decoding of the coefficient (n+1). As a result, some normal coding bins of coefficient (n+1) must wait for the decoding of some bypass coding bins of coefficient n, and thus bypass coding bins of different coefficients are interleaved with normal coding bins as shown in Figure 6.

[0050] As shown in Figure 6, the coefficient coding design in JVET-J0014 may result in lower throughput compared to the HEVC or VTM-1 designs, as described below: 1. The number of normal coding bins increases. Normal coding bins are slower to process than bypassed coding bins due to the calculation of context selection and interval subdivision. In JVET-J0014 coefficient coding, the number of normal coding bins in a coefficient group (CG) is up to 80, compared to 25 in VTM-1 (16 for SIG, 8 for gt1, and 1 for gt2). 2. Bypass coded bins are not grouped. Grouping bypass bins into longer chains increases the number of bins processed per cycle, thus reducing the number of cycles required to process a single bypass bin. However, in JVET-J0014 coefficient coding, CG bypass coded bins are not grouped; instead, they are interleaved with regular coded bins on a coefficient-by-coefficient basis.

[0051] This application relates to a scalar quantizer determination scheme for achieving nearly the same level of throughput as a coefficient-encoded design for HEVC and VTM-1, while preserving most of the gain provided by dependent scalar quantization.

[0052] In the contribution JVET-K0319 ("CE7-Related:TCQ with High Throughput Coefficient Coding", Document JVET-K0319, JVET 11th Meeting: Ljubljana, Slovenia, July 10-18, 2018, hereafter referred to as "JVET-K0319"), the parity-based state transitions proposed in JVET-J0014 are replaced with SIG-based state transitions as shown in Figure 7 and Table 2, while other dependent scalar quantization designs in JVET-J0014 remain unchanged. By doing so, the scalar quantizer used to quantize the current transformation coefficients is determined by the SIG of the quantization coefficients preceding the current transformation coefficients in the scan order. [Table 2]

[0053] The coefficient coding proposed in JVET-K0319 is based on HEVC and VTM-1 coefficient coding. The difference is that each of SIG and gt1 has two sets of context models, and the entropy encoder selects a particular set of SIG or gt1 contexts according to the quantizer used by the relevant coefficients. Thus, changing the scalar quantizer of the dependent scalar quantization from parity-based to SIG-based enables high-throughput designs similar to HEVC and VTM-1 coefficient coding. The proposed order of coefficient bins in the CG is shown in Figure 8. That is, in the coefficient coding proposed in JVET-K0319, the normal coding bins are a maximum of 25 per CG, which remains the same as in HEVC and VTM-1 coefficient coding, and all bypass coding bins in the CG are grouped together.

[0054] The dependent quantization approach in JVET-J0014 was tested with CE7 Test 7.2.1 software, and the simulation results showed a BD rate reduction of 4.99% AI (all intra), 3.40% RA (random access), and 2.70% LDB (low latency B) compared to the VTM-1.0 anchor. However, the simulation results for JVET-K0319 showed a BD rate reduction of 3.98% AI, 2.58% RA, and 1.80% LDB compared to the VTM-1.0 anchor. In other words, the scalar quantizer used to quantize the conversion coefficients as in JVET-K0319 (switching based on SIG only) may result in lower coding efficiency compared to that proposed in JVET-J0014 (switching based on the full absLevel of the quantization coefficients).

[0055] This application proposes several alternative determination schemes for the scalar quantizer used in dependent scalar quantization to achieve a suitable trade-off between high throughput and coding efficiency. Instead of using absolute level or SIG value parity, the selection of a context model based on state transitions and the usual coding bin is proposed. Several embodiments for determining the scalar quantizer used in dependent scalar quantization are described below.

[0056] In the case of dependent scalar quantization proposed in JVET-J0014, the absolute level (absLevel) of the quantization coefficients must be completely reconstructed before moving to the next scan position in order to know the parity used to determine the quantizer for the next coefficient. Thus, bypass coding bins in the CG are not grouped, and they are interleaved with the normal coding bins for each coefficient. Furthermore, as shown in the syntax table below, the maximum number of normal coding bins per transformation coefficient level is increased in contrast to HEVC and VTM-1 (in the approach proposed in JVET-J0014, there can be up to 5 normal coding bins per transformation coefficient level). Changes to VTM-1 are shown in italics. The entropy encoder selects a specific SIG or gt1 context set according to the "state" used to determine the quantizer, depending on the information of the transformation coefficient level. The coding order of the bins is shown in the following syntax, where the function getSigCtxId(xC,yC,state) is used to derive the context of syntax sig_coeff_flag based on the current coefficient scan position (xC,yC) and state, decodeSigCoeffFlag(sigCtxId) is used to decode syntax sig_coeff_flag along with the associated context sigCtxId, getGreater1CtxId(xC,yC,state) is used to derive the context of syntax abs_level_gt1_flag based on the current coefficient scan position (xC,yC) and state, and decodeAbsLevelGt1Flag(greater1CtxId) is used to decode syntax abs_level_gt1_flag along with the associated context greater1CtxId. [Table 3] JPEG0007887008000004.jpg244170

[0057] As previously explained, these syntax changes present potential problems with high-throughput hardware implementations. Our proposal offers an alternative approach to achieve nearly the same level of throughput as HEVC while supporting dependent scalar quantization. Below, we illustrate the proposed changes using HEVC as an example.

[0058] In one embodiment, the maximum number of normal coded bins per conversion coefficient level is kept at 3 instead of 5 (SIG, gt1, and gt2 are normally coded). For each CG, the normal coded bins and bypass coded bins are separated in coding order, with all normal coded bins of the CG being transmitted first, followed by the bypass coded bins. The proposed order of coefficient bins in the CG is shown in Figure 9. The bins of the CG are coded in multiple passes across the scan locations of the CG. • Pass 1: Encoding in the following order: importance (SIG, sig_coeff_flag), flags greater than 1 (gt1, abs_level_gt1_flag), and flags greater than 2 (gt2, abs_level_gt2_flag). Flags greater than 1 exist only if sig_coeff_flag is equal to 1. Encoding of flags greater than 2 (abs_level_gt2_flag) is performed only for scan positions where abs_level_gt1_flag is equal to 1. The values ​​of gt1 and gt2 are assumed to be 0 if they do not exist in the bitstream. The SIG, gt1, and gt2 flags are coded in normal mode, and the choice of context modeling for SIG depends on which state is selected for the relevant coefficients. • Path 2: Encoding of the abs_level_remaining syntax element at all scan locations where abs_level_gt2_flag is equal to 1. Non-binary syntax elements are binarized, and the resulting bins are encoded in bypass mode of the arithmetic coding engine. • Path 3: Encoding of the sign (coeff_sign_flag) for all scan locations where sig_coeff_flag is equal to 1. The sign is encoded in bypass mode.

[0059] The above embodiments illustrate the proposed modifications compared to HEVC. The modifications can also be based on other solutions. For example, if JVET-J0014 is used as the base, the context modeling for both SIG and gt1 depends on the choice of quantizer, and flags greater than x (gtx, x=3 and 4) can be coded within pass 1 or pass 2. If other normal coding bins exist, such as gt5, gt6, and gt7 flags, they can also be coded within pass 1 or pass 2. Furthermore, the sign (coeff_sign_flag) in pass 3 can also be coded in normal mode.

[0060] At its March 2019 meeting, JVET adopted a new residual coding process for transformation-skipped residual blocks. When transformation skipping (TS) is enabled, the transformation of predicted residuals is skipped. The residual levels of coefficient groups (CGs) are coded as follows when passing through the scan location three times: Path 1: The following flags are signaled. osig_coeff_flag ocoeff_sign_flag Flags greater than o1 (abs_level_gtx_flag[0]) o Parity (par_level_flag) flag Path 2: The following flags are signaled. Flags greater than o3 (abs_level_gtx_flag[1]) Flags greater than o5 (abs_level_gtx_flag[2]) Flags greater than o7 (abs_level_gtx_flag[3]) Flags greater than o9 (abs_level_gtx_flag[4]) Path 3: Use Golomb-Rice coding to bypass the coding of the remaining absolute levels (abs_remainder).

[0061] The above proposed embodiment can also be applied to this newly adopted TS residual coding, for example, the positions of flags greater than 3 are moved to the first pass, as shown below. Path 1: The following flags are signaled. osig_coeff_flag ocoeff_sign_flag Flags greater than o1 (abs_level_gtx_flag[0]) o Parity (par_level_flag) flag Flags greater than o3 (abs_level_gtx_flag[1]) Path 2: The following flags are signaled. Flags greater than o5 (abs_level_gtx_flag[2]) Flags greater than o7 (abs_level_gtx_flag[3]) Flags greater than o9 (abs_level_gtx_flag[4]) Path 3: Use Golomb-Rice coding to bypass the coding of the remaining absolute levels (abs_remainder).

[0062] Embodiment 1 - Scalar Quantizer Decision Scheme Based on the Function SUM(SIG,gt1,gt2)

[0063] To address the challenges of high-throughput hardware implementation, a complete reconstruction of the absolute level (absLevel) of the quantization coefficients is not performed to determine the state, and switching between two scalar quantizers does not depend on the parity of the absolute level of the complete transformation coefficients. As mentioned earlier, a scalar quantizer determined solely by SIG, as in the case of JVET-K0319, can reduce coding efficiency. In one embodiment, we propose determining the scalar quantizer based on a function SUM(SIG,gt1,gt2) that takes into account the SIG, gt1, and gt2 values ​​of the current transformation coefficients. [Table 4]

[0064] Table 3 shows the possible combinations of the SIG, gt1, and gt2 values ​​of the conversion coefficients. There exists a one-to-one correspondence mapping these four different combinations to four possible marking level values, where m represents the marking value for these four possible cases. A function for deriving the marking value m from the SIG, gt1, and gt2 values ​​can be written as follows: m=SUM(SIG,gt1,gt2)=SIG+gt1+gt2.

[0065] As shown in Figure 10, the switching between the two scalar quantizers is uniquely determined by the parity of the marking value m of the transformation coefficient level preceding the current transformation coefficient in the encoding / reconstruction order. At the start of the inverse quantization of the transformation block, the state is set to 0. After the normal encoding bin of the current transformation coefficient is reconstructed, the state is updated as shown in Figure 10 and Table 4. Note that the next state depends only on the current state and the parity (m&1) of the marking value m of the current transformation coefficient level. The state update can be described as follows: State = stateTransTable[state][m&1], Here, stateTransTable represents the table shown in Figure 10 and Table 4, and the operator & specifies the bitwise "and" operator in two's complement arithmetic. [Table 5] [Table 6] JPEG0007887008000008.jpg95170

[0066] After transformation and quantization, the magnitudes of most transformation coefficients are typically very low. As shown in Tables 3 and 4, when the absolute level of the transformation coefficients is less than 3, the proposed method can achieve results nearly identical to JVET-J0014. On the other hand, the proposed method does not require a complete reconstruction of the absolute level (absLevel) of the quantization coefficients, thus solving the problem of high-throughput hardware implementation.

[0067] Details of the coding order, the presence of bins, and the reconstruction of transformation coefficient levels from the transmitted data are shown in the syntax table above. For simplicity of explanation, different paths of scan locations are commented out in the syntax table. Changes related to HEVC and VTM-1 are shown in italics. The entropy encoder selects a specific set of SIG contexts according to the “state” used to determine the quantizer and depend on the transformation coefficient level information.

[0068] Embodiment 2 - Scalar Quantizer Decision Scheme Based on the Function XOR(SIG,gt1,gt2)

[0069] In another embodiment, the SIG, gt1, and gt2 values ​​of the current transformation coefficients are considered, and a scalar quantizer is selected based on the function XOR(SIG, gt1, gt2). The function that derives the exclusive OR value x from the values ​​of SIG, gt1, and gt2 can be written as follows: x=XOR(SIG,gt1,gt2)=SIG^gt1^gt2. Table 5 shows the exclusive OR values ​​x corresponding to the possible combinations of the values ​​of the conversion coefficients SIG, gt1, and gt2. [Table 7]

[0070] Compared to the first embodiment, the switching between the two scalar quantizers is uniquely determined by the exclusive OR value x of the SIG, gt1, and gt2 flags. The state update can be described as follows: state = stateTransTable[state][x], Here, stateTransTable represents the table shown in Figure 11 and Table 6. The rest of the state machine remains the same as in the previous approach. [Table 8]

[0071] As shown in Tables 5 and 6, when the absolute level of the conversion coefficients is less than 3, the proposed method can achieve results almost identical to those of JVET-J0014. On the other hand, the proposed method does not require a complete reconstruction of the absolute level (absLevel) of the quantization coefficients, thus solving the problem of high-throughput hardware implementation.

[0072] Embodiment 3 - Scalar Quantizer Decision Scheme Based on One of the Normal Encoded Bins

[0073] According to the above embodiment, all the normal coding bins of the current transformation coefficients (SIG, gt1 and gt2) are considered to determine the scalar quantizer. In another embodiment, switching between two scalar quantizers can be based on one of the normal coding bins, e.g., the gt1 flag. In this embodiment, as shown in Figure 12, the previous state transition can be replaced by a gt1-based state transition, while the other design remains unchanged. Thus, the scalar quantizer used to quantize the current transformation coefficients is determined by the gt1 flag of the quantization coefficient preceding the current transformation coefficient in the scan order. The state update can be described as follows: State = stateTransTable[state][gt1], Here, stateTransTable represents the table shown in Figure 12 and Table 7.

[0074] In this embodiment, the bins of the CG are coded in three scan canvases on the following scan locations within the CG: a first pass for sig, gt1 and gt2; a second pass for the remaining absolute levels; and a third pass for the coded information. In a variation, the bins of the CG are coded in four scan canvases on the following scan locations within the CG: a first pass for sig and gt1; a second pass for gt2; a third pass for the remaining absolute levels; and a fourth pass for the coded information. This variation can further reduce the inter-bin dependencies compared to the three scan canvases proposed in the previous embodiment. [Table 9]

[0075] Alternatively, the scalar quantizer used to quantize the current transformation coefficient is determined by the gt2 flag of the quantization coefficient preceding the current transformation coefficient in the scan order. More generally, the scalar quantizer used to quantize the current transformation coefficient is determined by one of the normal coding bins (e.g., the gtx flag) of the quantization coefficient preceding the current transformation coefficient in the scan order.

[0076] The above examples illustrate several embodiments based on HEVC that use three standard coded bins (SIG, gt1, gt2) for the coefficients. If the standard coded bins of the coefficients differ from those of HEVC, the proposed embodiments can be carried out by taking a different number (more or less than 3) of standard coded bins for each conversion coefficient.

[0077] In the above, sum functions and exclusive OR functions are considered, and the proposed embodiment can also be performed using different state update derivations (1 / 0) functions from the usual coded bins for each transformation coefficient level.

[0078] The above explanation primarily concerns inverse quantization. Note that quantization is adjusted accordingly. The scalar quantizer used (Q0 or Q1) is not explicitly signaled in the bitstream. For example, the quantization module on the encoder side selects the quantizer to use for the current transformation coefficient based on the state. If the state of the current transformation coefficient is equal to 0 or 1, scalar quantizer Q0 is used. Otherwise (the state is equal to 2 or 3), scalar quantizer Q1 is used. The state is uniquely determined by the transformation coefficient level information using the method described in Figures 10-12, and the decoder selects the same quantizer to properly decode the bitstream.

[0079] Figure 13 shows a method (1300) for encoding the current coding unit according to an embodiment. In step 1305, the initial state is set to zero. To encode the coding unit, the coefficients within the coding unit are scanned. The scan of the coding unit processes each CG of the coding unit in order according to a scan pattern (diagonal, horizontal, vertical), and the coefficients within each CG are also scanned according to a scan order that is similarly considered. The scan begins at the CG with the last significant coefficient of the coding unit (1315) and processes all coefficients up to the first CG with the DC coefficient.

[0080] If the CG does not contain the last significance coefficient or DC coefficient (1320), a flag (coded_sub_block_flag) indicating whether the CG contains a non-zero coefficient is encoded (1325). For CGs that contain the last non-zero level or DC coefficient, coded_sub_block_flag is presumed to be equal to 1 and is not displayed in the bitstream.

[0081] If coded_sub_block_flag is true (1330), three scans are applied to the CG. In the first pass (1335-1360), the SIG flag (sig_coeff_flag) is coded for the coefficients (1335). To code the SIG flag, the context mode index is determined using the state, for example, sigCtxId=getSigCtxId(state). If the SIG flag is true (1340), the gt1 flag (abs_level_gt1_flag) is coded (1345). If the gt1 flag is true (1350), the gt2 flag (abs_level_gt2_flag) is coded (1355). Based on one or more of the SIG, gt1, and gt2 flags, the state is updated, for example, using the method described in Figures 10-12 (1360).

[0082] In the second scanth (1365, 1370), the encoder checks whether the gt2 flag is true (1365). If true, the remaining absolute level (abs_level_remaining) is encoded (1370). In the third scanth (1375, 1380), the encoder checks whether the SIG flag is true (1375). If true, the sign flag (coeff_sign_flag) is encoded (1380). In step 1385, the encoder checks if there are any more CGs to process. If so, it moves to the next CG to process (1390).

[0083] Figure 14 shows a method (1400) for decoding the current coding unit according to an embodiment. In step 1405, the initial state is set to zero. Similar to the encoder side, the coefficient positions within the coding unit are scanned in order to decode the coding unit. The scan begins at the CG with the last significant coefficient of the coding unit (1415) and processes all coefficients up to the first CG with the DC coefficient.

[0084] If the CG does not contain the last significance coefficient or DC coefficient (1420), a flag (coded_sub_block_flag) indicating whether the CG contains any non-zero coefficients is decoded (1425). For CGs that contain the last non-zero level or DC coefficient, coded_sub_block_flag is presumed to be equal to 1.

[0085] If coded_sub_block_flag is true (1430), three scans are applied to the CG. In the first pass (1435-1460), the SIG flag (sig_coeff_flag) is decoded for the coefficients (1435). To decode the SIG flag, the context mode index is determined using the state, for example, sigCtxId=getSigCtxId(state). If the SIG flag is true (1440), the gt1 flag (abs_level_gt1_flag) is decoded (1445). If the gt1 flag is true (1450), the gt2 flag (abs_level_gt2_flag) is decoded (1455). Based on one or more of the SIG, gt1, and gt2 flags, the state is updated, for example, using the method described in Figures 10-12 (1460).

[0086] In the second scan (1470, 1475), the decoder checks whether the gt2 flag is true (1470). If true, the remaining absolute level (abs_level_remaining) is decoded (1475). In the third scan (1480, 1485), the decoder checks whether the SIG flag is true (1480). If true, the sign flag (coeff_sign_flag) is decoded (1485). In step 1487, the decoder calculates the conversion coefficients based on the available SIG, gt1, gt2, sign flag, and the remaining absolute value.

[0087] The decoder checks if there are still CGs to process (1490). If so, it moves to the next CG to be processed (1495). If all coefficients are entropy-decoded, the transformation coefficients are dequantized using dependent scalar quantization (1497). The scalar quantizer (Q0 or Q1) used for the transformation coefficients is determined by the state, which is derived using the method described in Figures 10–12, along with information about the decoded transformation coefficient levels.

[0088] Various methods are described herein, each comprising one or more steps or actions to achieve the described method. Unless a particular order of steps or actions is required for the correct operation of the method, the order and / or use of any particular steps and / or actions may be modified or combined. Furthermore, terms such as “first,” “second,” etc., may be used in various embodiments to modify elements, components, steps, actions, etc., such as “first decryption” and “second decryption.” The use of such terms does not imply a modified order of actions unless specifically required. Thus, in this example, the first decryption does not need to be performed before the second decryption, and can occur, for example, before, during, or over overlapping periods with the second decryption.

[0089] Using the various methods and other embodiments described herein, the modules, for example, the entropy coding and decoding modules (245, 330) of the video encoder 200 and decoder 300 can be modified as shown in Figures 2 and 3. Furthermore, these embodiments are not limited to VVC or HEVC and can be applied to other standards and recommendations, as well as any such standards and recommendations. Unless otherwise specifically indicated or technically excluded, the embodiments described herein can be used individually or in combination.

[0090] Various numerical values ​​are used in this application. Certain values ​​are for illustrative purposes only, and the embodiments described are not limited to these specific values.

[0091] According to the embodiment, a video decoding method is provided, which involves accessing a first parameter set associated with a first transformation coefficient in a block of a picture, wherein the first transformation coefficient precedes a second transformation coefficient in the block of the picture in the decoding order, and accessing a second parameter set associated with the second transformation coefficient, wherein the first and second parameter sets are entropy coded in normal mode, and the context modeling of at least the parameters of the second parameter set of the second transformation coefficient depends on the decoding of the first transformation coefficient, and the preceding first scan of the block. A method is provided for entropy decoding a first and second set of parameters, wherein the first scan is performed before any other scans of the entropy-decoded transformation coefficients of the block, each set of the first and second set of parameters for the first and second transformation coefficients includes at least one of a gt1 flag and a gt2 flag, the gt1 flag indicating whether the absolute value of the corresponding transformation coefficient is greater than 1, and the gt2 flag indicating whether the absolute value of the corresponding transformation coefficient is greater than 2, and the block is reconstructed in response to the decoded transformation coefficients.

[0092] According to the embodiment, a video coding method comprising accessing a first parameter set associated with a first transformation coefficient in a block of a picture, wherein the first transformation coefficient precedes a second transformation coefficient in the block of the picture in the coding order, and accessing a second parameter set associated with the second transformation coefficient, wherein the first and second parameter sets are entropy coded in normal mode, and the context modeling of at least the parameters of the second parameter set of the second transformation coefficient depends on the coding of the first transformation coefficient, and the block A method is provided for entropy coding the first and second parameter sets in a first scan of a block, wherein the first scan is performed before other scans of the entropy coded transformation coefficients of the block, and each set of the first and second parameter sets for the first and second transformation coefficients includes at least one of a gt1 flag and a gt2 flag, wherein the gt1 flag indicates whether the absolute value of the corresponding transformation coefficient is greater than 1, and the gt2 flag indicates whether the absolute value of the corresponding transformation coefficient is greater than 2.

[0093] According to another embodiment, a video decoding apparatus comprising one or more processors, wherein the one or more processors access a first parameter set associated with a first transformation coefficient in a block of a picture, the first transformation coefficient precedes a second transformation coefficient in the block of the picture in the decoding order, accesses a second parameter set associated with the second transformation coefficient, the first and second parameter sets are entropy coded in normal mode, the context modeling of at least the parameters of the second parameter set of the second transformation coefficient depends on the decoding of the first transformation coefficient, and the first skim of the block An apparatus is provided which entropy decodes the first and second parameter sets in a campus, the first campus being performed before other campuses of the entropy decoded transformation coefficients of the block, each set of the first and second parameter sets for the first and second transformation coefficients comprising at least one of a gt1 flag and a gt2 flag, the gt1 flag indicating whether the absolute value of the corresponding transformation coefficient is greater than 1, the gt2 flag indicating whether the absolute value of the corresponding transformation coefficient is greater than 2, and which is configured to reconstruct the block in response to the decoded transformation coefficients. The apparatus may further comprise one or more memories coupled to the one or more processors.

[0094] According to another embodiment, a video encoding apparatus comprising one or more processors, wherein the one or more processors access a first parameter set associated with a first transformation coefficient in a block of picture, the first transformation coefficient precedes a second transformation coefficient in the block of picture in the encoding order, accesses a second parameter set associated with the second transformation coefficient, the first and second parameter sets are entropy encoded in normal mode, and the context modeling of at least the parameters of the second parameter set of the second transformation coefficient depends on the encoding of the first transformation coefficient. An apparatus is provided which entropy encodes the first and second parameter sets in a first scan of the block, the first scan is performed before any other scans of the entropy encoded transform coefficients of the block, and each set of the first and second parameter sets for the first and second transform coefficients includes at least one of a gt1 flag and a gt2 flag, the gt1 flag indicating whether the absolute value of the corresponding transform coefficient is greater than 1, and the gt2 flag indicating whether the absolute value of the corresponding transform coefficient is greater than 2.

[0095] According to another embodiment, a video decoding apparatus comprising means for accessing a first parameter set associated with a first transformation coefficient in a block of a picture, wherein the first transformation coefficient precedes a second transformation coefficient in the block of the picture in the decoding order; means for accessing a second parameter set associated with the second transformation coefficient, wherein the first and second parameter sets are entropy coded in normal mode, and the context modeling of at least the parameters of the second parameter set of the second transformation coefficient depends on the decoding of the first transformation coefficient; and in the first scan of the block An apparatus is provided for entropy decoding the first and second parameter sets, wherein the first scan is performed before other scans of the entropy-decoded transformation coefficients of the block, and each set of the first and second parameter sets for the first and second transformation coefficients includes at least one of a gt1 flag and a gt2 flag, wherein the gt1 flag indicates whether the absolute value of the corresponding transformation coefficient is greater than 1, and the gt2 flag indicates whether the absolute value of the corresponding transformation coefficient is greater than 2; and means for reconstructing the block in response to the decoded transformation coefficients.

[0096] According to another embodiment, a video coding apparatus comprising means for accessing a first parameter set associated with a first transformation coefficient in a block of a picture, wherein the first transformation coefficient precedes a second transformation coefficient in the block of the picture in the coding order; and means for accessing a second parameter set associated with the second transformation coefficient, wherein the first and second parameter sets are entropy coded in normal mode, and the context modeling of at least the parameters of the second parameter set of the second transformation coefficient depends on the coding of the first transformation coefficient; and the block An apparatus is provided comprising means for entropy coding the first and second parameter sets in a first scan of a block, wherein the first scan is performed before other scans of the entropy coded transformation coefficients of the block, and each set of the first and second parameter sets for the first and second transformation coefficients includes at least one of a gt1 flag and a gt2 flag, wherein the gt1 flag indicates whether the absolute value of the corresponding transformation coefficient is greater than 1, and the gt2 flag indicates whether the absolute value of the corresponding transformation coefficient is greater than 2.

[0097] According to another embodiment, a signal including encoded video, accessing a first parameter set associated with a first transformation coefficient in a block of picture, wherein the first transformation coefficient precedes a second transformation coefficient in the block of picture in the encoding order, and accessing a second parameter set associated with the second transformation coefficient, wherein the first and second parameter sets are entropy encoded in normal mode, and the context modeling of at least the parameters of the second parameter set of the second transformation coefficient depends on the encoding of the first transformation coefficient, and the block Entropy coding the first and second parameter sets in a first scan of a block, wherein the first scan is performed before any other scans of the entropy coded transformation coefficients of the block, and each set of the first and second parameter sets for the first and second transformation coefficients includes at least one of a gt1 flag and a gt2 flag, the gt1 flag indicating whether the absolute value of the corresponding transformation coefficient is greater than 1, and the gt2 flag indicating whether the absolute value of the corresponding transformation coefficient is greater than 2, thereby forming a signal.

[0098] According to the embodiment, the context modeling of at least the parameters of the second parameter set of the second transformation coefficients depends on the decoding of the first parameter set of the first transformation coefficients and is independent of (1) the parameters used to represent the first transformation coefficients and (2) the parameters entropy coded in bypass mode.

[0099] According to one embodiment, the SIG flag is also encoded or decoded in the first scan, and the SIG flag indicates whether the corresponding conversion coefficient is zero.

[0100] According to the embodiment, the gt1 flag is encoded or decoded in a first scan, and the gt2 flag is encoded or decoded in a second scan.

[0101] According to one embodiment, the inverse quantizer for inverse quantizing the second transformation coefficient is selected from two or more quantizers based on the first transformation coefficient.

[0102] According to one embodiment, the inverse quantizer is selected based on the first set of parameters of the first transformation coefficients.

[0103] According to one embodiment, the context modeling of at least the parameters in the second parameter set of the second transformation coefficients depends on the decoding of the first and second transformation coefficients.

[0104] According to one embodiment, the inverse quantizer is selected based on the sum of the SIG, gt1, and gt2 flags.

[0105] According to one embodiment, the inverse quantizer is selected based on the XOR function of the SIG, gt1, and gt2 flags.

[0106] According to one embodiment, the inverse quantizer is selected based on the gt1 flag, the gt2 flag, or the gtx flag indicating whether the absolute value of the corresponding transformation coefficient is greater than x.

[0107] According to the embodiment, (1) a parameter used to represent the conversion coefficients in the block and (2) a parameter encoded in bypass mode are entropy coded or decoded in one or more scans after the parameter has been used to represent the conversion coefficients in the block and (2) coded in normal mode.

[0108] According to one embodiment, the context modeling of the SIG, gt1, gt2, or gtx flags is based on the quantizer or the state used in the selection of the quantizer.

[0109] The embodiments provide a computer program that, when executed by one or more processors, includes instructions causing one or more processors to perform an encoding or decoding method according to any of the embodiments described above. One or more of these embodiments also provide a computer-readable storage medium storing instructions for encoding or decoding video data according to any of the methods described above. One or more embodiments also provide a computer-readable storage medium storing a bitstream generated according to the methods described above. One or more embodiments also provide a method and apparatus for transmitting or receiving a bitstream generated according to the methods described above.

[0110] Various implementations involve decoding. As used in this application, “decoding” may encompass all or part of the processes performed on the received encoded sequence to produce, for example, a final output suitable for display. In various embodiments, such processes include one or more of the processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. Whether the term “decoding process” is intended to refer specifically to a subset of operations or to a broader decoding process in general will become clear from the context of the particular description and will be well understood by those skilled in the art.

[0111] Various implementations involve encoding. Similar to the above considerations regarding "decoding," the term "encoding" as used in this application may encompass, for example, all or part of the process performed on the input video sequence to generate an encoded bitstream.

[0112] For example, note that syntactic elements used herein, such as sig_coeff_flag and abs_level_gt1_flag, are descriptive terms. Therefore, they do not preclude the use of other syntactic element names.

[0113] The implementations and embodiments described herein may be implemented, for example, in methods or processes, apparatus, software programs, data streams, or signals. Even if an implementation is considered only in the context of a single form of implementation (for example, only as a method), the implementation of the features considered may also be implemented in other forms (for example, apparatus or programs). Apparatus may be implemented, for example, in appropriate hardware, software, and firmware. The method may be implemented, for example, in apparatus, which generally refers to processing devices, including computers, microprocessors, integrated circuits, or programmable logic devices, e.g., processors. Processors also include communication devices, e.g., computers, mobile phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate the transmission of information between end users.

[0114] References to “one embodiment” or “embodiment,” or “one implementation” or “implementation,” as well as other variations thereof, mean that certain features, structures, characteristics, etc., described in relation to an embodiment are included in at least one embodiment. Therefore, the appearance of phrases such as “in one embodiment” or “in one embodiment” or “in one implementation” or “in implementation,” as well as any other variations, found in various places throughout this document, do not necessarily all refer to the same embodiment.

[0115] Furthermore, this application may refer to "determining" various parts 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.

[0116] Furthermore, this application may refer to “accessing” various parts of information. Accessing information may include, for example, receiving information, retrieving information (e.g., from memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.

[0117] Furthermore, this application may refer to "receiving" various parts of information. Receiving is intended to be a broad term, similar to "accessing." Receiving information may include, for example, accessing information or retrieving information (for example, from memory). Moreover, "receiving" is typically involved in some way during an action 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.

[0118] For example, in the cases of "A / B," "A and / or B," and "at least one of A and B," it should be clear that the use of any of the following " / ," "and / or," and "at least one of" is intended to cover the selection of only the first option (A), or only the second option (B), or both options (A and B). As further examples, in the cases of "A, B, and / or C" and "at least one of A, B, and C," such phrasing is intended to cover the selection of only the first option (A), or only the second option (B), or only the third option (C), or only the first and second options (A and B), or only the first and third options (A and C), or only the second and third options (B and C), or all three options (A, B, and C). This can be extended as many times as there are items listed, as will be obvious to those skilled in the art.

[0119] As will be apparent to those skilled in the art, implementations can generate a wide variety of signals, for example, that are formatted to carry information that can be stored or transmitted. This information may include, for example, instructions for performing a method, or data generated by one of the implementations described. For example, a signal may be formatted to carry a bitstream of the embodiment described. 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 or digital information. The signal can be transmitted over a wide variety of different wired or wireless links, as is well known. The signal can be stored in a processor-readable medium.

Claims

1. Obtaining a conversion coefficient for a block of picture, Entropy encoding a first set of syntax flags and a second set of syntax flags in a first canvas for entropy encoding the transformation coefficients of the block of the picture, wherein the first set of syntax flags indicates whether the absolute value of the corresponding transformation coefficient is greater than 1, and the second set of syntax flags indicates whether the absolute value of the corresponding transformation coefficient is greater than 3. Entropy coding the first type of syntactic element that indicates the remaining level of the transformation coefficients in a second scanscan for entropy coding the transformation coefficients of the block, Entropy encoding a second type of syntactic element indicating the sign of the transformation coefficient in a third spreadsheet for entropy encoding the transformation coefficient of the block, A method that includes this.

2. The method according to claim 1, wherein all syntactic elements in the first campus are entropy encoded in regular mode.

3. The method according to claim 1, wherein all syntactic elements in the second campus are entropy encoded in bypass mode.

4. The method according to claim 1, wherein all syntactic elements in the third campus are entropy encoded in bypass mode.

5. The method according to claim 1, wherein one or more syntax flags indicating whether the absolute value of a corresponding conversion coefficient is greater than x are entropy encoded in the first or second scanscan, and x is an integer greater than 3.

6. A device comprising at least one memory and one or more processors, The aforementioned one or more processors Regarding the picture block, obtain the conversion coefficient, Entropy encoding a first set of syntax flags and a second set of syntax flags in a first canvas for entropy encoding the transformation coefficients of the block of the picture, wherein the first set of syntax flags indicates whether the absolute value of the corresponding transformation coefficient is greater than 1, and the second set of syntax flags indicates whether the absolute value of the corresponding transformation coefficient is greater than 3. Entropy coding the first type of syntactic element that indicates the remaining level of the transformation coefficients in a second scanscan for entropy coding the transformation coefficients of the block, Entropy encoding a second type of syntactic element indicating the sign of the transformation coefficient in a third spreadsheet for entropy encoding the transformation coefficient of the block, A device configured to perform the following actions.

7. The apparatus according to claim 6, wherein all syntactic elements in the first campus are entropy encoded in regular mode.

8. The apparatus according to claim 6, wherein all syntactic elements in the second campus are entropy encoded in bypass mode.

9. The apparatus according to claim 6, wherein all syntactic elements in the third campus are entropy encoded in bypass mode.

10. The apparatus according to claim 6, wherein one or more syntax flags indicating whether the absolute value of a corresponding conversion coefficient is greater than x are entropy encoded in the first scanscan or the second scanscan, and x is an integer greater than 3.