WO2022178405A1 - Dependent quantization and residual coding method - Google Patents

Dependent quantization and residual coding method Download PDF

Info

Publication number
WO2022178405A1
WO2022178405A1 PCT/US2022/017271 US2022017271W WO2022178405A1 WO 2022178405 A1 WO2022178405 A1 WO 2022178405A1 US 2022017271 W US2022017271 W US 2022017271W WO 2022178405 A1 WO2022178405 A1 WO 2022178405A1
Authority
WO
WIPO (PCT)
Prior art keywords
quantization level
current
state
quantizer
zero
Prior art date
Application number
PCT/US2022/017271
Other languages
French (fr)
Inventor
Yue Yu
Haoping Yu
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.
Priority to CN202280014333.2A priority Critical patent/CN116848842A/en
Publication of WO2022178405A1 publication Critical patent/WO2022178405A1/en

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

Definitions

  • the present disclosure relates, in general, to methods, systems, and apparatuses for multimedia encoding and decoding.
  • Dependent quantization is a technique used in video coding to reduce the dynamic range of a video signal such that fewer bits are used to represent the video signal.
  • Quantization typically involves division by a quantization step size and subsequent rounding while inverse quantization involves multiplication by the quantization step size.
  • Such a quantization process is also called scalar quantization.
  • the quantization of all coefficients within a block can be done independently and this kind of quantization method is used in some existing video compression standards, such as H.264 and high efficiency video coding (HEVC).
  • HEVC high efficiency video coding
  • multiple quantizers may be used. Determining which of the multiple quantizers will be used to quantize a given coefficient typically depends on the information preceding the current coefficient in coding scan order.
  • Residual coding is a technique used to convert the quantization levels of a quantized NxM block into a coded bit stream.
  • a method for dependent quantization and residual coding may include obtaining a current quantization level of a block of video data from an encoded bit stream; determining a selected quantizer to dequantize the current quantization level, wherein if the current quantization level is a first non-zero quantization level of the block in a decoding scan order, selecting a first quantizer as the selected quantizer for the current quantization level, wherein if the current quantization level is not the first non-zero quantization level of the block in the decoding scan order, selecting one of the first quantizer or a second quantizer as the selected quantizer based on a current state of the current quantization level, and wherein the current state is determined based on a preceding state of an immediately preceding quantization level of the block in the decoding scan order and a parity of a value of the preceding quantization level.
  • the method may further include dequantizing, via the selected quantizer, the current quantization level to produce a current dequantized
  • an apparatus for dependent quantization and residual coding 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 various functions.
  • the set of instructions may be executed by the processor to obtain a current quantization level of a block of video data from an encoded bit stream, 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 a decoding scan order, a first quantizer is selected as the selected quantizer for the current quantization level.
  • one of the first quantizer or a 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 preceding state of an immediately preceding quantization level of the block in the decoding scan order and a parity of a value of the preceding quantization level.
  • the instructions may further be executable by the processor to dequantize, via the selected quantizer, the current quantization level to produce a current dequantized element, and reconstruct, via a decoder, the block with the current dequantized element in decoding scan order.
  • a media coding subsystem is provided.
  • the media coding subsystem may include two or more quantizers comprising 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 various functions.
  • the instructions may be executable by the processor to obtain a current quantization level of a block of video data from an encoded bit stream, 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 a decoding scan order, a first quantizer is selected as the selected quantizer for the current quantization level.
  • one of the first quantizer or a 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 preceding state of an immediately preceding quantization level of the block in the decoding scan order and a parity of a value of the preceding quantization level.
  • the instructions may further be executable by the processor to dequantize, via the selected quantizer, the current quantization level to produce a current dequantized element, and reconstruct, via a decoder, the block with the current dequantized element in decoding scan order.
  • Fig. 1 is a schematic diagram of a coding tree unit (CTU), in accordance with various embodiments;
  • Fig. 2 is a schematic diagram of a CTU divided into multiple coding units
  • FIG. 3 is a schematic diagram of two sets of quantization level outputs produced by different quantizers in dependent quantization, in accordance with various embodiments;
  • FIG. 4 is a schematic diagram of state machine and corresponding state table for quantizer selection, in accordance with various embodiments
  • FIG. 5 is a flow diagram of a method for encoding a video block via dependent quantization and residual coding, in accordance with various embodiments;
  • Fig. 6 is a flow diagram of a method for decoding video data encoded using dependent quantization and residual coding, in accordance with various embodiments;
  • Fig. 7 is a block diagram of a media encoding system, in accordance with various embodiments;
  • FIG. 8 is a block diagram of a media decoding system, in accordance with various embodiments.
  • FIG. 9 is a schematic block diagram of a computer system for dependent quantization and residual coding, in accordance with various embodiments.
  • a method for dependent quantization and residual coding may include obtaining a current quantization level of a block of video data from an encoded bit stream; determining a selected quantizer to dequantize the current quantization level, wherein if the current quantization level is a first non-zero quantization level of the block in a decoding scan order, selecting a first quantizer as the selected quantizer for the current quantization level, wherein if the current quantization level is not the first non-zero quantization level of the block in the decoding scan order, selecting one of the first quantizer or a second quantizer as the selected quantizer based on a current state of the current quantization level, and wherein the current state is determined based on a preceding state of an immediately preceding quantization level of the block in the decoding scan order and a parity of a value of the preceding quantization level.
  • the method may further include dequantizing, via the selected quantizer, the current quantization level to produce a current dequantized
  • the method may further include determining a subsequent state of an immediately succeeding quantization level based on the current state and a parity of the value of the current quantization level.
  • the first and second quantizers may include one of: one zero quantizer and one non-zero quantizer, two zero quantizers, or two non-zero quantizers.
  • the encoded bit stream may represent respective quantization levels in binary bins, wherein if a zero quantizer is used, a binary bin indicating whether the quantization level is a zero value or non-zero value is coded, wherein if a non-zero quantizer is used, the binary bin indicating whether the quantization is a zero value or non-zero value is not coded into the bit stream.
  • 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 include determining the current state of the current quantization level in the decoding scan order, wherein determining the current state of the current quantization level includes generating a four-state model, and determining, during the dequantization of the preceding quantization level, the current state of the current quantization level based at least in part on the preceding state of the preceding quantization level, wherein the four-state model determines a state transition from the preceding state to the current state. In further examples, the state transition may be a transition from one of the first state, second state, third state, or fourth state to a same or different state as determined based on the preceding state and the parity of the value of the preceding quantization level.
  • the current dequantized element may be a dequantized approximation of a transform coefficient or prediction residue of the block.
  • an apparatus for dependent quantization and residual coding 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 various functions.
  • the set of instructions may be executed by the processor to obtain a current quantization level of a block of video data from an encoded bit stream, 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 a decoding scan order, a first quantizer is selected as the selected quantizer for the current quantization level.
  • 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 or a 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 preceding state of an immediately preceding quantization level of the block in the decoding scan order and a parity of a value of the preceding quantization level.
  • the instructions may further be executable by the processor to dequantize, via the selected quantizer, the current quantization level to produce a current dequantized element, and reconstruct, via a decoder, the block with the current dequantized element in decoding scan order.
  • the set of instructions may be executable by the processor to further determine a subsequent state of an immediately succeeding quantization level based on the current state and a parity of the value of the current quantization level.
  • the first and second quantizers may include one of: one zero quantizer and one non-zero quantizer, two zero quantizers, or two non-zero quantizers.
  • the set of instructions may be 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 may be 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 includes generating a four-state model, and determining, during the dequantization of the preceding quantization level, the current state of the current quantization level based at least in part on the preceding state of the preceding quantization level, wherein the four-state model determines a state transition from the preceding state to the current state.
  • the state transition is a transition from one of the first state, second state, third state, or fourth state to a same or different state as determined based on the preceding state and the parity of the value of the preceding quantization level.
  • the current dequantized element may be a dequantized approximation of a transform coefficient or prediction residue of the block.
  • the media coding subsystem may include two or more quantizers comprising 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 various functions.
  • the instructions may be executable by the processor to obtain a current quantization level of a block of video data from an encoded bit stream, and determine a selected quantizer to dequantize the current quantization level.
  • a first quantizer is selected as the selected quantizer for 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 or a 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 preceding state of an immediately preceding quantization level of the block in the decoding scan order and a parity of a value of the preceding quantization level.
  • the instructions may further be executable by the processor to dequantize, via the selected quantizer, the current quantization level to produce a current dequantized element, and reconstruct, via a decoder, the block with the current dequantized element in decoding scan order.
  • the set of instructions may be executable by the processor to further determine a subsequent state of an immediately succeeding quantization level based on the current state and a parity of the value of the current quantization level.
  • the first and second quantizers may include one of: one zero quantizer and one non-zero quantizer, two zero quantizers, or two non-zero quantizers.
  • the set of instructions may be 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 includes generating a four-state model, and determining, during the dequantization of the preceding quantization level, the current state of the current quantization level based at least in part on the preceding state of the preceding quantization, wherein the four-state model determines a state transition from the preceding state to the current state.
  • the state transition is a transition from one of the first state, second state, third state, or fourth state to a same or different state as determined based on the preceding state and the parity of the value of the preceding quantization level.
  • the current dequantized element may be a dequantized approximation of a transform coefficient or prediction residue of the block.
  • the various embodiments include, without limitation, methods, systems, apparatuses, and/or software products.
  • a method might comprise one or more procedures, any or all of which may be executed by a computer system.
  • an embodiment might provide a computer system configured with instructions to perform one or more procedures in accordance with methods provided by various other embodiments.
  • a computer program might comprise a set of instructions that are executable by a computer system (and/or a processor therein) to perform such operations.
  • such software programs are encoded on physical, tangible, and/or non-transitory computer-readable media (such as, to name but a few examples, optical media, magnetic media, and/or the like).
  • Various embodiments described herein, embodying software products and computer-performed methods represent tangible, concrete improvements to existing technological areas, including, without limitation, multimedia coding and signal processing.
  • implementations of various embodiments improve the functioning of multimedia coding systems/subsystems by enabling more efficient dependent quantization and residual coding techniques.
  • coding may be used to refer to encoding, decoding, or both encoding and decoding.
  • Fig. 1 is a schematic diagram of an image (e.g., 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 CTUs 105a-105n (collectively CTUs 105). According to various embodiments, during coding, an input image (such as frame 100) may be divided into one or more CTUs 105a-105n. The CTUs 105 may each individually be square blocks of pixels, as shown in Fig. 1. In some embodiments, an individual CTU of the CTUs 105 may be a block 128 x 128 pixels. In some embodiments, as depicted, frame 100 may be divided into CTUs 105. The one or more CTUs 105a-105n may, in some examples, be scanned in a raster scan order, as depicted. In other embodiments, a different scan order, such as a z-scan order, may be used.
  • CTUs
  • Each CTU 105a-105n of a frame 100 may respectively be partitioned into one or more CUs.
  • Fig. 2 is a schematic diagram of a CTU 200 divided into one or more coding units (CUs) 205a-205m (collectively CUs 205).
  • CUs 205 may be sub-units of a CTU, which may be used for prediction and transform during coding operations.
  • CUs 205a-205m may be rectangular or square in arrangement, and further may be coded without further partitioning into prediction units or transform units.
  • Each CU 205a- 205m may be as large as its root CTU 200 and/or a subdivision of the CTU 200.
  • the CTU may be divided into subdivisions of up to 4x4 blocks (e.g., up to 16 total blocks).
  • a CU 205 such as CU 205j, 205i may be the size of a single subdivision of the CTU 200.
  • the CU 205 may further be smaller than the root CTU 200 and/or subdivision of the CTU 200, as shown by the CUs 205a-205h, 205k-2051.
  • the CUs 205a-205m may be coded, for example, in a Z-scan order, in the order labeled 205a-205m. It should be noted that the various CUs 205 of the CTU 200 are schematically illustrated in Fig. 2, and that modifications to the partitioning of a CTU 200 may be possible in accordance with the various embodiments.
  • Fig. 3 is a schematic diagram of two sets of quantization level outputs 300 produced by different quantizers in a dependent quantization scheme.
  • quantization is a technique used to reduce the dynamic range of a transformed or non-transformed video signal. Thus, fewer bits may be used to represent the video signal.
  • the difference between an original pixel and a pixel of a predicted frame may be referred to as the "residue" or "prediction residue.”
  • the transformed video signal and/or prediction residue at a specific position may be referred to as a "coefficient.” For purposes of explanation, many examples are provided with reference to a coefficient.
  • TSRC transform skip residual coding
  • quantization comprises division of a coefficient by a quantization step size, and subsequent rounding of the resulting quantization level.
  • Inverse quantization comprises multiplication of the quantization level by the quantization step size.
  • Such a quantization process is referred to as scalar quantization.
  • quantization of all coefficients in a block e.g., a CTU 105, 200 and/or a subdivision of a CTU 105, 200 may be performed independently.
  • a specific coding scan order may be used to convert 2-D coefficients of a block into a 1-D coefficient sequence for coefficient quantization and coding.
  • the scan starts from the left-top corner and stops at the right bottom corner of a block, or last non-zero coefficient / level in a right bottom direction. This is also referred to as a z-scan order.
  • Quantization of a coefficient within a block may make use of the scan order information (e.g., it may depend on the status of the previous quantization level along the scan order).
  • more than one quantizer may be used for quantization.
  • a quantizer may refer to a device and/or a programmed function of a device that performs quantization. A determination of which quantizer to use for a given coefficient depends on the information preceding the current coefficient in the coding scan order. This is referred to as dependent quantization.
  • two quantizers may be utilized in a dependent quantization scheme in which both sets of quantization levels output by the quantizers may include a zero level.
  • both quantizers may be zero quantizers.
  • a sig_coeff_flag may be coded during residual coding.
  • the sig_coeff_flag is used to indicate whether the level is zero or non-zero.
  • the sig_coeff_flag may be coded even in the case of non-zero quantizers.
  • a quantization step size may be represented by 2D , which may be determined by a quantization factor embedded in the bitstream.
  • a first set of quantization levels is output by a first quantizer QO.
  • the first quantizer QO is configured to produce a value, which may include both zero and non-zero levels.
  • the quantizer is configured with both zero and non-zero quantization levels.
  • QO may be a zero quantizer.
  • a second set of quantization levels is output by Ql, which may not quantize the coefficient as zero.
  • Ql may be a non- zero quantizer.
  • Fig. 4 is a schematic diagram of state machine 405 and corresponding state table 410 for quantizer selection, in accordance with various embodiments.
  • the parity of a previous quantization level of the coefficient (or prediction residue) is used to decide a state transition, and therefore the quantizer to be used to quantize the current coefficient.
  • switching between the two quantizers Q0 and Ql may be determined via a state machine with four states: 0, 1, 2, and 3.
  • the current state may be uniquely determined by the parity of the quantization level of a produced by a preceding coefficient (or prediction residue) and the preceding state in the coding scan order (e.g., encoding / decoding scan order).
  • state 0 and state 1 may correspond to a selection of the first quantizer, Q0
  • state 2 and state 3 correspond to a selection of the second quantizer, Ql.
  • the state is typically set equal to a start state, e.g. 0.
  • the coefficients are reconstructed in a coding scan order (e.g., in the same order as they are entropy decoded).
  • the state is updated as shown in Fig. 4, where k denotes the value of the level at a specific position along the coding scan order. Note that the next state only depends on the current state and the parity (k & 1) of the current level k, with k representing the value of the current coefficient level.
  • the state transition process can be written as:
  • stateTransTable represents the state table 410, and the operator & specifies a bitwise "AND" operator in two's-complement arithmetic.
  • state transition can also be specified without a lookup table as follows:
  • the state uniquely specifies the scalar quantizer used for quantizing the current coefficient. For example, if the state for a current coefficient is equal to 0 or 1, the scalar quantizer Q0 is used. Otherwise, if the state is equal to 2 or 3, the scalar quantizer Q1 is used.
  • RRC regular residual coding
  • dependent quantization may be applied to both RRC and transform skip residual coding, in which case quantization may be applied to the prediction residues.
  • Residual coding is used to convert the quantization level into a bit stream in video coding.
  • N x M quantization levels for an N x M sized block.
  • These N x M levels may be zero or non-zero values, which may further be binarized to binary bins.
  • Context modeling based binary arithmetic coding can further compress bins into bits.
  • the position of a last non-zero level is defined as the position of the last non-zero level along the coding scan order.
  • the 2D coordinates (last_sig_coeff_x and last_sig_coeff_y) of the last non-zero level are first coded.
  • An RRC block may consist of several pre-defined sub-blocks (e.g., a CU or subdivision of a CTU).
  • the last non-zero sub_block which has the last non-zero level is derived from (last_sig_coeff_x and last_sig_coeff_y) according to coding scan order.
  • the RRC will code sub_block by sub_block starting from the last non-zero sub_block in reverse scan order. Within each sub_block, RRC will code the level of each position in a reverse coding scan order, with the following syntax elements.
  • sig_coeff_flag For each level, a flag named as sig_coeff_flag may be coded 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 coded to indicate if 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 coded to indicate if the level is odd (set to 1) or even number (set to 0).
  • abs_level_gtx_flag[0] and par_level_flag it may be determined whether the level is equal to 2 or 3.
  • Another syntax element, the second abs_level_gtx_flag[l] is also coded to indicate if the absolute level is greater than 3 (set to 1) or not (set to 0). If the level is greater than 3, two syntax elements, abs_remainder and dec_abs_level may be coded.
  • the sign of each level within a block will also be coded to fully represent the quantization level.
  • a video coder such as an encoder, may be configured to perform residual coding more efficiently.
  • coding of the sig_coeff_flag may be made more efficient.
  • the coding of the sig_coeff_flag may be skipped altogether.
  • all levels quantized from the non-zero quantizer will have an absolute value greater than or equal to 1.
  • the sig_coeff_flag is always 1 for all quantization level outputs from the non-zero quantizer.
  • the sig_coeff_flag when a level is produced by the non-zero quantizer.
  • the other syntax elements of the residual coding for the non-zero quantizer may remain unchanged from the previously described.
  • residual coding of a quantization level of a zero quantizer may remain unchanged, with the sig_coeff_flag still being coded as both 0 and non-zero levels may be produced by quantizing with the zero quantizer.
  • the above described modifications dependent quantization and residual coding scheme may be adopted in one or more different video coding standards, and is not limited to any single coding standard.
  • the usage of a non-zero quantizer and corresponding residual coding may be used, for example, and without limitation, in advanced video coding (AVC), high-efficiency video coding (HEVC), and/or VVC-based codecs, or further adapted to other types of suitable codec designs.
  • AVC advanced video coding
  • HEVC high-efficiency video coding
  • VVC-based codecs or further adapted to other types of suitable codec designs.
  • Fig. 5 is a flow diagram of a method 500 for dependent quantization and residual coding, in accordance with various embodiments.
  • the method 500 begins, at block 505, by receiving a video data block.
  • a block of video data may include, without limitation, a CTU, subdivision of a CTU, or CU.
  • the block of video data may further include transformed and/or non-transformed video data.
  • method 500 continues by transforming the block of video data to produce a block of transform coefficients.
  • the transform may be a discrete cosine transform.
  • the block may be transformed, while in others, the block of video data may not be transformed, and instead directly quantized as described below.
  • method 500 continues by determining whether a first non-zero quantization level in the scan order has been produced. If it is determined, at block 515, that the first non-zero quantization level in the scan order has not yet been produced, the method 500 may continue, at block 520, by determining whether the current coefficient produces the first non-zero quantization level in the coding scan order. If the first non-zero quantization level is not produced, the method 500 continues, at block 515, by checking whether the first non-zero quantization level has been produced for the next coefficient.
  • quantization of the current coefficient may be skipped, and the check for a non-zero level performed for a succeeding coefficient.
  • the current coefficient may be quantized, at block 525, with a first quantizer.
  • the first quantizer may be a non-zero quantizer that is able to quantize, via scalar quantization, a coefficient to a non-zero level.
  • the method 500 may continue, at block 530 by selecting a quantizer for the current coefficient.
  • a quantizer may be selected as one of the first quantizer or a second quantizer.
  • the first quantizer may be a non-zero quantizer.
  • a zero quantizer for example, may be a quantizer configured to quantize a coefficient to a 0 value.
  • a non-zero quantizer may be a quantizer that does not quantize a coefficient to 0.
  • a non- zero quantizer does not output a 0 quantization level.
  • selecting a quantizer for a current coefficient may be based, at least in part, on a current state for the current coefficient.
  • the current state may, in turn, be determined based on a state (e.g., a preceding state) of a preceding coefficient.
  • a state e.g., a preceding state
  • a four-state model may be employed, as previously described with respect to Fig. 4.
  • the current state for a current coefficient may be determined during the quantization of the preceding coefficient, and based on the preceding state during quantization of the preceding coefficient.
  • a state transition, or a transition to a subsequent state from the preceding state to the current state may be determined, based at least in part, on the preceding state and the parity ( k & 1) of the preceding level k (e.g., whether the quantization level produced from the preceding coefficient is an odd or even value). Accordingly, at block 535, the coefficient is quantized with the quantizer associated with the current state.
  • method 500 further comprises determining a subsequent state for a subsequent coefficient. As with the determination of the current state, the determination of the subsequent state for the subsequent coefficient may be based, at least in part, on the current state. In some further examples, the state transition to the subsequent state may be determined based on the current state and the parity of the current level (k & 1).
  • method 500 further includes determining whether a zero quantizer was used to quantize the current coefficient.
  • an encoder may encode the quantized level into bitstream form.
  • the quantization levels are binarized into binary bins.
  • the bit stream may include one or more syntax elements to encode the value of quantization level.
  • the one or more syntax elements may include a flag (e.g., a binary bin) indicating whether a value is zero or non-zero (e.g., 0 or greater than 0).
  • method 500 may determine to use a residual coding scheme that does not encode the binary bin indicating whether the level is zero or non-zero. For example, in some embodiments, the flag / binary bin indicating whether the level is zero or non-zero may not be coded, and the residual coding scheme may not include a syntax element indicating a zero or non-zero level. At block 555, if it is determined that a zero quantizer is used, method 500 may determine to encode the binary bin indicating whether the level is zero or non-zero.
  • the method 500 may, in some examples, further include processing a subsequent coefficient (or alternatively prediction residue) in the scan order, as described above, until all coefficients in the scan order have been coded.
  • Fig. 6 is a flow diagram of a method 600 for decoding video data encoded using dependent quantization and residual coding, in accordance with various embodiments.
  • the method 600 begins, at block 605, by accessing quantization levels for a video block.
  • quantization levels may be converted via residual coding into a bit stream.
  • a bit stream of encoded video data may include a sequence of quantization levels.
  • the quantization levels of a video block may thus be accessed by extracting respective quantization levels for each element of a video block.
  • the element of a video block may depend on whether RRC was utilized, in which case a transform is applied to a prediction residue to produce a coefficient, or TSRC applied, in which case no transform is applied.
  • the dequantized element may, in the case of RRC, be a coefficient, and in the case of a TSRC encoded bit stream, the dequantized element may be a dequantized approximation of a prediction residue (e.g., a dequantized version of the prediction residue that has been recovered by dequantization of a quantized prediction residue).
  • each element may further correspond to a respective position of the video block in a coding scan order (e.g., encoding / decoding scan order).
  • the method 600 includes processing a quantization level for each element, such that a respective quantization level may be extracted from the bit stream of encoded video data, for each respective element of the video block.
  • a quantizer may be selected to dequantize the quantization level.
  • the method 600 continues by determining whether a current quantization level is the first non-zero quantization level. If it is determined that it is the first non-zero quantization level, at block 620, a scan order position of the first non-zero quantization level and the corresponding current state may be determined.
  • the first non-zero quantization level during dequantization may correspond to the position of the last non-zero level during quantization.
  • the 2D 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.
  • the current state for the first non-zero quantization level may be set to a "default" or a "start” state.
  • the method 600 may continue, at block 625, by selecting a quantizer based on the current state for the quantization level.
  • the quantization level for the current position in the coding scan order may be in a first state during dequantization of the first non-zero level (or set to a first state).
  • a first quantizer may be selected to dequantize the first non-zero level.
  • the first state may be the "default" or a "start” state.
  • the method 600 may continue, at block 625, by selecting a quantizer based on the current state for the quantization level.
  • a quantizer may be selected based on a current state for the current quantization level.
  • a current state may be determined during dequantization of a preceding quantization level. For example, a current state may be determined based on the preceding state and a parity of the value of the preceding quantization level.
  • the determination of the current state may be based on a state transition table, such as the state table 410 of Fig. 4.
  • the method 600 continues by dequantizing the current quantization level using the selected quantizer.
  • the method 600 continues by determining the state for a subsequent level based on the current state and a parity of the value of the current quantization level. As previously described, in some examples, the state may be updated based on the state table 410 of Fig. 4. After determination of the subsequent state, the method 600 may continue by processing the subsequent quantization level, in the coding scan order, as described above, until all quantization levels have been dequantized.
  • the method 600 further includes, at block 640, reconstruction the video block based on the dequantized elements.
  • the dequantized element may be a dequantized approximation of a coefficient (e.g., a dequantized version of the coefficient recovered by dequantization of the quantized coefficient / transformed prediction residue), or in some examples, a dequantized approximation of the prediction residue where transform skip residual coding is used (e.g., a prediction residue is not transformed before quantization on the encode side).
  • the quantized coefficient may refer to the coefficient after it has been quantized, and subsequently dequantized.
  • quantized prediction residue may refer to the prediction residue after it has been quantized, and subsequently dequantized.
  • the dequantized element may differ from the original (e.g., the original coefficient may be different from the dequantized "quantized coefficient", and similarly the original prediction residue may differ from the dequantized "quantized prediction residue").
  • a media coding system which may include an encoder / decoder.
  • Fig. 7 is a block diagram of a media encoding system 700, in accordance with various embodiments.
  • the media encoding system 700 may include transform processing logic 705, quantization unit 710, residual coding logic 730, dequantization and inverse transform logic 735, and coding mode selection logic 740.
  • the quantization unit 710 may further include quantization selection logic 715, a first quantizer 720 and a second quantizer 725.
  • the coding mode selection logic 740 may include motion estimation logic 745, motion compensation logic 750, and prediction logic 755.
  • the various components of the media encoding system 700 are schematically illustrated in Fig. 7, and that modifications to the media encoding system 700 may be possible in accordance with the various embodiments.
  • the media encoding system 700 may be implemented on any suitable hardware, such as one or more microprocessors, digital signal processors (DSP), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic, software, hardware, or a combination of software and hardware.
  • DSP digital signal processors
  • ASICs application specific integrated circuits
  • FPGAs field programmable gate arrays
  • the video data may include an image (e.g., a frame) of the video data, also referred to as a block or macroblock.
  • the video data may be provided to the coding mode selection logic 740, which may be configured to produce a predicted image (e.g., a predicted block).
  • 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 block of transformed video data may be provided to the quantization unit 710.
  • the video data may be provided directly to the quantization unit 710, without undergoing transformation.
  • a block may include a CTU, subdivision of a CTU, or CU.
  • Quantization unit 710 may be configured to quantize the transformed or non- transformed video data to produce a block of quantization levels.
  • the quantization unit 710 may, in some examples, produce sets of quantization levels.
  • the quantized block may be processed by the residual coding logic 730.
  • the residual coding logic 730 may be configured to convert the data of the quantized block into a bit stream. For example, in some embodiments, data in the block may be binarized into binary bins, as previously described with respect to Figs. 3-6.
  • the quantized block may further be provided to the dequantization & inverse transform logic 735 for further processing.
  • the dequantization and inverse transform logic may be used to generate a reconstructed residual block.
  • the reconstructed residual block may be added to the next predicted frame and used for motion estimation logic 745, motion compensation logic 750, and prediction logic 755 to produce a predicted frame.
  • Fig. 8 is a block diagram of a media decoding system 800, in accordance with 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.
  • entropy decoding logic 805 dequantization unit 810
  • dequantization selection logic 815 dequantization selection logic 815
  • first quantizer 820 second quantizer 825
  • inverse transform logic 830 inverse transform logic 830
  • coding mode selection logic 835 motion estimation logic 840
  • motion compensation logic 845 motion compensation logic
  • prediction logic 850 prediction logic
  • the 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.
  • the encoded video data may include a bit stream of encoded video blocks.
  • entropy decoding logic 805 may be configured to decode the encoded bit stream of video data.
  • the encoded bit stream may be decoded and quantized elements extracted from the encoded bit stream for further processing.
  • the quantized elements may then be inverse quantized (or dequantized) by the dequantization unit 810, using one of the first quantizer 820 or second quantizer 825.
  • selection of the first or second quantizer 820, 825 may be determined according to dequantization selection logic 815.
  • dequantization selection logic may select a quantizer based on a current state for a current quantized element (which, as previously explained, may be a coefficient or prediction residue), and a parity of the value of the quantized element.
  • the current state may be determined according to a state transition table, as described above with respect to Fig. 4.
  • the dequantized elements may further be inverse transformed by inverse transform logic 830.
  • the dequantized element may be a dequantized approximation of a coefficient produced by transforming a prediction residue.
  • the inverse transform logic 830 may inverse transform the coefficient produced by the dequantization unit 810. In some examples, for blocks where the transform is skipped, the inverse transform module 219 is not applied to those blocks.
  • the residual block, produced by the dequantization unit is a residual block, produced by the dequantization unit
  • the de-quantized elements produced by the dequantization unit 810 may be used to generate the reconstructed block, with a decoded video may be produced.
  • the prediction block may be generated according to a coding mode and parameters of the block, and according to motion estimation logic 840, motion compensation logic 845, and prediction logic 850.
  • Fig. 9 is a schematic block diagram of a computer system 900 dependent quantization and residual coding, in accordance with various embodiments.
  • Fig. 9 provides a schematic illustration of one embodiment of a computer system 900, such as the media encoding system 700, media decoding system 800, or subsystems thereof, such as an encoder, decoder, transform processing logic, quantization unit, residual coding logic, coding mode selection logic, dequantization and inverse transform logic, or combinations thereof, which may perform the methods provided by various other embodiments, as described herein.
  • Fig. 9 only provides a generalized illustration of various components, of which one or more of each may be utilized as appropriate. Fig. 9, therefore, broadly illustrates how individual system elements may be implemented in a relatively separated or relatively more integrated manner.
  • the computer system 900 includes multiple hardware elements that may be electrically coupled via a bus 905 (or may otherwise be in communication, as appropriate).
  • the hardware elements may include one or more processors 910, including, without limitation, one or more general-purpose processors and/or one or more special-purpose processors (such as microprocessors, digital signal processing chips, graphics acceleration processors, and microcontrollers); one or more input devices 915, which include, without limitation, a mouse, a keyboard, one or more sensors, and/or the like; and one or more output devices 920, which can include, without limitation, a display device, and/or the like.
  • processors 910 including, without limitation, one or more general-purpose processors and/or one or more special-purpose processors (such as microprocessors, digital signal processing chips, graphics acceleration processors, and microcontrollers)
  • input devices 915 which include, without limitation, a mouse, a keyboard, one or more sensors, and/or the like
  • output devices 920 which can include, without limitation, a
  • the computer system 900 may further include (and/or be in communication with) one or more storage devices 925, which can comprise, without limitation, local and/or network accessible storage, and/or can include, without limitation, a disk drive, a drive array, an optical storage device, solid-state storage device such as a random-access memory (“RAM”) and/or a read-only memory (“ROM”), which can be programmable, flash- updateable, and/or the like.
  • RAM random-access memory
  • ROM read-only memory
  • Such storage devices may be configured to implement any appropriate data stores, including, without limitation, various file systems, database structures, and/or the like.
  • the computer system 900 might also include a communications subsystem
  • the computer system 900 may include, without limitation, a modem, a network card (wireless or wired), an IR communication device, a wireless communication device and/or chipset (such as a BluetoothTM device, an 802.11 device, a WiFi device, a WiMax device, a WWAN device, a Z-Wave device, a ZigBee device, cellular communication facilities, etc.), and/or an LP wireless device as previously described.
  • the communications subsystem 930 may permit data to be exchanged with a network (such as the network described below, to name one example), with other computer or hardware systems, between data centers or different cloud platforms, and/or with any other devices described herein.
  • the computer system 900 further comprises a working memory 935, which can include a RAM or ROM device, as described above.
  • the computer system 900 also may comprise software elements, shown as being currently located within the 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 comprise computer programs provided by various embodiments, and/or may be designed to implement methods, and/or configure systems, provided by other embodiments, as described herein.
  • an operating system 940 operating system 940
  • device drivers executable libraries
  • application programs 945 which may comprise computer programs provided by various embodiments, and/or may be designed to implement methods, and/or configure systems, provided by other embodiments, as described herein.
  • code and/or instructions can be used to configure and/or adapt a general purpose computer (or other device) to perform one or more operations in accordance with the described methods.
  • a set of these instructions and/or code might be encoded and/or stored on a non-transitory computer-readable storage medium, such as the storage device(s) 925 described above.
  • the storage medium might be incorporated within a computer system, such as the system 900.
  • the storage medium might be separate from a computer system (i.e., a removable medium, such as a compact disc, etc.), and/or provided in an installation package, such that the storage medium can be used to program, configure, and/or adapt a general purpose computer with the instructions/code stored thereon.
  • These instructions might take the form of executable code, which is executable by the computer system 900 and/or might take the form of source and/or installable code, which, upon compilation and/or installation on the computer system 900 (e.g., using any of a variety of generally available compilers, installation programs, compression/decompression utilities, etc.) then takes the form of executable code.
  • some embodiments may employ a computer or hardware system (such as the computer system 900) to perform methods in accordance with various embodiments of the invention.
  • some or all of the procedures of such methods are performed by the computer system 900 in response to processor 910 executing one or more sequences of one or more instructions (which might be incorporated into the operating system 940 and/or other code, such as an application program 945) contained in the working memory 935.
  • Such instructions may be read into the working memory 935 from another computer-readable medium, such as one or more of the storage device(s) 925.
  • execution of the sequences of instructions contained in the working memory 935 might cause the processor(s) 910 to perform one or more procedures of the methods described herein.
  • machine -readable medium and “computer-readable medium,” as used herein, refer to any medium that participates in providing data that causes a machine to operate in a specific fashion.
  • various computer-readable media might be involved in providing instructions/code to processor(s) 910 for execution and/or might be used to store and/or carry such instructions/code (e.g., as signals).
  • a computer-readable medium is a non-transitory, physical, and/or tangible storage medium.
  • a computer-readable medium may take many forms, including, but not limited to, non-volatile media, volatile media, or the like.
  • Non-volatile media includes, for example, optical and/or magnetic disks, such as the storage device(s) 925.
  • Volatile media includes, without limitation, dynamic memory, such as the working memory 935.
  • a computer-readable medium may take the form of transmission media, which includes, without limitation, coaxial cables, copper wire, and fiber optics, including the wires that comprise the bus 905, as well as the various components of the communication subsystem 930 (and/or the media by which the communications subsystem 930 provides communication with other devices).
  • transmission media can also take the form of waves (including, without limitation, radio, acoustic, and/or light waves, such as those generated during radio-wave and infra-red data communications).
  • Common forms of physical and/or tangible computer-readable media include, for example, a floppy disk, a flexible disk, a 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, a PROM, an EPROM, a 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 the processor(s) 910 for execution.
  • the instructions may initially be carried on a magnetic disk and/or optical disc of a remote computer.
  • a remote computer might load the instructions into its dynamic memory and send the instructions as signals over a transmission medium to be received and/or executed by the computer system 900.
  • These signals which might be in the form of electromagnetic signals, acoustic signals, optical signals, and/or the like, are all examples of carrier waves on which instructions can be encoded, in accordance with various embodiments of the invention.
  • the communications subsystem 930 (and/or components thereof) generally receives the signals, and the bus 905 then might carry the signals (and/or the data, instructions, etc. carried by the signals) to the working memory 935, from which the processor(s) 910 retrieves and executes the instructions.
  • the instructions received by the working memory 935 may optionally be stored on a storage device 925 either before or after execution by the processor(s) 910.

Abstract

Novel tools and techniques are provided for dependent 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 an encoded bit stream, 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 a decoding scan order, the decoder may select a first quantizer as the selected quantizer. 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 or a second quantizer 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 the block with the current dequantized element

Description

DEPENDENT QUANTIZATION AND RESIDUAL CODING METHOD
COPYRIGHT STATEMENT
[0001] A portion of the disclosure of this patent document contains material that 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.
FIELD
[0002] The present disclosure relates, in general, to methods, systems, and apparatuses for multimedia encoding and decoding.
BACKGROUND
[0003] Dependent quantization is a technique used in video coding to reduce the dynamic range of a video signal such that fewer bits are used to represent the video signal. Quantization typically involves division by a quantization step size and subsequent rounding while inverse quantization involves multiplication by the quantization step size. Such a quantization process is also called scalar quantization. The quantization of all coefficients within a block can be done independently and this kind of 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, multiple quantizers may be used. Determining which of the multiple quantizers will be used to quantize a given coefficient typically depends on the information preceding the current coefficient in coding scan order. Such quantization approach is also referred to as dependent quantization, and is used, for example, in versatile video coding (VVC) or H.266. After quantization, the quantized value of a coefficient is called a quantization level or simply, "level. " Residual coding is a technique used to convert the quantization levels of a quantized NxM block into a coded bit stream.
[0004] Methods, systems, and apparatuses for improving inefficiencies in conventional dependent quantization schemes and syntax elements in residual coding are provided. SUMMARY
[0005] Tools and techniques for dependent quantization and residual coding are provided.
[0006] According to an embodiment, a method for dependent quantization and residual coding is provided. The method may include obtaining a current quantization level of a block of video data from an encoded bit stream; determining a selected quantizer to dequantize the current quantization level, wherein if the current quantization level is a first non-zero quantization level of the block in a decoding scan order, selecting a first quantizer as the selected quantizer for the current quantization level, wherein if the current quantization level is not the first non-zero quantization level of the block in the decoding scan order, selecting one of the first quantizer or a second quantizer as the selected quantizer based on a current state of the current quantization level, and wherein the current state is determined based on a preceding state of an immediately preceding quantization level of the block in the decoding scan order and a parity of a value of the preceding quantization level. The method may further include dequantizing, via the selected quantizer, the current quantization level to produce a current dequantized element, and reconstructing, via a decoder, the block with the current dequantized element in decoding scan order.
[0007] According to another embodiment, an apparatus for dependent quantization and residual coding 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 to perform various functions. For example, the set of instructions may be executed by the processor to obtain a current quantization level of a block of video data from an encoded bit stream, 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 a decoding scan order, a first quantizer is selected as the selected quantizer for 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 or a 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 preceding state of an immediately preceding quantization level of the block in the decoding scan order and a parity of a value of the preceding quantization level. The instructions may further be executable by the processor to dequantize, via the selected quantizer, the current quantization level to produce a current dequantized element, and reconstruct, via a decoder, the block with the current dequantized element in decoding scan order.
[0008] According to a further embodiment, a media coding subsystem is provided.
The media coding subsystem may include two or more quantizers comprising 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 various functions. For example, the instructions may be executable by the processor to obtain a current quantization level of a block of video data from an encoded bit stream, 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 a decoding scan order, a first quantizer is selected as the selected quantizer for 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 or a 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 preceding state of an immediately preceding quantization level of the block in the decoding scan order and a parity of a value of the preceding quantization level. The instructions may further be executable by the processor to dequantize, via the selected quantizer, the current quantization level to produce a current dequantized element, and reconstruct, via a decoder, the block with the current dequantized element in decoding scan order.
[0009] These illustrative embodiments are mentioned not to limit or define the disclosure, but to provide examples to aid understanding thereof. Additional embodiments are discussed in the Detailed Description, and further description is provided therein.
BRIEF DESCRIPTION OF THE DRAWINGS [0010] A further understanding of the nature and advantages of particular embodiments may be realized by reference to the remaining portions of the specification and the drawings, in which like reference numerals are used to refer to similar components. In some instances, a sub-label is associated with a reference numeral to denote one of multiple similar components. When reference is made to a reference numeral without specification to an existing sub-label, it is intended to refer to all such multiple similar components.
[0011] Fig. 1 is a schematic diagram of a coding tree unit (CTU), in accordance with various embodiments; [0012] Fig. 2 is a schematic diagram of a CTU divided into multiple coding units
(CU), in accordance with various embodiments;
[0013] Fig. 3 is a schematic diagram of two sets of quantization level outputs produced by different quantizers in dependent quantization, in accordance with various embodiments;
[0014] Fig. 4 is a schematic diagram of state machine and corresponding state table for quantizer selection, in accordance with various embodiments;
[0015] Fig. 5 is a flow diagram of a method for encoding a video block via dependent quantization and residual coding, in accordance with various embodiments; [0016] Fig. 6 is a flow diagram of a method for decoding video data encoded using dependent quantization and residual coding, in accordance with various embodiments; [0017] Fig. 7 is a block diagram of a media encoding system, in accordance with various embodiments;
[0018] Fig. 8 is a block diagram of a media decoding system, in accordance with various embodiments; and
[0019] Fig. 9 is a schematic block diagram of a computer system for dependent quantization and residual coding, in accordance with various embodiments.
DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS [0020] Various embodiments provide tools and techniques for dependent quantization and residual coding.
[0021] In some embodiments, a method for dependent quantization and residual coding is provided. The method may include obtaining a current quantization level of a block of video data from an encoded bit stream; determining a selected quantizer to dequantize the current quantization level, wherein if the current quantization level is a first non-zero quantization level of the block in a decoding scan order, selecting a first quantizer as the selected quantizer for the current quantization level, wherein if the current quantization level is not the first non-zero quantization level of the block in the decoding scan order, selecting one of the first quantizer or a second quantizer as the selected quantizer based on a current state of the current quantization level, and wherein the current state is determined based on a preceding state of an immediately preceding quantization level of the block in the decoding scan order and a parity of a value of the preceding quantization level. The method may further include dequantizing, via the selected quantizer, the current quantization level to produce a current dequantized element, and reconstructing, via a decoder, the block with the current dequantized element in decoding scan order.
[0022] In some examples, the method may further include determining a subsequent state of an immediately succeeding quantization level based on the current state and a parity of the value of the current quantization level. In further examples, the first and second quantizers may include one of: one zero quantizer and one non-zero quantizer, two zero quantizers, or two non-zero quantizers. In some examples, the encoded bit stream may represent respective quantization levels in binary bins, wherein if a zero quantizer is used, a binary bin indicating whether the quantization level is a zero value or non-zero value is coded, wherein if a non-zero quantizer is used, the binary bin indicating whether the quantization is a zero value or non-zero value is not coded into the bit stream.
[0023] 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 include determining the current state of the current quantization level in the decoding scan order, wherein determining the current state of the current quantization level includes generating a four-state model, and determining, during the dequantization of the preceding quantization level, the current state of the current quantization level based at least in part on the preceding state of the preceding quantization level, wherein the four-state model determines a state transition from the preceding state to the current state. In further examples, the state transition may be a transition from one of the first state, second state, third state, or fourth state to a same or different state as determined based on the preceding state and the parity of the value of the preceding quantization level.
In yet further examples, the current dequantized element may be a dequantized approximation of a transform coefficient or prediction residue of the block.
[0024] In some embodiments, an apparatus for dependent quantization and residual coding 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 to perform various functions. For example, the set of instructions may be executed by the processor to obtain a current quantization level of a block of video data from an encoded bit stream, 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 a decoding scan order, a first quantizer is selected as the selected quantizer for 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 or a 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 preceding state of an immediately preceding quantization level of the block in the decoding scan order and a parity of a value of the preceding quantization level. The instructions may further be executable by the processor to dequantize, via the selected quantizer, the current quantization level to produce a current dequantized element, and reconstruct, via a decoder, the block with the current dequantized element in decoding scan order.
[0025] In some examples, the set of instructions may be executable by the processor to further determine a subsequent state of an immediately succeeding quantization level based on the current state and a parity of the value of the current quantization level. In some examples, the first and second quantizers may include one of: one zero quantizer and one non-zero quantizer, two zero quantizers, or two non-zero quantizers.
[0026] In some examples, the set of instructions may be 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 may be 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 includes generating a four-state model, and determining, during the dequantization of the preceding quantization level, the current state of the current quantization level based at least in part on the preceding state of the preceding quantization level, wherein the four-state model determines a state transition from the preceding state to the current state. In further examples, the state transition is a transition from one of the first state, second state, third state, or fourth state to a same or different state as determined based on the preceding state and the parity of the value of the preceding quantization level. In yet further examples, the current dequantized element may be a dequantized approximation of a transform coefficient or prediction residue of the block.
[0027] In some embodiments, a system for dependent quantization and residual coding is provided. The media coding subsystem may include two or more quantizers comprising 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 various functions. For example, the instructions may be executable by the processor to obtain a current quantization level of a block of video data from an encoded bit stream, 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 a decoding scan order, a first quantizer is selected as the selected quantizer for 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 or a 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 preceding state of an immediately preceding quantization level of the block in the decoding scan order and a parity of a value of the preceding quantization level. The instructions may further be executable by the processor to dequantize, via the selected quantizer, the current quantization level to produce a current dequantized element, and reconstruct, via a decoder, the block with the current dequantized element in decoding scan order.
[0028] In some examples, the set of instructions may be executable by the processor to further determine a subsequent state of an immediately succeeding quantization level based on the current state and a parity of the value of the current quantization level. In some examples, the first and second quantizers may include one of: one zero quantizer and one non-zero quantizer, two zero quantizers, or two non-zero quantizers.
[0029] In some examples, the set of instructions may be 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 includes generating a four-state model, and determining, during the dequantization of the preceding quantization level, the current state of the current quantization level based at least in part on the preceding state of the preceding quantization, wherein the four-state model determines a state transition from the preceding state to the current state. In further examples, the state transition is a transition from one of the first state, second state, third state, or fourth state to a same or different state as determined based on the preceding state and the parity of the value of the preceding quantization level. In yet further examples, the current dequantized element may be a dequantized approximation of a transform coefficient or prediction residue of the block.
[0030] In the following description, for the purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the described embodiments. It will be apparent to one skilled in the art, however, that other embodiments may be practiced without some of these details. In other instances, structures and devices are shown in block diagram form. Several embodiments are described herein, and while various features are ascribed to different embodiments, it should be appreciated that the features described with respect to one embodiment may be incorporated with other embodiments as well. By the same token, however, no single feature or features of any described embodiment should be considered essential to every embodiment of the invention, as other embodiments of the invention may omit such features.
[0031] Unless otherwise indicated, all numbers used herein to express quantities, dimensions, and so forth used should be understood as being modified in all instances by the term "about." In this application, the use of the singular includes the plural unless specifically stated otherwise, and use of the terms "and" and "or" means "and/or" unless otherwise indicated. Moreover, the use of the term "including," as well as other forms, such as "includes" and "included," should be considered non-exclusive. Also, terms such as "element" or "component" encompass both elements and components comprising one unit and elements and components that comprise more than one unit, unless specifically stated otherwise.
[0032] The various embodiments include, without limitation, methods, systems, apparatuses, and/or software products. Merely by way of example, a method might comprise one or more procedures, any or all of which may be executed by a computer system. Correspondingly, an embodiment might provide a computer system configured with instructions to perform one or more procedures in accordance with methods provided by various other embodiments. Similarly, a computer program might comprise a set of instructions that are 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 (such as, to name but a few examples, optical media, magnetic media, and/or the like).
[0033] Various embodiments described herein, embodying software products and computer-performed methods, represent tangible, concrete improvements to existing technological areas, including, without limitation, multimedia coding and signal processing. In some aspects, implementations of various embodiments improve the functioning of multimedia coding systems/subsystems by enabling more efficient dependent quantization and residual coding techniques. It is to be understood that the term "coding" may be used to refer to encoding, decoding, or both encoding and decoding.
[0034] To the extent any abstract concepts are present in the various embodiments, those concepts can be implemented as described herein by devices, software, systems, and methods that involve novel functionality (e.g., steps or operations), such as using an algorithm to select quantization modes in a media coding system and/or subsystem.
[0035] Fig. 1 is a schematic diagram of an image (e.g., 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 CTUs 105a-105n (collectively CTUs 105). According to various embodiments, during coding, an input image (such as frame 100) may be divided into one or more CTUs 105a-105n. The CTUs 105 may each individually be square blocks of pixels, as shown in Fig. 1. In some embodiments, an individual CTU of the CTUs 105 may be a block 128 x 128 pixels. In some embodiments, as depicted, frame 100 may be divided into CTUs 105. The one or more CTUs 105a-105n may, in some examples, be scanned in a raster scan order, as depicted. In other embodiments, a different scan order, such as a z-scan order, may be used.
[0036] Each CTU 105a-105n of a frame 100 may respectively be partitioned into one or more CUs. For example, Fig. 2 is a schematic diagram of a CTU 200 divided into one or more coding units (CUs) 205a-205m (collectively CUs 205). In various embodiments, CUs 205 may be sub-units of a CTU, which may be used for prediction and transform during coding operations. CUs 205a-205m may be rectangular or square in arrangement, and further may be coded without further partitioning into prediction units or transform units. Each CU 205a- 205m may be as large as its root CTU 200 and/or a subdivision of the CTU 200. For example, the CTU may be divided into subdivisions of up to 4x4 blocks (e.g., up to 16 total blocks). Thus, a CU 205, such as CU 205j, 205i may be the size of a single subdivision of the CTU 200. The CU 205 may further be smaller than the root CTU 200 and/or subdivision of the CTU 200, as shown by the CUs 205a-205h, 205k-2051. In some embodiments, the CUs 205a-205m may be coded, for example, in a Z-scan order, in the order labeled 205a-205m. It should be noted that the various CUs 205 of the CTU 200 are schematically illustrated in Fig. 2, and that modifications to the partitioning of a CTU 200 may be possible in accordance with the various embodiments.
[0037] Fig. 3 is a schematic diagram of two sets of quantization level outputs 300 produced by different quantizers in a dependent quantization scheme. As previously described, quantization is a technique used to reduce the dynamic range of a transformed or non-transformed video signal. Thus, fewer bits may be used to represent the video signal. Before quantization, the difference between an original pixel and a pixel of a predicted frame may be referred to as the "residue" or "prediction residue." The transformed video signal and/or prediction residue at a specific position may be referred to as a "coefficient." For purposes of explanation, many examples are provided with reference to a coefficient. It is to be understood that in other embodiments, similar techniques may be applied as appropriate to prediction residues, such as embodiments employing a transform skip residual coding (TSRC). After quantization, the quantized value of the coefficient, or in examples where the transform is skipped, the quantized value of the prediction residue, is referred to as a quantization level or simply "level."
[0038] As previously described, quantization comprises division of a coefficient by a quantization step size, and subsequent rounding of the resulting quantization level. Inverse quantization comprises multiplication of the quantization level by the quantization step size. Such a quantization process is referred to as scalar quantization. Conventionally, quantization of all coefficients in a block (e.g., a CTU 105, 200 and/or a subdivision of a CTU 105, 200) may be performed independently.
[0039] For example, for an N x M size block, a specific coding scan order may be used to convert 2-D coefficients of a block into a 1-D coefficient sequence for coefficient quantization and coding. Typically, the scan starts from the left-top corner and stops at the right bottom corner of a block, or last non-zero coefficient / level in a right bottom direction. This is also referred to as a z-scan order. Quantization of a coefficient within a block may make use of the scan order information (e.g., it may depend on the status of the previous quantization level along the scan order).
[0040] In some embodiments, to improve the coding efficiency, more than one quantizer (e.g., two quantizers) may be used for quantization. A quantizer may refer to a device and/or a programmed function of a device that performs quantization. A determination of which quantizer to use for a given coefficient depends on the information preceding the current coefficient in the coding scan order. This is referred to as dependent quantization.
[0041] In some conventional examples, two quantizers may be utilized in a dependent quantization scheme in which both sets of quantization levels output by the quantizers may include a zero level. In other words, both quantizers may be zero quantizers. Thus, as will be explained in further detail below, a sig_coeff_flag may be coded during residual coding. For each level, the sig_coeff_flag is used to indicate whether the level is zero or non-zero. The sig_coeff_flag may be coded even in the case of non-zero quantizers. [0042] As depicted in Fig. 3, a quantization step size may be represented by 2D , which may be determined by a quantization factor embedded in the bitstream. Two sets of quantization level outputs 300 are provided. A first set of quantization levels is output by a first quantizer QO. In various embodiments, the first quantizer QO is configured to produce a value, which may include both zero and non-zero levels. In other words, the quantizer is configured with both zero and non-zero quantization levels. Thus, in some examples, QO may be a zero quantizer. A second set of quantization levels is output by Ql, which may not quantize the coefficient as zero. Thus, in some examples, Ql may be a non- zero quantizer. [0043] Although the quantizer used for quantizing a given coefficient may be signaled explicitly, the overhead to do so may compromise coding efficiency. Thus, an algorithmic approach for quantizer selection may be utilized. In one example, a four-state model is proposed.
[0044] Fig. 4 is a schematic diagram of state machine 405 and corresponding state table 410 for quantizer selection, in accordance with various embodiments. In various embodiments, the parity of a previous quantization level of the coefficient (or prediction residue) is used to decide a state transition, and therefore the quantizer to be used to quantize the current coefficient. For example, in some embodiments, switching between the two quantizers Q0 and Ql may be determined via a state machine with four states: 0, 1, 2, and 3. The current state may be uniquely determined by the parity of the quantization level of a produced by a preceding coefficient (or prediction residue) and the preceding state in the coding scan order (e.g., encoding / decoding scan order). In some examples, state 0 and state 1 may correspond to a selection of the first quantizer, Q0, while state 2 and state 3 correspond to a selection of the second quantizer, Ql.
[0045] In some embodiments, at the start of quantization at the encoding side, or inverse quantization at the decoding side of a block, the state is typically set equal to a start state, e.g. 0. The coefficients are reconstructed in a coding scan order (e.g., in the same order as they are entropy decoded). After a current coefficient is reconstructed, the state is updated as shown in Fig. 4, where k denotes the value of the level at a specific position along the coding scan order. Note that the next state only depends on the current state and the parity (k & 1) of the current level k, with k representing the value of the current coefficient level. Thus, the state transition process can be written as:
Next State = stateTransTable [state] [k & 1] (Eq. 1)
Where stateTransTable represents the state table 410, and the operator & specifies a bitwise "AND" operator in two's-complement arithmetic. Alternatively, the state transition can also be specified without a lookup table as follows:
Next State (state (Eq. 2)
Figure imgf000013_0001
Figure imgf000013_0002
Where the 16-bit value 32040 specifies the state transition table, and the operators "«" and "»" represent bitwise shift operators.
[0046] Thus, the state uniquely specifies the scalar quantizer used for quantizing the current coefficient. For example, if the state for a current coefficient is equal to 0 or 1, the scalar quantizer Q0 is used. Otherwise, if the state is equal to 2 or 3, the scalar quantizer Q1 is used. In conventional versatile video coding (VVC), dependent quantization is allowed only for regular residual coding (RRC), which means that the dependent quantization is applied to the transform coefficients of the prediction residues and scalar quantization is applied to the prediction residues. According to some embodiments, dependent quantization may be applied to both RRC and transform skip residual coding, in which case quantization may be applied to the prediction residues.
[0047] Residual coding is used to convert the quantization level into a bit stream in video coding. After quantization, there are N x M quantization levels for an N x M sized block. These N x M levels may be zero or non-zero values, which may further be binarized to binary bins. Context modeling based binary arithmetic coding can further compress bins into bits.
[0048] For an RRC block, the position of a last non-zero level is defined as the position of the last non-zero level along the coding scan order. The 2D coordinates (last_sig_coeff_x and last_sig_coeff_y) of the last non-zero level are first coded. An RRC block may consist of several pre-defined sub-blocks (e.g., a CU or subdivision of a CTU). The last non-zero sub_block which has the last non-zero level is derived from (last_sig_coeff_x and last_sig_coeff_y) according to coding scan order. The RRC will code sub_block by sub_block starting from the last non-zero sub_block in reverse scan order. Within each sub_block, RRC will code the level of each position in a reverse coding scan order, with the following syntax elements.
[0049] For each level, a flag named as sig_coeff_flag may be coded 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 coded to indicate if 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 coded to indicate if the level is odd (set to 1) or even number (set to 0). Using abs_level_gtx_flag[0] and par_level_flag, it may be determined whether the level is equal to 2 or 3. Another syntax element, the second abs_level_gtx_flag[l] is also coded to indicate if the absolute level is greater than 3 (set to 1) or not (set to 0). If the level is greater than 3, two syntax elements, abs_remainder and dec_abs_level may be coded. In addition, the sign of each level within a block will also be coded to fully represent the quantization level.
[0050] Thus, in various embodiments, a video coder, such as an encoder, may be configured to perform residual coding more efficiently. Utilizing a zero quantizer and non zero quantizer, coding of the sig_coeff_flag may be made more efficient. For example, in various embodiments, when using a non-zero quantizer Ql, the coding of the sig_coeff_flag may be skipped altogether. When using a non-zero quantizer, all levels quantized from the non-zero quantizer will have an absolute value greater than or equal to 1. Thus, the sig_coeff_flag is always 1 for all quantization level outputs from the non-zero quantizer. Therefore, it is not necessary to code the sig_coeff_flag when a level is produced by the non-zero quantizer. The other syntax elements of the residual coding for the non-zero quantizer may remain unchanged from the previously described. Similarly, residual coding of a quantization level of a zero quantizer may remain unchanged, with the sig_coeff_flag still being coded as both 0 and non-zero levels may be produced by quantizing with the zero quantizer.
[0051] In various embodiments, the above described modifications dependent quantization and residual coding scheme may be adopted in one or more different video coding standards, and is not limited to any single coding standard. For example, the usage of a non-zero quantizer and corresponding residual coding may be used, for example, and without limitation, in advanced video coding (AVC), high-efficiency video coding (HEVC), and/or VVC-based codecs, or further adapted to other types of suitable codec designs.
[0052] Fig. 5 is a flow diagram of a method 500 for dependent quantization and residual coding, in accordance with various embodiments. The method 500 begins, at block 505, by receiving a video data block. As previously described, in some embodiments, a block of video data may include, without limitation, a CTU, subdivision of a CTU, or CU. The block of video data may further include transformed and/or non-transformed video data. Thus, in some embodiments, at block 510, method 500 continues by transforming the block of video data to produce 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 others, the block of video data may not be transformed, and instead directly quantized as described below.
[0053] At decision block 515, method 500 continues by determining whether a first non-zero quantization level in the scan order has been produced. If it is determined, at block 515, that the first non-zero quantization level in the scan order has not yet been produced, the method 500 may continue, at block 520, by determining whether the current coefficient produces the first non-zero quantization level in the coding scan order. If the first non-zero quantization level is not produced, the method 500 continues, at block 515, by checking whether the first non-zero quantization level has been produced for the next coefficient. In some examples, if it is determined for a current coefficient that the first non-zero level in the scan order is not (and has not been) produced, quantization of the current coefficient may be skipped, and the check for a non-zero level performed for a succeeding coefficient.
[0054] If, at block 520, it is determined that the current coefficient produces the first non-zero quantization level, the current coefficient may be quantized, at block 525, with a first quantizer. As previously described, the first quantizer may be a non-zero quantizer that is able to quantize, via scalar quantization, a coefficient to a non-zero level.
[0055] In some embodiments, if it is determined that the first non-zero quantization level has been produced, the method 500 may continue, at block 530 by selecting a quantizer for the current coefficient. In various embodiments, a quantizer may be selected as one of the first quantizer or a second quantizer. In some examples, as described above, the first quantizer may be a non-zero quantizer. A zero quantizer, for example, may be a quantizer configured to quantize a coefficient to a 0 value. Thus, a non-zero quantizer may be a quantizer that does not quantize a coefficient to 0. A non- zero quantizer does not output a 0 quantization level.
[0056] In some embodiments, selecting a quantizer for a current coefficient may be based, at least in part, on a current state for the current coefficient. In some examples, the current state may, in turn, be determined based on a state (e.g., a preceding state) of a preceding coefficient. For example, in some embodiments, a four-state model may be employed, as previously described with respect to Fig. 4. In some embodiments, the current state for a current coefficient may be determined during the quantization of the preceding coefficient, and based on the preceding state during quantization of the preceding coefficient. In some embodiments, a state transition, or a transition to a subsequent state from the preceding state to the current state may be determined, based at least in part, on the preceding state and the parity ( k & 1) of the preceding level k (e.g., whether the quantization level produced from the preceding coefficient is an odd or even value). Accordingly, at block 535, the coefficient is quantized with the quantizer associated with the current state. [0057] By the same token, at block 540, method 500 further comprises determining a subsequent state for a subsequent coefficient. As with the determination of the current state, the determination of the subsequent state for the subsequent coefficient may be based, at least in part, on the current state. In some further examples, the state transition to the subsequent state may be determined based on the current state and the parity of the current level (k & 1).
[0058] At decision block 545, method 500 further includes determining whether a zero quantizer was used to quantize the current coefficient. Once the coefficient has been quantized, an encoder may encode the quantized level into bitstream form. As previously described, in some embodiments, the quantization levels are binarized into binary bins. Thus, the bit stream may include one or more syntax elements to encode the value of quantization level. In some embodiments, the one or more syntax elements may include a flag (e.g., a binary bin) indicating whether a value is zero or non-zero (e.g., 0 or greater than 0). At block 550, if it is determined that a zero quantizer is not used, method 500 may determine to use a residual coding scheme that does not encode the binary bin indicating whether the level is zero or non-zero. For example, in some embodiments, the flag / binary bin indicating whether the level is zero or non-zero may not be coded, and the residual coding scheme may not include a syntax element indicating a zero or non-zero level. At block 555, if it is determined that a zero quantizer is used, method 500 may determine to encode the binary bin indicating whether the level is zero or non-zero.
[0059] The method 500 may, in some examples, further include processing a subsequent coefficient (or alternatively prediction residue) in the scan order, as described above, until all coefficients in the scan order have been coded.
[0060] Fig. 6 is a flow diagram of a method 600 for decoding video data encoded using dependent quantization and residual coding, in accordance with various embodiments. The method 600 begins, at block 605, by accessing quantization levels for a video block. As previously described, quantization levels may be converted via residual coding into a bit stream. Thus, a bit stream of encoded video data may include a sequence of quantization levels. In some embodiments, the quantization levels of a video block may thus be accessed by extracting respective quantization levels for each element of a video block. In some examples, the element of a video block may depend on whether RRC was utilized, in which case a transform is applied to a prediction residue to produce a coefficient, or TSRC applied, in which case no transform is applied. Thus, the dequantized element may, in the case of RRC, be a coefficient, and in the case of a TSRC encoded bit stream, the dequantized element may be a dequantized approximation of a prediction residue (e.g., a dequantized version of the prediction residue that has been recovered by dequantization of a quantized prediction residue). Thus, each element may further correspond to a respective position of the video block in a coding scan order (e.g., encoding / decoding scan order). Accordingly, at block 610, the method 600 includes processing a quantization level for each element, such that a respective quantization level may be extracted from the bit stream of encoded video data, for each respective element of the video block.
[0061] Furthermore, a quantizer may be selected to dequantize the quantization level. At decision block 615, the method 600 continues by determining whether a current quantization level is the first non-zero quantization level. If it is determined that it is the first non-zero quantization level, at block 620, a scan order position of the first non-zero quantization level and the corresponding current state may be determined. In some examples, the first non-zero quantization level during dequantization may correspond to the position of the last non-zero level during quantization. Thus, in some examples, the 2D 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 for the first non-zero quantization level may be set to a "default" or a "start" state. The method 600 may continue, at block 625, by selecting a quantizer based on the current state for the quantization level. In some examples, the quantization level for the current position in the coding scan order may be in a first state during dequantization of the first non-zero level (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 the "default" or a "start" state.
[0062] If it is determined that the current quantization level is not the first non-zero level, the method 600 may continue, at block 625, by selecting a quantizer based on the current state for the quantization level. As previously described, in some embodiments, a quantizer may be selected based on a current state for the current quantization level. A current state may be determined during dequantization of a preceding quantization level. For example, a current state may be determined based on the preceding state and a parity of the value of the preceding quantization level. In some examples, the determination of the current state may be based on a state transition table, such as the state table 410 of Fig. 4.
[0063] At block 630, the method 600 continues by dequantizing the current quantization level using the selected quantizer. At block 635, the method 600 continues by determining the state for a subsequent level based on the current state and a parity of the value of the current quantization level. As previously described, in some examples, the state may be updated based on the state table 410 of Fig. 4. After determination of the subsequent state, the method 600 may continue by processing the subsequent quantization level, in the coding scan order, as described above, until all quantization levels have been dequantized. [0064] The method 600 further includes, at block 640, reconstruction the video block based on the dequantized elements. As previously described, the dequantized element may be a dequantized approximation of a coefficient (e.g., a dequantized version of the coefficient recovered by dequantization of the quantized coefficient / transformed prediction residue), or in some examples, a dequantized approximation of the prediction residue where transform skip residual coding is used (e.g., a prediction residue is not transformed before quantization on the encode side). In each case, the quantized coefficient may refer to the coefficient after it has been quantized, and subsequently dequantized. Similarly, quantized prediction residue may refer to the prediction residue after it has been quantized, and subsequently dequantized. In various examples, the dequantized element may differ from the original (e.g., the original coefficient may be different from the dequantized "quantized coefficient", and similarly the original prediction residue may differ from the dequantized "quantized prediction residue").
[0065] The process of dependent 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, in accordance with various embodiments. The media encoding system 700 may include transform processing logic 705, quantization unit 710, residual coding logic 730, dequantization and inverse transform logic 735, and coding mode selection logic 740. The quantization unit 710 may further include quantization selection logic 715, a first quantizer 720 and a second quantizer 725. The 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 the media encoding system 700 are schematically illustrated in Fig. 7, and that modifications to the media encoding system 700 may be possible in accordance with the various embodiments. [0066] In various embodiments, the media encoding system 700 may be implemented on any suitable hardware, such as one or more microprocessors, digital signal processors (DSP), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic, software, hardware, or a combination of software and hardware. Features and logic implemented in software may be stored in corresponding non- transitory computer-readable media and/or storage devices. This is discussed in greater detail below with respect to Fig. 9. [0067] In various embodiments, the video data may include an image (e.g., a frame) of the video data, also referred to as a block or macroblock. The video data may be provided to the coding mode selection logic 740, which may be configured to produce 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 block of transformed video data may be provided to the quantization unit 710. In other examples, the video data may be provided directly to the quantization unit 710, without undergoing transformation. As previously described, in some examples, a block may include a CTU, subdivision of a CTU, or CU.
[0068] Quantization unit 710 may be configured to quantize the transformed or non- transformed video data to produce a block of quantization levels. The quantization unit 710 may, in some examples, produce sets of quantization levels. In some embodiments, the quantized block may be processed by the residual coding logic 730. The residual coding logic 730 may be configured to convert the data of the quantized block into a bit stream. For example, in some embodiments, data in the block may be binarized into binary bins, as previously described with respect to Figs. 3-6.
[0069] In some embodiments, the quantized block may further be provided to the dequantization & inverse transform logic 735 for further processing. For example, in some embodiments, the dequantization and inverse transform logic may be used to generate a reconstructed residual block. The reconstructed residual block may be added to the next predicted frame and used for motion estimation logic 745, motion compensation logic 750, and prediction logic 755 to produce a predicted frame.
[0070] Fig. 8 is a block diagram of a media decoding system 800, in accordance with 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 to the media encoding system 800 may be possible in accordance with the various embodiments.
[0071] In various embodiments, like the media encoding system 700, the 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 include a bit stream of encoded video blocks. Accordingly, entropy decoding logic 805 may be configured to decode the encoded bit stream of video data. Specifically, the encoded bit stream may be decoded and quantized elements extracted from the encoded bit stream for further processing.
[0072] In some examples, the quantized elements may then be inverse quantized (or dequantized) by the dequantization unit 810, using one of the first quantizer 820 or second quantizer 825. As previously described, selection of the first or second quantizer 820, 825 may be determined according to dequantization selection logic 815. In various embodiments, dequantization selection logic may select a quantizer based on a current state for a current quantized element (which, as previously explained, may be a coefficient or prediction residue), and a parity of the value of the quantized element. In some examples, the current state may be determined according to a state transition table, as described above with respect to Fig. 4. In some examples, the dequantized elements may further be inverse transformed by inverse transform logic 830. As previously described, in some examples, the dequantized element may be a dequantized approximation of a coefficient produced by transforming a prediction residue. Accordingly, the inverse transform logic 830 may inverse transform the coefficient produced by the dequantization unit 810. In some examples, for blocks where the transform is skipped, the inverse transform module 219 is not applied to those blocks.
[0073] In further examples, the residual block, produced by the dequantization unit
810 may be added to a corresponding predicted block, produced by the coding mode selection logic 835, to generate a reconstructed block. The reconstructed block may then be provided to the coding mode selection logic 835 to produce a subsequent predicted block. Thus, the de-quantized elements produced by the dequantization unit 810 may be used to generate the reconstructed block, with a decoded video may be produced. As discussed above with respect to Fig. 7, the prediction block may be generated according to a coding mode and parameters of the block, and according to motion estimation logic 840, motion compensation logic 845, and prediction logic 850.
[0074] Fig. 9 is a schematic block diagram of a computer system 900 dependent quantization and residual coding, in accordance with various embodiments. Fig. 9 provides a schematic illustration of one embodiment of a computer system 900, such as the media encoding system 700, media decoding system 800, or subsystems thereof, such as an encoder, decoder, transform processing logic, quantization unit, residual coding logic, coding mode selection logic, dequantization and inverse transform logic, or combinations thereof, which may perform the methods provided by various other embodiments, as described herein. It should be noted that Fig. 9 only provides a generalized illustration of various components, of which one or more of each may be utilized as appropriate. Fig. 9, therefore, broadly illustrates how individual system elements may be implemented in a relatively separated or relatively more integrated manner.
[0075] The computer system 900 includes multiple hardware elements that may be electrically coupled via a bus 905 (or may otherwise be in communication, as appropriate). The hardware elements may include one or more processors 910, including, without limitation, one or more general-purpose processors and/or one or more special-purpose processors (such as microprocessors, digital signal processing chips, graphics acceleration processors, and microcontrollers); one or more input devices 915, which include, without limitation, a mouse, a keyboard, one or more sensors, and/or the like; and one or more output devices 920, which can include, without limitation, a display device, and/or the like. [0076] The computer system 900 may further include (and/or be in communication with) one or more storage devices 925, which can comprise, without limitation, local and/or network accessible storage, and/or can include, without limitation, a disk drive, a drive array, an optical storage device, solid-state storage device such as a random-access memory ("RAM") and/or a read-only memory ("ROM"), which can be programmable, flash- updateable, and/or the like. Such storage devices may be configured to implement any appropriate data stores, including, without limitation, various file systems, database structures, and/or the like.
[0077] The computer system 900 might also include a communications subsystem
930, which may include, without limitation, a modem, a network card (wireless or wired), an IR communication device, a wireless communication device and/or chipset (such as a Bluetooth™ device, an 802.11 device, a WiFi device, a WiMax device, a WWAN device, a Z-Wave device, a ZigBee device, cellular communication facilities, etc.), and/or an LP wireless device as previously described. The communications subsystem 930 may permit data to be exchanged with a network (such as the network described below, to name one example), with other computer or hardware systems, between data centers or different cloud platforms, and/or with any other devices described herein. In many embodiments, the computer system 900 further comprises a working memory 935, which can include a RAM or ROM device, as described above.
[0078] The computer system 900 also may comprise software elements, shown as being currently located within the 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 comprise computer programs provided by various embodiments, and/or may be designed to implement methods, and/or configure systems, provided by other embodiments, as described herein. Merely by way of example, one or more procedures described with respect to the method(s) discussed above might be implemented as code and/or instructions executable by a computer (and/or a processor within a computer); in an aspect, then, such code and/or instructions can be used to configure and/or adapt a general purpose computer (or other device) to perform one or more operations in accordance with the described methods.
[0079] A set of these instructions and/or code might be encoded and/or stored on a non-transitory computer-readable storage medium, such as the storage device(s) 925 described above. In some cases, the storage medium might be incorporated within a computer system, such as the system 900. In other embodiments, the storage medium might be separate from a computer system (i.e., a removable medium, such as a compact disc, etc.), and/or provided in an installation package, such that the storage medium can be used to program, configure, and/or adapt a general purpose computer with the instructions/code stored thereon. These instructions might take the form of executable code, which is executable by the computer system 900 and/or might take the form of source and/or installable code, which, upon compilation and/or installation on the computer system 900 (e.g., using any of a variety of generally available compilers, installation programs, compression/decompression utilities, etc.) then takes the form of executable code.
[0080] It will be apparent to those skilled in the art that substantial variations may be made in accordance with specific requirements. For example, customized hardware (such as programmable logic controllers, single board computers, FPGAs, ASICs, and SoCs) might also be used, and/or particular elements might be implemented in hardware, software (including portable software, such as applets, etc.), or both. Further, connection to other computing devices such as network input/output devices may be employed.
[0081] As mentioned above, in one aspect, some embodiments may employ a computer or hardware system (such as the computer system 900) to perform methods in accordance with various embodiments of the invention. According to a set of embodiments, some or all of the procedures of such methods are performed by the computer system 900 in response to processor 910 executing one or more sequences of one or more instructions (which might be incorporated into the operating system 940 and/or other code, such as an application program 945) contained in the working memory 935. Such instructions may be read into the working memory 935 from another computer-readable medium, such as one or more of the storage device(s) 925. Merely by way of example, execution of the sequences of instructions contained in the working memory 935 might cause the processor(s) 910 to perform one or more procedures of the methods described herein.
[0082] 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 operate in a specific fashion. In an embodiment implemented using the computer system 900, various computer-readable media might be involved in providing instructions/code to processor(s) 910 for execution and/or might be used to store and/or carry such instructions/code (e.g., as signals). In many implementations, a computer-readable medium is a non-transitory, physical, and/or tangible storage medium. In some embodiments, a computer-readable medium may take many forms, including, but not limited to, non-volatile media, volatile media, or the like. Non-volatile media includes, for example, optical and/or magnetic disks, such as the storage device(s) 925. Volatile media includes, without limitation, dynamic memory, such as the working memory 935. In some alternative embodiments, a computer-readable medium may take the form of transmission media, which includes, without limitation, coaxial cables, copper wire, and fiber optics, including the wires that comprise the bus 905, as well as the various components of the communication subsystem 930 (and/or the media by which the communications subsystem 930 provides communication with other devices). In an alternative set of embodiments, transmission media can also take the form of waves (including, without limitation, radio, acoustic, and/or light waves, such as those generated during radio-wave and infra-red data communications). [0083] Common forms of physical and/or tangible computer-readable media include, for example, a floppy disk, a flexible disk, a 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, a PROM, an EPROM, a 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.
[0084] Various forms of computer-readable media may be involved in carrying one or more sequences of one or more instructions to the processor(s) 910 for execution. Merely by way of example, the instructions may initially be carried on a magnetic disk and/or optical disc of a remote computer. A remote computer might load the instructions into its dynamic memory and send the instructions as signals over a transmission medium to be received and/or executed by the computer system 900. These signals, which might be in the form of electromagnetic signals, acoustic signals, optical signals, and/or the like, are all examples of carrier waves on which instructions can be encoded, in accordance with various embodiments of the invention.
[0085] The communications subsystem 930 (and/or components thereof) generally receives the signals, and the bus 905 then might carry the signals (and/or the data, instructions, etc. carried by the signals) to the working memory 935, from which the processor(s) 910 retrieves and executes the instructions. The instructions received by the working memory 935 may optionally be stored on a storage device 925 either before or after execution by the processor(s) 910.
[0086] While some features and aspects have been described with respect to the embodiments, one skilled in the art will recognize that numerous modifications are possible. For example, the methods and processes described herein may be implemented using hardware components, software components, and/or any combination thereof. Further, while various methods and processes described herein may be described with respect to particular structural and/or functional components for ease of description, methods provided by various embodiments are not limited to any particular structural and/or functional architecture but instead can be implemented on any suitable hardware, firmware and/or software configuration. Similarly, while some functionality is ascribed to one or more system components, unless the context dictates otherwise, this functionality can be distributed among various other system components in accordance with the several embodiments.
[0087] Moreover, while the procedures of the methods and processes described herein are described in a particular order for ease of description, unless the context dictates otherwise, various procedures may be reordered, added, and/or omitted in accordance with various embodiments. Moreover, the procedures described with respect to one method or process may be incorporated within other described methods or processes; likewise, system components described according to a particular structural architecture and/or with respect to one system may be organized in alternative structural architectures and/or incorporated within other described systems. Flence, while various embodiments are described with or without some features for ease of description and to illustrate aspects of those embodiments, the various components and/or features described herein with respect to a particular embodiment can be substituted, added and/or subtracted from among other described embodiments, unless the context dictates otherwise. Consequently, although several embodiments are described above, it will be appreciated that the invention is intended to cover all modifications and equivalents within the scope of the following claims.

Claims

WHAT IS CLAIMED IS:
1. A method comprising: obtaining a current quantization level of a block of video data from an encoded bit stream; determining a selected quantizer to dequantize the current quantization level, wherein if the current quantization level is a first non-zero quantization level of the block in a decoding scan order, selecting a first quantizer as the selected quantizer for the current quantization level, wherein if the current quantization level is not the first non-zero quantization level of the block in the decoding scan order, selecting one of the first quantizer or a second quantizer as the selected quantizer based on a current state of the current quantization level, wherein the current state is determined based on a preceding state of an immediately preceding quantization level of the block in the decoding scan order and a parity of a value of the preceding quantization level; dequantizing, via the selected quantizer, the current quantization level to produce a current dequantized element; and reconstructing, via a decoder, the block with the current dequantized element in the decoding scan order.
2. The method of claim 1, further comprising: determining a subsequent state of an immediately succeeding quantization level based on the current state and a parity of the value of the current quantization level.
3. The method of claim 1, wherein the first and second quantizers comprise one of: one zero quantizer and one non-zero quantizer; or two non-zero quantizers.
4. The method of claim 1 , wherein the encoded bit stream represents respective quantization levels in binary bins, wherein if a zero quantizer is used, a binary bin indicating whether the quantization level is a zero value or non-zero value is coded, wherein if a non zero quantizer is used, the binary bin indicating whether the quantization is a zero value or non-zero value is not coded into the bit stream.
5. The method of claim 1 further comprising: for the first non- zero quantization level, determining a scan order position of the first non-zero quantization level.
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 determining, during the dequantization of the preceding quantization level, the current state of the current quantization level based at least in part on the preceding state of the preceding quantization level, wherein the four-state model determines a state transition from the preceding state to the current state.
7. The method of claim 6, wherein the state transition is a transition from one of the first state, second state, third state, or fourth state to a same or different state as determined based on the preceding state and the parity of the value of the preceding quantization level.
8. The method of claim 1, wherein the current dequantized element is a dequantized approximation of one of a quantized transform coefficient or quantized prediction residue of the block.
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 to: obtain a current quantization level of a block of video data from an encoded bit stream; determine a selected quantizer to dequantize the current quantization level, wherein if the current quantization level is a first non-zero quantization level of the block in a decoding scan order, a first quantizer is selected as the selected quantizer for the current quantization level, wherein 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 or a 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 preceding state of an immediately preceding quantization level of the block in the decoding scan order and a parity of a value of the preceding quantization level; dequantize, via the selected quantizer, the current quantization level to produce a current dequantized element; and reconstruct, via a decoder, the block with the current dequantized element in the decoding scan order.
10. The apparatus of claim 9, wherein the set of instructions is further executable by the processor to: determine a subsequent state of an immediately succeeding quantization level based on the current state and a parity of the value of the current quantization level.
11. The apparatus of claim 9, wherein the first and second quantizers comprise one of: one zero quantizer and one non-zero quantizer; or two non-zero quantizers.
12. The apparatus of claim 9, wherein the set of instructions is 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.
13. The apparatus of claim 9, wherein the set of instructions is further executable by the processor to: determine the current state of the current quantization level in the decoding scan order, wherein determining the current state of the current quantization level further comprises: generating a four-state model; and determining, during the dequantization of the preceding quantization level, the current state of the current quantization level based at least in part on the preceding state of the preceding quantization level, wherein the four-state model determines a state transition from the preceding state to the current state.
14. The apparatus of claim 13, wherein the state transition is a transition from one of the first state, second state, third state, or fourth state to a same or different state as determined based on the preceding state and the parity of the value of the preceding quantization level.
15. The apparatus of claim 9, wherein the current dequantized element is a dequantized approximation of one of a quantized transform coefficient or quantized prediction residue of the block.
16. A media coding subsystem, comprising: two or more 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 to: obtain a current quantization level of a block of video data from an encoded bit stream; determine a selected quantizer to dequantize the current quantization level, wherein if the current quantization level is a first non-zero quantization level of the block in a decoding scan order, a first quantizer is selected as the selected quantizer for the current quantization level, wherein 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 or a 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 preceding state of an immediately preceding quantization level of the block in the decoding scan order and a parity of a value of the preceding quantization level; dequantize, via the selected quantizer, the current quantization level to produce a current dequantized element; and reconstruct the block with the current dequantized element in the decoding scan order.
17. The media coding subsystem of claim 16, wherein the set of instructions is further executable by the processor to: determine a subsequent state of an immediately succeeding quantization level based on the current state and a parity of the value of the current quantization level.
18. The media coding subsystem of claim 16, wherein the first and second quantizers comprise one of: one zero quantizer and one non-zero quantizer; or two non-zero quantizers.
19. The media coding subsystem of claim 16, wherein the set of instructions is further executable by the processor to: determine the current state of the current quantization level in the decoding scan order, wherein determining the current state of the current quantization level further comprises: generating a four-state model; and determining, during the dequantization of the preceding quantization level, the current state of the current quantization level based at least in part on the preceding state of the preceding quantization level, wherein the four-state model determines a state transition from the preceding state to the current state.
20. The media coding subsystem of claim 16, wherein the current dequantized element is a dequantized approximation of one of a quantized transform coefficient or quantized prediction residue of the block.
PCT/US2022/017271 2021-02-22 2022-02-22 Dependent quantization and residual coding method WO2022178405A1 (en)

Priority Applications (1)

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202163152204P 2021-02-22 2021-02-22
US63/152,204 2021-02-22

Publications (1)

Publication Number Publication Date
WO2022178405A1 true WO2022178405A1 (en) 2022-08-25

Family

ID=82931813

Family Applications (1)

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

Country Status (2)

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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190281321A1 (en) * 2018-03-07 2019-09-12 Tencent America LLC Method and apparatus for video coding
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
WO2020056017A1 (en) * 2018-09-11 2020-03-19 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of 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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190281321A1 (en) * 2018-03-07 2019-09-12 Tencent America LLC Method and apparatus for video coding
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
WO2020056017A1 (en) * 2018-09-11 2020-03-19 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of 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
CN116848842A (en) 2023-10-03

Similar Documents

Publication Publication Date Title
US11765342B2 (en) Multi-component picture or video coding concept
US20230037689A1 (en) Methods and apparatuses for coding transform blocks
US8208543B2 (en) Quantization and differential coding of alpha image data
KR101625548B1 (en) Context modeling techniques for transform coefficient level coding
CN108259900B (en) Transform coefficient coding for context adaptive binary entropy coding of video
US9270988B2 (en) Method of determining binary codewords for transform coefficients
WO2020259631A1 (en) Signaling coding of transform-skipped blocks
CN105103453A (en) Data encoding and decoding
GB2519070A (en) Data encoding and decoding
CN112272298A (en) Method and device for coding and decoding conversion coefficient
TW202002636A (en) Trellis coded quantization coefficient coding
CN114930817A (en) Signaling technique for quantizing related parameters
KR20130140190A (en) Methods and devices for coding and decoding the position of the last significant coefficient
US10171809B2 (en) Video encoding apparatus and video encoding method
CN110650349B (en) Image encoding method, decoding method, encoder, decoder and storage medium
WO2014011439A1 (en) Method and apparatus for coding adaptive-loop filter coeeficients
CN116347083A (en) Coefficient coding tuning in HEVC
TW202131681A (en) Determining a parametrization for context-adaptive binary arithmetic coding
CN110944179B (en) Video data decoding method and device
US20230336752A1 (en) Image compression with inter-channel encoding of codewords
WO2022178405A1 (en) Dependent quantization and residual coding method
WO2022187026A2 (en) Dependent quantization state transition method for video coding
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
WO2022191947A1 (en) State based dependent quantization and residual coding in video coding

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22757102

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202280014333.2

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22757102

Country of ref document: EP

Kind code of ref document: A1