CN116848842A - Dependency quantization and residual coding method - Google Patents

Dependency quantization and residual coding method Download PDF

Info

Publication number
CN116848842A
CN116848842A CN202280014333.2A CN202280014333A CN116848842A CN 116848842 A CN116848842 A CN 116848842A CN 202280014333 A CN202280014333 A CN 202280014333A CN 116848842 A CN116848842 A CN 116848842A
Authority
CN
China
Prior art keywords
quantization level
current
state
quantizer
zero
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280014333.2A
Other languages
Chinese (zh)
Inventor
余越
于浩平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Innopeak Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Innopeak Technology Inc filed Critical Innopeak Technology Inc
Publication of CN116848842A publication Critical patent/CN116848842A/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

New tools and techniques are provided for dependency quantization and residual coding. A system includes two or more quantizers, and a decoder. The decoder may be configured to obtain a current quantization level of a block of video data from the encoded bitstream; and determining the selected quantizer to dequantize the current quantization level. The decoder may select the first quantizer as the selected quantizer if the current quantization level is a first non-zero quantization level of the block in decoding scan order. If the current quantization level is not the first non-zero quantization level of the block in the decoding scan order, one of the first and second quantizers is selected as the selected quantizer based on a current state of the current quantization level. The decoder may dequantize the current quantization level and reconstruct a block using the current dequantization element.

Description

Dependency quantization and residual coding method
Copyright statement
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the patent and trademark office patent file or records, but otherwise reserves all copyright rights whatsoever.
Technical Field
The present invention relates generally to methods, systems, and apparatus for multimedia encoding and decoding.
Background
Dependency quantization is a technique for video coding to reduce the dynamic range of a video signal so that less information is used to represent the video signal. Quantization generally involves dividing by a quantization step size and subsequent rounding, while inverse quantization involves multiplying by the quantization step size. Such quantization processing is also called scalar quantization. Quantization of all coefficients within a block can be done independently and this quantization method is used in some existing video compression standards, such as h.264 and High Efficiency Video Coding (HEVC). To further improve the coding efficiency, a plurality of quantizers may be used. The determination of which quantizer to use for quantizing a given coefficient among a plurality of quantizers generally depends on previous information of the current coefficient in the encoding scan order. This quantization method is also referred to as dependency quantization, for example, for use in general video coding (VVC) or h.266. After quantization, the quantized value of the coefficient is referred to as a quantization level or simply "level". Residual coding is a technique for converting the quantization level of quantized nxm blocks into a coded bitstream.
Methods, systems, and devices are provided for improving existing dependency quantization schemes and inefficiency of syntax elements in residual coding.
Disclosure of Invention
Tools and techniques for dependency quantization and residual coding are provided.
According to an embodiment (email), a method of dependency quantization and residual coding is provided. The method may include obtaining a current quantization level of a block of video data from an encoded bitstream; determining a selected quantizer to dequantize the current quantization level, wherein the first quantizer is selected as the selected quantizer of the current quantization level if the current quantization level is a first non-zero quantization level for the block in decoding scan order, wherein one of the first quantizer and the second quantizer is selected as the selected quantizer based on a current state of the current quantization level if the current quantization level is not the first non-zero quantization level for the block in decoding scan order, wherein the current state is determined based on a previous state of a previous quantization level for the block in decoding scan order and a parity of a value of the previous quantization level. The method may further include dequantizing, by the selected quantizer, the current quantization level to produce a current dequantized element; and reconstructing, by a decoder, the block using the current dequantized elements in the decoding scan order.
According to another embodiment, there is provided a dependency quantization and residual coding apparatus, which may include: a processor; and a non-transitory computer readable medium in communication with the processor, the non-transitory computer readable medium having encoded thereon a set of instructions executable by the processor to perform a plurality of functions. For example, the set of instructions may be executable by a processor to obtain a current quantization level of a block of video data from an encoded bitstream; and determining the selected quantizer to dequantize the current quantization level. If the current quantization level is the first non-zero quantization level of the block in decoding scan order, the first quantizer is selected as the selected quantizer of the current quantization level. If the current quantization level is not the first non-zero quantization level of the block in decoding scan order, one of the first quantizer and the second quantizer is selected as the selected quantizer based on the current state of the current quantization level. The current state may be determined based on a previous state of a previous quantization level of the block in the decoding scan order and a parity of a value of the previous quantization level. The set of instructions is further executable by the processor to dequantize, by the selected quantizer, the current quantization level to produce a current dequantized element; and reconstructing, by a decoder, the block using the current dequantized elements in the decoding scan order.
According to yet another embodiment, a media encoding subsystem is provided. The media encoding subsystem may include two or more quantizers including: a first quantizer and a second quantizer; and a decoder. The decoder includes: a processor; and a non-transitory computer readable medium in communication with the processor, the non-transitory computer readable medium having encoded thereon a set of instructions executable by the processor to perform a plurality of functions. For example, the set of instructions may be executable by a processor to obtain a current quantization level of a block of video data from an encoded bitstream; and determining the selected quantizer to dequantize the current quantization level. If the current quantization level is the first non-zero quantization level of the block in decoding scan order, the first quantizer is selected as the selected quantizer of the current quantization level. If the current quantization level is not the first non-zero quantization level of the block in decoding scan order, one of the first quantizer and the second quantizer is selected as the selected quantizer based on the current state of the current quantization level. The current state may be determined based on a previous state of a previous quantization level of the block in the decoding scan order and a parity of a value of the previous quantization level. The set of instructions is further executable by the processor to dequantize, by the selected quantizer, the current quantization level to produce a current dequantized element; and reconstructing the block using the current dequantized elements in the decoding scan order.
These illustrative embodiments are mentioned not to constrain or limit the invention, but to provide examples to aid understanding. Other embodiments are discussed in the detailed description and further description is provided herein.
Drawings
A further understanding of the nature and advantages of certain embodiments may be realized by reference to the remaining portions of the specification and the attached drawings wherein like reference numerals are used to refer to like components. In some cases, one sub-label is associated with one reference numeral to denote one of multiple similar components. When referring to a reference numeral without specification to an existing sub-label, it is intended to refer to all such multiple similar components.
FIG. 1 is a schematic diagram of a Coding Tree Unit (CTU) according to various embodiments;
fig. 2 is a schematic diagram of one CTU divided into a plurality of Coding Units (CUs) according to various embodiments;
FIG. 3 is a schematic diagram of two sets of quantized level outputs generated in dependency quantization by different quantizers, according to various embodiments;
FIG. 4 is a schematic diagram of a state machine and corresponding state table for quantizer selection, in accordance with various embodiments;
FIG. 5 is a flow diagram of a method of encoding a video block using dependent quantization and residual coding, according to various embodiments;
FIG. 6 is a flow chart of a method of decoding encoded video data using dependent quantization and residual coding, in accordance with various embodiments;
FIG. 7 is a block diagram of a media encoding system according to various embodiments;
FIG. 8 is a block diagram of a media decoding system according to various embodiments; and
FIG. 9 is a schematic block diagram of a computer system for dependency quantization and residual coding in accordance with various embodiments.
Detailed Description
Various embodiments provide tools and techniques for dependency quantization and residual coding.
In some embodiments, a method of dependency quantization and residual coding is provided. Such a method may include obtaining a current quantization level of a block of video data from an encoded bitstream; determining a selected quantizer to dequantize the current quantization level, wherein the first quantizer is selected as the selected quantizer of the current quantization level if the current quantization level is a first non-zero quantization level of the block in decoding scan order, wherein one of the first quantizer and the second quantizer is selected as the selected quantizer based on a current state of the current quantization level, wherein the current state is determined based on a previous state of a previous quantization level of the block in decoding scan order and a parity of a value of the previous quantization level, if the current quantization level is not the first non-zero quantization level of the block in decoding scan order. The method may further include dequantizing, by the selected quantizer, the current quantization level to produce a current dequantized element; and reconstructing, by a decoder, the block using the current dequantized elements in the decoding scan order.
In some examples, the method may further include determining a subsequent state of a subsequent quantization level of the block based on the current state and a parity of the value of the current quantization level. In a further example, the first quantizer and the second quantizer may comprise one of: a zero quantizer and a non-zero quantizer, two zero quantizers, or two non-zero quantizers. In some examples, the encoded bitstream may represent respective quantization levels in binary symbols, wherein binary symbols that characterize whether the quantization levels are zero or non-zero values are encoded if a zero quantizer is used, wherein the binary symbols that characterize whether the quantization levels are zero or non-zero values are not encoded into the encoded bitstream if a non-zero quantizer is used.
In some examples, the method may further include, for the first non-zero quantization level, determining a scan order position of the first non-zero quantization level. In some examples, the method may further comprise determining the current state of the current quantization level in the decoding scan order, wherein determining the current state of the current quantization level comprises: generating a four-state model; and determining the current state of the current quantization level based at least in part on a previous state of the previous quantization level during dequantizing the previous quantization level, wherein the four-state model determines a state transition from the previous state to the current state. In a further example, the state transition may be a transition from one of a first state, a second state, a third state, or a fourth state to the same or different state, the same or different state being determined based on the parity of the values of the previous state and the previous quantization level. In a further example, the current dequantization element may be a dequantized approximation of one of a transform coefficient or a prediction residual of the block.
In some embodiments, a dependency quantization and residual coding apparatus is provided. The apparatus may include a processor; and a non-transitory computer readable medium in communication with the processor, the non-transitory computer readable medium having encoded thereon a set of instructions executable by the processor for performing a plurality of functions. For example, the set of instructions may be executable by a processor to obtain a current quantization level of a block of video data from an encoded bitstream and determine a selected quantizer to dequantize the current quantization level. If the current quantization level is a first non-zero quantization level of the block in decoding scan order, a first quantizer is selected as the selected quantizer of the current quantization level. If the current quantization level is not the first non-zero quantization level of the block in the decoding scan order, one of the first quantizer and the second quantizer is selected as the selected quantizer based on a current state of the current quantization level. The current state may be determined based on a previous state of a previous quantization level of the block in the decoding scan order and a parity of a value of the previous quantization level. The set of instructions is further executable by the processor to dequantize, by the selected quantizer, the current quantization level to produce a current dequantized element; and reconstructing, by a decoder, the block using the current dequantized elements in the decoding scan order.
In some examples, the set of instructions may also be executable by the processor to determine a subsequent state of a subsequent quantization level of the block further based on the current state and a parity of a value of the current quantization level. In some examples, the first quantizer and the second quantizer may comprise one of: a zero quantizer and a non-zero quantizer; two zero quantizers, or two non-zero quantizers.
In some examples, the set of instructions may be further executable by the processor to determine, for the first non-zero quantization level, a scan order position of the first non-zero quantization level. In some examples, the set of instructions is further executable by the processor to further determine the current state of the current quantization level in the decoding scan order, wherein determining the current state of the current quantization level comprises: generating a four-state model; and determining the current state of the current quantization level based at least in part on a previous state of the previous quantization level during dequantizing the previous quantization level, wherein the four-state model determines a state transition from the previous state to the current state. In a further example, the state transition is a transition from one of a first state, a second state, a third state, or a fourth state to the same or different state, the same or different state being determined based on the parity of the values of the previous state and the previous quantization level. In a further example, the current dequantization element is a dequantized approximation of one of a transform coefficient or a prediction residual of the block.
In some embodiments, a system of dependency quantization and residual coding is provided. The media encoding subsystem may include two or more quantizers including: a first quantizer and a second quantizer; and a decoder. The decoder may include: a processor; and a non-transitory computer readable medium in communication with the processor, the non-transitory computer readable medium having encoded thereon a set of instructions executable by the processor to perform a plurality of functions. For example, the set of instructions may be executable by a processor to obtain a current quantization level of a block of video data from an encoded bitstream; a selected quantizer is determined to dequantize the current quantization level. If the current quantization level is a first non-zero quantization level of the block in decoding scan order, a first quantizer is selected as the selected quantizer of the current quantization level. If the current quantization level is not the first non-zero quantization level of the block in the decoding scan order, one of the first quantizer and the second quantizer is selected as the selected quantizer based on a current state of the current quantization level. The current state may be determined based on a previous state of a previous quantization level of the block in the decoding scan order and a parity of a value of the previous quantization level. The set of instructions is further executable by the processor to dequantize, by the selected quantizer, the current quantization level to produce a current dequantized element; and reconstructing the block using the current dequantized elements in the decoding scan order.
In some examples, the set of instructions may also be executable by the processor to determine a subsequent state of a subsequent quantization level of the block further based on the current state and a parity of a value of the current quantization level. In some examples, the first quantizer and the second quantizer comprise one of: a zero quantizer and a non-zero quantizer, two zero quantizers, or two non-zero quantizers.
In some examples, the set of instructions is further executable by the processor to further determine the current state of the current quantization level in the decoding scan order, wherein determining the current state of the current quantization level comprises: generating a four-state model; and determining the current state of the current quantization level based at least in part on a previous state of the previous quantization level during dequantizing the previous quantization level, wherein the four-state model determines a state transition from the previous state to the current state. In a further example, the state transition is a transition from one of a first state, a second state, a third state, or a fourth state to the same or different state, the same or different state being determined based on the parity of the values of the previous state and the previous quantization level. In a further example, the current dequantization element may be a dequantized approximation of one of a transform coefficient or a prediction residual of the block.
In the following description, for purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the described embodiments. However, it will be apparent to one skilled in the art that other embodiments may be practiced without these details. In other instances, structures and devices are shown in block diagram form. While several embodiments are described herein, and while various features are ascribed to different embodiments, it should be understood that features described with respect to one embodiment may be combined with other embodiments as well. However, as such, any feature or features of any described embodiment should not be construed as being essential to every embodiment of the application since other embodiments of the application may omit such features.
Unless otherwise indicated, all numbers expressing quantities, dimensions, and so forth used herein are to be understood as being modified in all instances by the term "about". In the present application, the use of the singular includes the plural unless specifically stated otherwise, and the use of the terms "and," "and" or "means" and/or "unless stated otherwise. Furthermore, the use of the terms "include" and other words such as "comprise" and "comprising" are to be considered non-exclusive. In addition, terms such as "element" or "component" include both elements and components composed of one unit and elements and components composed of more than one unit unless specifically stated otherwise.
Various embodiments include, but are not limited to, methods, systems, apparatus and/or software products. By way of example only, a method may comprise one or more processes, any or all of which may be performed by a computer system. Accordingly, one embodiment may provide a computer system configured with instructions to perform one or more processes in accordance with the methods provided by the various other embodiments. Similarly, a computer program may comprise a set of instructions executable by a computer system (and/or a processor therein) to perform such operations. In many cases, such software programs are encoded on physical, tangible, and/or non-transitory computer readable media (e.g., optical media, magnetic media, and/or the like, to name a few examples).
The various embodiments described herein, which embody software products and computer-implemented methods, represent tangible, specific improvements to the art, including, but not limited to, multimedia coding and signal processing. In certain aspects, implementation of the various embodiments improves the functionality of the multimedia coding system/subsystem by implementing more efficient dependency quantization and residual coding techniques. It should be understood that the term "encoding" may be used to refer to encoding, decoding, or both.
To the extent that any abstract concepts exist in the various embodiments, those concepts may be implemented in the manner described herein by devices, software, systems and methods that involve novel functionality (e.g., steps or operations), such as using algorithms to select quantization modes in media coding systems and/or subsystems.
Fig. 1 is a schematic diagram of an image, such as a frame 100, divided into blocks called Coding Tree Units (CTUs). Accordingly, an image, such as a frame 100 of a video signal, may be divided into one or more CTUs105a-105n (collectively CTUs 105). According to various embodiments, an input image (e.g., frame 100) may be divided into one or more CTUs105a-105n during encoding. CTUs105 may each be a separate square block of pixels, such as shown in fig. 1. In some embodiments, a single CTU of CTUs105 may be a 128 x 128 block of pixels. In some embodiments, as shown, the frame 100 may be divided into CTUs 105. In some examples, as shown, one or more CTUs105a-105n are scanned in a raster scan order. In other embodiments, a different scan order, such as a z-scan order, may be used.
Each CTUs 105a-105n of the frame 100 may be partitioned into one or more CUs accordingly. For example, FIG. 2 is a schematic diagram of a CTU 200 divided into one or more Coding Units (CUs) 205a-205m (collectively CUs). In various embodiments, CUs 205 may be a subunit of CTUs that may be used for prediction as well as transformation in encoding operations. CUs 205a-205m may be arranged in a rectangle or square and may further be encoded without further division into prediction units or transform units. Each CU 205a-205m may be as large as its root CTU 200 and/or a subdivision of CTU 200. For example, CTUs may be divided into sub-divisions of up to 4 x 4 blocks (e.g., up to 16 total blocks). Thus, a CU 205, e.g., CU 205j,205i, may be the size of a single subdivision of CTU 200. CU 205 may also be smaller than root CTU 200 and/or the subdivision of CTU 200, as shown by CUs 205a-205h and 205k-205 l. In some embodiments, CUs a-205m may be encoded, for example, in a Z-scan order (in the order labeled 205a-205 m). It should be noted that the various CUs 205 CTUs 200 are shown in fig. 2, and that variations may be made to the partitioning of CTUs 200 according to various embodiments.
Fig. 3 is a schematic diagram of two sets of quantized level outputs 300 generated by different quantizers in a dependent quantization scheme. As described above, quantization is a technique for reducing the dynamic range of a video signal so that less information can be used to represent the video signal. As described above, quantization is a technique for reducing the dynamic range of a transformed or untransformed video signal. Thus, the video signal can be represented with fewer bits. The difference between the original pixel and the predicted frame pixel prior to quantization is referred to as the "residual" or "prediction residual". The transformed video signal and/or prediction residual at a particular location may be referred to as a "coefficient". For ease of explanation, many examples are provided with respect to coefficients. It should be appreciated that in other embodiments, similar techniques may be suitably applied to prediction residuals, e.g., embodiments that utilize Transform Skip Residual Coding (TSRC). After quantization, the quantized value of the coefficient, or in the example where the transform is skipped, the quantized value of the prediction residual is referred to as the quantization level or simply "level".
As described above, quantization involves dividing the coefficients by a quantization step size, and then rounding the resulting quantization level. Inverse quantization involves multiplying the quantization level by a quantization step size. Such quantization processing is called standard quantization. In general, quantization of all coefficients in one block (e.g., CTUs 105, 200 and/or sub-divisions of CTUs 105, 200) may be performed independently.
For example, for an n×m sized block, a particular coding scan order may be used to convert two-dimensional coefficients of the block into a one-dimensional coefficient sequence for coefficient quantization and coding. Typically, the scan starts at the top left corner of the block, ends at the bottom right corner of the block, or ends at the last non-zero coefficient level in the bottom right corner direction. This is also referred to as the z-scan order. Quantization of the intra-block coefficients may utilize scan order information (e.g., it may depend on the state of previous quantization levels in scan order).
In some embodiments, more than one quantizer (e.g., two quantizers) may be used for quantization in order to improve coding efficiency. The quantizer may be referred to as a device performing quantization and/or a program function of a device performing quantization. The determination of which quantizer to use for a given coefficient depends on previous information of the current coefficient in the coding scan order. This is called dependency quantization.
In some conventional examples, two quantizers may be used in a dependent quantization scheme in which the two sets of quantized levels output by the quantizers may include zero levels. In other words, the two quantizers may be zero quantizers. Thus, as will be described in further detail below, sig_coeff_flag may be encoded during residual encoding. For each level, sig_coeff_flag is used to indicate whether the level is zero or non-zero. The sig_coeff_flag may be encoded even in the case of a non-zero quantizer.
As depicted in fig. 3, the quantization step size may be denoted by 2, which may be determined by a quantization factor embedded in the bitstream. An output 300 of two sets of quantized levels is provided. The first set of quantized levels is output by the first quantizer Q0. In various embodiments, the first quantizer Q0 is configured to generate a value that may include both a 0 level and a non-zero level. In other words, the quantizer is configured to have both zero and non-zero quantization levels. Thus, in some examples, Q0 may be a zero quantizer. The second set of quantization levels is output by Q1, which cannot quantize the coefficients to zero. Thus, in some examples, Q1 may be a non-zero quantizer.
Although the quantizer used to quantize a given coefficient may be explicitly signaled, the overhead of doing so may reduce coding efficiency. Thus, a selective quantizer algorithm may be utilized. In one example, a four-state model is proposed.
Fig. 4 is a schematic diagram of a state machine 405 and corresponding state table 410 for selecting a quantizer, in accordance with various embodiments. In various embodiments, the parity of the previous quantization level of the coefficient (or prediction residual) is used to decide the state transition, so the quantizer is used to quantize the current coefficient. For example, in some embodiments, switching between the two quantizers Q0 and Q1 may be accomplished by having four states: 0,1,2, and 3. The current state may be uniquely determined by the parity of the quantization level generated by the previous coefficient (or prediction residual) and the previous state in the coding scan order (e.g., coding/decoding scan order). In some examples, states 0 and 1 may correspond to selecting a first quantizer Q0, while states 2 and 3 correspond to selecting a second quantizer Q1.
In some embodiments, the state is typically set equal to an initial state, e.g., 0, at the beginning of quantization at the encoding end, or at the inverse quantization at the decoding end of the block. The coefficients are reconstructed in the code scan order (e.g., in the same order as the coefficients are entropy decoded). After the current coefficients are reconstructed, the state is updated as shown in fig. 4, where k represents the level value at a particular position in the code scan order. Note that the next state depends only on the current state and the parity of the current level k (k & 1), k representing the value of the current coefficient level. Thus, the state transition procedure can be written as:
next state=stateTransTable [ State ] [ k &1] (1)
Wherein stateTransTable represents state table 410, and in two's complement operation, operator "&" specifies a bitwise AND operator. Alternatively, without a look-up table, the state transition may be specified as follows:
next state= (32040 > ((State < 2) +((k & 1) < 1))) &3 (formula 2)
Wherein the 16-bit numerical value 32040 specifies a state transition table, and operators "<" and "> >" represent bitwise displacement operations.
Thus, the state uniquely specifies a scalar quantizer for quantizing the current coefficient. For example, if the state of the current coefficient is equal to 0 or 1, a scalar quantizer Q0 is used. Otherwise, if the state is equal to 2 or 3, scalar quantizer Q1 is used. In conventional general video coding (VVC), the dependency quantization is only allowed for conventional residual coding (RRC), which means that the dependency quantization is applied to the transform coefficients of the prediction residual and the standard quantization is applied to the prediction residual. According to some embodiments, the dependency quantization may be used for both RRC and transform skip residual coding, in which case quantization may be used for prediction residuals.
In video coding, residual coding is used to convert quantization levels into a bitstream. After quantization, there are n×m quantization levels for blocks of size n×m. These nxm levels may be zero or non-zero values, which may be further binarized to binary symbols. Binary arithmetic coding based on a context model may also compress symbols into bits.
For an RRC block, the position of the last non-zero level is defined as the position of the last non-zero level in the code scan order. The last non-zero level two-dimensional coordinates (last sig coeff x and last sig coeff y) are encoded first. The RRC block may consist of several predefined sub-blocks (e.g. sub-divisions of a CU or CTU). The last non-zero sub-block with the last non-zero level is derived from (last sig coeff x and last sig coeff y) according to the coding scan order. The RRC codes sub-blocks in reverse scan order starting from the last non-zero sub-block. Within each sub-block, the RRC encodes the level of each location in reverse coding scan order with the following syntax elements.
For each level, a flag named sig_coeff_flag may be encoded into the bitstream. The sig_coeff_flag indicates whether the level is zero (in which case the sig_coeff_flag is set to 0) or non-zero (in which case the sig_coeff_flag is set to 1). If the level is non-zero, the first abs_level_gtx_flag [0] will be encoded to indicate whether the absolute level is 1 (set to 0) or greater than 1 (set to 1). If the absolute level is greater than 1, the par_level_flag will be encoded to indicate whether the level is odd (set to 1) or even (set to 0). Using abs_level_gtx_flag [0] and par_level_flag, it can be determined whether the level is equal to 2 or 3. Another syntax element, the second abs_level_gtx_flag [1], is also encoded to indicate that the absolute level is greater than 3 (set to 1) or not greater than 3 (set to 0). If the level is greater than 3, two syntax elements abs_remain and dec_abs_level may be encoded. Furthermore, the sign of each level within the block will also be encoded to adequately represent the quantization level.
Thus, in various embodiments, a video encoder, such as an encoder, may be configured to perform residual encoding more efficiently. The encoding of sig_coeff_flag may be made more efficient with zero and non-zero quantizers. For example, in various embodiments, when using the non-zero quantizer Q1, the encoding of sig_coeff_flag may be skipped entirely. When a non-zero quantizer is used, all levels quantized from the non-zero quantizer will have absolute values greater than or equal to 1. Therefore, sig_coeff_flag is always 1 for all quantization level outputs of the non-zero quantizer. Therefore, when the non-zero quantizer generates a level, it is not necessary to encode sig_coeff_flag. Other syntax elements of the residual coding of the non-zero quantizer may remain the same as described previously. Similarly, the residual coding of the quantization level of the zero quantizer may remain unchanged, with sig_coeff_flag still being coded, since both zero and non-zero levels may be generated by zero quantizer quantization.
In various embodiments, the above-described modifications to the dependent quantization and residual coding schemes may be employed in one or more different video coding standards and are not limited to a single coding standard. For example, the use of non-zero quantizers and corresponding residual coding may be used in, for example and without limitation, advanced Video Coding (AVC), high Efficiency Video Coding (HEVC), and/or VVC-based codecs, or further accommodate other types of suitable codec designs.
Fig. 5 is a flow diagram of a method 500 for dependency quantization and residual coding in accordance with various embodiments. The method 500 begins at 505 with receiving a block of video data. As previously described, in some embodiments, a block of video data may include, but is not limited to, a CTU, a subdivision of a CTU, or a CU. The block of video data may further comprise transformed and/or non-transformed video data. Thus, in some embodiments, at 510, the method 500 continues with transforming the block of video data to generate a block of transform coefficients. In one example, the transform may be a discrete cosine transform. In some embodiments, the block may be transformed, while in other embodiments, the block of video data may not be transformed, but rather directly quantized, as described below.
At decision block 515, the method 500 continues by determining whether a first non-zero quantization level has been generated in the scan order. If it is determined at block 515 that the first non-zero quantization level in scan order has not been generated, the method 500 may continue 520 with determining whether the current coefficient generated the first non-zero quantization level in the encoded scan order. If the first non-zero quantization level has not been generated, the method 500 continues to block 515 where it is checked whether the first non-zero quantization level has been generated for the next coefficient. In some examples, if it is determined for the current coefficient that the first non-zero level in scan order is not (and has not been) produced, quantization of the current coefficient may be skipped and a check of the non-zero level performed for subsequent coefficients.
If it is determined at 520 that the current coefficient yields a first non-zero quantization level, the current coefficient may be quantized at 525 using a first quantizer. As previously described, the first quantizer may be a non-zero quantizer capable of quantizing the coefficients to a non-zero level by scalar quantization.
In some embodiments, if it is determined that the first non-zero quantization level has been generated, the method 500 may continue 530 with selecting a quantizer for the current coefficient. In various embodiments, the quantizer may be selected as one of the first quantizer or the second quantizer. In some examples, the first quantizer may be a non-zero quantizer, as described above. For example, the zero quantizer may be a quantizer configured to quantize the coefficients to zero values. Thus, the non-zero quantizer may be a quantizer that does not quantize the coefficient to 0. The non-zero quantizer does not output a zero quantization level.
In some embodiments, selecting the quantizer for the current coefficient may be based at least in part on a current state of the current coefficient. In some examples, the current state may then be determined based on the state of the previous coefficient (e.g., the previous state). For example, in some embodiments, a four-state model may be employed, as previously described with respect to fig. 4. In some embodiments, during quantization of a previous coefficient, a current state of a current coefficient may be determined based on a previous state during quantization of the previous coefficient. In some embodiments, state transitions, or transitions from a previous state to a current state to a subsequent state, may be determined based at least in part on the previous state and the parity (k & 1) of the previous level k (e.g., whether the quantization level resulting from the previous coefficient is an odd or even value). Thus, at 535, the coefficient is quantized with a quantizer associated with the current state.
Similarly, at 540, method 500 further includes determining a subsequent state of a subsequent coefficient. As with the determination of the current state, the determination of the subsequent state of the subsequent coefficients may be based at least in part on the current state. In some further examples, state transitions to subsequent states may be determined based on the current state and the parity of the current level (k & 1).
At decision block 545, the method 500 further includes determining whether a zero quantizer is used to quantize the current coefficient. Once the coefficients have been quantized, the encoder may encode the quantization levels into a bitstream form. As previously described, in some embodiments, the quantization levels are binarized into binary symbols. Thus, the bitstream may include one or more syntax elements encoding the value of the quantization level. In some embodiments, the one or more syntax elements may include a flag (e.g., a binary symbol) that indicates whether the value is zero or non-zero (e.g., 0 or greater than 0). At 550, if it is determined that a zero quantizer is not to be used, the method 500 may determine to use a residual coding scheme that does not encode a binary symbol indicating whether the level is zero or non-zero. For example, in some embodiments, a flag/bin indicating a level of zero or non-zero may not be encoded, and the residual coding scheme may not include syntax elements indicating a level of zero or non-zero. At 555, if it is determined that a zero quantizer is used, the method 500 may determine to encode a binary symbol indicating a level of zero or non-zero.
In some examples, method 500 may further include processing subsequent coefficients (or alternatively prediction residuals) in scan order, as described above, until all coefficients in the scan order have been encoded.
Fig. 6 is a flow diagram of a method 600 for decoding video data encoded using dependent quantization and residual coding, according to various embodiments. The method 600 begins at 605 with accessing a quantization level for a video block. As previously described, the quantization levels may be converted into a bitstream by residual coding. Thus, the bitstream of encoded video data may comprise a sequence of quantization levels. In some embodiments, the quantization level of the video block may thus be accessed by extracting a corresponding quantization level for each element of the video block. In some examples, the elements of the video block may depend on whether RRC, in which case a transform is applied to the prediction residual to produce coefficients, or TSRC, in which case no transform is applied. Thus, in the case of RRC, the dequantized element may be one coefficient, while in the case of a TSRC-encoded bitstream, the dequantized element may be a dequantized approximation of the prediction residual (e.g., a dequantized version of the prediction residual that has been recovered by dequantizing the quantized prediction residual). Thus, each element may further correspond to a respective position of the video block in an encoding scan order (e.g., encoding/decoding scan order). Accordingly, at 610, the method 600 includes processing the quantization level of each element such that, for each respective element of the video block, the respective quantization level may be extracted from the bitstream of encoded video data.
Furthermore, a quantizer may be selected to dequantize the quantization level. At decision block 615, the method 600 continues with determining whether the current quantization level is a first non-zero quantization level. If it is determined to be the first non-zero quantization level, at 620, the scan order position and corresponding current state of the first non-zero quantization level may be determined. In some examples, the first non-zero quantization level during dequantization may correspond to a position of the last non-zero level during quantization. Thus, in some examples, two-dimensional coordinates, last_sig_coeff_x and last_sig_coeff_y, may be used to determine the scan order position of the first non-zero quantization level. In some further examples, the current state of the first non-zero quantization level may be set to a "default" or "start" state. The method 600 may continue 625 with selecting a quantizer based on the current state of the quantization level. In some examples, during dequantization of the first non-zero level, the quantization level of the current position in the code scan order may be in (or set to) a first state. In the first state, a first quantizer may be selected to dequantize the first non-zero level. Thus, in some examples, the first state may be a "default" or "start" state.
If it is determined that the current quantization level is not the first non-zero level, the method 600 may continue 625 with selecting a quantizer based on the current state of the quantization level. As previously described, in some embodiments, the quantizer may be selected based on the current state of the current quantization level. The current state may be determined during dequantization of the previous quantization level. For example, the current state may be determined based on the previous state and the parity of the value of the previous quantization level. In some examples, the determination of the current state may be based on a state transition table, such as state table 410 of fig. 4.
At 630, the method 600 continues with dequantizing the current quantization level using the selected quantizer. At 635, the method 600 continues by determining a state of a subsequent level based on the current state and the parity of the value of the current quantization level. As previously described, in some examples, the state may be updated according to state table 410 of fig. 4. After determining the subsequent state, the method 600 may continue with processing the subsequent quantization levels in the code scan order, as described above, until all quantization levels are dequantized.
The method 600 further includes, at 640, reconstructing the video block based on the dequantized elements. As previously described, the dequantizing element may be a dequantized approximation of the coefficient (e.g., a dequantized version of the coefficient recovered by dequantizing the quantized coefficient/transformed prediction residual), or in some examples, in the case of skip residual coding using transform (e.g., the prediction residual is not transformed prior to quantization on the coding side). In each case, the quantized coefficients may refer to quantized coefficients, and then dequantized. Similarly, quantized prediction residues may refer to quantized prediction residues and then dequantized. In different examples, the dequantized elements may be different from the original elements (e.g., the original coefficients may be different from the dequantized "quantized coefficients," and similarly, the original prediction residual may be different from the dequantized "quantized prediction residual").
The process of dependency quantization and residual coding may be performed by a media coding system, which may include an encoder/decoder. Fig. 7 is a block diagram of a media encoding system 700 according to various embodiments. Media encoding system 700 may include transform processing logic 705, quantization unit 710, residual encoding logic 730, dequantization and inverse transform logic 735, and encoding mode selection logic 740. The quantization unit 710 may further include quantization selection logic 715, a first quantizer 720, and a second quantizer 725. Coding mode selection logic 740 may include motion estimation logic 745, motion compensation logic 750, and prediction logic 755. It should be noted that the various components of media encoding system 700 are schematically illustrated in fig. 7, and that modifications may be made to media encoding system 700 in accordance with various embodiments.
In various embodiments, media encoding system 700 may be implemented on any suitable hardware, such as one or more microprocessors, digital Signal Processors (DSPs), application Specific Integrated Circuits (ASICs), field Programmable Gate Arrays (FPGAs), discrete logic, software, hardware, or a combination of software and hardware. The functions and logic implemented in software may be stored in a corresponding non-transitory computer readable medium and/or storage device. This will be discussed in more detail below with respect to fig. 9.
In various embodiments, the video data may include images (e.g., frames) of video data, also referred to as blocks or macroblocks. The video data may be provided to coding mode selection logic 740, which may be configured to generate a predicted image (e.g., a predicted block). In some embodiments, the predicted image may be subtracted from an actual subsequent image of the frame to produce a residual frame (e.g., a residual block), and transform processing logic 705 may transform the residual block to produce a block of transformed video data from the residual frame. The transformed video data blocks may be provided to a quantization unit 710. In other examples, the video data may be provided directly to the quantization unit 710 without being transformed. As previously described, in some examples, one block may include a CTU, a subdivision of a CTU, or a CU.
The quantization unit 710 may be configured to quantize the transformed or untransformed video data to generate blocks of quantization levels. In some examples, quantization unit 710 may generate a set of quantization levels. In some embodiments, the quantization block may be processed by residual coding logic 730. Residual coding logic 730 may be configured to convert the data of the quantized block into a bitstream. For example, in some embodiments, the data in the block may be binarized into binary symbols, as described previously with respect to fig. 3-6.
In some embodiments, the quantized block may be further provided to dequantization and inverse transform logic 735 for further processing. For example, in some embodiments, dequantization and inverse transform logic may be used to generate the reconstructed residual block. The reconstructed residual block may be added to the next predicted frame and used in motion estimation logic 745, motion compensation logic 750, and prediction logic 755 to generate a predicted frame.
Fig. 8 is a block diagram of a media decoding system 800 according to various embodiments. The media decoding system 800 may include entropy decoding logic 805, dequantization unit 810, dequantization selection logic 815, first quantizer 820, second quantizer 825, inverse transform logic 830, coding mode selection logic 835, motion estimation logic 840, motion compensation logic 845, and prediction logic 850. It should be noted that the various components of the media decoding system 800 are schematically illustrated in fig. 8, and that modifications may be made to the media encoding system 800 in accordance with various embodiments.
In various embodiments, like media encoding system 700, media decoding system 800 may be implemented on any suitable hardware, such as one or more microprocessors, DSP, ASIC, FPGA, discrete logic, software, hardware, or a combination of software and hardware. In various embodiments, the encoded video data may comprise a bitstream of encoded video blocks. Accordingly, the entropy decoding logic 805 may be configured to decode an encoded bitstream of video data. In particular, the encoded bitstream may be decoded and quantized elements extracted from the encoded bitstream for further processing.
In some examples, the quantization element may then be dequantized (or dequantized) by dequantization unit 810 using one of first quantizer 820 or second quantizer 825. As previously described, the selection of the first or second quantizer 820, 825 may be determined according to the dequantization selection logic 815. In various embodiments, the dequantization selection logic may select the quantizer based on the current state of the current quantization element (which may be a coefficient or a prediction residual, as previously described) and the parity of the value of the quantization element. In some examples, the current state may be determined from a state transition table, as described above with respect to fig. 4. In some examples, the dequantized elements may be further inverse transformed by inverse transform logic 830. As previously described, in some examples, the dequantized elements may be dequantized approximations of coefficients generated by transforming the prediction residues. Accordingly, the inverse transform logic 830 may inverse transform the coefficients generated by the dequantization unit 810. In some examples, for blocks that skip transforms, the inverse transform module 219 is not applied to these blocks.
In a further example, the residual block generated by the dequantization unit 810 may be added to a corresponding prediction block generated by the coding mode selection logic 835 to generate a reconstructed block. The reconstructed block may then be provided to coding mode selection logic 835 to generate a subsequent prediction block. Thus, the dequantization elements generated by dequantization unit 810 may be used to generate a reconstructed block, and may generate a decoded video. As discussed above with respect to fig. 7, the prediction block may be generated from the coding mode and parameters of the block, as well as from the motion estimation logic 840, the motion compensation logic 845, and the prediction logic 850.
FIG. 9 is a schematic block diagram of a computer system 900 for dependency quantization and residual coding in accordance with various embodiments. Fig. 9 provides a schematic diagram of one embodiment of a computer system 900, such as a media encoding system 700, a media decoding system 800, or a subsystem thereof, such as an encoder, decoder, transform processing logic, quantization unit, residual coding logic, coding mode selection logic, dequantization and inverse transform logic, or a combination thereof, that may perform the methods provided by the various other embodiments described herein. It should be noted that fig. 9 provides only a generalized illustration of various components, with one or more of each component being utilized as appropriate. Thus, fig. 9 generally illustrates how individual system elements may be implemented in a relatively separated or relatively more integrated manner.
Computer system 900 includes a number of hardware elements that may be electrically coupled (or may otherwise communicate as appropriate) via a bus 905. The hardware elements may include one or more processors 910 including, but not limited to, one or more general purpose processors and/or one or more special purpose processors (e.g., microprocessors, digital signal processing chips, graphics acceleration processors, and microcontrollers); one or more input devices 915, including but not limited to a mouse, a keyboard, one or more sensors, and/or the like; and one or more output devices 920, which may include, but are not limited to, a display device and/or the like.
The computer system 900 may also include (and/or be in communication with) one or more storage devices 925, which storage devices 925 may include, but are not limited to, local and/or network-accessible storage, and/or may include, but is not limited to, disk drives, arrays of drives, optical storage devices, solid-state storage devices such as random access memory ("RAM") and/or read-only memory ("ROM"), which may be programmable, flash-updateable, and the like. Such a storage device may be configured to enable any suitable data storage, including but not limited to various file systems, database structures, and/or the like.
Computer system 900 may also include a communication subsystem 930 that may include, but is not limited to, a modem, a network card (wireless or wired), an infrared communication device, a wireless communication device, and/or a chipset (e.g., bluetooth) TM Devices, 802.11 devices, wiFi devices, wiMax devices, WWAN devices, Z-Wave devices, zigBee devices, cellular communication facilities, etc.) and/or LP wireless devices as previously described. The communication subsystem 930 may allow data to be exchanged with a network (such as the network described below, to name but one example), with other computers or hardware systems, data centers, or different cloud platforms, and/or with any other device described herein. In many embodiments, computer system 900 further includes a working memory 935, which may include a RAM or ROM device, as described above.
Computer system 900 may also include software elements, shown as being currently located within working memory 935, including an operating system 940, device drivers, executable libraries, and/or other code, such as one or more application programs 945, which may include computer programs provided by the various embodiments, and/or may be designed to implement methods provided by other embodiments, and/or configure the system as described herein. By way of example only, one or more processes described with respect to the methods described above may be implemented as code and/or instructions executable by a computer (and/or a processor within a computer); in one aspect, such code and/or instructions may be used to configure and/or adapt a general purpose computer (or other device) to perform one or more operations according to the described methods.
The set of instructions and/or code may be encoded and/or stored on a non-transitory computer-readable storage medium, such as storage device 925 described above. In some cases, the storage medium may be incorporated into a computer system, such as system 900. In other embodiments, the storage medium may be separate from the computer system (i.e., removable media such as optical disks, etc.) and/or provided in an installation package, such that the storage medium may be used to program, configure and/or adapt a general purpose computer with the instructions/code stored thereon. These instructions may take the form of executable code that is executable by computer system 900 and/or may take the form of source code and/or installable code that, when compiled and/or installed on computer system 900 (e.g., using any of a variety of commonly available compilers, installers, compression/decompression tools, etc.).
It will be apparent to those skilled in the art that substantial variations may be made in light of the specific requirements. For example, custom hardware (e.g., programmable logic controllers, single board computers, FPGAs, ASICs, and socs) may also be used, and/or particular elements may be implemented in hardware, software (including portable software, e.g., applets, etc.), or both. In addition, connections to other computing devices, such as network input/output devices, may be employed.
As described above, in one aspect, some embodiments may employ a computer or hardware system (e.g., computer system 900) to perform the methods according to various embodiments of the invention. According to one set of embodiments, some or all of the programs of such methods are executed by computer system 900 in response to processor 910 executing one or more sequences of one or more instructions (which may be incorporated into operating system 940 and/or other code, such as application programs 945) contained in working memory 935. Such instructions may be read into working memory 935 from another computer-readable medium, such as one or more storage devices 925. By way of example only, execution of the sequences of instructions contained in working memory 935 may cause processor 910 to perform one or more of the procedures of the methods described herein.
The terms "machine-readable medium" and "computer-readable medium" as used herein refer to any medium that participates in providing data that causes a machine to operation in a specific fashion. In one embodiment implemented using computer system 900, various computer-readable media may be involved in providing instructions/code to processor 910 for execution and/or may be used to store and/or carry such instructions/code (e.g., as signals). In many embodiments, the computer readable medium is a non-transitory, physical, and/or tangible storage medium. In some embodiments, the computer readable medium may take many forms, including but not limited to, non-volatile media, or the like. Nonvolatile media includes, for example, optical and/or magnetic disks, such as storage device 925. Volatile media includes, but is not limited to, dynamic memory, such as working memory 935. In some alternative embodiments, the computer-readable medium may take the form of a transmission medium including, but not limited to, coaxial cable, copper wire, and fiber optics, including the wires that comprise bus 905, and the various components of communication subsystem 930 (and/or the media that communication subsystem 930 provides for communication with other devices). In another set of embodiments, transmission media can also take the form of waves (including, but not limited to, radio waves, acoustic and/or light waves, such as those generated during radio wave and infrared data communications).
Common forms of physical and/or tangible computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read instructions and/or code.
Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 910 for execution. By way of example only, the instructions may initially be carried on a magnetic and/or optical disk of a remote computer. The remote computer may load the instructions into its dynamic memory and send the instructions as signals over a transmission medium to be received and/or executed by computer system 900. According to various embodiments of the invention, these signals may be in the form of electromagnetic signals, acoustic signals, optical signals, and/or the like, all being examples of carrier waves on which instructions may be encoded.
Communication subsystem 930 (and/or its components) typically receives the signals and bus 905 can then transfer the signals (and/or data carried by the signals, instructions, etc.) to working memory 935, where processor 910 retrieves and executes the instructions from working memory 936. The instructions received by working memory 935 may optionally be stored on storage device 925 either before or after execution by processor 910.
While certain features and aspects have been described with respect to embodiments, those skilled in the art will recognize that many modifications are possible. For example, the methods and processes described herein may be implemented using hardware components, software components, and/or any combination thereof. Furthermore, although the various methods and processes described herein may be described with respect to particular structures and/or functional components for ease of description, the methods provided by the various embodiments are not limited to any particular structure or functional architecture, but may be implemented on any suitable hardware, firmware, and/or software configuration. Similarly, while some functionality is assigned to one or more system components, the functionality may be distributed among various other system components according to several embodiments, unless the context dictates otherwise.
Moreover, although the processes of the methods and processes described herein are described in a particular order for ease of description, the various processes may be reordered, added, and/or omitted according to various embodiments unless the context dictates otherwise. Furthermore, a process described with respect to one method or process may be combined in other described methods or processes; likewise, system components described with respect to one system may be organized in alternative architecture and/or incorporated in other described systems according to a particular architecture. Thus, while various embodiments with or without certain features have been described for ease of describing and illustrating aspects of these embodiments, the various components and/or features described herein with respect to particular embodiments may be substituted, added and/or subtracted in other described embodiments unless the context dictates otherwise. Thus, while several embodiments are described above, it will be understood that the invention is intended to cover all modifications and equivalents within the scope of the following claims.

Claims (20)

1. A method, comprising:
obtaining a current quantization level of a block of video data from the encoded bitstream;
determining a selected quantizer to dequantize the current quantization level,
wherein if said current quantization level is a first non-zero quantization level of said block of video data in decoding scan order, a first quantizer is selected as said selected quantizer of said current quantization level,
wherein if said current quantization level is not said first non-zero quantization level of said block of video data in said decoding scan order, selecting one of said first quantizer and second quantizer as said selected quantizer based on a current state of said current quantization level,
wherein the current state is determined based on a previous state of a previous quantization level of the block of video data and a parity of a value of the previous quantization level in the decoding scan order;
dequantizing, by the selected quantizer, the current quantization level to produce a current dequantized element; and
reconstructing, by a decoder, the block of video data using the current dequantized elements in the decoding scan order.
2. The method of claim 1, further comprising:
Based on the parity of the current state and the value of the current quantization level, a subsequent state of a subsequent quantization level is determined.
3. The method of claim 1, wherein the first quantizer and the second quantizer comprise one of:
a zero quantizer and a non-zero quantizer; or (b)
Two non-zero quantizers.
4. The method of claim 1, wherein the encoded bit stream represents a respective quantization level in binary symbols, wherein binary symbols that characterize whether the quantization level is zero or non-zero are encoded if a zero quantizer is used, wherein the binary symbols that characterize whether the quantization level is zero or non-zero are not encoded into the bit stream if a non-zero quantizer is used.
5. The method of claim 1, further comprising:
for the first non-zero quantization level, a scan order position of the first non-zero quantization level is determined.
6. The method of claim 1, further comprising:
determining the current state of the current quantization level in the decoding scan order, wherein determining the current state of the current quantization level comprises:
Generating a four-state model; and
during dequantization of the previous quantization level, the current state of the current quantization level is determined based at least in part on a previous state of the previous quantization level, wherein the four-state model determines a state transition from the previous state to the current state.
7. The method of claim 6, wherein the state transition is a transition from one of a first state, a second state, a third state, or a fourth state to a same or different state, the same or different state being determined based on parity of values of the previous state and the previous quantization level.
8. The method of claim 1, wherein the current dequantization element is a dequantized approximation of one of quantized transform coefficients or quantized prediction residues of the block of video data.
9. An apparatus, comprising:
a processor; and
a non-transitory computer readable medium in communication with the processor, the non-transitory computer readable medium having encoded thereon a set of instructions executable by the processor for:
obtaining a current quantization level of a block of video data from the encoded bitstream;
Determining a selected quantizer to dequantize the current quantization level,
wherein if said current quantization level is a first non-zero quantization level of said block of video data in decoding scan order, a first quantizer is selected as said selected quantizer of said current quantization level,
wherein if said current quantization level is not said first non-zero quantization level of said block of video data in said decoding scan order, selecting one of said first quantizer and second quantizer as said selected quantizer based on a current state of said current quantization level,
wherein the current state is determined based on a previous state of a previous quantization level of the block of video data and a parity of a value of the previous quantization level in the decoding scan order;
dequantizing, by the selected quantizer, the current quantization level to produce a current dequantized element; and
reconstructing, by a decoder, the block of video data using the current dequantized elements in the decoding scan order.
10. The apparatus of claim 9, wherein the set of instructions is further executable by the processor to:
Based on the parity of the current state and the value of the current quantization level, a subsequent state of a subsequent quantization level is determined.
11. The apparatus of claim 9, wherein the first quantizer and the second quantizer comprise one of:
a zero quantizer and a non-zero quantizer; or (b)
Two non-zero quantizers.
12. The apparatus of claim 9, wherein the set of instructions is further executable by the processor to:
for the first non-zero quantization level, a scan order position of the first non-zero quantization level is determined.
13. The apparatus of claim 9, wherein the set of instructions is further executable by the processor to:
determining the current state of the current quantization level in the decoding scan order, wherein determining the current state of the current quantization level comprises:
generating a four-state model; and
during dequantization of the previous quantization level, the current state of the current quantization level is determined based at least in part on a previous state of the previous quantization level, wherein the four-state model determines a state transition from the previous state to the current state.
14. The apparatus of claim 13, wherein the state transition is a transition from one of a first state, a second state, a third state, or a fourth state to a same or different state, the same or different state being determined based on parity of values of the previous state and the previous quantization level.
15. The apparatus of claim 9, wherein the current dequantization element is a dequantized approximation of one of quantized transform coefficients or quantized prediction residues of the block of video data.
16. A media encoding subsystem, comprising:
at least two quantizers, comprising: a first quantizer and a second quantizer;
a decoder, comprising:
a processor; and
a non-transitory computer readable medium in communication with the processor, the non-transitory computer readable medium having encoded thereon a set of instructions executable by the processor for:
obtaining a current quantization level of a block of video data from the encoded bitstream;
determining a selected quantizer to dequantize the current quantization level,
wherein if said current quantization level is a first non-zero quantization level of said block of video data in decoding scan order, a first quantizer is selected as said selected quantizer of said current quantization level,
Wherein if said current quantization level is not said first non-zero quantization level of said block of video data in said decoding scan order, selecting one of said first quantizer and second quantizer as said selected quantizer based on a current state of said current quantization level,
wherein the current state is determined based on a previous state of a previous quantization level of the block of video data and a parity of a value of the previous quantization level in the decoding scan order;
dequantizing, by the selected quantizer, the current quantization level to produce a current dequantized element; and
and reconstructing the video data block by using the current dequantization element in the decoding scanning order.
17. The media encoding subsystem of claim 16, the set of instructions further executable by the processor to:
a subsequent state of a subsequent quantization level of the block of video data is determined based on the current state and a parity of the value of the current quantization level.
18. The media encoding subsystem of claim 16, wherein the first quantizer and the second quantizer comprise one of:
A zero quantizer and a non-zero quantizer; or (b)
Two non-zero quantizers.
19. The media encoding subsystem of claim 16, wherein the set of instructions is further executable by the processor to:
determining the current state of the current quantization level in the decoding scan order, wherein determining the current state of the current quantization level comprises:
generating a four-state model; and
during dequantization of the previous quantization level, the current state of the current quantization level is determined based at least in part on a previous state of the previous quantization level, wherein the four-state model determines a state transition from the previous state to the current state.
20. The media encoding subsystem of claim 16, wherein the current dequantization element is a dequantized approximation of one of quantized transform coefficients or quantized prediction residues of the block of video data.
CN202280014333.2A 2021-02-22 2022-02-22 Dependency quantization and residual coding method Pending CN116848842A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163152204P 2021-02-22 2021-02-22
US63/152,204 2021-02-22
PCT/US2022/017271 WO2022178405A1 (en) 2021-02-22 2022-02-22 Dependent quantization and residual coding method

Publications (1)

Publication Number Publication Date
CN116848842A true CN116848842A (en) 2023-10-03

Family

ID=82931813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280014333.2A Pending CN116848842A (en) 2021-02-22 2022-02-22 Dependency quantization and residual coding method

Country Status (2)

Country Link
CN (1) CN116848842A (en)
WO (1) WO2022178405A1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10567801B2 (en) * 2018-03-07 2020-02-18 Tencent America LLC Method and apparatus for video coding with primary and secondary transforms
WO2020007785A1 (en) * 2018-07-02 2020-01-09 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Entropy coding of transform coefficients suitable for dependent scalar quantization
CN112997486A (en) * 2018-09-11 2021-06-18 北京达佳互联信息技术有限公司 Method and apparatus for video decoding using low complexity trellis coded quantization
WO2021263251A1 (en) * 2021-02-19 2021-12-30 Innopeak Technology, Inc. State transition for dependent quantization in video coding

Also Published As

Publication number Publication date
WO2022178405A1 (en) 2022-08-25

Similar Documents

Publication Publication Date Title
US11750841B2 (en) Methods and apparatuses for coding transform blocks
US10097859B2 (en) Methods and apparatus for improved entropy encoding and decoding
KR101625548B1 (en) Context modeling techniques for transform coefficient level coding
US11765342B2 (en) Multi-component picture or video coding concept
CN107710759B (en) Method and device for coding and decoding conversion coefficient
US8666179B2 (en) Image encoding apparatus and decoding apparatus
JP2015508617A5 (en)
CN110691244A (en) Method and apparatus for binarization and context adaptive coding of syntax in video coding
KR20100027385A (en) Method and apparatus for encoding/decoding image using adaptive binarization
KR20130140190A (en) Methods and devices for coding and decoding the position of the last significant coefficient
WO2012044440A1 (en) Variable length coding of video block coefficients
KR20180040515A (en) Coding device, decoding device, and coding and decoding method thereof
KR20140035507A (en) Vlc coefficient coding for luma and chroma block
TW202131681A (en) Determining a parametrization for context-adaptive binary arithmetic coding
GB2496201A (en) Context adaptive data encoding and decoding
KR20080086766A (en) Method and apparatus for encoding and decoding image using context model of pixel unit
CN116848842A (en) Dependency quantization and residual coding method
CN116965021A (en) Method for converting relative quantization state of video coding and decoding
KR970060954A (en) Variable length coding and variable length decoding system
US20200195969A1 (en) Method for coding a digital image, decoding method, devices, terminal equipment and related computer programs
CN108206950B (en) Code stream length calculation method and device
JP2023117786A (en) Encoding device, program, and model generation method
WO2023129918A9 (en) Intra prediction with multiple reference lines
JPH046953A (en) Picture coding system
KR20120038355A (en) Method and apparatus of entropy encoding/decoding and symbol endcoding/decoding method and apparatus therefor

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20240408

Address after: No. 18 Wusha Haibin Road, Chang'an Town, Dongguan City, Guangdong Province

Applicant after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.

Country or region after: China

Address before: California, USA

Applicant before: Chuangfeng Technology

Country or region before: U.S.A.

TA01 Transfer of patent application right