Methods, systems, and programs for dependent quantization based on the current dequantization state

Dependent scalar quantization addresses the limitations of independent scalar quantization in video coding by using current state information to enhance the accuracy of transformation coefficient reconstruction, resulting in improved decoded video quality.

JP2026515573APending Publication Date: 2026-05-19TENCENT AMERICA LLC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
TENCENT AMERICA LLC
Filing Date
2024-04-30
Publication Date
2026-05-19

AI Technical Summary

Technical Problem

Existing video coding methods, such as HEVC and VVC, face challenges in achieving accurate reconstruction of transformation coefficients due to the limitations of independent scalar quantization, leading to suboptimal decoded video quality.

Method used

Implementing dependent scalar quantization where the set of reconstructed values for transformation coefficients depends on preceding levels, using current state information to adjust quantization indices and compute more precise dequantized coefficients.

Benefits of technology

Improves decoded video quality by reducing quantization errors and enhancing accuracy of transformation coefficient reconstruction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026515573000001_ABST
    Figure 2026515573000001_ABST
Patent Text Reader

Abstract

An exemplary method for video encoding includes receiving a video bitstream containing multiple blocks and multiple quantized transformation coefficients. The method includes deriving a dequantized transformation coefficient for a first quantized transformation coefficient among the multiple quantized transformation coefficients. The method also includes obtaining an adjusted transformation value by applying an offset value to the dequantized transformation coefficient, the adjusted transformation value being based on the quantized transformation coefficient level and the current state of dequantization. The method further includes reconstructing the first block using the adjusted transformation value.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Related applications This application claims priority to U.S. Provisional Patent Application 63 / 463,815, filed on 3 May 2023, entitled “Dependent Quantizer Having Shifted Quantization Centers,” which is a continuation of U.S. Patent Application 18 / 648,129, filed on 26 April 2024, entitled “System and Method for Dependent Quantization Based on Current Dequantization State,” and claims priority to that application.

[0002] Technical field The disclosed embodiments relate broadly to video coding, including but not limited to systems and methods for dependent scalar quantization. [Background technology]

[0003] Digital video is supported by a variety of electronic devices, including digital televisions, laptop or desktop computers, tablet computers, digital cameras, digital recording devices, digital media players, video game consoles, smartphones, video teleconferencing devices, and video streaming devices. These electronic devices transmit and receive digital video data over communication networks, or otherwise communicate and / or store digital video data in storage devices. Due to the limited bandwidth capacity of communication networks and the limited memory resources of storage devices, video coding may be used to compress video data according to one or more video coding standards before it is transmitted or stored. Video coding can be performed by hardware and / or software on electronic / client devices or servers providing cloud services.

[0004] Video coding generally utilizes predictive methods (e.g., interprediction, intraprediction) that leverage the redundancy inherent in video data. The goal of video coding is to compress video data to a lower bitrate while avoiding or minimizing degradation of video quality. Several video codec standards have been developed. For example, High Efficiency Video Coding (HEVC / H.265) is a video compression standard designed as part of the MPEG-H project. The ITU-T and ISO / IEC published the HEVC / H.265 standard in 2013 (version 1), 2014 (version 2), 2015 (version 3), and 2016 (version 4). Multipurpose Video Coding (VVC / H.266) is a video compression standard intended as a successor to HEVC. The ITU-T and ISO / IEC published the VVC / H.266 standard in 2020 (version 1) and 2022 (version 2). AOMedia Video 1 (AV1) is an open video encoding format designed as an alternative to HEVC. Verified version 1.0.0, along with errata sheet 1 for the specification, was released on January 8, 2019. [Overview of the project] [Means for solving the problem]

[0005] This disclosure describes, in particular, dependent scalar quantization. Dependent scalar quantization is a technique in which the set of reconstructed values ​​for transformation coefficients depends on the values ​​of transformation coefficient levels preceding the current transformation coefficient level in the reconstruction order. Since the quantization index should be an integer, the original reconstructed coefficients can be computed, and the shifted reconstructed coefficients can be computed by shifting the quantization index in the opposite direction to zero. A weighted sum may then be computed as the reconstructed coefficients. However, when multiple quantizers are used, for some states, simply shifting the index of the current quantizer may be less accurate than using the results of another quantizer. This disclosure describes using state information to obtain more accurate shifted values, thereby improving the decoded video quality with more accurate / precise dequantized transformation coefficients.

[0006] According to some embodiments, a video decoding method includes: (i) receiving a video bitstream containing a plurality of blocks and a plurality of quantization conversion coefficients; (ii) deriving a dequantized conversion coefficient for a first quantization conversion coefficient among the plurality of quantization conversion coefficients; (iii) obtaining an adjusted conversion value by applying an offset value to the dequantized conversion coefficient, wherein the adjusted conversion value is based on the quantization conversion coefficient level and the current state of dequantization; and (iv) reconstructing a first block using the adjusted conversion value.

[0007] According to some embodiments, computing systems are provided, such as streaming systems, server systems, personal computer systems, or other electronic devices. The computing system includes a control circuit and a memory for storing one or more instruction sets. One or more instruction sets include instructions for performing any of the methods described herein. In some embodiments, the computing system includes encoder and decoder components (e.g., a transcoder). According to some embodiments, a non-temporary computer-readable storage medium is provided. The non-temporary computer-readable storage medium stores one or more instruction sets for execution by the computing system. One or more instruction sets include instructions for performing any of the methods described herein.

[0008] Accordingly, devices and systems having methods for encoding and decoding video are disclosed. Such methods, devices, and systems may complement or replace conventional methods, devices, and systems for video encoding / decoding. The features and advantages described herein are not necessarily exhaustive. In particular, several additional features and advantages will become apparent to those skilled in the art in light of the drawings, specification, and claims provided herein. Furthermore, it should be noted that the language used herein has been selected primarily for readability and educational purposes and is not necessarily selected to define or limit the subject matter described herein. [Brief explanation of the drawing]

[0009] To better understand the present disclosure, a more specific description can be obtained by referring to the features of various embodiments, some of which are shown in the accompanying drawings. However, the accompanying drawings merely show the relevant features of the present disclosure and should not necessarily be regarded as limiting, and the description can recognize other valid features that can be understood by those skilled in the art when reading the present disclosure.

[0010] [Figure 1] FIG. A block diagram showing an exemplary communication system according to some embodiments.

[0011] [Figure 2A] FIG. A block diagram showing exemplary elements of an encoder component according to some embodiments.

[0012] [Figure 2B] FIG. A block diagram showing exemplary elements of a decoder component according to some embodiments.

[0013] [Figure 3] FIG. A block diagram showing an exemplary server system according to some embodiments.

[0014] [Figure 4A] FIG. A diagram showing an exemplary scalar quantizer according to some embodiments.

[0015] [Figure 4B] FIG. A diagram showing an exemplary state transition for a quantizer according to some embodiments. [Figure 4C] FIG. A diagram showing an exemplary state transition for a quantizer according to some embodiments. [Figure 4D] FIG. A diagram showing an exemplary state transition for a quantizer according to some embodiments.

[0016] [Figure 5A]Figures A and B show exemplary transformation coefficient reconstructions using exemplary scalar quantizers according to several embodiments. [Figure 5B] Figures A and B show exemplary transformation coefficient reconstructions using exemplary scalar quantizers according to several embodiments.

[0017] [Figure 6] This figure shows an exemplary video decoding process according to several embodiments.

[0018] According to a typical embodiment, the various features shown in the drawings are not necessarily drawn to scale, and the same reference numerals may be used throughout the specification and drawings to indicate similar features. [Modes for carrying out the invention]

[0019] This disclosure describes a video / image compression technique that includes using a scalar quantizer to reconstruct transformation coefficients. The scalar quantizer can implement a technique of dependent scalar quantization in which the set of acceptable reconstructed values ​​of the transformation coefficients depends on the values ​​of transformation coefficient levels preceding the current transformation coefficient level in the reconstruction order. To reduce quantization errors, a weighted sum may be calculated between the current state and a shifted state (e.g., shifted away from 0 to account for quantization errors) to derive the reconstructed transformation coefficients. However, simply selecting a shifted state for the quantizer may give less accurate / precise reconstructed transformation coefficients than selecting the nearest adjacent state (away from 0) for the current state. By using current state information, the nearest adjacent state can be identified and used. The advantage of using the current state information of the dependent quantizer to shift the reconstructed transformation coefficient values ​​is improved decoded video quality, resulting from more accurate / precise dequantized transformation coefficients.

[0020] Exemplary Systems and Devices Figure 1 is a block diagram showing a communication system 100 according to several embodiments. The communication system 100 includes a source device 102 and a plurality of electronic devices 120 (for example, electronic devices 120-1 to 120-m) that are communicatively coupled to one or more networks. In some embodiments, the communication system 100 is a streaming system for use with video-enabled applications such as video conferencing applications, digital TV applications, and media storage and / or distribution applications.

[0021] Source device 102 includes a video source 104 (e.g., a camera component or media storage) and an encoder component 106. In some embodiments, the video source 104 is a digital camera (e.g., configured to create an uncompressed video sample stream). The encoder component 106 generates one or more encoded video bitstreams from the video stream. The video stream from video source 104 may have a higher data volume compared to the encoded video bitstream 108 generated by the encoder component 106. Since the encoded video bitstream 108 has a lower data volume (less data) compared to the video stream from the video source, the encoded video bitstream 108 requires less bandwidth to transmit and less storage space to store compared to the video stream from video source 104. In some embodiments, source device 102 does not include an encoder component 106 (e.g., it is configured to transmit uncompressed video to a network(s) 110).

[0022] One or more networks 110 represent any number of networks that carry information between the source device 102, the server system 112, and / or electronic devices 120, including, for example, wireline and / or wireless communication networks. One or more networks 110 may exchange data over circuit-switched channels and / or packet-switched channels. Typical networks include telecommunications networks, local area networks, wide area networks, and / or the Internet.

[0023] One or more networks 110 include a server system 112 (for example, a distributed / cloud computing system). In some embodiments, the server system 112 is or includes a streaming server (configured to store and / or deliver video content, for example, an encoded video stream from a source device 102). The server system 112 includes a coder component 114 (configured to encode and / or decode video data, for example). In some embodiments, the coder component 114 includes an encoder component and / or a decoder component. In various embodiments, the coder component 114 is instantiated as hardware, software, or a combination thereof. In some embodiments, the coder component 114 is configured to decode an encoded video bitstream 108 and re-encode the video data using different encoding standards and / or methods to produce encoded video data 116. In some embodiments, the server system 112 is configured to produce multiple video formats and / or encodings from the encoded video bitstream 108. In some embodiments, the server system 112 functions as a Media-Aware Network Element (MANE). For example, the server system 112 may be configured to prune an encoded video bitstream 108 to tailor potentially different bitstreams for one or more of the electronic devices 120. In some embodiments, the MANE is provided separately from the server system 112.

[0024] Electronic device 120-1 includes a decoder component 122 and a display 124. In some embodiments, the decoder component 122 is configured to decode encoded video data 116 to produce an outgoing video stream that can be rendered on a display or other type of rendering device. In some embodiments, one or more of the electronic devices 120 do not include a display component (for example, they include media storage that is communicatively coupled to an external display device). In some embodiments, the electronic device 120 is a streaming client. In some embodiments, the electronic device 120 is configured to access a server system 112 to retrieve encoded video data 116.

[0025] The source device and / or the plurality of electronic devices 120 are sometimes referred to as “terminal devices” or “user devices.” In some embodiments, the source device 102 and / or one or more of the electronic devices 120 are instances of a server system, a personal computer, a portable device (e.g., a smartphone, tablet, or laptop), a wearable device, a video conferencing device, and / or other types of electronic devices.

[0026] In an exemplary operation of the communication system 100, source device 102 transmits an encoded video bitstream 108 to server system 112. For example, source device 102 may encode a stream of pictures captured by the source device. Server system 112 receives the encoded video bitstream 108 and may decode and / or encode the encoded video bitstream 108 using coder component 114. For example, server system 112 may apply a more optimal encoding to the video data for network transmission and / or storage. Server system 112 may transmit the encoded video data 116 (e.g., one or more encoded video bitstreams) to one or more electronic devices 120. Each electronic device 120 may decode the encoded video data 116 and optionally display a video picture.

[0027] Figure 2A is a block diagram showing exemplary elements of an encoder component 106 according to several embodiments. The encoder component 106 receives video data (e.g., a source video sequence) from a video source 104. In some embodiments, the encoder component includes a receiver (e.g., a transceiver) component configured to receive the source video sequence. In some embodiments, the encoder component 106 receives a video sequence from a remote video source (e.g., a video source that is a component of a different device from the encoder component 106). The video source 104 may provide the source video sequence in the form of a digital video sample stream that can be any suitable bit depth (e.g., 8-bit, 10-bit, or 12-bit), any color space (e.g., BT.601 Y CrCb, or RGB), and any suitable sampling structure (e.g., YCrCb 4:2:0 or YCrCb 4:4:4). In some embodiments, the video source 104 is a storage device that stores previously captured / prepared video. In some embodiments, the video source 104 is a camera that captures local image information as a video sequence. The video data may be provided as a plurality of individual pictures that give motion when viewed sequentially. The pictures themselves may be organized as a spatial array of pixels, each pixel may contain one or more samples, depending on the sampling structure used, color space, etc. Those skilled in the art will readily understand the relationship between pixels and samples.

[0028] The encoder component 106 is configured to encode and / or compress the pictures of the source video sequence into an encoded video sequence 216 in real time or under other time constraints required by the application. In some embodiments, the encoder component 106 is configured to perform the conversion between the source video sequence and a bitstream of visual media data (e.g., a video bitstream). Implementing an appropriate encoding rate is one function of the controller 204. In some embodiments, the controller 204 controls and is functionally coupled to other functional units, as described below. Parameters set by the controller 204 may include rate control-related parameters (e.g., picture skip, quantizer, and / or lambda values ​​for rate-distortion optimization techniques), picture size, picture group (GOP) layout, maximum motion vector search range, etc. Those skilled in the art will readily identify the other functions of the controller 204, as they may relate to the encoder component 106, which they are optimized for certain system designs.

[0029] In some embodiments, the encoder component 106 is configured to operate in an encoding loop. In a simplified example, the encoding loop includes a source coder 202 (responsible for creating symbols, such as a symbol stream, based, for example, the input picture to be encoded and a reference picture(s) or more) and a (local) decoder 210. The decoder 210 reconstructs the symbols to create sample data in a similar manner to the (remote) decoder (when the compression between the symbols and the encoded video bitstream is lossless). The reconstructed sample stream (sample data) is input to the reference picture memory 208. Since decoding the symbol stream yields bitwise-accurate results independent of the decoder's location (local or remote), the contents of the reference picture memory 208 are also bitwise-accurate between the local encoder and the remote encoder. In this way, the prediction portion of the encoder interprets the same sample values ​​as reference picture samples that the decoder interprets when using predictions during decoding.

[0030] The operation of decoder 210 may be the same as that of a remote decoder, such as decoder component 122, which will be described in detail below in relation to Figure 2B. However, referring to Figure 2B for the moment, since symbols are available and the encoding / decoding of symbols to the encoded video sequence by the entropy encoder 214 and parser 254 may be reversible, the entropy decoding portion of decoder component 122, including buffer memory 252 and parser 254, may not be fully implemented in local decoder 210.

[0031] The decoder techniques described in this paper, excluding parse / entropy decoding, may exist in substantially the same functional form in the corresponding encoders. For this reason, the subject matter disclosed focuses on decoder operation. Furthermore, the description of encoder techniques may be omitted, as it is the reverse of the decoder techniques.

[0032] As part of its operation, the source coder 202 can perform motion-compensated predictive coding, which predictively codes the input frame by referencing one or more previously coded frames from a video sequence designated as reference frames. In this way, the coding engine 212 codes the difference between the pixel blocks of the input frame and the pixel blocks of one or more reference frames that may be selected as predictive references for the input frame. The controller 204 can manage the coding operation of the source coder 202, including, for example, setting parameters and subgroup parameters used to encode the video data.

[0033] Decoder 210 decodes the encoded video data of a frame that may be designated as a reference frame, based on the symbols created by source coder 202. The operation of encoding engine 212 can be, advantageously, a lossy process. When the encoded video data is decoded in a video decoder (not shown in Figure 2A), the reconstructed video sequence may be a replica of the source video sequence with some errors. Decoder 210 can replicate the decoding process that may be performed by the remote video decoder on the reference frame and store the reconstructed reference frame in reference picture memory 208. In this way, encoder component 106 locally stores a copy of the reconstructed reference frame that has content common to the reconstructed reference frame that would be obtained by the remote video decoder (if there are no transmission errors).

[0034] The predictor 206 can perform a predictive search for the encoding engine 212. That is, for a new frame to be encoded, the predictor 206 can search the reference picture memory 208 for sample data (as candidate criterion pixel blocks) or some metadata such as reference picture motion vectors, block shapes, etc., which can serve as appropriate predictive criteria for the new picture. The predictor 206 may operate sample block pixel block by sample block to find appropriate predictive criteria. As determined by the search results obtained by the predictor 206, the input picture may have predictive references drawn from multiple reference pictures stored in the reference picture memory 208.

[0035] The outputs of all the aforementioned functional units can be entropically coded by the entropy encoder 214. The entropy encoder 214 converts the symbols generated by the various functional units into coded video sequences by lossless compression of the symbols according to techniques known to those skilled in the art (e.g., Huffman coding, variable-length coding, and / or arithmetic coding).

[0036] In some embodiments, the output of the entropy encoder 214 is coupled to the transmitter. The transmitter may be configured to buffer the encoded video sequences created by the entropy encoder 214 and prepare them for transmission over a communication channel 218, which may be a hardware / software link to a storage device that will store the encoded video data. The transmitter may be configured to merge the encoded video data from the source coder 202 with other data to be transmitted, such as encoded audio data and / or auxiliary data streams (source not shown). In some embodiments, the transmitter may transmit additional data along with the encoded video. The source coder 202 may include such data as part of the encoded video sequence. The additional data may include time / space / SNR enhancement layers, other forms of redundant data such as redundant pictures and slices, Supplemental Enhancement Information (SEI) messages, Visual Usability Information (VUI) parameter set fragments, and the like.

[0037] The controller 204 can manage the operation of the encoder component 106. During encoding, the controller 204 can assign each encoded picture to a type of encoded picture that may affect the encoding technique applied to each picture. For example, a picture may be assigned as an intra-picture (I-picture), a predictive picture (P-picture), or a bidirectional predictive picture (B-picture). An intra-picture can be encoded and decoded without using other frames in the sequence as a source for prediction. Some video codecs allow different types of intra-pictures, including, for example, Independent Decoder Refresh (IDR) pictures. Those skilled in the art will be familiar with these variations of I-pictures, as well as their respective uses and characteristics, and therefore they will not be repeated here. A predictive picture can be encoded and decoded using intra-prediction or inter-prediction, which uses at most one motion vector and a reference index to predict the sample value of each block. A bidirectional predictive picture can be encoded and decoded using intra-prediction or inter-prediction, which uses at most two motion vectors and reference indices to predict the sample value of each block. Similarly, multiple predictive pictures can use more than two reference pictures and associated metadata for the reconstruction of a single block.

[0038] A source picture can generally be spatially subdivided into multiple sample blocks (for example, blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and encoded block by block. Blocks can be predictively encoded by referencing other (already encoded) blocks, as determined by the encoding assignment applied to each picture in the block. For example, a block of picture I may be encoded unpredictably or predictively by referencing already encoded blocks of the same picture (spatial prediction or intra-prediction). A pixel block of picture P may be encoded unpredictably, via spatial prediction, or via temporal prediction by referencing one previously encoded reference picture. A block of picture B may be encoded unpredictably, via spatial prediction, or via temporal prediction by referencing one or two previously encoded reference pictures.

[0039] Video can be captured as multiple source pictures (video pictures) in a time series. Intra-picture prediction (often abbreviated as intra-prediction) utilizes spatial correlations within a given picture, while inter-picture prediction utilizes (temporal or other) correlations between pictures. In one example, a particular picture being encoded / decoded, called the current picture, is partitioned into blocks. When a block in the current picture is analogous to a reference block in a previously encoded and still-buffering reference picture in the video, the block in the current picture can be encoded by a vector called a motion vector. The motion vector points to a reference block in the reference picture and may have a third dimension to identify the reference picture if multiple reference pictures are used.

[0040] The encoder component 106 may perform encoding operations in accordance with a given video encoding technique or standard, such as any of those described herein. In these operations, the encoder component 106 may perform various compression operations, including predictive encoding operations that utilize temporal and spatial redundancy in the input video sequence. Thus, the encoded video data may conform to the syntax specified by the video encoding technique or standard used.

[0041] Figure 2B is a block diagram showing exemplary elements of a decoder component 122 according to several embodiments. The decoder component 122 in Figure 2B is coupled to channel 218 and display 124. In some embodiments, the decoder component 122 includes a transmitter coupled to a loop filter 256 and configured to transmit data to display 124 (for example, via a wired or wireless connection).

[0042] In some embodiments, the decoder component 122 includes a receiver coupled to channel 218 and configured to receive data from channel 218 (for example, via a wired or wireless connection). The receiver may be configured to receive one or more encoded video sequences to be decoded by the decoder component 122. In some embodiments, the decoding of each encoded video sequence is independent of other encoded video sequences. Each encoded video sequence may be received from channel 218, and channel 210 may be a hardware / software link to a storage device that stores encoded video data. The receiver may receive encoded video data together with other data, such as encoded audio data and / or auxiliary data streams that may be transferred to their respective use entities (not shown). The receiver may isolate the encoded video sequence from such other data. In some embodiments, the receiver receives additional (redundant) data along with the encoded video. The additional data may be included as part of one or more encoded video sequences. Additional data may be used by decoder component 122 to decode the data and / or to more accurately reconstruct the original video data. The additional data may take the form of, for example, temporal, spatial, or SNR enhancement layers, redundant slices, redundant pictures, forward error correction codes, etc.

[0043] According to some embodiments, the decoder component 122 includes a buffer memory 252, a parser 254 (sometimes called an entropy decoder), a scaler / inverse unit 258, an intra-picture prediction unit 262, a motion compensation prediction unit 260, an aggregator 268, a loop filter unit 256, a reference picture memory 266, and a current picture memory 264. In some embodiments, the decoder component 122 is implemented as an integrated circuit, a series of integrated circuits, and / or other electronic circuits. The decoder component 122 may be implemented at least partially in software.

[0044] Buffer memory 252 is coupled between channel 218 and parser 254 (for example, to address network jitter). In some embodiments, buffer memory 252 is separate from decoder component 122. In some embodiments, a separate buffer memory is provided between the output of channel 218 and decoder component 122. In some embodiments, in addition to buffer memory 252 within decoder component 122 (configured, for example, to handle playout timing), a separate buffer memory is provided outside decoder component 122 (for example, to address network jitter). When receiving data from a storage / transfer device with sufficient bandwidth and controllability, or from an isochronous network, buffer memory 252 may not be necessary or may be small. For use over best-effort packet networks such as the Internet, buffer memory 252 may be required, may be relatively large, and / or adaptively sized, and may be implemented at least partially in an operating system or similar element outside decoder component 122.

[0045] The parser 254 is configured to reconstruct symbols 270 from the encoded video sequence. The symbols may include, for example, information used to manage the operation of the decoder component 122, and / or information for controlling rendering devices such as the display 124. The control information for rendering devices may be in the form of, for example, Supplemental Improvement Information (SEI) messages or video usability information (VUI) parameter set fragments (not shown). The parser 254 parses (entropy decodes) the encoded video sequence. The encoding of the encoded video sequence may follow video coding techniques or standards and may follow principles well known to those skilled in the art, including variable-length coding, Huffman coding, context-sensitive or non-context-sensitive arithmetic coding, etc. The parser 254 may extract from the encoded video sequence a set of subgroup parameters for at least one of the subgroups of pixels in the video decoder, based on at least one parameter corresponding to a group. Subgroups can include picture groups (GOP), pictures, tiles, slices, macroblocks, coding units (CU), blocks, transformation units (TU), and prediction units (PU). Parser 254 can also extract information such as transformation coefficients, quantizer parameter values, and motion vectors from the coded video sequence.

[0046] The reconstruction of symbol 270 can involve multiple different units, depending on the type of encoded video picture or part thereof (interpicture and intrapicture, interblock and intrablock, etc.) and other factors. Which units are involved and how they are involved may be controlled by subgroup control information parsed from the encoded video sequence by parser 254. The flow of such subgroup control information between parser 254 and the following multiple units is not illustrated for clarity.

[0047] The decoder component 122 can be conceptually subdivided into several functional units. In some implementations, these units can interact closely with each other and be at least partially integrated. However, for clarity, the conceptual subdivision of functional units is maintained in this paper. The scaler / inverse unit 258 receives quantized transformation coefficients, as well as control information (such as which transformation to use, block size, quantization factor, and / or quantization scaling matrix) from the parser 254 as symbols (singular or plural) 270. The scaler / inverse unit 258 can output a block containing sample values ​​that can be input to the aggregator 268.

[0048] In some cases, the output samples of the scaler / inverse unit 258 relate to intra-encoded blocks, i.e., blocks that do not use predictive information from previously reconstructed pictures, but can use predictive information from previously reconstructed portions of the current picture. Such predictive information may be provided by the intra-picture predictive unit 262. The intra-picture predictive unit 262 may generate blocks of the same size and shape as the block being reconstructed, using already reconstructed peripheral information taken from the current (partially reconstructed) picture from the current picture memory 264. The aggregator 268 may, sample by sample, add the predictive information generated by the intra-picture predictive unit 262 to the output sample information provided by the scaler / inverse unit 258.

[0049] In other cases, the output samples of the scaler / inverse unit 258 relate to intercoded and potentially motion-compensated blocks. In such cases, the motion-compensated prediction unit 260 can access the reference picture memory 266 to fetch samples to be used for prediction. After motion-compensating the fetched samples according to the symbol 270 relating to that block, these samples can be added by the aggregator 268 to the output of the scaler / inverse unit 258 (in this case, called residual samples or residual signals) to generate output sample information. The address in the reference picture memory 266 from which the motion-compensated prediction unit 260 fetches prediction samples may be controlled by a motion vector. The motion vector may be available to the motion-compensated prediction unit 260 in the form of a symbol 270 which may have, for example, X, Y, and reference picture components. Motion compensation may also include a motion vector prediction mechanism, which interpolates sample values ​​fetched from the reference picture memory 266, for example, when an accurate motion vector is used in sub-sample units. The output samples of the aggregator 268 can follow various loop filtering techniques in the loop filter unit 256. The in-loop filtering techniques that the video compression technique may include are controlled by parameters contained in the encoded video bitstream and made available to the loop filter unit 256 as symbols 270 from the parser 254, but can also respond to metadata obtained during decoding of earlier parts (in decoding order) of the encoded picture or encoded video sequence, and can also respond to previously reconstructed and loop-filtered sample values.

[0050] The output of the loop filter unit 256 may be a sample stream that is output to a rendering device such as the display 124, or it may be stored in the reference picture memory 266 for use in future picture-to-picture predictions.

[0051] Certain encoded pictures, once reconstructed, can be used as reference pictures for future predictions. Once an encoded picture is reconstructed and identified as a reference picture (for example, by parser 254), the current reference picture can become part of reference picture memory 266, and fresh current picture memory can be reallocated before initiating the reconstruction of subsequent encoded pictures.

[0052] The decoder component 122 can perform decoding operations according to a predetermined video compression technique that may be documented in a standard, such as one of the standards described herein. The encoded video sequence may conform to the syntax specified by the video compression technique or standard being used, in the sense that it conforms to the syntax of the video compression technique or standard, as specified in the video compression technique documentation or standard, particularly the profile documentation therein. Also, in order to conform to some video compression technique or standard, the complexity of the encoded video sequence may be within a range defined by the level of the video compression technique or standard. In some cases, the level may constrain the maximum picture size, maximum frame rate, maximum reconstruction sample rate (for example, measured in megasamples per second), maximum reference picture size, etc. The limitations set by the level may, in some cases, be further constrained through the Hypothetical Reference Decoder (HRD) specification and metadata for HRD buffer management that is signaled in the encoded video sequence.

[0053] Figure 3 is a block diagram showing a server system 112 according to several embodiments. The server system 112 includes a control circuit 302, one or more network interfaces 304, memory 314, a user interface 306, and one or more communication buses 312 for interconnecting these components. In some embodiments, the control circuit 302 includes one or more processors (e.g., a CPU, GPU, and / or DPU). In some embodiments, the control circuit includes a field-programmable gate array (FPGA), a hardware accelerator, and / or an integrated circuit (e.g., an application-specific integrated circuit).

[0054] The network interface 304 may be configured to interface with one or more communication networks (e.g., wireless, wireline, and / or optical networks). Communication networks may be local, wide-area, metropolitan, automotive, and industrial, real-time, latency-tolerant, etc. Examples of communication networks include local area networks such as Ethernet®, cellular networks including Wi-Fi, GSM®, 3G, 4G, 5G, LTE, etc., wired or wireless wide-area digital networks including cable TV, satellite TV, and terrestrial broadcast TV, and automotive and industrial networks including CANBus. Such communications may be one-way, receive-only (e.g., broadcast TV), transmit-only (e.g., CANbus to certain CANbus devices), or bidirectional (e.g., to other computer systems using local or wide-area digital networks). Such communications may include communications to one or more cloud computing networks.

[0055] The user interface 306 includes one or more output devices 308 and / or one or more input devices 310. The input devices 310 may include one or more of the following: a keyboard, mouse, trackpad, touchscreen, data glove, joystick, microphone, scanner, camera, etc. The output devices 308 may include one or more of the following: an audio output device (e.g., a speaker), a visual output device (e.g., a display or monitor), etc.

[0056] Memory 314 may include high-speed random-access memory (such as DRAM, SRAM, DDR RAM, and / or other random-access solid-state memory devices) and / or non-volatile memory (such as one or more magnetic storage devices, optical disk storage devices, flash memory devices, and / or other non-volatile solid-state storage devices). Memory 314 optionally includes one or more storage devices located away from the control circuit 302. Memory 314, or alternatively, the non-volatile solid-state memory devices within Memory 314, includes a non-temporary computer-readable storage medium. In some embodiments, Memory 314, or the non-temporary computer-readable storage medium of Memory 314, stores the following programs, modules, instructions, and data structures, or subsets or supersets thereof: ● An operating system that handles various basic system services and includes procedures for performing hardware-dependent tasks.316 ● A network communication module 318 used to connect the server system 112 to other computing devices via one or more network interfaces 304 (for example, via wired and / or wireless connections); ● Encoding module 320 for performing various functions related to encoding and / or decoding data such as video data. In some embodiments, the encoding module 320 is an instance of the coder component 114. The encoding module 320 is, but is not limited to: Decode module 322 for performing various functions related to decoding encoded data, such as those previously described regarding decoder component 122; ○ Encoding module 340 for performing various functions related to data encoding, such as those previously described regarding encoder component 106. Includes one or more of the following; ● A picture memory 352 for storing pictures and picture data, for use with, for example, the encoding module 320. In some embodiments, the picture memory 352 includes one or more of the reference picture memory 208, buffer memory 252, current picture memory 264, and reference picture memory 266.

[0057] In some embodiments, the decode module 322 includes a parse module 324 (configured to perform various functions previously described with respect to, for example, the parser 254), a transform module 326 (configured to perform various functions previously described with respect to, for example, the scalar / inverse transform unit 258), a predictive module 328 (configured to perform various functions previously described with respect to, for example, the motion compensation predictive unit 260 and / or the in-picture predictive unit 262), and a filter module 330 (configured to perform various functions previously described with respect to, for example, the loop filter 256).

[0058] In some embodiments, the encoding module 340 includes a code module 342 (configured to perform various functions previously described with respect to, for example, the source coder 202 and / or the encoding engine 212) and a prediction module 344 (configured to perform various functions previously described with respect to, for example, the predictor 206). In some embodiments, the decoding module 322 and / or the encoding module 340 include a subset of the modules shown in Figure 3. For example, a shared prediction module is used by both the decoding module 322 and the encoding module 340.

[0059] Each of the identified modules stored in memory 314 corresponds to a set of instructions for performing the functions described herein. The modules identified above (e.g., sets of instructions) do not need to be implemented as separate software programs, procedures, or modules; therefore, various subsets of these modules may be combined or otherwise rearranged in various embodiments. For example, the encoding module 320 may optionally not include separate decoding and encoding modules, but rather use the same set of modules to perform both sets of functions. In some embodiments, memory 314 stores a subset of the modules and data structures identified above. In some embodiments, memory 314 stores additional modules and data structures not described above.

[0060] Figure 3 shows server system 112 in several embodiments, but Figure 3 is not a schematic diagram of the structure of the embodiments described herein, but is intended as a functional description of the various features that may be present in one or more server systems. In practice, items shown separately may be combined, and some items may be separated. For example, some items shown separately in Figure 3 may be implemented on a single server, and a single item may be implemented by one or more servers. The actual number of servers used to implement server system 112, and how functions are allocated among them, will vary from implementation to implementation and optionally depend in part on the amount of data traffic the server system handles during peak usage periods and average usage periods.

[0061] Examples of coding techniques The coding processes and techniques described below may be performed in the devices and systems mentioned above (e.g., source device 102, server system 112, and / or electronic device 120). Hereafter, the terms “conversion coefficient level” and “quantization index” refer to the magnitude of the signal-transmitted (or parsed) conversion coefficient value after quantization (and before dequantization).

[0062] As stated above, this disclosure describes an improvement over dependent scalar quantization. Compared to conventional independent scalar quantization (e.g., as used in HEVC), acceptable reconstruction vectors for dependent scalar quantization can be more densely packed in an N-dimensional vector space, where N represents the number of transformation coefficients in a transformation block. In this way, the mean distortion between the input vector and the nearest reconstruction vector is reduced for a given average number of acceptable reconstruction vectors per N-dimensional unit volume. The dependent scalar quantization approach can be realized by (a) defining two scalar quantizers with different reconstruction levels, and (b) defining a process for switching between the two scalar quantizers.

[0063] Figure 4A shows exemplary scalar quantizers represented by Q0 and Q1 according to several embodiments. As shown in Figure 4A, the position of the available reconstruction levels is uniquely specified by the quantization step size Δ. The scalar quantizer used (Q0 or Q1) does not necessarily have to be explicitly signaled in the bitstream. Instead, the quantizer used for the current transformation coefficient may be determined by the parity of the transformation coefficient level preceding the current transformation coefficient in the encoding / reconstruction order.

[0064] Figures 4B–4D show exemplary state transitions for quantizers according to several embodiments. As shown in Figures 4B and 4C, switching between two scalar quantizers (Q0 and Q1) can be achieved via a state machine having four states. In this example, the states can take four distinct values: 0, 1, 2, and 3. As shown in Figure 4B, states 0 and 1 may correspond to Q0, and states 2 and 3 may correspond to Q1. The state is uniquely determined by the parity of the transformation coefficient level preceding the current transformation coefficient in the encoding / reconstruction order.

[0065] At the start of inverse quantization for a transformation block, the state may be set to equal to 0. The transformation coefficients may then be reconstructed in scan order (for example, in the same order as they are entropy-decoded). In this example, after the current transformation coefficients are reconstructed, the state is updated as shown in Figures 4B and 4C, where k represents the value of the transformation coefficient level. The state transition table may be expressed as shown in Equation 1 below.

[0066] QStateTransTable[][]={{0,2},{2,0},{1,3},{3,1}} Equation 1 - Exemplary state transition table

[0067] The mapping of the transmitted transformation coefficient levels to intermediate quantization indices (for example, by the residual_coding() syntactic structure) may be derived as shown in Equation 2 below.

[0068] TransCoeffLevel[x0][y0][cIdx][xC][yC]= (2*AbsLevel[xC][yC]-(QState>1?1:0))*(1-2*coeff_sign_flag[n]) Equation 2 – Exemplary derivation of transformation coefficient levels

[0069] Therefore, states {0,1} use the Q0 quantizer (even multiples of the step size), and states {2,3} use the Q1 quantizer (odd multiples of the step size).

[0070] The coding efficiency of trellis coding quantization can be increased by increasing the number of quantization states (at the cost of higher encoder complexity, for example). In some embodiments, dependent quantization includes four quantization states (as shown in Figures 4B and 4C). In some embodiments, dependent quantization includes eight quantization states. Figure 4D shows an exemplary state transition table for supporting both variations of dependent quantization (4-state and 8-state) in a unified framework. In Figure 4D, the dashed rectangles correspond to variations of the 4-quantization state, and the rest of the table corresponds to variations of the 8-quantization state.

[0071] The unified state transition table may also be expressed as shown in Equation 3 below.

[0072] QStateTransTable[][]={{0,1},{2,3},{1,0},{3,2},{4,6},{9,11},{5,7},{10,8},{6,4},{8,10},{7,5},{11,9}} Equation 3 - Example of a unified state transition table

[0073] In Equation 3, the first four states represent a state transition table for a dependent quantization with four states, and the remaining eight states represent a state transition table for a dependent quantization with eight states. In some embodiments, the initial state for a transformation block depends on a selected variation of the dependent quantization. The selection can be made using picture-level flags such as QState in Table 1 below.

[0074] [Table 1]

[0075] The mapping of the transmitted transformation coefficient levels to the intermediate quantization index can be expressed as shown in Equation 4 below.

[0076] TransCoeffLevel[x0][y0][cIdx][xC][yC]=(2*AbsLevel[xC][yC]-(QState & 1))*(1-2*coeff_sign_flag[n]) Equation 4 – Derivation of exemplary transformation coefficient levels

[0077] In this example, states {0,2,4,6,8,10} use the Q0 quantizer (even multiples of the step size), and states {1,3,5,7,9,11} use the Q1 quantizer (odd multiples of the step size).

[0078] Some embodiments involve a latent-shift algorithm in end-to-end compression. The end-to-end compression model can be viewed as an unconstrained multiple-objective optimization problem where the solution should satisfy the Karush-Kuhn-Tucker (KKT) condition. According to the KKT condition, the sum of the gradients with respect to each objective should be zero. Since there are two objectives (e.g., rate and distortion), the gradient with respect to distortion and the gradient with respect to rate should cancel each other out (e.g., they point in opposite directions). Thus, by simply changing the direction, one can be used in place of the other. Therefore, in some embodiments, the gradient of a simple rate prediction is used to shift the transformation coefficient away from zero in order to reduce the quantization error.

[0079] A simple proxy for rate prediction, where each quantization index is independent and the rate increases with the absolute value of the coefficient, is shown in Equation 5 below.

[0080]

number

[0081] The gradient of the rate in Equation 5 is y i If =0, then it is 0, and y i If >0, then A, y i Since the value is -A when <0, the applicable offset can be defined as shown in Equation 6 below.

[0082]

number

[0083] Equation 6 applies some offset to the quantized index that moves it away from the zero point. The amount of the offset is ρ. * ∈R + This can be fine-tuned on a validation set and used as a general value for all videos.

[0084] Since the quantization index should be an integer, the original reconstructed coefficient is Q -1 (y i ) is calculated, and the reconstructed coefficient when the quantization index is shifted by one quantization index in the reverse direction from 0 is Q -1 (y' i ) is calculated. Here, y' i =y i +(y i >0? 1:-1). Next, the weighted sum of Q -1 (y i ) and Q -1 (y' i ) can be used as the reconstructed coefficient, as shown in Equation 7 below.

[0085]

Equation

[0086] In some embodiments, the shift for the reconstructed coefficient is only performed when the quantization index is non-zero. Thus, some embodiments use the weighted sum as described in Equation 7. Here, y' i is calculated by shifting y i (e.g., the transmitted quantization index or level) by 1 in the opposite direction centered at 0. However, this may not be optimal as it does not take into account the current state of the dependent quantizer. Further, Equation 7 does not specify which quantizer (e.g., Q0 or Q1) to use in any given instance. The non-optimality is shown by the following two examples regarding the dependent quantizer shown in FIG. 4A having four states, although similar examples can also be made for a dependent quantizer having eight states.

[0087] As an example, suppose the signaled conversion coefficient level (or quantization index) is 3, and the decoder is currently in state {2}. According to Figures 4B and 4C, we can infer that the decoder should use the Q1 quantizer to obtain the reconstructed value 5Δ, as indicated by the dashed rectangle 502 in Figure 5A. In this example, the state is updated to {3} according to the table in Figure 4B. The actual value of the conversion coefficient may be within the range of ±Δ / 2 from 5Δ, for example, the range of +Δ / 2 has a higher probability.

[0088] When formula 7 is used, y i This corresponds to quantization index 3, Q -1 (y i ) corresponds to Q1(3). This gives the reconstructed value 5Δ, as indicated by the dashed square 502. Shifted quantization index y' i The operation of shifting by -1 corresponds to quantization index 4, Q -1 (y' i ) can be either Q1(4) or Q0(4), respectively, with reconstructed values ​​of 7Δ and 8Δ. The final reconstructed value can then be derived using Equation 7. Using Q1(4) or Q0(4) in Equation 7 is not optimal because the actual values ​​of the transformation coefficients are in the range of 5Δ to ±Δ / 2 (the range of +Δ / 2 has a higher probability). In this example, it would be more optimal to use Q0(3), which has a reconstructed value of 6Δ.

[0089] As another example, suppose the signal-transmitted conversion coefficient level (or quantization index) is 3, and the decoder is currently in state {1}. According to Figures 4B and 4C, we can infer that the decoder should use the Q0 quantizer to obtain the reconfigured value of 6Δ, as indicated by the dashed rectangle 512 in Figure 5B. In this example, the state is updated to {0} according to the table in Figure 4B.

[0090] When formula 7 is used, y i This corresponds to quantization index 3, Q -1 (yi ) corresponds to Q0(3). This gives the reconstructed value of 6Δ. Shifted quantization index y' i This corresponds to quantization index 4, Q -1 (y' i ) can be either Q1(4) or Q0(4), respectively, with reconstructed values ​​of 7Δ and 8Δ. The final reconstructed value can then be derived using Equation 7. Using Q0(4) in Equation 7 is not optimal because the actual value of the transformation coefficient is in the range of 6Δ to ±Δ / 2 (the range of +Δ / 2 has a higher probability). In this example, it would be more optimal to use Q1(3), which has a reconstructed value of 7Δ.

[0091] From the above example, it can be seen that for any signal-transmitted transformation coefficient level (or quantization index), the quantization shift should take into account the current state of the dependent quantizer to determine the optimal reconstructed value.

[0092] Figure 6 is a flowchart illustrating a method 600 for decoding video according to several embodiments. The method 600 may be performed in a computing system (for example, a server system 112, a source device 102, or an electronic device 120) having a control circuit and a memory storing instructions for execution by the control circuit. In some embodiments, the method 600 is performed by executing instructions stored in the memory of the computing system (for example, memory 314).

[0093] The system receives a video bitstream containing multiple blocks and multiple quantization coefficients (602). The system derives a dequantized transformation coefficient for the first of the multiple quantization coefficients (604). The system obtains an adjusted transformation value by applying an offset value to the dequantized transformation coefficient (606). The adjusted transformation value is based on the quantization coefficient level and the current state of dequantization. The system reconstructs the first block using the adjusted transformation value (608). For example, the reconstructed transformation coefficient value can be shifted using the current state information of the dependent quantizer. In this way, the offset value applied to the dequantized transformation coefficient level depends not only on the quantized transformation coefficient value but also on the current state of dequantization / quantization.

[0094] In some embodiments, when using a Q1 quantizer where the current state has an odd multiple of the step size as the reconstructed value, Equation 7 is modified as shown in Equation 8 below.

[0095]

number

[0096] In some embodiments, the values ​​of a and b in Equation 8 depend on the bit depth. In some embodiments, the sum of the values ​​of a and b is a power of 2, and the multiplication in Equation 8 can be replaced by a right shift operation as shown in Equation 9 below.

[0097]

number

[0098] In some embodiments, when using a Q0 quantizer where the current state has an even multiple of the step size as the reconstructed value, Equation 7 is modified as shown in Equation 10 below.

[0099]

number

[0100] In some embodiments, the values ​​of a and b in Equation 10 depend on the bit depth (of the codec operation). In some embodiments, the sum of the values ​​of a and b is a power of 2, and the multiplication in Equation 10 can be replaced by a right shift operation, as shown in Equation 11 below.

[0101]

number

[0102] In some embodiments, if the current state uses a Q1 quantizer, no shift is performed on the reconstructed transformation coefficient values. In some embodiments, if the current state uses a Q0 quantizer, no shift is performed on the reconstructed transformation coefficient values. In some embodiments, if the current state uses a Q1 quantizer with an odd multiple of the step size as the reconstructed value, Equation 7 is modified according to Equation 12 below.

[0103]

number

[0104] In some embodiments, the values ​​of a, b, and c in Equation 12 depend on the bit depth (of the codec operation).

[0105] In some embodiments, when using a Q0 quantizer where the current state has an even multiple of the step size as the reconstructed value, Equation 7 is modified according to Equation 13 below.

[0106]

number

[0107] In some embodiments, the values ​​of a, b, and c in Equation 13 depend on the bit depth (of the codec operation). In some embodiments, the values ​​of a, b, and / or c are signaled by a high-level syntax. In some embodiments, the values ​​of a and / or b depend on coded information (e.g., information known to both the encoder and the decoder). In some embodiments, a subset of a, b, and c is signaled, and a different subset is derived based on the coded information. In some embodiments, the values ​​of a and / or b depend on the quantization step size granularity supported by the quantizer.

[0108] In some embodiments, rate forecasts (e.g., shown in Equation 5) are modeled as quadratic equations, as shown in Equation 14 below.

[0109]

number

[0110] In such embodiments, Equation 6 is modified according to Equation 15 below.

[0111]

number

[0112] Equation 15 applies some offset to the quantization index that moves it away from the 0 point, where the offset depends on the magnitude of the quantization index. The amount of the offset is ρ(|y i |) * ∈R + This can be fine-tuned in a validation set and used as a general value for all videos.

[0113] In such embodiments, Equation 7 is modified for the Q1 quantizer according to the following Equation 16.

[0114]

number

[0115] For the Q0 quantizer, equation 7 is modified according to equation 17.

[0116]

number

[0117] In some embodiments, the values ​​of a and / or b depend on the magnitude of the quantization index. In some embodiments, different values ​​for a and / or b are selected for quantization indices that fall within different ranges. In some embodiments, a lookup table is used to make the selection for a and / or b.

[0118] Figure 6 shows several logical stages in a specific order, but the order-independent stages may be rearranged, and the other stages may be combined or separated. Other rearrangements or groupings not specifically mentioned will be obvious to those skilled in the art. Thus, the orders and groupings presented herein are not exhaustive. Furthermore, it should be recognized that the stages can be implemented in hardware, firmware, software, or any combination thereof.

[0119] Here, we refer to some exemplary embodiments.

[0120] (A1) In some aspects, several embodiments include a method for video decoding (e.g., Method 600). In some embodiments, the method is performed in a computing system having memory and one or more processors. The method includes (i) receiving a video bitstream (e.g., an encoded video sequence) containing a plurality of blocks and a plurality of quantization transformation coefficients; (ii) deriving dequantized transformation coefficients for a first quantization transformation coefficient; (iii) obtaining adjusted transformation values ​​by applying offset values ​​to the dequantized transformation coefficients, wherein the adjusted transformation values ​​are based on the quantization transformation coefficient levels and the current state of dequantization; and (iv) reconstructing the first block using the adjusted transformation values. For example, current state information of a dependent quantizer is used to shift the reconstructed transformation coefficient values. Thus, the offset values ​​applied to the dequantized transformation coefficient levels depend not only on the quantized transformation coefficient values ​​but also on the current state of dequantization.

[0121] (A2) In some embodiments of A1, if the current state of dequantization corresponds to a first quantizer, the adjusted transformed value is derived using a weighted sum operation on the two states of the first quantizer. For example, if the current state uses a Q1 quantizer having an odd multiple of the step size as the reconstructed value, the adjusted transformed value may be derived using Equation 8 above. In some embodiments, the adjusted transformed value is derived using a weighted sum operation on the two states of the first quantizer, according to the determination that the current state of dequantization corresponds to a first quantizer.

[0122] (A3) In some embodiments of A2, one or more weights for the weighted sum are based on the bit depth of the video bitstream. For example, the values ​​of a and b in Equation 8 may depend on the bit depth.

[0123] (A4) In some embodiments of A2 or A3, one or more weights for a weighted sum are signaled in the video bitstream via high-level syntax. For example, the values ​​of a and b (and optionally c) in equations 8-13 and 16 can be signaled by one or more high-level syntax.

[0124] (A5) In any embodiment of A2 to A4, one or more weights for the weighted sum are derived according to encoded information. For example, the values ​​of a and b (and optionally c) may depend on encoded information known to both the encoder and decoder components.

[0125] (A6) In some embodiments of A5, the encoded information includes quantization step size granularity. For example, the values ​​of a and b (and optionally c) may depend on the quantization step size granularity supported by the quantizer.

[0126] (A7) In some embodiments of A2 to A6, the weighted sum operation does not include division. For example, the sum of the values ​​of a and b may be a power of 2, and the weighted sum operation may correspond to equation 9 above. For example, all division operations may be replaced with right shift operations.

[0127] (A8) In some embodiments of A2 to A7, if the current state of dequantization corresponds to a second quantizer, the adjusted transformed value is derived using a second weighted sum operation having the respective states from the first and second quantizers. For example, if the current state is a Q0 quantizer with an even multiple of the step size, the adjusted transformed value may be derived using equation 10 above. In some embodiments, the values ​​of a and b in equation 10 depend on the bit depth. In some embodiments, the sum of the values ​​of a and b is a power of 2, and the weighted sum operation corresponds to equation 11 above. For example, all division operations may be replaced with right shift operations. In some embodiments, according to the determination that the current state of dequantization corresponds to a second quantizer, the adjusted transformed value is derived using a second weighted sum operation having the respective states from the first and second quantizers.

[0128] In some embodiments of (A9)A8, the weighted sum operation includes a weighted sum of two states of a first quantizer and at least one state of a second quantizer. For example, if the current state uses a Q1 quantizer having an odd multiple of the step size as the reconstructed value, the adjusted transformed value may be derived using Equation 12 above. In this example, the values ​​of a, b, and c may depend on the bit depth of the codec operation.

[0129] In some embodiments of (A10)A8, the second weighted sum operation includes a weighted sum of two states of the second quantizer and at least one state of the first quantizer. For example, if the current state uses a Q0 quantizer having an even multiple of the step size as the reconstructed value, the adjusted transformed value can be derived using Equation 13 above. In this example, the values ​​of a, b, and c may depend on the bit depth of the codec operation.

[0130] (A11) In any embodiment of A1 to A10, (i) if the current state of dequantization corresponds to a first quantizer, the adjusted transformation value is derived using a weighted sum operation; (ii) if the current state of dequantization corresponds to a second quantizer, the adjusted transformation value is set to be equal to the dequantized transformation coefficient. For example, if the current state uses the Q1 quantizer, no shift is performed on the reconstructed transformation coefficient value. As another example, if the current state uses the Q0 quantizer, no shift is performed on the reconstructed transformation coefficient value. In some embodiments, the adjusted transformation value is derived using a weighted sum operation according to the decision that the current state of dequantization corresponds to a first quantizer. In some embodiments, the adjusted transformation value is set to be equal to the dequantized transformation coefficient according to the decision that the current state of dequantization corresponds to a second quantizer.

[0131] (A12) In any embodiment of A1 to A11, the offset value depends on the magnitude of the quantized transformation coefficient level. For example, the offset value may depend on the magnitude of the quantization index. The amount of the offset may be a universal value for all videos (for example, it may be fine-tuned in the validation set and used as a universal value for all videos).

[0132] (A13) In some embodiments of A12, the adjusted transformed value is derived using a weighted sum operation of two or more quantization states, where one or more weights for the weighted sum operation depend on the magnitude of the quantized transformed coefficient levels. For example, the adjusted transformed value may be derived using equations 16 or 17 above. In this example, the values ​​of a and b depend on the magnitude of the quantization index.

[0133] (A14) In some embodiments of A13, one or more weights are obtained from a lookup table according to the quantized transformation coefficient levels. For example, different values ​​for a and b can be selected for quantized indices that fall into different ranges. As an example, a lookup table may be used to make such selections.

[0134] In another aspect, some embodiments include a computing system (e.g., server system 112) including a control circuit (e.g., control circuit 302) and memory coupled to the control circuit (e.g., memory 314), the memory storing one or more instruction sets configured to be executed by the control circuit, the one or more instruction sets including instructions for performing any of the methods described herein (e.g., method 600 and A1 to A14 above). In yet another aspect, some embodiments include a non-temporary computer-readable storage medium storing one or more instruction sets for execution by the control circuit of the computing system, the one or more instruction sets including instructions for performing any of the methods described herein (e.g., method 600 and A1 to A14 above).

[0135] Unless otherwise specified, any syntactic element described herein may be high-level syntax (HLS). As used herein, HLS is transmitted at a level higher than the block level. For example, HLS may correspond to the sequence level, frame level, slice level, or tile level. As another example, HLS elements may be transmitted in video parameter sets (VPS), sequence parameter sets (SPS), picture parameter sets (PPS), adaptive parameter sets (APS), slice headers, picture headers, tile headers, and / or CTU headers.

[0136] In this specification, various elements may be described using terms such as “first,” “second,” etc., but it will be understood that these elements should not be limited by these terms. These terms are used solely to distinguish one element from another. The terms used herein are for the purpose of describing only specific embodiments and are not intended to limit the scope of the claims. Where used in the description of embodiments and in the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural form unless the context clearly indicates otherwise. It will also be understood that the terms “and / or” as used herein refer to and encompass any and all possible combinations of one or more of the enumerated items in question. Where used herein, the terms “have” and / or “include” specify the presence of the described features, integers, steps, actions, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, actions, elements, components, and / or groups thereof. Where used herein, N refers to a variable number. Unless otherwise explicitly stated, different instances of N may refer to the same number (for example, the same integer such as the number 2) or different numbers.

[0137] As used herein, the term "if..." may be interpreted, depending on the context, as meaning "when" or "on the occasion" the stated antecedent is true, or "in response to the determination that...", or "according to the determination that...", or "in response to the detection that...". Similarly, the phrase "[if] it is determined that the stated antecedent is true", or "[if] the stated antecedent is true", or "[when] the stated antecedent is true", may be interpreted, depending on the context, as meaning "when" or "in response to the determination that" the stated antecedent is true, or "according to the determination that", or "when" or "in response to the detection".

[0138] The above description has been illustrated with reference to specific embodiments for illustrative purposes. However, the above illustrative discussion is not intended to be exhaustive or to limit the claims to the exact form disclosed. In light of the above teachings, many modifications and variations are possible. The embodiments have been selected and illustrated to best illustrate the operating principle and practical application, thereby enabling those skilled in the art to implement them.

Claims

1. A video decoding method performed by a computer system having memory and one or more processors, wherein the method is: The process involves receiving a video bitstream containing multiple blocks and multiple quantized conversion coefficients; With respect to the first quantized transformation coefficient among the plurality of quantized transformation coefficients, the step is to derive the dequantized transformation coefficient; A step of obtaining an adjusted transformed value by applying an offset value to the dequantized transformed coefficient, wherein the adjusted transformed value is based on the quantized transformed coefficient level and the current state of dequantization; The process includes the step of reconstructing a first block using the adjusted conversion values, method.

2. The method according to claim 1, wherein, when the current state of dequantization corresponds to a first quantizer, the adjusted transformation value is derived using a weighted sum operation on two states of the first quantizer.

3. The method according to claim 2, wherein one or more weights for the weighted sum operation are based on the bit depth for the video bitstream.

4. The method according to claim 2, wherein one or more weights for the weighted sum operation are signaled in the video bitstream via high-level syntax.

5. The method according to claim 2, wherein one or more weights for the weighted sum operation are derived according to encoded information.

6. The method according to claim 5, wherein the encoded information includes quantization step size granularity.

7. The method according to claim 2, wherein the weighted sum operation does not include a division operation.

8. The method according to claim 2, wherein, when the current state of dequantization corresponds to a second quantizer, the adjusted transformed value is derived using a second weighted sum operation having the states from the first quantizer and the second quantizer, respectively.

9. The method according to claim 8, wherein the weighted sum operation includes a weighted sum of the two states of the first quantizer and at least one state of the second quantizer.

10. The method according to claim 8, wherein the second weighted sum operation includes a weighted sum of the two states of the second quantizer and at least one state of the first quantizer.

11. When the current state of dequantization corresponds to the first quantizer, the adjusted transformed value is derived using a weighted summation operation; When the current state of dequantization corresponds to the second quantizer, the adjusted transformation value is set to be equal to the dequantized transformation coefficient. The method according to claim 1.

12. The method according to claim 1, wherein the offset value depends on the magnitude of the quantized transformation coefficient level.

13. The method according to claim 12, wherein the adjusted transformation value is derived using a weighted sum operation of two or more quantized states, and one or more weights for the weighted sum operation depend on the magnitude of the quantized transformation coefficient levels.

14. The method according to claim 13, wherein the one or more weights are obtained from a lookup table according to the quantized transformation coefficient levels.

15. Control circuits and; memory and; One or more instruction sets stored in the memory and configured for execution by the control circuit A computing system having, wherein one or more instruction sets are: The control circuit is to perform the method described in any one of claims 1 to 14. Computing system.

16. A computer program for causing a computer to perform the method described in any one of claims 1 to 14.