Coding concepts for sequences of information values
By performing binaryization and arithmetic encoding of binary bits on the information value sequence, selecting appropriate reconstruction level sets and quantization step sizes, the problem of high binary bit-to-bit ratio is solved, and encoding/decoding efficiency and processing speed are improved. .
Patent Information
- Application Number
- CN202080074502.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-09-24
- Filing Date
- 2020-09-23
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2040-09-23
AI Technical Summary
In the prior art, the higher ratio of binary bits to bits leads to limited encoding/decoding speed, which affects the efficiency of codecs such as H.264 and its successor HEVC.
By performing binarization and arithmetic encoding of binary bits on the information value sequence, selecting appropriate set of reconstruction levels and quantization steps, reducing the ratio of binary bits to bits, and improving encoding/decoding efficiency.
More efficient information value sequence encoding and decoding is realized, which improves processing speed and reduces encoding/decoding complexity.
Smart Images

Figure CN114731446B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to coding concepts for sequences of information values by using binarization and arithmetic coding of binary bits (bins). Background Art
[0002] In many modern codecs, such as H.264 and its successor HEVC, context-adaptive arithmetic coding (CABAC) is used to encode data. However, the efficiency of this tool is higher, the greater the bin-to-bit ratio. Since the bin-to-bit ratio specifies the average number of binary decisions (bins) to be decoded for a bit in a bitstream, the bin-to-bit ratio increases with the amount of calculations to be performed before decoding a certain number of bits, thereby hindering the achievement of increased decoding / encoding speeds. Summary of the invention
[0003] It is an object of the present invention to provide a concept for encoding a sequence of information values which is more efficient and which enables, for example, an increase in processing speed.
[0004] This object is achieved by the subject-matter of the independent claims of the present application.
[0005] By rendering the information values binarized in dependence on previously encoded / decoded information values, more efficient encoding / decoding of the sequence of information values is achieved, for example enabling an increase in processing speed to be achieved. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Advantageous aspects are the subject of the dependent claims. Preferred embodiments of the present application are described below with reference to the accompanying drawings, in which:
[0007] Figure 1 A schematic diagram of an embodiment leading to two reconstruction level sets, two information values to reconstruction level mappings is shown. The hollow and solid circles indicate two different subsets within the reconstruction level set; the subsets can be used to determine the reconstruction level set for the next transform coefficient in the reconstruction order.
[0008] Figure 2 A pseudo code is shown to illustrate the reconstruction process for the transform coefficients, i.e., a method for inverse quantization of the information values. k represents an index specifying the reconstruction order (or better, inverse quantization order) of the current transform coefficient, which order may be consistent with the encoding / decoding order of the information values, the quantization index of the current transform coefficient is represented by level[k], and the quantization step size Δ applied to the current transform coefficient is k is represented by quant_step_size[k], and trec[k] represents the reconstructed transform coefficient t′ kThe variable setId[k] specifies the set of reconstruction levels to be applied to the current transform coefficient. It is determined based on the previous transform coefficients in the reconstruction order; the possible values of setId[k] are 0 and 1. The variable n specifies the integer factor of the quantization step size; it is given by the selected set of reconstruction levels (i.e., the value of setId[k]) and the sent quantization index level[k]. The shown process can be used in the embodiments described herein.
[0009] Figure 3 Shows the description Figure 2 Pseudocode for another implementation of the pseudocode of . The main change is that an integer implementation with scaling and shift parameters is used to represent the multiplication with the quantization step size. Typically, the shift parameter (denoted by shift) is constant for the transform block, and only the scaling parameter (given by scale[k]) may depend on the position of the transform coefficients. The variable add represents the rounding offset, which is usually set to equal add=(1<<(shift-1)). In Δ k is the nominal quantization step size of the transform coefficients, so that Δ k ≈scale[k]·2 -shift The parameters shift and scale[k] can be selected in a different way.
[0010] Figure 4 Pseudocode is shown that illustrates the reconstruction process of transform coefficients for a transform block, i.e., a method for dequantizing information values, here using correlated quantization. The array level represents the transform coefficient levels (quantization indices) sent for the transform block, and the array trec represents the corresponding reconstructed transform coefficients. The two-dimensional table state_trans_table specifies the state transition table, and the table setId specifies the quantization set associated with the state. The function path() specifies a binary function of the transform coefficient level. The process shown can be used in the embodiments described herein, and the mutual influence is also discussed herein.
[0011] Figure 5 An example of a state transition table state_trans_table and a table setId is shown, which specifies the quantization set associated with the state. The table given in C-form syntax represents the table specified in Table 1.
[0012] Figure 6a A schematic diagram of a transform coefficient block is shown to illustrate the signaling of the position of the first non-zero quantization index (black sample) in encoding / decoding / scanning order. Except for the position of the first non-zero transform coefficient, only the binary bits of the coefficients marked by hatching are sent, and the coefficients marked by white are inferred to be equal to 0. This concept can be built into the embodiments described herein.
[0013] Figure 6bA simplified pseudocode is shown that specifies decoding of a block or sub-block with coded_subblock_flag equal to 1, which example is used as a comparative example for the embodiments described herein.
[0014] Figure 6c Pseudo code is shown that specifies decoding of a block or sub-block with coded_subblock_flag equal to 1, which introduces a bypass mode and is used as a comparative example for the embodiments described herein.
[0015] Figure 7 A schematic diagram of a transform coefficient block and a local template for selecting a probability model for one or more binary bits is shown. The black square represents the current scan position and the blue square represents the adjacent scan position within the template. As mentioned above, such templates of the same or different shapes can be used for the purpose of binary selection.
[0016] Figure 8 Table 3 shows examples of two different binarizations for information values, where the information value is the absolute value |q| of the transform coefficient level. The binary bits xxx_flag (xxx is replaced by sig, gt1, par, gt3 or eq1) are abbreviated to xxx.
[0017] Fig. 9 Table 4 shows examples of three different binarizations for information values, where the information value is the absolute value |q| of the transform coefficient level. The binary bits xxx_flag (xxx is replaced by sig, gt1, par, gt3 or eq1) are abbreviated to xxx.
[0018] Fig.10 Pseudo code specifying decoding and context-adaptive binarization of subblocks with coded_subblock_flag equal to 1 is shown as an example of decoding transform coefficients of a transform block along a scan order as an example of decoding a sequence of information values.
[0019] Fig.11a A schematic diagram of a decoder comprising means for decoding a sequence of information values according to an embodiment is shown.
[0020] Fig.11b Shows that it is suitable for Fig.11a Schematic diagram of the encoder of the decoder.
[0021] Fig.12 The block of transform coefficients, the ordering of their coefficients, the binarization of the coefficients and the encoding of the binary bits in the case of the resulting binary bit string of the coefficients are shown, thereby illustrating the ordering of the transform coefficients in accordance with Fig.10 The information value sequence is encoded / decoded in a manner. DETAILED DESCRIPTION
[0022] According to the embodiments described below, the quantization index of the transform coefficient represents an example of a sequence of information values to be encoded, but the application is not limited to this example. There are similar statements about the type of quantization concept used. Although the embodiments described below use correlated quantization, the application and modification examples are not limited to this quantization, and independent quantization of information values may also be applied. That is, the embodiments relate to entropy coding of transform coefficient levels in the context of transform coding with correlated scalar quantization, but modified and advantageous embodiments may be derived therefrom, for example by not using a transform and applying the concept to the quantization index of sample values traversed along the scan order in a sample value block, and / or components of motion vector differences, and / or by not using correlated quantization and using independent quantization. For the case explained later involving information values representing prediction residuals of picture blocks (for example, for video or picture coding), there are similar statements, but this is not mandatory, and prediction may not be used, and the coding concept proposed in this article may be directly applied to signals such as pictures without prediction. As will be described in detail below, at least in some embodiments, the information values (for example, transform coefficient levels) are context-dependently binarized to improve efficiency.
[0023] Some embodiments described below apply to lossy coding of a residual sample block. The residual samples represent the difference between the original sample block and the samples of a prediction signal (the prediction signal may be obtained by intra-picture prediction or inter-picture prediction, or a combination of intra-picture prediction and inter-picture prediction, or any other means; in special cases, the prediction signal may be set equal to 0).
[0024] Some embodiments described below relate to applying transform residual coding. Thus, the residual block of a sample may be transformed using a signal transform. Typically, a linearly separable transform is used (linear means that the transform is linear, but may contain additional transform coefficient rounding). Typically, integer approximations of DCT-II or integer approximations of other transforms of the DCT / DST series are used. Different transforms may be used in the horizontal or vertical direction. The transform is not limited to a linearly separable transform. Any other transform (linearly inseparable or nonlinear) may be used. Specifically, a second-order inseparable transform may be applied to the transform coefficients (or a portion thereof) obtained after the first separable transform. As a result of the signal transform, a transform coefficient block representing the original residual sample block in different signal spaces is obtained. In special cases, the transform may be equal to the identity transform (i.e., the transform coefficient block may be equal to the residual sample block). The transform coefficient block is encoded using lossy coding. At the decoder side, the reconstructed transform coefficient block is inversely transformed to obtain a reconstructed residual sample block. Finally, by adding a prediction signal, a reconstructed image sample block is obtained.
[0025] That is, the concept of lossy encoding a block of transform coefficients, and in particular, the concept of entropy encoding related quantized transform coefficient levels, is proposed below.
[0026] In this context, correlated quantization refers to a quantization method with the following properties: On the encoder side, a block of transform coefficients is mapped to a block of transform coefficient levels (i.e., quantization indices), which represent transform coefficients with reduced fidelity. On the decoder side, the quantization indices are mapped to reconstructed transform coefficients (which are different from the original transform coefficients due to quantization). Unlike traditional quantization or independent scalar quantization, the transform coefficients are not independently quantized. Instead, the allowed set of reconstruction levels for a certain transform coefficient depends on the quantization indices selected for other transform coefficients.
[0027] The transform coefficient levels representing the reconstructed transform coefficients (of the associated scalar quantization) are entropy coded using binary arithmetic coding. Therefore, the transform coefficient levels are mapped to a sequence of binary decisions (also referred to as binary bits). This part is called binarization. The binary decisions are then encoded using binary arithmetic coding. There are two different coding modes for binary bits. In the first mode, i.e., the conventional coding mode, each binary bit is encoded using an adaptive binary probability model (also referred to as context). The process of selecting a suitable context is called context modeling. In the second mode, i.e., the bypass mode, a non-adaptive binary probability model under equal probability (i.e., a probability mass function of (0.5, 0.5)) is used to encode the binary bits.
[0028] Therefore, embodiments of binarization and context modeling for correlated quantized transform coefficient levels are described below. However, before going into the details, a rough overview of the reference concepts for encoding transform coefficient levels is provided, compared to which the concepts described herein form an improvement.
[0029] In the following, at least with respect to some embodiments, the concept of related quantization and entropy coding of transform coefficient levels is described, which is based on Draft 6 (VTM-6) of the Versatile Video Coding Standard. Therefore, some technical concepts that are expected to be used in VVC or form the starting point of the present embodiment are described below. However, it should be noted that the presentation of all details about the reference framework formed by the current status of the development of VVC does not mean that the embodiments of the present application will be limited to the framework of VVC, and the embodiments of the present application described later can be transferred to other codec environments.
[0030] Dependent quantization of transform coefficients refers to a concept in which the set of available reconstruction levels for a transform coefficient depends on the quantization index selected for the previous transform coefficient in the reconstruction order (within the same transform block). Multiple sets of reconstruction levels are predefined, and based on the quantization index of the previous transform coefficient in the coding order, one of the predefined sets is selected to reconstruct the current transform coefficient.
[0031] A set of permissible reconstruction levels for the current transform coefficient is selected from a family of predefined sets of reconstruction levels (two or more sets) (based on the quantization index of the previous transform coefficient in coding order). The values of the reconstruction levels in the set of reconstruction levels are parameterized by a block-based quantization parameter. The block-based quantization parameter (QP) determines the quantization step size Δ, and all reconstruction levels (in all sets of reconstruction levels) represent integer multiples of the quantization step size Δ. For a particular transform coefficient t k The quantization step size Δ k (k indicates the reconstruction order) may not be completely determined by the block quantization parameter QP, and the specific transform coefficient t k The quantization step size Δ k It may also be determined by a quantization weight matrix and a block quantization parameter. k The quantization step size Δ k By the transformation coefficient t k The weighting factor w k (specified by the quantization weight matrix) and the block quantization step size Δ block The product of (specified by the block quantization parameter) gives:
[0032] Δ k =w k ·Δ block .
[0033] In VTM-6, the correlated scalar quantization of transform coefficients uses exactly two different sets of reconstruction levels. k All reconstruction levels represent the quantization step size Δ of the transform coefficients k Integer multiples of (quantization step Δ k is determined at least in part by a block-based quantization parameter. Note that the quantization step size Δ k represents only the scaling factors for the allowed reconstruction values in the two sets. k The possible individual quantization step sizes Δ k (and thus the individual scaling factors), the same two sets of reconstruction levels are used for all transform coefficients.
[0034] The two reconstruction level sets are as follows Figure 1 As shown:
[0035] The reconstruction levels contained in the first quantization set (labeled set 0 in the figure) represent even integer multiples of the quantization step size.
[0036] The second quantization set (labeled as set 1 in the figure) includes all odd integer multiples of the quantization step size and a reconstruction level equal to zero.
[0037] Note that both reconstruction sets are symmetric about 0. Reconstruction levels equal to 0 are included in both reconstruction sets, otherwise the two reconstruction sets are disjoint. The union of the two reconstruction sets contains all integer multiples of the quantization step size.
[0038] The encoder has to be indicated within the bitstream which reconstruction level to choose among the allowed reconstruction levels. As with conventional independent scalar quantization, this can be achieved by so-called quantization indices, also referred to as transform coefficient levels. A quantization index (or transform coefficient level) is an integer that uniquely identifies an available reconstruction level within a quantization set (i.e., a set of reconstruction levels). The quantization index is sent as part of the bitstream to the decoder (using any entropy coding technique). At the decoder side, the reconstructed transform coefficient can be uniquely calculated based on the current set of reconstruction levels (determined by the previous quantization index in the encoding / reconstruction order) and the quantization index sent for the current transform coefficient.
[0039] Figure 1 The reconstruction levels in are labeled with an associated quantization index (the quantization index is given by the number representing the reconstruction level below the circle). A quantization index equal to 0 is assigned to a reconstruction level equal to 0. A quantization index equal to 1 is assigned to the smallest reconstruction level greater than 0, a quantization index equal to 2 is assigned to the next reconstruction level greater than 0 (i.e., the second smallest reconstruction level greater than 0), and so on. Or in other words, reconstruction levels greater than 0 are labeled with integers greater than 0 in ascending order of the value of the reconstruction level (i.e., labeled with 1, 2, 3, etc.). Similarly, a quantization index of -1 is assigned to the largest reconstruction level less than 0, a quantization index of -2 is assigned to the next (i.e., second largest) reconstruction level less than 0, and so on. Or in other words, reconstruction levels less than 0 are labeled with integers less than 0 in descending order of the value of the reconstruction level (i.e., -1, -2, -3, etc.).
[0040] Using reconstruction levels that represent integer multiples of the quantization step size allows for a lower computational complexity algorithm when reconstructing the transform coefficients at the decoder side. Figure 1 A preferred example of is shown as follows. The first quantization set includes all even integer multiples of the quantization step size, and the second quantization set includes all odd integer multiples of the quantization step size plus a reconstruction level equal to 0 (contained in both quantization sets). The reconstruction process of the transform coefficients can be similar to Figure 2 The algorithm specified in the pseudocode is implemented.
[0041] exist Figure 2 In the pseudocode, level[k] represents the transformation coefficient t kThe transmitted quantization index, setId[k] (equal to 0 or 1) specifies the identifier of the current reconstruction level set (which is determined based on the previous quantization index in the reconstruction order, as will be described in detail below). The variable n represents an integer multiple of the quantization step size given by the quantization index level[k] and the set identifier setId[k]. If the transform coefficient is encoded using the first reconstruction level set (setId[k] == 0), then the variable n is twice the transmitted quantization index, where the first reconstruction level set contains the quantization step size Δ k An even integer multiple of . If the transform coefficients are encoded using the second reconstruction level set (setId[k] == 1), then we have the following three cases: (a) if level[k] is equal to 0, then n is also equal to 0; (b) if level[k] is greater than 0, then n is equal to 2 times the quantization index level[k] minus 1; and (c) if level[k] is less than 0, then n is equal to 2 times the quantization index level[k] plus 1. This can be specified using the sign function:
[0042]
[0043] Then, if the second quantization set is used, the variable n is equal to twice the quantization index level[k] minus the sign function of the quantization index sign(level[k]).
[0044] Once the variable n (which specifies the integer factor of the quantization step size) is determined, n is divided by the quantization step size Δ k Multiply to obtain the reconstructed transform coefficient t′ k .
[0045] As mentioned above, instead of the quantization step size Δ k The exact multiplication of the reconstructed transform coefficient t′ k can be obtained by integer approximation. Figure 3 Here, the variable shift represents the number of bits shifted to the right. Its value usually depends only on the quantization parameter of the block (but it is also possible to change the shift parameter for different transform coefficients within the block). The variable scale[k] represents the number of bits used to transform the coefficients t k The scaling factor of , which may, in addition to the block quantization parameter, depend, for example, on the corresponding entry of the quantization weighting matrix. The variable add specifies the rounding offset, which is usually set equal to add = (1 << (shift-1)). It should be noted that, in addition to rounding, Figure 3 The integer operation specified in the pseudocode (last line) is equivalent to the quantization step size Δ k The multiplication of Δ k Given by:
[0046] Δk = scale[k]·2 -shift .
[0047] Figure 3 Relative to Figure 2 Another (purely apparent) change is that switching between two sets of reconstruction levels is implemented using a ternary if-then-else operator (a?b:c), which is known in programming languages (eg, the C programming language).
[0048] Another important design aspect of related scalar quantization is the algorithm used to switch between defined quantization sets (reconstruction level sets). The algorithm used determines the "packing density" that can be achieved in the N-dimensional space of transform coefficients (and thus also in the N-dimensional space of reconstructed samples). Higher packing density ultimately leads to an increase in coding efficiency.
[0049] In VTM-6, the transition between quantization sets (set 0 and set 1) is determined by a state variable. For the first transform coefficient in the reconstruction order, the state variable is set equal to a predefined value. Typically, the predefined value is equal to 0. The state variables of subsequent transform coefficients in the coding order are determined by an update process. The state of a particular transform coefficient depends only on the state of the previous transform coefficient in the reconstruction order and the value of the previous transform coefficient.
[0050] The state variable has four possible values (0, 1, 2, 3). On the one hand, the state variable specifies the quantization set used for the current transform coefficient. Quantization set 0 is used when and only when the state variable is equal to 0 or 1, and quantization set 1 is used when and only when the state variable is equal to 2 or 3. On the other hand, the state variable also specifies the possible transitions between quantization sets.
[0051] The state of a particular transform coefficient depends only on a binary function of the state of the previous transform coefficient in the reconstruction order and the value of the previous transform coefficient. This binary function is referred to as a path in the following. In VTM-6, the following state transition table is used, where "path" refers to the binary function of the previous transform coefficient level in the reconstruction order.
[0052] Table 1: State transition table in VTM-6.
[0053]
[0054] In VTM-6, the path is given by the parity of the quantization index. Let level[k] be the transform coefficient level, and the path can be determined according to the following formula:
[0055] path=(level[k]&1),
[0056] The & operator represents bitwise AND in two's complement integer arithmetic.
[0057] Alternatively, the path can also represent other binary functions of level[k]. As an example, it can specify whether the transform coefficient level is equal to or not equal to 0:
[0058]
[0059] The concept of state transitions for correlated scalar quantization allows low-complexity reconstruction of transform coefficients in the decoder. Using the C pseudocode in Figure 4 A preferred example of the reconstruction process for the transform coefficients of a single transform block is shown in .
[0060] exist Figure 4 In the pseudocode of , the index k specifies the reconstruction order of the transform coefficients. It should be noted that in the example code, the index k decreases in the reconstruction order. The last transform coefficient has an index equal to k=0. The first index kstart specifies the reconstruction index (or more accurately, the inverse reconstruction index) of the first reconstructed transform coefficient. The variable kstart can be set equal to the number of transform coefficients in the transform block minus 1, or it can be set equal to the index of the first non-zero quantization index in the coding / reconstruction order (for example, if the position of the first non-zero quantization index is signaled in the applied entropy encoding method). In the latter case, all previous transform coefficients (whose index k>kstart) are inferred to be equal to 0. The reconstruction process for each single transform coefficient is the same as Figure 3 Same as the example in . Figure 3 In the example in , the quantization index is represented by level[k] and the associated reconstructed transform is represented by trec[k]. The state variable is represented by state. The one-dimensional table setId[] specifies the quantization sets associated with different values of the state variable, and the two-dimensional table state_trans_table[][] specifies the state transitions under the current state (first parameter) and the path (second parameter). As an example, the path can be given by the parity of the quantization index (using the bitwise AND operator &), but other concepts are also possible. As another example, the path can specify that the transform coefficient is equal to 0 or not equal to 0. Figure 5 Examples of tables are given in C-form syntax (these tables are the same as Table 1).
[0061] Instead of using the table state_trans_table[][] to determine the next state, an arithmetic operation that produces the same result can be used. Similarly, the table setId[] can also be implemented using arithmetic operations. Or a combination of table lookup and symbolic functions using a one-dimensional table setId[] can be implemented using arithmetic operations.
[0062] We turn to entropy coding at the transform coefficient level. The main aspect of related scalar quantization is that there are different sets of allowed reconstruction levels (also called quantization sets) for the transform coefficients. The quantization set of the current transform coefficient is determined based on the value of the quantization index of the previous transform coefficient. If we consider Figure 1 , and comparing the two quantization sets, it is clear that the distance between a reconstruction level equal to 0 and the adjacent reconstruction level is larger in set 0 than in set 1. Therefore, the probability of a quantization index equal to 0 is greater if set 0 is used, and less if set 1 is used. In VTM-6, this effect is exploited in entropy coding by switching the probability model based on the state for the current quantization index.
[0063] Note that for proper switching of code tables or probability models, the paths of all previous quantization indices (binary functions of quantization indices) must be known when entropy decoding the current quantization index (or the corresponding binary decision of the current quantization index).
[0064] In VTM-6, the quantization index is encoded using binary arithmetic coding similar to H.264|MPEG-4AVC or H.265|MPEG-HHEVC. To this end, the non-binary quantization index is first mapped to a series of binary decisions (commonly referred to as binary bits).
[0065] The quantization index is sent as an absolute value and, for cases where the absolute value is greater than 0, also a sign. Although the sign is sent as a single binary bit, there are many possibilities for mapping the absolute value to a series of binary decisions.
[0066] Table 2: Binarization of the absolute values |q| of the transform coefficient levels in VTM-6.
[0067]
[0068] Table 2 shows the binarization of absolute values used in VTM-6. The following binary and non-binary syntax elements are sent:
[0069] sig_flag specifies whether the absolute value of the transform coefficient level |q| is greater than 0;
[0070] If sig_flag is equal to 1, gt1_flag specifies whether the absolute value of the transform coefficient level |q| is greater than 1;
[0071] If gt1_flag is equal to 1, par_flag specifies the parity of the absolute value |q| of the transform coefficient level, and gt3_flag specifies whether the absolute value |q| of the transform coefficient level is greater than 3;
[0072] If gt3_flag is equal to 1, the non-binary value rem specifies the residual value of the absolute level |q| This syntax element is sent using Golombrice code in bypass mode of the arithmetic coding engine.
[0073] Absent syntax elements are inferred to be equal to 0. At the decoder side, the absolute values of the transform coefficient levels are reconstructed as follows:
[0074] |q|=sig_flag+gt1_flag+par_flag+2*(gt3_flag+rem)
[0075] For non-zero transform coefficient levels (indicated by sig_flag equal to 1), sign_flag is also sent in bypass mode, which specifies the sign of the transform coefficient level.
[0076] Another detail that affects the encoding of transform coefficients involves the coding order of binary bits and the use of bypass mode. The entropy of transform coefficient levels in VTM-6 shares several aspects with that of HEVC. But it also includes other aspects that make entropy coding suitable for related quantization.
[0077] Each transform coefficient block is divided into fixed-size sub-blocks (also called coefficient groups). Typically, the size of the sub-block is 4×4 coefficients (see Figure 6a ). In some cases, other sizes (e.g., 2×2, 2×4, 4×2, 2×8, or 8×2) may be used.
[0078] Similar to HEVC, the encoding of transform coefficient blocks is performed as follows:
[0079] First, a so-called coded_block_flag is sent, which specifies whether there are any non-zero transform coefficient levels in the transform block. If coded_block_flag is equal to 0, all transform coefficient levels are equal to 0 and no other data is sent for the transform block. In some cases (e.g., in Skip mode), coded_block_flag may not be sent explicitly, but inferred based on other syntax elements.
[0080] If coded_block_flag is equal to 1, the x- and y-coordinates of the first significant transform coefficient in coding order (which is sometimes called the last significant coefficient because the actual scanning order specifies scanning from high-frequency to low-frequency components) are sent.
[0081] ·The scanning of transform coefficients is performed on a sub-block (usually 4×4 sub-block) basis; all transform coefficient levels of a sub-block are encoded before encoding any transform coefficient level of any other sub-block; the sub-blocks are processed in a predefined scanning order, i.e. starting from the sub-block containing the first significant coefficient in the scanning order and ending with the sub-block containing the DC coefficient.
[0082] The syntax includes a coded_subblock_flag, which indicates whether the sub-block contains any non-zero transform coefficient levels; for the first and last sub-blocks in scan order (i.e., the sub-block containing the first significant coefficient in scan order and the sub-block containing the DC coefficient), this flag is not sent but is inferred to be equal to 1; when coded_subblock_flag is sent, it is typically sent at the beginning of a sub-block.
[0083] For each subblock with coded_subblock_flag equal to 1, the transform coefficient levels are sent in multiple scanning passes at the scanning position of the subblock.
[0084] In the following, we will first ignore the special aspect (which will be described later). Without this special aspect, the encoding of the sub-block with coded_subblock_flag equal to 1 is performed as follows:
[0085] For the first subblock in coding order (i.e., the subblock comprising the first significant scan position, the x- and y-coordinates of which are explicitly sent), coding starts from the scan position firstSigScanIdx of the first non-zero coefficient in scanning order (i.e., the scan position corresponding to the explicitly sent x- and y-coordinates). For all other subblocks, coding starts at the minimum scan index minSubblockScanIdx within the subblock. Scanning ends at the maximum scan index maxSubblockScanIdx within the subblock.
[0086] In the first pass, the normally coded binary bits sig_flag, gt1_flag, par_flag and gt3_flag are sent:
[0087] o sig_flag is not sent if it can be inferred that it is equal to 1. It can be inferred that it is equal to 0 in the following two cases:
[0088] (1) The current scan position is equal to the scan index startScanIdx of the first non-zero coefficient in the scan order (i.e., the scan position corresponding to the explicitly sent x- and y-coordinates);
[0089] (2) The current subblock is the subblock for which coded_subblock_flag equal to 1 is sent, the current scan index is the maximum scan index maxSubblockScanIdx within the subblock, and all previously sent sig_flags for the current subblock are equal to 1.
[0090] o If sig_flag[k] for scan index k is equal to 1 (sent or inferred), then gt1_flag is sent. Otherwise, gt1_flag is inferred to be equal to 0.
[0091] o If gt1_flag[k] for scan index k is equal to 1, par_flag and gt3_flag are sent. Otherwise, par_flag and gt3_flag are inferred to be equal to 0.
[0092] In the second pass, for those scan indices for which a gt3_flag equal to 1 is sent, the residual value rem is encoded. For all other scan indices, the residual value rem is inferred to be equal to 0. The residual value rem is encoded using a concatenation of a Rice code and an exponential Golomb code, wherein the exponential Golomb code is parameterized by so-called Rice parameters. The binary bits of the corresponding codeword are encoded in bypass mode. The Rice parameters are determined based on the already encoded syntax elements (see below).
[0093] • Finally, in the last pass, for all scan indices k with sig_flag[k] equal to 1 (coded or inferred), sign_flag is sent, which specifies whether the transform coefficient value is negative or positive.
[0094] The following pseudocode further illustrates the encoding process for transform coefficient levels within a subblock. It is illustrated from the decoder perspective. The Boolean variable firstSubblock specifies whether the current subblock is the first subblock (within the transform block) in the coding order. firstSigScanIdx specifies the scan index corresponding to the position of the first significant transform coefficient in the transform block (the one explicitly signaled at the start of the transform block syntax). minSubblockScanIdx and maxSubblockScanIdx represent the minimum and maximum values of the scan index for the current subblock. Note that the first scan index for which any data is sent depends on whether the subblock includes the first significant coefficient in the scan order. If this is the case, the first pass starts at the scan index corresponding to the first significant transform coefficient; otherwise, the first pass starts at the minimum scan index of the subblock. The variable coeff[k] for scan index k represents the reconstructed transform coefficient level. Encoding is performed similarly to decoding.
[0095] Figure 6bPseudocode for decoding a subblock with coded_subblock_flag equal to 1 in a simplified manner is shown.
[0096] One disadvantage relative to HEVC is that the maximum number of binary bits for conventional coding of each transform coefficient is increased. To circumvent this problem, VTM-6 includes the following concepts:
[0097] Set the maximum number of binary bits for regular encoding, maxNumRegBins, to be equal to
[0098] maxNumRegBins=1.75*width*height,
[0099] where width and height represent the size of the transform block (more precisely, the size of the non-zero output area of the transform block when the transform coefficients are forced to be equal to 0).
[0100] At the start of a transform block, a counter remRegBins specifying the available number of binary bits for regular coding is set equal to remRegBins = maxNumRegBins.
[0101] After a conventionally coded binary bit is encoded or decoded, the counter remRegBins is decremented by 1.
[0102] If the counter is less than 4 when the encoding of the scan positions in the first pass begins (in this case, not all binary bits sig_flag, gt1_flag, par_flag and gt3_flag can be sent without exceeding the maximum number of binary bits for conventional encoding), the first pass is terminated. Furthermore, the remaining values are sent only for those scan positions included in the first pass.
[0103] Absolute levels for which no data is coded in the first pass are coded entirely in bypass mode. They are coded using the same code category as the code category of the residual value rem. The Rice parameters as well as the variable pos0 are determined based on already coded syntax elements (see below). These absolute levels |q| are not coded directly, but first they are mapped to the syntax element abs_level which is then coded using the parameterized code.
[0104] The mapping of the absolute value |q| to the syntax element abs_level depends on the variable pos0. It is specified by:
[0105] abs_level=(|q|==0?pos0:(|q| <pos0?|q|-1:|q|)
[0106] At the decoder side, the mapping of the syntax element abs_level to the absolute value |q| is specified by:
[0107] |q|=(abs_level==pos0?0:(abs_level <pos0?abs_level+1:abs_level)
[0108] It should be noted that the limit on the number of binary bits for normal coding is applied on a transform block basis and not on a sub-block basis. This means that the counter remRegBins is initialized at the beginning of a transform block and is decremented for each binary bit for normal coding. If the coding is switched to bypass mode in a particular sub-block, the transform coefficient levels in all subsequent sub-blocks in coding order are also coded in bypass mode.
[0109] The encoding process for a sub-block (with coded_subblock_flag equal to 1) is illustrated in the following pseudo-code. As with the previous pseudo-code, the encoding process is illustrated from the decoder's perspective. For the first coded sub-block, the initial value of the counter remRegBins is equal to maxNumRegBins. For all subsequent sub-blocks, the initial value of the counter remRegBins is equal to the value obtained at the end of the previously coded sub-block. The scan index startIdxBypass is the first scan index within the sub-block (if applicable) where bypass encoding (i.e., encoding of abs_level) begins.
[0110] Figure 6c Pseudo code is shown that specifies decoding of subblocks with coded_subblock_flag equal to 1 in bypass mode.
[0111] As far as context modeling is concerned, the following applies: For the conventionally coded binary bits sig_flag, gt1_flag, par_flag and gt3_flag, one of a number of probability models (or contexts) is selected for actual coding.
[0112] For significant flags, the chosen probability model depends on the following:
[0113] Whether the current transform block is a luminance transform block or a chrominance transform block;
[0114] · The state of the relevant quantification;
[0115] The x- and y-coordinates of the current transform coefficients;
[0116] • The absolute value of the partial reconstruction in the local neighborhood (after the first pass).
[0117] In the following, more details will be given.
[0118] The variable state represents the state for the current transform coefficient in the associated quantization. state can take the values 0, 1, 2 or 3. Initially, state is set equal to 0. As described above, the state of the current transform coefficient is given by the state of the previous coefficient in coding order and the parity (or more generally, a binary function) of the previous transform coefficient level.
[0119] Let x and y be the coordinates of the current transform coefficient within the transform block, and let:
[0120] diag=x+y
[0121] is the diagonal position of the current coefficient. Given the diagonal position, the diagonal class index dsig is derived as follows:
[0122] For the luminance transform block, dsig = (diag < 2? 2: (diag < 5? 1: 0))
[0123] as well as
[0124] For chroma transform blocks, dsig = (diag < 2? 1:0)
[0125] The ternary operator (c? a:b) represents an if-then-else statement. If condition c is true, the value of a is used, otherwise (c is false), the value of b is used.
[0126] The context also depends on the absolute value of the partial reconstructions within the local neighborhood. In VTM-6, the local neighborhood is defined by Figure 7 The template T shown in is given. But other templates are also possible. The template used can also depend on whether a luminance block or a chrominance block is encoded. Let sumAbs be the sum of the absolute values of the partial reconstructions in template T (after the first pass):
[0127]
[0128] where abs1[k] represents the absolute level of partial reconstruction for scan index k after the first pass. Using the binarization of VTM-6, it is given by:
[0129] abs1[k]=sig_flag[k]+gt1_flag[k]+par_flag[k]+2*gt3_flag[k].
[0130] Note that abs1[k] is equal to the value coeff[k] obtained after the first pass (see above).
[0131] Let us assume that the possible probability models of sig_flag are organized in a one-dimensional array. And let ctxIdSig be the index identifying the probability model used. According to VTM-6, the context index ctxIdSig can be derived as follows:
[0132] If the transform block is a luma block, then:
[0133] ctxIdSig=min((sumAbs+1)>>1,3)+4*dsig+12*min(state-1,0)
[0134] If the transform block is a chroma block, then:
[0135] ctxIdSig=36+min((sumAbs+1)>>1,3)+4*dsig+8*min(state-1,0)
[0136] Here, the operator ">>" means (in two's complement arithmetic) shift right. This operation is the same as dividing by 2 and rounding the result down (to the next integer).
[0137] Note that other organizations of the context model are possible. But in any case, the probability model chosen to encode sig_flag depends on the following terms:
[0138] Whether to encode luminance blocks or chrominance blocks;
[0139] State variables, specifically min(state-1,0);
[0140] ·Diagonal class dsig;
[0141] The sum of the absolute values of the partial reconstructions within the local template (after the first pass), specifically min((sumAbs+1)>>1,3).
[0142] For the flags gt1_flag, par_flag, and gt3_flag, the chosen probability model depends on the following:
[0143] Whether the current transform block is a luminance transform block or a chrominance transform block;
[0144] Whether the current transform coefficient is the first non-zero coefficient in the transform block in coding order;
[0145] The x- and y-coordinates of the current transform coefficients;
[0146] • The absolute value of the partial reconstruction in the local neighborhood (after the first pass).
[0147] Let firstCoeff be a variable indicating whether the current scan index represents the scan index of the first non-zero transform coefficient level in coding order (i.e., the scan index or its x and y positions are explicitly encoded). If the current scan index is equal to the scan index of the first non-zero transform coefficient level, firstCoeff is equal to 1; otherwise, firstCoeff is equal to 0.
[0148] Let x and y be the coordinates of the current transform coefficient within the transform block, and let:
[0149] diag=x+y
[0150] is the diagonal position of the current coefficient. Given the diagonal position, the diagonal class index dclass is derived as follows:
[0151] For the luminance transform block, dclass=(diag==0?3:(diag<3?2:(diag<10?1:0)))
[0152] as well as
[0153] For chroma transform blocks, dclass = (diag == 0? 1:0)
[0154] The context also depends on the absolute value of the partial reconstruction within the local neighborhood. The variable sumAbs is derived as described above. In addition, the variable numSig is derived, which specifies the number of non-zero transform coefficient levels within the template T:
[0155]
[0156] Similar to sig_flag, let us assume that the possible probability models are organized in a one-dimensional array. And let ctxId be the index identifying the probability model used. According to VTM-6, the context index ctxId can be derived as follows:
[0157] If the transform block is a luma block, then:
[0158] ctxId=(firstCoeff?0:1+min(sumAbs-numSig,4)+5*dclass)
[0159] If the transform block is a chroma block, then:
[0160] ctxId=21+(firstCoeff?0:1+min(sumAbs-numSig,4)+5*dclass)
[0161] Note that other organizations of the context model are possible. But in any case, the chosen probability model depends on the following:
[0162] Whether to encode luminance blocks or chrominance blocks;
[0163] whether the current scan index is the scan index of the first non-zero transform coefficient level in coding order;
[0164] ·Diagonal class dclass;
[0165] The difference between the sum of the absolute values of the partial reconstructions within the local template (after the first pass) and the number of non-zero transform coefficient levels within the local template, specifically min(sumAbs-numSig, 4).
[0166] It should be noted that the same context index ctxId is used for gt1_flag, par_flag and gt3_flag. However, for each of these flags, a different set of context models is used.
[0167] The residual value rem and the absolute value abs_level are both encoded using parameterized code categories, and their binary bits are encoded in bypass mode (see above). The actual binary used is determined by the so-called Rice parameter RP. In addition, for the absolute level abs_level, the variable pos0 determines the mapping from the coded syntax element abs_level to the actual absolute value.
[0168] The Rice parameter RPrem for the residual value is derived based on the sum of the reconstructed absolute values in the local template. In VTM-6, the same template as above is used. T represents the template, coeff[k] represents the reconstructed coefficient of the scan index k, and the sum sumAbs is derived according to the following formula:
[0169]
[0170] Note that the fully reconstructed transform coefficient values coeff[k] are used. Let tabRPrem[] be a fixed table of size 32. The Rice parameter RPrem is derived as follows:
[0171] RPrem=tabRPrem[max(min(sumAbs–20,31),0)].
[0172] Let tabRPabs[] be another fixed table of size 32. The Rice parameter RPabs used to encode abs_level is derived as follows:
[0173] RPabs=tabRPabs[min(sumAbs,31)].
[0174] The variable pos0 depends on both the sum of the reconstructed absolute values in the local template and the state variable. Let pos0Tab[][] be a fixed table of size 3x32. The variable pos0 is derived according to the following formula:
[0175] pos0=pos0Tab[max(state1,0)][min(sumAbs,31)].
[0176] When comparing the transform coefficient coding in VTM-6 with the transform coefficient coding in HEVC, it can be seen that the binary bit-to-bit ratio (average and worst case) is much higher in VTM-6. This is especially true when using correlated quantization (i.e., trellis coded quantization). The binary bit-to-bit ratio specifies the average number of binary decisions (binary bits) decoded from the bits in the bitstream. The higher the binary bit-to-bit ratio, the more efficient the binary arithmetic coding is. However, a higher binary bit-to-bit ratio is disadvantageous for implementation. Binary arithmetic coding is almost non-parallelizable, so the required implementation complexity (especially for the decoder) is determined by the number of binary bits to be encoded or decoded. For a given bit rate, the required implementation complexity increases with the increase in the binary bit-to-bit ratio. For this reason, if coding methods with lower binary bit-to-bit ratios can achieve very similar coding efficiencies, these methods are preferred.
[0177] Therefore, below we describe a concept by which the binary-to-bit ratio can be reduced while achieving almost the same coding efficiency as the VTM-6 method. Therefore, it is more suitable for efficient implementation. The embodiments described subsequently specifically address transform coefficient encoding for correlated quantization. However, it is not limited to this case. Several configurations can also be used for traditional independent quantization. In addition, the embodiments described subsequently can be extended to non-binary syntax elements that are independent of the transform coefficient level. For example, the following non-binary syntax elements that are often encountered in video codecs can also be encoded using context-adaptive binarization:
[0178] Quantization index in transform skip mode;
[0179] Residual samples in lossless coding;
[0180] · Components of the motion vector difference.
[0181] The basic idea is to switch the binarization according to one or more variables, which can be derived during encoding and decoding. In traditional transform coefficient coding schemes (also in VTM-6), a fixed binarization scheme is used. The binarization for the current transform coefficient level (or more generally, any non-binary syntax element) is selected from a predefined set of two or more binarizations according to the value of one or more derived variables. In this case, the goal is to select the binarization that has the minimum number of binary bits per syntax element (on average) (while achieving high coding efficiency). The variable used to select the binarization can be a previously encoded syntax element or a variable derived based on a previously encoded syntax element.
[0182] In the following, embodiments are described for an important example of encoding transform coefficient levels, in particular transform coefficient levels used in conjunction with correlated quantization (as specified in VTM-6). However, as mentioned above, it is possible to apply the embodiments described subsequently to entropy coding of any other non-binary syntax elements.
[0183] 1. Context-dependent Binarization
[0184] The binarization of the absolute values of transform coefficient levels (i.e., quantization indices) in VTM-6 (see above) is adapted to a probability mass function (pmf) for which the probability decreases as the absolute value increases. For absolute value 0, a single binary bit is sent; for absolute value 1, two binary bits are sent; for absolute values 2 and 3, four binary bits are sent, and so on. The number of binary bits for a particular absolute value is never smaller than the number of binary bits for any smaller absolute value. Investigations of actual probability distributions show that for certain cases (e.g., quantization stages 2 and 3), the probability of absolute value 1 is higher than the probability of absolute value 0. In these cases, the binary bit-to-bit ratio can be reduced by using a binarization with the following property: absolute value 1 is encoded with only one binary bit, while absolute value 0 is encoded with two binary bits (for absolute values greater than 1, the number of binary bits is not modified).
[0185] As a specific example, Figure 8Table 3 shown shows examples of two different binarizations B1 and B2 for the absolute value of the transform coefficient level. The first binarization B1 is the same as the VTM-6 binarization. The second binarization B2 is another binarization in which the first two binary bits (marked in color) are modified. In binarization B2, the binary bit eq1_flag is first sent, which specifies whether the absolute value is equal to 1. If eq1_flag is 1, no more data is sent for the current absolute value. If eq1_flag is 0, the next binary bit gt1_flag specifies whether the absolute value is greater than 1. If gt1_flag is equal to 0, the absolute value is 0 and no more data is sent. Otherwise, if gt1_flag is equal to 1, the absolute value is specified by sending the binary bits par_flag, gt3_flag and the non-binary syntax element rem as in the VTM-6 binarization. In this example, binarization B1 is preferred for the case where the probability of an absolute value of 0 is higher than the probability of an absolute value of 1, while binarization B2 is preferred for the case where the probability of an absolute value of 0 is lower than the probability of an absolute value of 1. The binarization is switched accordingly, which will reduce the average binary bit to bit ratio.
[0186] Figure 8 One property of the example of Table 3 in is that the two binarizations B1 and B2 differ only in the first two binary bits. The remaining binary bits par_flag and gt3_flag and the non-binary syntax element rem have the same meaning in the two binarizations. In general, this is an advantage because these binary bits and non-binary values (i.e., elements with the same meaning in the two binarizations) can be encoded using the same context set or, for non-binary elements, the same code set.
[0187] It should be noted that gt1_flag has different meanings in the two binarizations B1 and B2 (although the name "greater than 1" flag is the same). In binarization B1, the probability that gt1_flag is equal to 1 is the conditional probability that the absolute level is greater than 1, provided that the absolute level is greater than 0. In binarization B2, the probability that gt1_flag is equal to 1 is the conditional probability that the absolute level is greater than 1, provided that the absolute level is not equal to 1. In general, it is advantageous to encode binary bits with different meanings using different context model sets (see below for more details). For the example of Table 3, this means that eq1_flag of binarization B2 is encoded using a different context model set (and possibly a different context derivation method) than any flag of binarization B1; and gt1_flag of binarization B2 is encoded using a different context model set than any binary bit of binarization B2 (in particular, using a different context model set than gt1_flag of binarization B1). Flags with the same meaning (par_flag and gt3_flag in the example) are usually encoded using the same context model set and the same context derivation method. In addition, non-binary syntax elements with the same meaning (rem in the example) are encoded using the same code or the same code set (e.g., Golomb-Rice code).
[0188] Note that other configurations are possible, for example:
[0189] More than two binarizations can be used;
[0190] Two or more binarizations can be completely different, with no binary bits having the same meaning;
[0191] Signs that have different meanings in different binarizations can still be encoded using a common set of context models;
[0192] Signs with the same meaning in different binarizations can be encoded using different sets of context models;
[0193] • Different codes or sets of codes or different concepts for deriving parameters (eg Rice parameters) may be used for non-binary syntax elements in different binarizations.
[0194] Fig. 9 Table 4 in shows another example with three different binarizations B1, B2 and B3. The first two binarizations are Figure 8The example of Table 3 of is the same. In the third binarization B3, gt1_flag is first sent, which specifies whether the absolute level is greater than 1. If gt1_flag is equal to 0 (or more generally, it indicates that the absolute level is not greater than 1), eq1_flag is sent, which specifies whether the absolute level is equal to 1 or equal to 0. Otherwise, if gt1_flag is equal to 1 (or more generally, it indicates that the absolute level is greater than 1), the flag par_flag, gt3_flag and the non-binary syntax element rem are sent in the same way as the other two binarizations. With this binarization, the number of binary bits for all absolute values greater than 1 is reduced by 1 (compared to binarizations B1 and B2). Therefore, binarization B3 is advantageous for the case where the probability of an absolute level greater than 1 is greater than the probability of an absolute level equal to 0 and greater than the probability of an absolute level equal to 1.
[0195] It should be noted that in binarization B3, eq1_flag and par_flag can be combined into a single par_flag (because eq1_flag is only encoded when gt1_flag is equal to 0, and par_flag is only encoded when gt1_flag is equal to 1). In some cases, it makes sense to distinguish between eq1_flag and par_flag for context modeling. For example, it may be advantageous to use different sets of context models and / or different context derivation methods for these two binary bits. Even in this case, the two flags can be combined into a single par_flag, but this will complicate context modeling. Ultimately, whether gt1_flag and par_flag are treated as different binary bits or combined into a single par_flag, the technology is the same.
[0196] As described above, other variations of binarization for absolute transform coefficient levels are possible (e.g., more binarizations, different versions of multiple binarizations, etc.). In addition, multiple binarizations can also be used for other syntax elements, i.e., syntax elements that are independent of transform coefficient levels (or quantization indices of transform coefficients).
[0197] 1.1 Choice of Binarization
[0198] In the following, an embodiment of a method for selecting a binarization in a predefined binarization set is described. In the description, we focus on the encoding of the transform coefficient level related to the associated quantization (i.e., the encoding of the quantization index). The embodiment is also applicable to the encoding of the transform coefficient using traditional scalar quantization. And as mentioned above, it can also be applied to other syntax elements.
[0199] For the following description, we assume that the absolute value |q| of the current transform coefficient level q is encoded. As a simple example, we have to Figure 8Select one of the two binarizations B1 and B2 shown in Table 3.
[0200] In one embodiment, the selected binarization depends on one or more of the following:
[0201] The relevant quantized state variable (possible values are 0, 1, 2, 3);
[0202] The absolute value of the partial reconstruction (using the data sent in the first channel) within a local template T (the template may be fixed, or its shape and size may depend on other parameters);
[0203] The position of the current transform coefficient within the transform block (x, y);
[0204] Color channel (whether the transform block is a luma block or a chroma block).
[0205] In a particular embodiment, the selected binarization (B1 or B2) depends only on the relevant quantized state variable:
[0206] If the state of the current coefficient is equal to 0 or 1, the binarization B1 is used.
[0207] If the state of the current coefficient is equal to 2 or 3, the binarization B2 is used.
[0208] In another specific embodiment, the selected binarization (B1 or B2) depends on the relevant quantized state variable and the sum sumAbs of the absolute levels abs1[k] of the partial reconstructions in the local template T around the current scan position. The variable sumAbs is given by:
[0209]
[0210] where abs1[k] represents the absolute level of the partial reconstruction after the first pass for scan index k. For binarization B1 and B2, abs1[k] is given by:
[0211] For B1, abs1[k]=sig_flag[k]+gt1_flag[k]+par_flag[k]+2*gt3_flag[k];
[0212] For B2, abs1[k]=eq1_flag[k]+par_flag[k]+2*(gt1_flag[k]+gt3_flag[k]).
[0213] Note that abs1[k] is equal to the value coeff[k] obtained after the first pass (see above). Inapplicable flags (because they do not exist as a result of binarization) are inferred to be equal to 0. In an embodiment, the binarization is selected as follows:
[0214] · If state is equal to 2 or 3 and sumAbs is greater than 0, then use binarization B2;
[0215] · Otherwise, use binarization B1.
[0216] In a more general formulation of the embodiment, the binarization is selected as follows:
[0217] · If sumAbs is greater than Thres[state], then select binarization B2.
[0218] · If sumAbs is less than or equal to Thres[state], then select binarization B1.
[0219] Here, the array Thres[] is an array with four predefined thresholds (one threshold for each possible value of the state variable). Some of the thresholds can be set in such a way that the condition (sumAbs>Thres[state]) is always satisfied for some states and / or never satisfied for some states. Thus, this formulation includes the前述 two embodiments as special cases.
[0220] It should be noted that this formulation of selecting the binarization also applies to traditional scalar quantization. This is a special case with a single state (i.e., state = 0).
[0221] The formulation of the last binarization switch can also be used for more than two binarizations. As an example, for three binarizations, the switch can be formulated according to the following formula:
[0222] · If sumAbs>Thres2[state], then select binarization B3;
[0223] · If Thres1[state]<sumAbs<=Thres2[state], then select binarization B2;
[0224] · If sumAbs<=Thres1[state], then select binarization B1.
[0225] Here, we have two predefined threshold arrays Thres1[] and Thres2[]. Similarly, this concept can be extended to more than three possible binarizations.
[0226] In other embodiments, the conditions can include other or additional variables, such as:
[0227] · The position (x, y) of the current transform coefficient within the transform block (especially the diagonal class for context modeling in VTM-6);
[0228] Other functions of absolute values of partial reconstruction within templates;
[0229] Color channel (whether the transform block is a luma block or a chroma block).
[0230] 1.2 Specific example of encoding sub-blocks
[0231] To further illustrate this concept, we use the following implementation for binary switching as an example. Assume we have Figure 8 There are two possible binarizations B1 and B2 in Table 3. The binarization used to scan index k is selected according to the following terms:
[0232] If sumAbs is greater than Thres[state], select binarization B2;
[0233] If sumAbs is less than or equal to Thres[state], then select binarization B1.
[0234] It should be noted that this method includes the following methods as subsets (for a specific threshold array Thres[]):
[0235] Select binarization B1 for states 0 and 1, and select binarization B2 for states 2 and 3: For example, this can be achieved by a threshold array of Thres[] = {infinity, infinity, -1, -1};
[0236] If state is 2 or 3 and sumAbs is greater than 0, then choose binarization B2, otherwise choose B1:
[0237] For example, this can be achieved by a threshold array of Thres[] = {infinity, infinity, 0, 0}.
[0238] In the pseudocode below, we show a specific example for encoding a subblock with coded_subblock_flag equal to 1. The example syntax includes the bypass concept of VTM-6 (see above). The only change is that if sumAbs>Thres[state], the first part of the binarization is modified. In this case, eq1_flag is sent first, and if eq1_flag is equal to 0, gt1_flag is encoded. If sumAbs<=Thres[state], the traditional VTM-6 binarization is used, i.e., sig_flag is sent first, and if sig_flag is equal to 1, gt1_flag is sent. In both cases, if gt1_flag is equal to 1, the binarization is performed like VTM-6, i.e. by encoding par_flag, gt3_flag and the residual value rem.
[0239] It should be noted that similar to sig_flag in VTM-6 binarization B1, in some cases the value of gt1_flag can be inferred to be equal to 1 in binarization B2:
[0240] (1) The current scan position is equal to the scan index startScanIdx of the first non-zero coefficient in the scan order (i.e., the scan position corresponding to the explicitly sent x- and y-coordinates);
[0241] (2) The current subblock is a subblock for which a coded_subblock_flag equal to 1 is sent, the current scan index is the maximum scan index maxSubblockScanIdx within the subblock, and all previously sent (partial) absolute values in the subblock are equal to 1 (i.e., for B1, sig_flag = 0; for B2, eq1_flag = 0 and gt1_flag = 0).
[0242] Fig.10 Pseudo code is shown that specifies decoding of subblocks with coded_subblock_flag equal to 1 and using context adaptive binarization.
[0243] Please note, Fig.10 The pseudo code of represents only a specific example for encoding transform coefficient levels using context-dependent binarization. Context-dependent binarization can be used with other transform coefficient coding methods, for example:
[0244] Different binarizations;
[0245] Use binarization with no common parts;
[0246] More than two binarizations;
[0247] Choose different conditions for binarization;
[0248] • There is no restriction on the maximum number of binary bits for conventional encoding (ie, there is no third channel).
[0249] For different binarizations, there are different switches to bypass coding (residual value rem).
[0250] 1.3 Intermediate Presentation of Example
[0251] As described above, the embodiments of the present application are not limited to decoding the transform coefficients of the transform block represented by the prediction residual (e.g., intra-picture prediction residual or inter-picture prediction residual) in the transform domain. On the contrary, the embodiments of the present application can be generally used to encode / decode any sequence of information values. Therefore, Fig.11aA corresponding arrangement for decoding a sequence of information values 10 using binary arithmetic coding is shown, and Fig.11b A corresponding device is shown for encoding such a sequence of information values 10. In the following, the description focuses on the description of the functionality and the mode of operation of the decoder, but it should be understood that this description can be easily transferred to the description of the corresponding encoder, wherein each step of decoding from the data stream 8 becomes a corresponding step of encoding into the data stream 8; debinarization to convert the decoded binary bits into information values becomes a step of binarizing the information values in order to obtain binary bits, and debinarization to optionally convert the information values into another signal (for example, transform coefficients of a transform coefficient block, or more precisely, transform coefficient levels) becomes a corresponding step of quantizing these values in order to produce information values.
[0252] Therefore, as shown in the figure, Fig.11a The device for decoding is configured to select a selected binarization 14 from a binarization set 16 for a currently decoded information value according to a previously decoded information value, or includes a selector 12, and the selector 12 is configured to select a selected binarization 14 from a binarization set 16 for a currently decoded information value according to a previously decoded information value. Two examples are listed above, that is, in one example, the set 16 includes two binarizations B1 and B2, and in another example, the set 16 includes binarizations B1, B2, and B3. Of course, more examples can also be formed, such as an example in which the set 16 includes a binarization B3 and one of B1 and B2. Moreover, in addition to this, the embodiments of the present application are not limited to Figure 8 and 9 A specific example of binarization is shown in the table.
[0253] also, Fig.11a The device is configured to perform arithmetic decoding on the binary bits in the binary bit string of the selected binarization 14 of the information value being decoded, or comprises a binary arithmetic decoder 18, which is configured to perform arithmetic decoding on the binary bits in the binary bit string of the selected binarization 14 of the information value being decoded, for the information value being decoded. They form the basis for obtaining the information value being decoded. Figure 8 and 9 The binary bit strings that appear in the binarization of the set 16 are exemplarily depicted, i.e., in each row of each binarized column, one such binary bit string is exemplarily encircled by the dashed line 22. Note that the term "binary bit" denotes a binary decision, so the binary bit string 22 is represented in Figure 8 and 9, which are indicated as sequences of 0s and 1s in the table of . However, longer binary bit strings are not completely indicated in this way. Instead, the so-called residual or trailing binary bits appearing in the sub-column "rem" are indicated using a non-binary way, although they are also binarized / debinarized using some binarization sub-scheme (e.g., Rice code). In other words, the binary arithmetic decoder 18 derives a binary bit string 22 for each information value, which is represented in Figure 8 and Fig. 9 , ie for each binarization B1 , B2 or B3 in the corresponding column of this binarization, there is followed a binarization of a non-binary value appearing in the corresponding last sub-column "rem".
[0254] As described above, the sequence of information values 10 may be quantized indices of transform coefficients 24 in a transform block 26 that are traversed along a scan order 28. Examples of such a scan order have been described above with reference to Figure 6a It is discussed that the scanning order of transform coefficients is traversed in a sub-block manner (ie, in units of sub-blocks of the transform block 26). Fig.11a and 11b This traversal is also described in an exemplary manner. However, the present application is not limited to this scanning order.
[0255] Alternatively, the information value 10 may be a quantized index of a sample value in a block of sample values traversed along the scan order. In other words, the information value 10 may be a quantized index of a sample value that samples a corresponding block (e.g., a picture block) in the spatial domain, i.e., they may represent a block in the spatial domain rather than in the transform domain.
[0256] If a transform domain is used, the transform coefficients 24 may be DCT coefficients, DST coefficients, or coefficients of some other separable two-dimensional transform, or the transform coefficients may be transform coefficients of a non-separable transform.
[0257] Even further, the sequence of information values 10 may be a component of a motion vector difference. Without affecting the generality of the following description, it is assumed that the information values are quantized indices of transform coefficients 24 traversed along the scan order 28 in the transform block 26, but in this respect all the details listed above are to be understood only as examples and are easily transferable to any kind of sequence of information values 10, and similarly, the transform block 26 may represent a prediction residual in the transform domain, but this is also only an example, and the transform block 26 may also directly represent, for example, a picture block, i.e., not a prediction residual.
[0258] Let us continue Fig.11a The device and Fig.11b. As previously described, the binary arithmetic decoder 18 is used to decode the binarization selected for the information value from the data stream 8. Although according to some embodiments, the binary arithmetic decoder 18 can perform decoding of the binary bits without exact knowledge of the selected binarization 14 of the currently decoded information value (i.e., the information value to which the currently decoded binary bit currently decoded by the arithmetic decoder 18 belongs), some embodiments described herein involve the binary arithmetic decoder 18 utilizing the knowledge of the selected binarization 14 when decoding the binary bits in the binarization 14 from the data stream 8. Therefore, the binary arithmetic decoder 18 is shown as being connected to the selector 12 by a dotted line, i.e., the connection is optional.
[0259] Furthermore, the device comprises a debinarizer 19 for debinarizing the binary bits belonging to a certain information value to derive the corresponding information value 10. That is, the debinarizer 19 recognizes once the binary bits derived for a certain information value produce one of the binary valid binary bit strings 22 selected / selected by the selector for the corresponding information value. To this end, the debinarizer 19 comprises an input connected to the output of the selector 12. The selector 12 then performs its selection from the set 16.
[0260] Downstream of the debinarizer 19, a dequantizer 21 dequantizes the information values 10 to obtain dequantized information values, e.g., as already indicated herein, transform coefficient levels of the transform coefficients 24 of the transform coefficient block 26. Fig.11a and Fig.11b The encoding / decoding of the information values of the information value 10 is performed sequentially, which naturally also applies to the arithmetic encoding / decoding of the corresponding binary bits 20 in the binary bit string 22 of the information value 10. However, the order of arithmetic decoding / encoding of the binary bits 20 may not be completely encoding / decoding the binary bits in the binary bit string of a certain currently decoded / encoded information value before participating in the arithmetic decoding / encoding of the binary bits of the subsequent information value. Although such encoding / decoding of the binary bits one by one for each information value is feasible (for example in one channel), Fig.10 The example of for example shows that binary bits can be encoded / decoded in more than one channel. Details and possible variations will be discussed further below. In any case, the case just mentioned clearly shows that the currently decoded / encoded information value represents an information value whose one or more binary bits are currently decoded / encoded, and during the encoding / decoding of the sequence of information values, the same information value may be the currently decoded / encoded information value more than once.
[0261] Regarding the selection of the selected binarization 14, further explanation should be given. Preferably, the selected binarization 14 is selected only once for each information value 10. For each information value 10, the selection can be performed before the first binary bit in the binary bit string of the selected binarization 14 is decoded / encoded, for example Fig.10 In this case, the knowledge about the selected binarization 14 is also available when decoding the binary bits in the selected binary bit string of the information value 10. In the case of using context-dependent binary arithmetic coding / decoding, for each binary bit, it is thus known to which binarization the binary bit belongs, so that for each context-adaptively coded / decoded binary bit, a context with a relevant probability can be selected according to the selected binarization 14 of which the corresponding binary bit is part. However, according to alternative embodiments, the latter correlation or even context adaptivity may not be taken into account, so that the selection of the binarization can be made before or even after the encoding / decoding of the binary bits in the binary bit string of the corresponding information value. In particular, see for example the binarizations B1 and B2: these two binarizations coincide in the domain of the binary bit string 22. Only the association of the binary bit string 22 with the possible values of the information value, i.e. the mapping between the domain of the binary bit string and the domain of the possible values of the information value, is different. Thus, arithmetic coding / decoding of binary bits, and even identification of valid binary bit strings (i.e. identification that the last binary bit in a binary bit string for a certain information value has been received) can be done without knowing which binarization is ultimately selected for the information value. However, as already indicated, it may be preferred to perform the selection for the information value 10 before actually performing arithmetic coding / decoding of any binary bit in the binary bit string for the information value 10, and the set 16 may include binarizations that are inconsistent with the domain of the binary bit string.
[0262] We now turn to the embodiment outlined above. Here, the information value 10 is a non-negative number, i.e., a positive integer. As described above, the information value 10 can represent the absolute value of an integer-valued information value, such as a transform coefficient level or a quantization index. According to one example described above, the set 16 includes a first binarization B1 and a second binarization B2. The first binarization B1 associates a first binary bit string 221 of a first binary bit length (i.e., a binary bit length of 1) with a currently decoded information value assumed to be 0 (i.e., having a possible value of 0), and associates a second binary bit string 222 of a second binary bit length (i.e., a length of 2 binary bits) with a currently decoded information value assumed to be 1 (i.e., having a possible value of 1). The second binarization B2 associates the third binary bit string 223 of the third binary bit length with the currently decoded information value assumed to be 0, and associates the fourth binary bit string 224 of the fourth binary bit length with the currently decoded information value assumed to be 1, wherein the first binary bit length is equal to the fourth binary bit length, and the second binary bit length is equal to the third binary bit length. However, the examples of binarization B1 and B2 can be changed. If changed, the change can be made in a way that still makes the first binary bit length not equal to the third binary bit length and / or the second binary bit length not equal to the fourth binary bit length. By the way, please note that the latter case is also applicable when binarization B1 is combined with binarization B3 to produce set 16 or when binarization B2 is combined with binarization B3 to produce set 16. As with the case of using binarization B1 and B2, the first binary bit length can be less than the second binary bit length, and the third binary bit length can be greater than the fourth binary bit length.
[0263] Furthermore, in all binary bit strings 21 of the first binarization B1, the binary bit 301 at the first binary bit position, that is, Figure 8 and Fig. 9 The leftmost binary bit in the binary bit string 22 in the table indicates whether the currently decoded information value is 0 or non-0. That is, the first binary bit 301 represents the significance of the information value |q|. Therefore, the binary bit 301 is named "sig". In all binary bit strings 22 of the second binarization B2, the binary bit 301 at the first binary bit position indicates whether the currently decoded information value is equal to 1 or not equal to 1. Therefore, in Figure 8 and Fig. 9 In the example, the binary bit 301 is named as eq1.
[0264] As described above, the arithmetic decoder 18 or the arithmetic encoder 18' may use the selection of the selected binarization 14, i.e., the result of the binarization selection, to perform context selection between binary bits of the information value for the binary bits of the context adaptive coding, noting that in Fig.11a and 11b Modules corresponding to each other in the same way are denoted by the same reference numerals, however, in the case of modules of the encoder, a prime is added. Fig.12 as well as Fig.10 To illustrate this point. Fig.12 An example of a block 26 of transform coefficients and an example of binarization of the transform coefficients of the block 26 are shown. Specifically, the binary bits 40 in the binary bit string of the transform coefficient 26 are shown as a cube 40. The binary bits 40 in the binary bit string belonging to a certain transform coefficient are shown as stacks or columns of these binary bits 40 one on top of another. The first binary bit 301 is the bottom binary bit, and the second binary bit 302, the third binary bit 303 and so on follow above. Therefore, the binary bit strings (i.e., the columns of binary bits 40) each correspond to an information value, i.e., the quantized values of certain transform coefficients belonging to the block 26, which are in Fig.12 26 in a side-by-side arrangement corresponding to their position within the block 26. Also depicted is a scanning order 28 for sequentially encoding the information values 26. Thus, this order 28 results in information values or quantization indices for the transform coefficients of the block 26, e.g. Fig.12 The bottom of forms an information value sequence 42. As described above, according to Figure 6a Optionally, the actual encoding of the information value starts at the first transform coefficient or information value that is not zero along the sequence 28 , the corresponding binary bit string being indicated at 44 .
[0265] like Fig.12 As shown, the selection of module 12 results in two different transform coefficients: one binary bit string belongs to binarization B1, and the other binary bit string belongs to binarization B2. The binary bits in the binary bit string belonging to binarization B2 are Fig.12 Indicated by hatching. Fig.10 , the selection 12 of the binarization to be used for each transform coefficient or information value is done individually for each coefficient or information value along the sequence 28 within the first pass 46. Thus, although Fig.12 It is suggested that starting from some information value within the sequence 42, the selected binarization changes from one binarization (here the binarization B1) to another binarization, but this is only an example and it will be clear that this may be different from Fig.12 Different than shown.
[0266] Fig.10 or Fig.12 The embodiment of FIG. 4 shows that the binary bit 40 can be encoded in several channels. Fig.10 and Fig.12 In the example of , the first pass 46 may cover those binary bits 40 that are context-adaptively coded, while the other binary bits may be coded using a bypass mode of the decoder / encoder 18 / 18', according to which equal probabilities are assumed among the possible binary bit states. Fig.10In the example, another characteristic regarding the selection of which binary bits to encode / decode within the first channel 46 is also true: for each binary bit string of information value 10 in the sequence 42, the first channel 46 includes all binary bits from the first binary bit 301 to the nth binary bit (here the fourth binary bit 304), wherein the binary bit string of some information values may include only the first binary bit 301 or some binary bits from the first binary bit 301 to between the first binary bit 301 and the nth binary bit 304, wherein the nth binary bit indicates for both binarizations B1 and B2 whether the information value of the corresponding binary bit string is greater than n-1. In other words, these first n binary bits 301 to 304 encoded in the first channel 46 make it possible to uniquely indicate whether the information value of the corresponding binary bit string has a value between 0 and n-1 (both inclusive) or is greater than n-1, for example at least n or at least n+1, depending on whether the information value is odd or even, for both the first binarization B1 and the second binarization B2. However, it should be noted that with respect to Fig.10 and Fig.12 Several variations of the example are conceivable. For example, when binarization B1 or B2 is combined with binarization B3 to form set 16, it is possible that the first channel 46 includes the first four binary bits 301 to 304 of binarization B1 or B2, and only the first three binary bits of binarization B3. All these binary bits will be context-adaptively encoded, while the subsequent binary bits will be encoded using bypass mode.
[0267] Specifically, when binarization B1 and B2 are used, the first binary bit 301 in the binary bit string of each information value is one of the following two flags: namely, sig_flag if the binary bit 301 is part of the binary bit string 22 of binarization B1, and eq1_flag if the binary bit 301 is part of the binary bit string of binarization B2. The second binary bit 302 of each binary bit string is gt1_flag. In addition to this, in all binary bit strings 22 whose binary bit length is greater than 2 in the first binarization B1, and in all binary bit strings 22 whose binary bit length is greater than 2 in the second binarization B2, the binary bit 303 at the third binary bit position indicates whether the currently decoded information value is even or odd. Therefore, it is called par_flag, where "par" stands for parity. In addition to this, as Figure 8 and Fig. 9 As shown, in all binary bit strings 22 whose binary bit length is greater than 3 in the first binarization B1, and in all binary bit strings whose binary bit length is greater than 3 in the second binarization B2, the binary bit 304 at the fourth binary bit position indicates that the currently decoded information value is greater than 3 or not greater than 3. Therefore, this binary bit is called gt3_flag.
[0268] In a first channel 46, all binary bits belonging to this channel 46 and to a certain information value are encoded / decoded before continuing to the binarization belonging to this channel 46 and to the next information value, respectively. This means that, if Fig.10 As shown, the binarization selector 12 performs selection 12 of a certain current information value, and then, the arithmetic decoder / encoder 18 / 18' performs decoding / encoding on the first binary bit in the selected binary bit string of the current information value. This is eq1_flag in the case of binarization B2 and sig_flag in the case of binarization B1. Still in the first channel, the arithmetic decoder / encoder 18 / 18' performs encoding / decoding 182 according to the second binary bit 302 in the current binary bit string of the current information value based on the first binary bit 301 in the current binary bit string, that is, in the case of binarization B2, the first binary bit 301 indicates the case where the current information value is not equal to 1, and in the case of binarization B1, the first binary bit 301 indicates the case where the current information value is not equal to 0. In both binarization cases, the second binary bit 302 is gt1_flag. According to this, if the indication is that the current information value is greater than 1, still within the first channel 46, the arithmetic decoder / encoder 18 / 18' continues to decode / encode 183 and 184 the third binary bit 303 and the fourth binary bit 304 of the currently accessed information value.
[0269] That is, in this first pass 46, the first n binary bits (here the binary bits 301 to 304) of the binary bit string of each coefficient are derived before proceeding to the next information value along the sequence 42. The debinarization 19 is performed as much as possible. That is, successively and according to the binarization that has been selected, the binary bits of the sequential encoding / decoding are used in order to adjust / increase the minimum value of the currently decoded / encoded information value to be able to be determined based on the binary bits in the binary bit string of the information value currently decoded / encoded. This updating / increasing situation is Fig.10 48 in . Therefore, based on the four binary bits 301 to 304 encoded / decoded during the first pass 46, for each previously scanned information value, it is clear whether the information value is equal to any one of 0 to 3 (including the two end values), or at least equal to or greater than 4, or equal to or greater than 5. The latter two update results are generated by the binary bit 304 indicating more than 3 (i.e., gt3_flag), the latter option (>=5) corresponding to the information value being indicated as an odd value and causing the minimum absolute value to be set to 5, while the former option (>=4) corresponds to the information value being represented as an even value and the minimum absolute value being set to 4. Parity is indicated by the third binary bit 303, which is inevitably followed by the binary bit 304. Based on this minimum value of the previously scanned information value, a template (e.g., Figure 7The context determination is performed for the previously encoded / decoded information value in the template 32). Fig.12 This is exemplarily depicted in . An arrow 50 points from the binary bit string of the information value to the binary bit string belonging to the information value which is located in the template 32 and has been previously encoded / decoded.
[0270] As described above, in the second channel 52 after the first channel 46, the remaining binary bits 40 of those information values can be encoded / decoded along the scanning order 28, based on those binary bits included in the first channel 46, it is clear that these information values are equal to or greater than 4, or equal to or greater than 5, that is, the binary bits 304gt3_flag for these information values are equal to 1. Therefore, the binary bits of the second channel correspond to the following: the binarization of the difference between the size of the actual information value on the one hand and the above-mentioned minimum absolute value on the other hand. This binarization can be, for example, a Rice code or a Golomb code. The decoding is completed at 185 in bypass mode. In another channel 54, the sign flag can be encoded / decoded at 186. Of course, the sign flag can only be encoded / decoded for information values that are obviously not equal to 0.
[0271] like Fig.10 As optionally described in , it is possible that the number of binary bits context-adaptively encoded in the first pass 46 is limited until some maximum number of binary bits context-adaptively encoded / decoded is reached. For example, binary bits of the first pass 46 belonging to the currently accessed information are context-adaptively encoded in the first pass 46 only if the remaining binary bits reach the maximum number of context-adaptive binary bits (4 in this example) (i.e., sufficient to decode / encode the maximum number of binary bits to be encoded / decoded to obtain any information value). See Fig.10 A check is performed at 56 in the sequence 42. If the maximum number is reached or the number of remaining binary bits is too small, a second pass 52 is performed until the last information value to which the binary bit belongs has been context-adaptively encoded in the first pass 46 (as shown at 58), and then, in a third pass 60, all remaining information values along the sequence 42 are encoded / decoded in bypass mode using a binarization which may also be the binarization of the remaining binary bits encoded in the second pass 52, but may also be different therefrom. Thus, for the information values encoded / decoded in the third pass, all binary bits are encoded / decoded in bypass mode.
[0272] 2.1 Context Modeling
[0273] Let us continue the above introduction to binarization selection by a possible implementation of context modeling (i.e., a binary bit selection probability model for conventional coding) according to Sections 1.1 and 1.2. We focus on the example of transform coefficient coding specified in the pseudocode in Section 0 above. In this example, the binarization B1 is the same as the binarization in VTM-6, and the second binarization differs in the first two binary bits (the second version of eq1_flag and gt1_flag).
[0274] In an embodiment, the probability model for each conventionally coded binary bit is selected based on one or more of the following (similar to VTM-6):
[0275] Whether the current transform block is a luminance transform block or a chrominance transform block;
[0276] · The state of the relevant quantification;
[0277] The x- and y-coordinates of the current transform coefficients;
[0278] Whether the current transform coefficient is the first non-zero coefficient in the transform block in coding order;
[0279] • The absolute value of the partial reconstruction in the local neighborhood (after the first pass).
[0280] Furthermore, the Rice parameters of the residual value rem and the absolute value abs_level of the bypass encoding as well as the variable pos0 (which specifies the mapping of abs_level to absolute value) are determined in the same manner as in VTM-6 (see above).
[0281] In a specific version of the embodiment, the probability model for the following conventionally coded binary bits is chosen to be the same as that of VTM-6:
[0282] sig_flag and gt1_flag for the first binarization B1;
[0283] par_flag and gt3_flag for binarization of both B1 and B2;
[0284] In one version of the embodiment, the probability model of eq1_flag (binarization B2) is selected based on:
[0285] Whether the current transform block is a luminance transform block or a chrominance transform block;
[0286] · The state of the relevant quantification;
[0287] • Diagonal class (eg the same class as sig_flag used for conventional binarization B1).
[0288] • A function of the sum sumAbs of the absolute values of the partial reconstructions in the local neighborhood (after the first pass) (eg the same function f(sumAbs)=min((sumAbs+1)>>1,3) as for sig_flag can be used).
[0289] In another version, the probability model of eq1_flag (binarization B2) is independent of the state variables and is selected based on a function of whether the transformed block is a luminance block or a chrominance block, the diagonal class, and the sum of the absolute values of the partial reconstructions in the local neighborhood (after the first pass) sumAbs. In other versions, other combinations of the above general features are used for context modeling of eq1_flag.
[0290] Similarly, in one version of the embodiment, the probability model for binarizing gt1_flag of B2 is selected based on:
[0291] Whether the current transform block is a luminance transform block or a chrominance transform block;
[0292] · The state of the relevant quantification;
[0293] Diagonal class (eg, the same class as sig_flag of conventional binarization B1).
[0294] A function of the sum of the absolute values of the partial reconstructions in the local neighborhood (after the first pass) sumAbs (eg the same function as sig_flag can be used f(sumAbs)=min((sumAbs+1)>>1,3)).
[0295] In another version, the probability model of gt1_flag for binarization B2 is independent of the state variables and is selected based on a function of whether the transformed block is a luminance block or a chrominance block, the diagonal class, and the sum of the absolute values of the partial reconstructions in the local neighborhood (after the first pass) sumAbs. In other versions, other combinations of the above general features are used for context modeling of gt1_flag.
[0296] 2.2 Context Modeling
[0297] Now let's continue with the description in Section 1.3. Similarly, all the details listed in Sections 1.1, 1.2, and 2.1 should be understood as trusted implementation details, which can be applied alone or in combination to the description in another Section 1.3 and this section.
[0298] In particular, with regard to the context selection performed by the arithmetic decoder / encoder 18 / 18', the following applies.
[0299] For example, the binary bit 301 of the first binary bit position in the binary bit string of the information value 10 can be arithmetically encoded / decoded using a probability model selected in the following manner. Specifically, the probability model to be used for arithmetically encoding / decoding the binary bit 301 can be selected according to whether the binary bit 301 currently encoded / decoded is within the first binarization or the second binarization, that is, it is selected according to whether the binary bit 301 is part of the binary bit string of the first binarization or the second binarization. Additionally or alternatively, the probability model to be used for arithmetically encoding / decoding the binary bit 301 can be selected from a set of probability models associated with the first binary bit position (i.e., the first binary bit 301) on the one hand and the corresponding binary bit 301 is part of the selected binarization 14 on the other hand, or a set of probability models dedicated to the first binary bit position (i.e., the first binary bit 301) on the one hand and the corresponding binary bit 301 is part of the selected binarization 14 on the other hand. In doing so, the selection from the set may be based on one or more of: 1) whether the information value represents luminance information or chrominance information, the binary bit 301 being part of the binarization of the information value; 2) the position of the information value within the information value block (e.g., block 26), the binary bit 301 being part of the binarization of the information value; and 3) a function of the minimum amplitude value of one or more information values in the information value block corresponding to a position that satisfies a predetermined positional relationship relative to a predetermined position of the information value, wherein the binary bit 301 is part of the binarization of the information value, the minimum amplitude value being determined based on previously decoded binary bits in the binarization of the one or more information values. That is, the function may be applied to the minimum value derived above for the binary bits of the first channel 46 belonging to the previously traversed information value located within the template 32, wherein the function may, for example, include a summation, a weighted summation, or a similar scalar function. Quantization may be used so as to map the function result to the number of available probability models in the set performing the selection. In other words, in order to determine the context of the probability model to be used for encoding / decoding a certain binary bit 301 , the encoder / decoder 18 / 18 ′ performs the following operation: they locate neighboring information values within the template 32 . Fig.12The arrow 50 in points to a binary bit 301 of a certain information value. All binary bits of the first channel 46 belonging to the binary bit string of these adjacent information values have been encoded / decoded. Therefore, a minimum absolute value can be determined for each of these adjacent information values, i.e., a minimum of the absolute values of the corresponding adjacent information values is assumed. To this end, the encoder and the decoder can exploit the knowledge of the binarization selected for each adjacent information value. Therefore, for each adjacent information value, a minimum absolute value is generated, and the minimum absolute value can be subjected to a function such as a scaling function, which, for example, involves a summation of the minimum absolute values and a quantization to a number of context indices, each context index pointing to a different context in the context for the binary bit 301, wherein the binary bit 301 is part of the selected binarization.
[0300] The description about the binary bit 301 also applies to the second binary bit 302 and its arithmetic coding / decoding. That is, the encoder and decoder 18 / 18' can use a probability model for arithmetic coding / decoding of such a binary bit 302, and the probability model is selected in the following manner: First, a probability model set can be selected from a plurality of probability model sets according to whether the binary bit 302 currently encoded / decoded is part of the first binarization B1 or part of the second binarization B2. That is, a context set is selected from a plurality of context sets, each of which corresponds to one of the binarizations in the set 16, and a context set associated with the selected binarization 14 is selected. In such a respectively selected context set or probability model set, the selection of the probability model to be finally used for arithmetic decoding / encoding of the binary bit 302 depends on one or more of the following: 1) whether the information value represents luminance information or chrominance information, and the binary bit 302 is part of the binarization of the information value; 2) the position of the information value within the information value block (e.g., block 26), and the binary bit 302 is part of the binarization of the information value; and 3) a function of the minimum amplitude value of one or more information values within the template 32 located at the position of the information value, and the binary bit 302 is part of the binarization of the information value. The function can be different from the function used for the binary bit 301, or it can be the same.
[0301] 2.3 Alternative solution using another binary set
[0302] As mentioned above, the above Figure 10 to Figure 12 The description mainly focuses on the use of binarization set 16, which only includes binarizations B1 and B2, but it has been pointed out above that set 16 can also be composed of other binarizations. For example, according to Fig. 9 , the set 16 may be composed in a way in which the binarization B3 is combined with one or both of the binarizations B1 and B2. This possibility will now be discussed below.
[0303] Specifically, according to this composition of the set 16, when the information value 10 is a non-negative integer, the binarization set 16 will include a first binarization (e.g., B1 or B2), which associates the first binary bit string 221 with the currently decoded information value assumed to be 0, and associates the second binary bit string 222 with the currently decoded information value assumed to be 1; and also includes a second binarization (e.g., B3), which associates the binary bit string 225 with the currently decoded information value assumed to be 0, and associates the sixth binary bit string 226 with the currently decoded information value assumed to be 1. At least one of the bit lengths of the binary bit strings 221 and 225 on the one hand and the binary bit strings 222 and 226 on the other hand will be unequal to each other. This also applies when comparing the binarizations B2 and B3. In addition, the maximum bit length of the binary bit strings 221 to 226 will be 2. In this case, the set 16 including binarization B3 and one or more of binarizations B1 and B2 will further result in the following characteristics: for an integer x>1, the first binarization B1 or B2 will associate the binary bit string with the currently decoded information value assumed to be x, and the second binarization B3 will associate the binary bit string with the currently decoded information value assumed to be x, so that when the binary bit strings of the first binarization and the second binarization are compared respectively, the binary bit lengths of these binary bit strings are greater than 2 and differ by 1. That is, for each x, the corresponding binary bit string of the second binarization will be one binary bit longer than the corresponding binary bit string of the first binarization. This is because eq1_flag in binarization B3 is omitted, as discussed in Section 1.2 above. For example, see Fig. 9 B1 and B3: The binary bit strings of |q| are all three binary bits long or longer, and the binary bit string 22 of binarization B3 is one binary bit shorter than the corresponding binary bit string 22 of binarization B1 in the same row (i.e., belonging to the same |q| value), and the same applies to binarization B2 and binarization B3.
[0304] With regard to the binary bit lengths of binary bit strings associated with integer values of 0 or 1, the following holds true: for example, when comparing B1 and B3, i.e., if binarizations B1 and B3 are included in set 16. Then, the binary bit length of binary bit string 221 is smaller than the binary bit length of binary bit string 225, and the binary bit lengths of binary bit strings for larger integer values are smaller in binarization B3 than in binarization B1. When comparing B2 and B3, the binary bit length of binary bit string 224 is smaller than the binary bit length of binary bit string 226, and the binary bit lengths of binary bit strings associated with integer values greater than 1 are smaller in binarization B3 than in binarization B2.
[0305] Furthermore, in all binary bit strings of binarization B1, binary bit 301 indicates that the currently decoded information value is 0 or non-0, while the first binary bit 301 in the binary bit string of binarization B3 indicates that the currently decoded information value is greater than 1 or not greater than 1. Similarly, in all binary bit strings in binarization B1 whose binary bit length is greater than 1, binary bit 302 indicates that the currently decoded information value is greater than 1 or not greater than 1, while in all corresponding binary bit strings of binarization B3 (i.e., binary bit strings longer than one binary bit), binary bit 302 indicates that the currently decoded information value is an even number or an odd number. Note that in Fig. 9 In the table, since the symbol eq1 is omitted for binary bit strings with information values (amplitude) greater than 1, the binary bit 302 appears under the sub-columns eq1 and par in the second binary bit column and the third binary bit column in the binary bit string of binarization B3, respectively. The binary bit 302 in binarization B3 is referred to as eq1 or par, depending on whether the binary bit 302 is in a binary bit string longer than 2 binary bits.
[0306] Furthermore, in all binary bit strings whose binary bit length is greater than 2 in binarization B1, the binary bit 303 indicates whether the currently decoded information value is an even number or an odd number, and in all corresponding binary bit strings of binarization B3 (i.e., all binary bit strings whose binary bit length is greater than 2 in binarization B3), the binary bit at the third binary bit position (i.e., 303) indicates whether the currently decoded information value is greater than 3 or not greater than 3. In binarization B3, the binary bit 303 is located in the fourth column.
[0307] In addition, in all binary bit strings whose binary bit length is greater than 3 in the binarization B1, the binary bit 304 indicates that the current decoded information value is greater than 3 or not greater than 3, and for integers x>N, Fig. 9 In the example of , N is equal to 3, binarization B1 associates a binary bit string with the currently decoded information value assumed to be x, and binarization B3 associates a binary bit string with the currently decoded information value assumed to be x, and the associated binary bit strings are consistent in the run of trailing binary bits. This run of trailing binary bits is specifically the binarization of "rem". That is, in Fig. 9 Examples and Figure 8In the example of , the same binarization can be used for the binarization of "rem". This means that, for integers x>N, the first of the binarizations (e.g., B1) associates the fifth binary bit string with the information value assumed to be x, the second of the second binarizations (e.g., B2) associates the sixth binary bit string with the currently decoded information value assumed to be x, and the fifth binary bit string and the sixth binary bit string can be consistent in the run of trailing binary bits (i.e., rem), where the trailing binary bits can be arithmetically encoded / decoded using an equally probable bypass mode, while the initial binary bits before the trailing binary bits are context-adaptively arithmetically encoded / decoded. But this consistency can even extend beyond the bypass-coded trailing binary bits. For example, for an integer x>N, a first binarization (e.g., B1 or B2) may associate a fifth binary bit string with an information value assumed to be x, and a second binarization (e.g., B3) may associate a sixth binary bit string with an information value assumed to be x, wherein the fifth binary bit string and the sixth binary bit string are identical in a run of a predetermined number of binary bits, the run of the predetermined number of binary bits extending from the end of the fifth binary bit string and the sixth binary bit string beyond the trailing binary bits to include one or more initial binary bits before the trailing binary bits, namely, par and get3.
[0308] Therefore, when comparing B3 and B2, the above characteristics and comparisons are also feasible.
[0309] When processing the binarized binary bits in set 16, wherein set 16 includes binarization B3 and one (or both) of binarizations B1 and B2, the trailing binary bits (i.e., rem) are arithmetically decoded / encoded using an equal probability bypass mode, and the previous or initial binary bits before these trailing binary bits are context-adaptively encoded / decoded. Note that, therefore, these context-adaptively arithmetically encoded / decoded binary bits are the binary bits under the columns sig, gt1, par, gt3, eq1, gt1, par, and gt3, respectively.
[0310] Please note the following about Figure 10 to Figure 12 The example is transferred to the example of a set 16 including binarization B3 and, for example, either one of binarizations B1 and B2 or both binarizations B1 and B2: for the binary bit string of the information value for which binarization B3 is selected, only the first three binary bits 301 to 303 will be included in the first channel, while the second channel 52 will include the remaining binary bits "rem", which represent the trailing binary bits just described above.
[0311] As described in the previous example, in the case where set 16 includes binarization B3, for a binary bit 301 at a certain binary bit position of a certain binary bit string of a certain information value, a probability model can be used for arithmetic encoding / decoding, where the probability model is different when comparing the binary bit at the binary bit position belonging to one binarization with the binary bit belonging to the binary bit position and belonging to any other binarization.
[0312] On the other hand, for all combinations of the generation set 16 of the binarizations B1 to B3, it is possible that for at least one binary bit at at least one binary bit position within one binarization in the set 16, the same probability model or the same set of probability models is used as for the binary bit at the same binary bit position or at another binary bit position of another binarization in the set 16. For example, for all binary bits referred to as par in the binarizations B1 to B3, the same or a common probability model or the same or a common set of probability models may be used, which may also alternatively or additionally apply to the binary bit gt3 in the binarizations B1 to B3.
[0313] 3. Combination with relevant quantification
[0314] Although in the above Figures 10 to 12 This is not discussed specifically in the description of the examples, but so far it should be noted that the result of or optional quantization / dequantization applied to information value 10 can be achieved using correlated quantization, or can be achieved using usual quantization in which each information value is quantized / dequantized independently of the other information values.
[0315] Specifically, with respect to the inverse quantization in module 21, for example, reference may be made to Figure 4 To illustrate: Using correlation quantization to dequantize the information value 10 sequence can be performed as follows, where the information value sequence is Figure 4 In the example, the sequence is denoted as "level[k]", and the sequence is sequentially traversed with index k. Specifically, for the current dequantized information value level[k], a mapping of the selected information value to the reconstruction level is selected from the mappings of multiple information values to reconstruction levels. The mappings of multiple information values to reconstruction levels according to the preferred embodiment are already in Figure 1 There are two mappings. Select and map in Figure 4 The choice depends on the quantization state of the information value used for the current dequantization, i.e. Figure 4 Then in Figure 4 The state update is performed in the last line of : the quantization state is updated according to the current dequantized information value, namely "level[k]", thereby obtaining the quantization state for the information value to be dequantized subsequently.
[0316] As an interesting point, as mentioned before, the selection of the selected binarization 14 from the set of binarizations 16 can be done based on the quantization state of the information value used for the current inverse quantization. This has been described in Section 1.1.
[0317] More specifically, the binarization set 16 may include a first binarization (e.g., B1), and a second binarization (e.g., B2), and the mapping of the plurality of information values to the reconstruction levels may include a mapping of the first information value to the reconstruction level and a mapping of the second information value to the reconstruction level, such as Figure 1 Those shown. Dequantization may then be performed in the following manner. The selection of the selected binarization from a binarization set such as a set including B1 and B2 or a set including B1, B2 and B3 may be performed by performing the following operations in the binarization within the set 16: depending on whether the mapping of the selected information value to the reconstruction level selected according to the information value for the current dequantization produces a mapping of the first information value to the reconstruction level or a mapping of the second information value to the reconstruction level, that is, the selection of the binarization is performed according to the selection of the mapping of the information value to the reconstruction level. For example, if "state" is 0 or 1, B1 is used, and if "state" is 2 or 3, B2 is selected or used.
[0318] The information value sequence may be ordered in a one-dimensional traversal of the information sample position block. This has been shown above. The information value sequence may be a quantized index of a transform coefficient arranged along a scan order 28 in a transform block. In such an environment, the binary bits in the binary bit string of the binary value of the information value 10 sequence may be encoded / decoded sequentially in one or more channels of the information value sequence, i.e., as described above with reference to Figure 10 to Figure 12 In doing so, i.e., when encoding / decoding a sequence of information samples, the following binarization may be used: for integers x>p, the binarization associates only x binary bit strings with the currently decoded information value, the binary bit length of the x binary bit strings increasing monotonically with x and being greater than p+1 at least in the case x>p+1, where p (e.g. for B1 to B3) is 0. For the first relative subclause, see Figure 8 and Fig. 9 : For any binarization of B1 to B3, when checking the binary bit string 22 from |q|=1 to a larger value, the binary bit string 22 will never become smaller. For the second relative subclause, see also Figure 8 and Fig. 9 : All binary bit strings starting from |q|=1 to larger values are longer than 1 binary bit, except B2 where the binary bit length is 1 when |q|=1. This means that the first p+2 binary bits are sufficient to correctly determine min(|q|), p+2). That is, preferably, the corresponding binarization is used, and the binarizations B1 to B3 introduced above are examples of such binarizations for forming the corresponding set 16.
[0319] Using such a binarization, the leading k binary bits (k>=p+2) in the binary bit string 22 of the sequence of information values 10 can be encoded / decoded sequentially in a first channel (e.g., the first channel 46) so that all binary bits related to the current information value, or more precisely, all leading k binary bits are decoded before any binary bits of the subsequent information value of the sequence of information values (in particular, any binary bits of the leading k binary bits of such subsequent information value). This has been discussed above. However, with respect to the correlated quantization, the following can be established: for the currently decoded binary bits of the currently decoded information value, the selection of the selected binarization from the binarization set 16 can be performed based on the minimum amplitude value of each of the one or more information samples corresponding to the position that satisfies the predetermined position relationship relative to the predetermined position (i.e., the position within the template 32) in the information sample block 26. The minimum amplitude value has been described above and is determined based on the leading binary bits of the corresponding information samples previously decoded in the first channel (i.e., up to the k-th binary bit decoded / encoded in the first channel). This correlation has been introduced above by way of example using sumAbs, that is, for example, the minimum amplitude values can be summed.
[0320] When the leading k (k>=p+2) binary bits in the binary bit string of the sequence of information values 10 are sequentially decoded / encoded in the first pass, the sequential decoding / encoding can be performed in such a way that all binary bits related to the current information value are decoded before any binary bits of the subsequent information value of the sequence of information values. The parameter k can be selected for the currently decoded information value according to the selected binarization of the currently decoded information value. For example, for binarizations 1 and 2, k=4; for binarization B3, k=3. This has also been indicated above, that is, for the binary bit string belonging to binarization B3, the first pass 46 may only cover 301 to 303, while for the binary bit strings of binarizations B1 and B2, the first pass 46 may include 301 to 304.
[0321] Even further, for the currently decoded / encoded information value, k may be selected according to the selected binarization of the currently decoded information value in such a way that for all binarizations, the k-th binary bit indicates that the currently decoded / encoded information value is greater than X or not greater than X, where X is common to all binarizations. For example, k may be selected for binarizations B1, B2, and B3 as described in the previous paragraph, and X may be p+3.
[0322] According to a specific embodiment, for the currently decoded / encoded binary bit of the currently decoded / encoded information value, the selected binarization 14 can be selected from the set 16 according to whether the sum of the minimum amplitude values of one or more adjacent information samples of the template 32 exceeds a predetermined threshold. This corresponds to the second alternative proposed in Section 2.1 above.
[0323] With respect to related quantization, the predetermined threshold may be determined according to a quantization state (eg, Thres[state]) for a current dequantization / quantization information value.
[0324] For the currently decoded / encoded information value, the selected binarization is selected from the binarization set, i.e., the selected binarization 14 can be performed according to the predetermined position corresponding to the currently decoded / encoded information value (i.e., the position within the block 26). For example, compare the third option in Section 1.1.
[0325] Even further, predetermined binary bits in the binary bit string of the selected binarization 14 can be arithmetically decoded / encoded based on a probability model selected from a set of multiple probability models, and the probability model is selected from the set of multiple probability models according to one or more of the following: 1) whether the currently decoded / encoded information value represents luminance information or chrominance information, 2) depending on the position of the currently decoded / encoded information value relative to the transform coefficient block 26, 3) depending on a function of the minimum amplitude value of one or more information values corresponding to a position in the information value block that satisfies a predetermined position relationship relative to a predetermined position, the predetermined position corresponding to the currently decoded / encoded information value, i.e., the template 32. The function may involve a summation and / or the function produces a difference between the sum of the minimum amplitude values and the number of non-zero minimum amplitude values. Even further, additionally or alternatively, the selected probability model may also depend on the selected binarization, and even further, additionally or alternatively, the selected probability model may also depend on the state variable of the associated quantization.
[0326] Although some aspects have been described in the context of an apparatus, it will be clear that these aspects also represent a description of a corresponding method, wherein a block or device corresponds to a method step or a feature of a method step. Similarly, the aspects described in the context of a method step also represent a description of a feature of a corresponding block or item or a corresponding apparatus. Some or all of the method steps may be performed by (or using) a hardware device (such as a microprocessor, a programmable computer, or an electronic circuit). In some embodiments, one or more of the most important method steps may be performed by such an apparatus.
[0327] The encoded data stream of the present invention can be stored on a digital storage medium, or can be transmitted on a transmission medium such as a wireless transmission medium or a wired transmission medium (eg, the Internet).
[0328] Depending on certain implementation requirements, embodiments of the present invention may be implemented in hardware or in software. Implementation may be performed using a digital storage medium (e.g., a floppy disk, DVD, Blu-ray, CD, ROM, PROM, EPROM, EEPROM, or flash memory) having stored thereon electronically readable control signals that cooperate (or are capable of cooperating) with a programmable computer system to perform the corresponding method. Thus, the digital storage medium may be computer readable.
[0329] Some embodiments according to the invention comprise a data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system, such that one of the methods described herein is performed.
[0330] Generally, embodiments of the present invention can be implemented as a computer program product with a program code, the program code being operative for performing one of the methods when the computer program product runs on a computer.The program code may, for example, be stored on a machine readable carrier.
[0331] Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.
[0332] In other words, an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.
[0333] A further embodiment of the inventive method is therefore a data carrier (or a digital storage medium or a computer-readable medium) on which is recorded the computer program for performing one of the methods described herein. The data carrier, the digital storage medium or the recorded medium is typically tangible and / or non-transitory.
[0334] Therefore, another embodiment of the inventive method is a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or the sequence of signals may, for example, be configured to be transmitted via a data communication connection (eg, via the Internet).
[0335] A further embodiment comprises a processing means, for example a computer or a programmable logic device, configured to or adapted to perform one of the methods described herein.
[0336] A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
[0337] Another embodiment according to the invention comprises an apparatus or system configured to transmit a computer program to a receiver (e.g. electronically or optically), the computer program being used to perform one of the methods described herein. The receiver may be, for example, a computer, a mobile device, a storage device, etc. The apparatus or system may, for example, comprise a file server for transmitting the computer program to the receiver.
[0338] In some embodiments, a programmable logic device (e.g., a field programmable gate array) can be used to perform some or all of the functions of the methods described herein. In some embodiments, a field programmable gate array can collaborate with a microprocessor to perform one of the methods described herein. Typically, the method is preferably performed by any hardware device.
[0339] The devices described herein may be implemented using hardware devices, or using computers, or using a combination of hardware devices and computers.
[0340] The apparatus described herein or any component of an apparatus described herein may be implemented at least partially in hardware and / or software.
[0341] The methods described herein may be performed using a hardware device, or using a computer, or using a combination of a hardware device and a computer.
[0342] Any component of a method described herein or an apparatus described herein may be performed at least in part by hardware and / or by software.
[0343] The above embodiments are merely illustrative of the principles of the present invention. It should be understood that modifications and variations of the arrangements and details described herein will be apparent to other persons skilled in the art. Therefore, it is intended that the scope of the present invention be limited only by the scope of the appended patent claims and not by the specific details given by way of the description and explanation of the embodiments herein.
[0344] References
[0345] [1] B.Bross, J.Chen, S.Liu(eds), "Versatile Video Coding(Draft 6),JointVideo Experts Teams,doc.JVET-O2001,July 2019.
Claims
1. An apparatus for decoding a sequence of information values (10) using binary arithmetic decoding, the apparatus being configured to, for a currently decoded information value: selecting (12) a selected binarization (14) from a set of binarizations (16) for said currently decoded information value based on previously decoded information values, and arithmetically decoding the binary bit (20) in the binary bit string (22) of the selected binarization (14) to obtain the currently decoded information value, in, The information value (10) is a non-negative integer, The binary set (16) includes: a first binarization, associating a first binary bit string (221) of a first binary bit length with a currently decoded information value assumed to be 0, and associating a second binary bit string (222) of a second binary bit length with a currently decoded information value assumed to be 1, and second binarization, associating a third binary bit string (223) of a third binary bit length with a currently decoded information value assumed to be 0, and associating a fourth binary bit string (224) of a fourth binary bit length with a currently decoded information value assumed to be 1, and The first binary bit length is not equal to the third binary bit length, or the second binary bit length is not equal to the fourth binary bit length.
2. The device according to claim 1, wherein: The information value (10) sequence is: the absolute value of the quantization index of the transform coefficients (24) traversed along the scan order (28) in the transform block (26), or the absolute value of the quantized index of the sample values in the block of sample values traversed in scan order, or The components of the absolute motion vector difference.
3. The device according to claim 1, wherein: The first binary bit length is smaller than the second binary bit length, and the third binary bit length is larger than the fourth binary bit length.
4. The device according to claim 3, wherein: The first binary bit length is equal to the fourth binary bit length, and the second binary bit length is equal to the third binary bit length.
5. The device according to claim 3, wherein: In all binary bit strings of the first binarization, the binary bit (301) at the first binary bit position indicates that the currently decoded information value is 0 or non-0, and In all binary bit strings of the second binarization, the binary bit (301) at the first binary bit position indicates that the currently decoded information value is equal to 1 or not equal to 1.
6. The apparatus according to claim 5, configured to arithmetically decode the binary bit at the first binary bit position using a probability model selected according to whether the binary bit (301) at the first binary bit position is within the first binarization or the second binarization.
7. The apparatus according to claim 5, configured to arithmetically decode the binary bits (301) at the first binary bit positions using a probability model selected by: A probability model to be used for arithmetic decoding of the binary bit at the first binary bit position is selected from a set of probability models associated with the first binary bit position and the binarization of which the binary bit (301) at the first binary bit position is a part, according to one or more of: the information value represents luminance information or chrominance information, wherein the binary bit at the first binary bit position is part of the binarization of the information value; the position of the information value within the information value block, wherein the binary bit at the first binary bit position is part of a binarization of the information value; a function of a minimum amplitude value of one or more information values in the information value block corresponding to a position (32) satisfying a predetermined position relationship relative to a predetermined position (34) of the information value, wherein the binary bit at the first binary bit position is part of a binarization of the information value, the minimum amplitude value being determined based on previously decoded binary bits in the binarization of the one or more information values.
8. The device according to claim 3, wherein: In all binary bit strings whose binary bit length is greater than 1 in the first binarization and in all binary bit strings whose binary bit length is greater than 1 in the second binarization, the binary bit (302) at the second binary bit position indicates that the currently decoded information value is greater than 1 or not greater than 1.
9. The apparatus according to claim 8, configured to arithmetically decode the binary bit at the second binary bit position using a probability model selected according to whether the binary bit at the second binary bit position (302) is within the first binarization or the second binarization.
10. The apparatus of claim 8, configured to arithmetically decode the binary bit at the second binary bit position using a probability model selected by: selecting a selected set of probability models from a set of probability models according to whether the binary bit at the second binary bit position is within the first binarization or the second binarization, and Selecting a probability model to be used for arithmetic decoding of the binary bit at the second binary bit position from the selected set of probability models according to one or more of: the information value represents luminance information or chrominance information, wherein the binary bit at the second binary bit position is part of the binarization of the information value; the position of the information value within the information value block, wherein the binary bit at the second binary bit position is part of the binarization of the information value; a function of a minimum amplitude value of one or more information values in the information value block corresponding to a position satisfying a predetermined positional relationship relative to a predetermined position of the information value, wherein the binary bit at the second binary bit position is part of a binarization of the information value, the minimum amplitude value being determined based on previously decoded binary bits in the binarization of the one or more information values.
11. The device according to claim 3, wherein: In all binary bit strings (22) whose binary bit length is greater than 2 in the first binarization and in all binary bit strings (22) whose binary bit length is greater than 2 in the second binarization, the binary bit (303) at the third binary bit position indicates whether the currently decoded information value is an even number or an odd number.
12. The device according to claim 3, wherein: In all binary bit strings (22) whose binary bit length is greater than 3 in the first binarization and in all binary bit strings (22) whose binary bit length is greater than 3 in the second binarization, the binary bit (304) at the fourth binary bit position indicates that the currently decoded information value is greater than 3 or not greater than 3.
13. The device according to claim 1, wherein: For an integer x greater than 1, the first binarization associates a fifth binary bit string (22) of a fifth binary bit length with the currently decoded information value assumed to be x, and the second binarization associates a sixth binary bit string (22) of a sixth binary bit length with the currently decoded information value assumed to be x, wherein the fifth binary bit length is equal to the sixth binary bit length.
14. The device according to claim 13, wherein: The fifth binary bit length and the sixth binary bit length are greater than the maximum value among the first binary bit length to the fourth binary bit length, and The fifth binary bit string and the sixth binary bit string are consistent at binary bit positions exceeding a maximum value from the first binary bit length to the fourth binary bit length.
15. The device according to claim 1, wherein: The maximum value among the first binary bit length to the fourth binary bit length is 2, and For an integer x greater than 1, the first binarization associates a fifth binary bit string of a fifth binary bit length with a currently decoded information value assumed to be x, and the second binarization associates a sixth binary bit string of a sixth binary bit length with a currently decoded information value assumed to be x, wherein the fifth binary bit length and the sixth binary bit length are greater than 2 and differ by 1.
16. The device according to claim 15, wherein: The first binary bit length is smaller than the third binary bit length and the sixth binary bit length is smaller than the fifth binary bit length, or The second binary bit length is smaller than the fourth binary bit length and the sixth binary bit length is smaller than the fifth binary bit length.
17. The device according to claim 15, wherein: In all binary bit strings of the first binarization, the binary bit (301) at the first binary bit position indicates that the currently decoded information value is 0 or non-0, and In all binary bit strings of the second binarization, the binary bit (301) at the first binary bit position indicates that the currently decoded information value is greater than 1 or not greater than 1.
18. The device according to claim 15, wherein: In all binary bit strings in the first binarization whose binary bit length is greater than 1, the binary bit at the second binary bit position indicates that the currently decoded information value is greater than 1 or not greater than 1, and In all binary bit strings whose binary bit lengths are greater than 1 in the second binarization, the binary bit at the second binary bit position indicates whether the currently decoded information value is an even number or an odd number.
19. The device according to claim 15, wherein: In all binary bit strings in the first binarization whose binary bit length is greater than 2, the binary bit at the third binary bit position indicates whether the currently decoded information value is an even number or an odd number, and In all binary bit strings whose binary bit length is greater than 2 in the second binarization, the binary bit at the third binary bit position indicates that the currently decoded information value is greater than 3 or not greater than 3.
20. The device according to claim 15, wherein: In all binary bit strings whose binary bit length is greater than 3 in the first binarization, the binary bit at the fourth binary bit position indicates that the currently decoded information value is greater than 3 or not greater than 3.
21. The device according to claim 1, wherein For an integer x greater than N, where N is equal to 3, the first binarization associates a fifth binary bit string with a currently decoded information value assumed to be x, and the second binarization associates a sixth binary bit string with a currently decoded information value assumed to be x, wherein the fifth binary bit string and the sixth binary bit string are consistent in a run of trailing binary bits, and the apparatus is configured to arithmetically decode the trailing binary bits using an equiprobable bypass mode, and context adaptively arithmetically decode initial binary bits preceding the trailing binary bits, or For an integer x greater than N, where N is equal to 3, the first binarization associates a fifth binary bit string with a currently decoded information value assumed to be x, and the second binarization associates a sixth binary bit string with a currently decoded information value assumed to be x, wherein the fifth binary bit string and the sixth binary bit string are consistent in a run of a predetermined number of binary bits, and the run of the predetermined number of binary bits extends from the end of the fifth binary bit string and the sixth binary bit string beyond the run of trailing binary bits so as to also include one or more initial binary bits before the trailing binary bits, and the device is configured to arithmetically decode the trailing binary bits using an equiprobable bypass mode, and context-adaptively arithmetically decode the initial binary bits before the trailing binary bits.
22. The apparatus according to claim 21, configured to: The binary bits at at least one predetermined binary bit position in the first binarization and the binary bits at the at least one predetermined binary bit position in the second binarization are arithmetically decoded using different probability models.
23. The apparatus according to claim 21, configured to: Binary bits at at least one predetermined binary bit position in the first binarization and binary bits at at least one further predetermined binary bit position in the second binarization are arithmetically decoded using a common probability model.
24. The apparatus according to claim 1, configured to: The information value sequence is dequantized using correlation quantization by the following operation: for the current inverse quantized information value, selecting a mapping of the selected information value to the reconstruction level from a plurality of mappings of information values to reconstruction levels according to a quantization state for the current inverse quantized information value, and updating the quantization state of the information value currently dequantized according to the information value currently dequantized so as to obtain the quantization state of the information value to be dequantized subsequently, and Selecting a selected binarization from the binarization set for the currently decoded information value is performed according to a quantization state of the currently dequantized information value.
25. The device according to claim 24, wherein: The binarization set includes a first binarization and a second binarization, the mappings of the plurality of information values to reconstruction levels include a mapping of a first information value to a reconstruction level and a mapping of a second information value to a reconstruction level, and The apparatus is configured to perform selection of a selected binarization from the binarization set for the currently decoded information value by selecting between the first binarization and the second binarization according to whether a mapping of the selected information value to a reconstruction level selected according to a quantization state of the information value for the current inverse quantization produces a mapping of the first information value to a reconstruction level or a mapping of the second information value to a reconstruction level.
26. The device according to claim 1, wherein The information value sequence is sorted along the one-dimensional traversal of the information sample position block, and The apparatus is configured to sequentially decode binary bits in a binary bit string of the information value sequence in one or more channels of the information value sequence, and Selecting a selected binarization from the set of binarizations for currently decoded binary bits of the currently decoded information value is performed based on one or more previously decoded binary bits of one or more information samples corresponding to a position satisfying a predetermined position relationship relative to a predetermined position in the information sample block, wherein the predetermined position corresponds to the currently decoded information value.
27. The device according to claim 26, wherein: The information value is a non-negative integer, and The apparatus is configured to use the following binarization when decoding the information sample sequence: for an integer x greater than p, where p is equal to 0, the binarization associates only x binary bit strings with the currently decoded information value, the binary bit lengths of the x binary bit strings monotonically increasing with x and being greater than p+1 at least when x>p+1, and The apparatus is configured to sequentially decode, in a first channel, leading k binary bits in a binary bit string of the information value sequence, where k>=p+2, and The apparatus is configured to perform selection of a selected binarization from the binarization set for currently decoded binary bits of the currently decoded information value according to a minimum amplitude value of each of the one or more information samples corresponding to a position satisfying a predetermined positional relationship relative to a predetermined position in the information sample block, wherein the predetermined position corresponds to the currently decoded information value, the minimum amplitude value being determined based on leading binary bits of corresponding information samples previously decoded in the first channel.
28. The device according to claim 27, wherein The device is configured to sequentially decode the leading k binary bits in the binarized binary bit string of the information value sequence in the first channel, where k>=p+2, so that all leading k binary bits related to the current information value are decoded before any binary bit of the leading k binary bits of the subsequent information value in the information value sequence.
29. The device according to claim 27, wherein: The apparatus is configured to select k for the currently decoded information value in dependence on a selected binarization of the currently decoded information value.
30. The device according to claim 29, wherein: The apparatus is configured to select k for the currently decoded information value according to a selected binarization of the currently decoded information value such that for all binarizations the kth binary bit indicates that the currently decoded information value is greater than X or is not greater than X, where X is common to all binarizations, where X=p+3.
31. The device according to claim 30, wherein The apparatus is configured to perform, according to whether a sum of minimum amplitude values of one or more information samples corresponding to positions satisfying a predetermined position relationship relative to a predetermined position in the information sample block exceeds a predetermined threshold, selecting a selected binarization from the binarization set for a currently decoded binary bit of the currently decoded information value, wherein the predetermined position corresponds to the currently decoded information value.
32. The apparatus according to claim 31 , configured to: The information value sequence is dequantized using correlation quantization by the following operation: selecting, for a current dequantized information value, a mapping of a selected information value to a reconstruction level from a plurality of mappings of information values to reconstruction levels in accordance with a quantization state for the current dequantized information value, and updating the quantization state of the information value currently dequantized according to the information value currently dequantized so as to obtain the quantization state of the information value to be dequantized subsequently, and The predetermined threshold is determined according to a quantization state of the information value used for current inverse quantization.
33. The device according to claim 1, wherein: The information value sequence is sorted along the one-dimensional traversal of the information sample position block, and Selecting a selected binarization from the set of binarizations for the currently decoded information value is performed according to a predetermined position corresponding to the currently decoded information value.
34. The apparatus according to claim 1, configured to: A predetermined binary bit in the selected binarized binary bit string is arithmetically decoded based on a probability model selected from a set of a plurality of probability models according to one or more of the following: The currently decoded information value represents brightness information or chrominance information; the relative position of the currently decoded information value within the transform coefficient block; A function of the minimum amplitude value of one or more information values in the information value block corresponding to a position satisfying a predetermined position relationship relative to a predetermined position, the predetermined position corresponding to the currently decoded information value.
35. The device according to claim 34, wherein The function involves a summation.
36. The device according to claim 34, wherein The function generates the difference between the sum of the minimum magnitude values and the number of non-zero minimum magnitude values.
37. The device according to claim 34, wherein: The chosen probability model also depends on the chosen binarization.
38. The device according to claim 34, wherein: The chosen probability model also depends on the quantized state variables.
39. An apparatus for encoding a sequence of information values (10) using binary arithmetic coding, the apparatus being configured to, for a currently encoded information value: selecting a selected binarization from a set of binarizations for the currently encoded information value based on the previously encoded information value, and arithmetic coding the binary bits in the binary bit string of the currently encoded information value selected for binarization, in, The information value (10) is a non-negative integer, and The binary set (16) includes: a first binarization, associating a first binary bit string (221) of a first binary bit length with a currently encoded information value assumed to be 0, and associating a second binary bit string (222) of a second binary bit length with a currently encoded information value assumed to be 1, and second binarization, associating a third binary bit string (223) of a third binary bit length with a currently encoded information value assumed to be 0, and associating a fourth binary bit string (224) of a fourth binary bit length with a currently encoded information value assumed to be 1, and The first binary bit length is not equal to the third binary bit length, or the second binary bit length is not equal to the fourth binary bit length.
40. The device according to claim 39, wherein The information value sequence is: the absolute value of the quantization index of the transform coefficients traversed along the scan order in the transform block, or the absolute value of the quantized index of the sample values in the block of sample values traversed in scan order, or The components of the absolute motion vector difference.
41. The apparatus of claim 39, wherein: The first binary bit length is smaller than the second binary bit length, and the third binary bit length is larger than the fourth binary bit length.
42. The device according to claim 41, wherein The first binary bit length is equal to the fourth binary bit length, and the second binary bit length is equal to the third binary bit length.
43. The device according to claim 41, wherein In all binary bit strings of the first binarization, the binary bit at the first binary bit position indicates that the current encoded information value is 0 or non-0, and In all binary bit strings of the second binarization, the binary bit at the first binary bit position indicates that the currently encoded information value is equal to 1 or not equal to 1.
44. The apparatus of claim 43, configured to arithmetically encode the binary bit at the first binary bit position using a probability model selected according to whether the binary bit at the first binary bit position is within the first binarization or the second binarization.
45. The apparatus of claim 43, configured to arithmetically encode the binary bits at the first binary bit positions using a probability model selected by: selecting a probability model to be used for arithmetic encoding the binary bit at the first binary bit position from a set of probability models associated with the first binary bit position and the binarization of which the binary bit at the first binary bit position is a part, according to one or more of: the information value represents luminance information or chrominance information, wherein the binary bit at the first binary bit position is part of the binarization of the information value; the position of the information value within the information value block, wherein the binary bit at the first binary bit position is part of a binarization of the information value; a function of a minimum amplitude value of one or more information values in an information value block corresponding to a position satisfying a predetermined positional relationship relative to a predetermined position of the information value, wherein the binary bit at the first binary bit position is part of a binarization of the information value, the minimum amplitude value being determined based on previously encoded binary bits in the binarization of the one or more information values.
46. The apparatus of claim 41, wherein: In all binary bit strings whose binary bit length is greater than 1 in the first binarization and in all binary bit strings whose binary bit length is greater than 1 in the second binarization, the binary bit at the second binary bit position indicates that the currently encoded information value is greater than 1 or not greater than 1.
47. The apparatus of claim 46, configured to arithmetically encode the binary bit at the second binary bit position using a probability model selected according to whether the binary bit at the second binary bit position is within the first binarization or the second binarization.
48. The apparatus of claim 47, configured to arithmetically encode the binary bits at the second binary bit positions using a probability model selected by: selecting a selected set of probability models from a set of probability models according to whether the binary bit at the second binary bit position is within the first binarization or the second binarization, and Selecting a probability model to be used for arithmetic coding the binary bit at the second binary bit position from the selected set of probability models according to one or more of: the information value represents luminance information or chrominance information, wherein the binary bit at the second binary bit position is part of the binarization of the information value; the position of the information value within the information value block, wherein the binary bit at the second binary bit position is part of the binarization of the information value; a function of a minimum amplitude value of one or more information values in the information value block corresponding to a position satisfying a predetermined positional relationship relative to a predetermined position, wherein the binary bit at the second binary bit position is part of a binarization of the predetermined position, the minimum amplitude value being determined based on previously encoded binary bits in the binarization of the one or more information values.
49. The apparatus of claim 41, wherein: In all binary bit strings whose binary bit length is greater than 2 in the first binarization and in all binary bit strings whose binary bit length is greater than 2 in the second binarization, the binary bit at the third binary bit position indicates whether the currently encoded information value is an even number or an odd number.
50. The apparatus of claim 41, wherein: In all binary bit strings whose binary bit length is greater than 3 in the first binarization and in all binary bit strings whose binary bit length is greater than 3 in the second binarization, the binary bit at the fourth binary bit position indicates that the currently encoded information value is greater than 3 or not greater than 3.
51. The apparatus of claim 39, wherein: For an integer x greater than 1, the first binarization associates a fifth binary bit string of a fifth binary bit length with a currently encoded information value assumed to be x, and the second binarization associates a sixth binary bit string of a sixth binary bit length with a currently encoded information value assumed to be x, wherein the fifth binary bit length is equal to the sixth binary bit length.
52. The apparatus of claim 51, wherein: The fifth binary bit length and the sixth binary bit length are greater than the maximum value among the first binary bit length to the fourth binary bit length, and The fifth binary bit string and the sixth binary bit string are consistent at binary bit positions exceeding a maximum value from the first binary bit length to the fourth binary bit length.
53. The apparatus of claim 39, wherein: The maximum value among the first binary bit length to the fourth binary bit length is 2, and For an integer x greater than 1, the first binarization associates a fifth binary bit string of a fifth binary bit length with a currently encoded information value assumed to be x, and the second binarization associates a sixth binary bit string of a sixth binary bit length with a currently encoded information value assumed to be x, wherein the fifth binary bit length and the sixth binary bit length are greater than 2 and differ by 1.
54. The apparatus of claim 53, wherein: The first binary bit length is smaller than the third binary bit length and the sixth binary bit length is smaller than the fifth binary bit length, or The second binary bit length is smaller than the fourth binary bit length and the sixth binary bit length is smaller than the fifth binary bit length.
55. The apparatus of claim 53, wherein: In all binary bit strings of the first binarization, the binary bit at the first binary bit position indicates that the current encoded information value is 0 or non-0, and In all binary bit strings of the second binarization, the binary bit at the first binary bit position indicates that the currently encoded information value is greater than 1 or not greater than 1.
56. The apparatus of claim 53, wherein: In all binary bit strings in the first binarization whose binary bit length is greater than 1, the binary bit at the second binary bit position indicates that the currently encoded information value is greater than 1 or not greater than 1, and In all binary bit strings whose binary bit lengths in the second binarization are greater than 1, the binary bit at the second binary bit position indicates whether the currently encoded information value is an even number or an odd number.
57. The apparatus of claim 53, wherein: In all binary bit strings in the first binarization whose binary bit length is greater than 2, the binary bit at the third binary bit position indicates whether the currently encoded information value is an even number or an odd number, and In all binary bit strings whose binary bit length is greater than 2 in the second binarization, the binary bit at the third binary bit position indicates that the currently encoded information value is greater than 3 or not greater than 3.
58. The apparatus of claim 53, wherein: In all binary bit strings whose binary bit length is greater than 3 in the first binarization, the binary bit at the fourth binary bit position indicates that the currently encoded information value is greater than 3 or not greater than 3.
59. The apparatus of claim 39, wherein: For an integer x greater than N, where N is equal to 3, the first binarization associates a fifth binary bit string with a currently encoded information value assumed to be x, and the second binarization associates a sixth binary bit string with a currently encoded information value assumed to be x, wherein the fifth binary bit length and the sixth binary bit length are consistent in a run of trailing binary bits, and the apparatus is configured to arithmetically encode the trailing binary bits using an equiprobable bypass mode, and context adaptively arithmetically encode initial binary bits preceding the trailing binary bits, or For an integer x greater than N, where N is equal to 3, the first binarization associates a fifth binary bit string with a currently encoded information value assumed to be x, and the second binarization associates a sixth binary bit string with a currently encoded information value assumed to be x, wherein the fifth binary bit string and the sixth binary bit string are consistent in a run of a predetermined number of binary bits, and the run of the predetermined number of binary bits extends from the end of the fifth binary bit string and the sixth binary bit string beyond the run of trailing binary bits so as to also include one or more initial binary bits before the trailing binary bits, and the device is configured to arithmetically encode the trailing binary bits using an equally probable bypass mode, and context-adaptively arithmetically encode the initial binary bits before the trailing binary bits.
60. The apparatus according to claim 59, configured to: The binary bits at at least one predetermined binary bit position in the first binarization and the binary bits at the at least one predetermined binary bit position in the second binarization are arithmetically encoded using different probability models.
61. The apparatus of claim 59, configured to: The binary bits at at least one further predetermined binary bit position in the first binarization and the binary bits at the at least one further predetermined binary bit position in the second binarization are arithmetically encoded using a common probability model.
62. The apparatus of claim 39, configured to: The information value sequence is quantized using correlation quantization by the following operations: for a currently quantized information value, selecting a mapping of a selected information value to a reconstruction level from a plurality of mappings of information values to reconstruction levels according to a quantization state for the currently quantized information value, and updating the quantization state for the currently quantized information value according to the currently quantized information value so as to obtain the quantization state for the information value to be quantized subsequently, and Selecting a selected binarization from the binarization set for the currently encoded information value is performed according to a quantization state of the currently quantized information value.
63. The device according to claim 62, wherein The binarization set includes a first binarization and a second binarization, the mappings of the plurality of information values to reconstruction levels include a mapping of a first information value to a reconstruction level and a mapping of a second information value to a reconstruction level, and The apparatus is configured to perform selection of a selected binarization from the set of binarizations for the currently encoded information value by selecting between the first binarization and the second binarization according to whether a mapping of the selected information value to a reconstruction level selected according to a quantization state of the information value for the current quantization produces a mapping of the first information value to a reconstruction level or a mapping of the second information value to a reconstruction level.
64. The apparatus of claim 39, wherein: The information value sequence is sorted along the one-dimensional traversal of the information sample position block, and The apparatus is configured to sequentially encode binary bits in a binary bit string of the information value sequence in one or more channels of the information value sequence, and Selecting a selected binarization from the set of binarizations for currently encoded binary bits of the currently encoded information value is performed based on one or more previously encoded binary bits of one or more information samples corresponding to a position satisfying a predetermined position relationship relative to a predetermined position in the information sample block, wherein the predetermined position corresponds to the currently encoded information value.
65. The apparatus of claim 64, wherein: The information value is a non-negative integer, and The apparatus is configured to use the following binarization when encoding the information sample sequence: for an integer x greater than p, where p is equal to 0, the binarization only associates x binary bit strings with the currently encoded information value, the binary bit lengths of the x binary bit strings increase monotonically with x and are greater than p+1 at least when x>p+1, and The apparatus is configured to sequentially encode, in a first channel, leading k binary bits in a binary bit string of the information value sequence, where k>=p+2, and The apparatus is configured to perform, for currently encoded binary bits of the currently encoded information value, selecting a selected binarization from the binarization set according to a minimum amplitude value of each of the one or more information samples corresponding to a position satisfying a predetermined positional relationship relative to a predetermined position in the information sample block, wherein the predetermined position corresponds to the currently encoded information value, the minimum amplitude value being determined based on leading binary bits of corresponding information samples previously encoded in the first channel.
66. The apparatus of claim 65, wherein: The device is configured to sequentially encode the leading k binary bits in the binarized binary bit string of the information value sequence in the first channel, where k>=p+2, so that all leading k binary bits related to the current information value are encoded before any binary bit of the leading k binary bits of the subsequent information value in the information value sequence.
67. The apparatus of claim 65, wherein: The apparatus is configured to select k for the currently encoded information value in dependence on a selected binarization of the currently encoded information value.
68. The apparatus of claim 67, wherein: The apparatus is configured to select k for the currently encoded information value according to a selected binarization of the currently encoded information value such that for all binarizations the kth binary bit indicates that the currently encoded information value is greater than X or is not greater than X, where X is common to all binarizations, where X=p+3.
69. The apparatus of claim 68, wherein: The apparatus is configured to perform, according to whether a sum of minimum amplitude values of one or more information samples corresponding to positions satisfying a predetermined position relationship relative to a predetermined position in the information sample block exceeds a predetermined threshold, selecting a selected binarization from the binarization set for a currently encoded binary bit of the currently encoded information value, wherein the predetermined position corresponds to the currently encoded information value.
70. The apparatus of claim 69, configured to: The information value sequence is quantized using correlation quantization by the following operation: selecting, for a currently quantized information value, a mapping of a selected information value to a reconstruction level from a plurality of mappings of information values to reconstruction levels, according to a quantization state for the currently quantized information value, and updating the quantization state for the currently quantized information value according to the currently quantized information value so as to obtain the quantization state for the information value to be quantized subsequently, and The predetermined threshold is determined according to a quantization state of the information value used for current quantization.
71. The apparatus of claim 39, wherein: The information value sequence is sorted along the one-dimensional traversal of the information sample position block, and According to a predetermined position corresponding to the currently encoded information value, a selected binarization is selected from the binarization set for the currently encoded information value.
72. The apparatus of claim 39, configured to: A predetermined binary bit in the selected binarized binary bit string is arithmetically encoded, the predetermined binary bit being encoded based on a probability model selected from a set of a plurality of probability models according to one or more of the following: The currently encoded information value represents brightness information or chrominance information; the relative position of the currently encoded information value within the transform coefficient block; A function of the minimum amplitude value of one or more information values corresponding to positions satisfying a predetermined position relationship relative to a predetermined position in the information value block, the predetermined position corresponding to the currently encoded information value.
73. The apparatus of claim 72, wherein: The function involves a summation.
74. The apparatus of claim 73, wherein: The function generates the difference between the sum of the minimum magnitude values and the number of non-zero minimum magnitude values.
75. The apparatus of claim 73, wherein: The chosen probability model also depends on the chosen binarization.
76. The apparatus of claim 72, wherein: The chosen probability model also depends on the quantized state variables.
77. A method for decoding a sequence of information values (10) using binary arithmetic decoding, the method comprising, for a currently decoded information value: selecting (12) a selected binarization (14) from a set of binarizations (16) for said currently decoded information value based on previously decoded information values, and arithmetically decoding the binary bit (20) in the binary bit string (22) of the selected binarization (14) to obtain the currently decoded information value, in, The information value (10) is a non-negative integer, The binary set (16) includes: first binarization, associating a first binary bit string (221) of a first binary bit length with the currently decoded information value assumed to be 0, and associating a second binary bit string (222) of a second binary bit length with the currently decoded information value assumed to be 1, and second binarization, associating a third binary bit string (223) of a third binary bit length with the currently decoded information value assumed to be 0, and associating a fourth binary bit string (224) of a fourth binary bit length with the currently decoded information value assumed to be 1, and The first binary bit length is not equal to the third binary bit length, or the second binary bit length is not equal to the fourth binary bit length.
78. A method for encoding a sequence of information values (10) using binary arithmetic coding, the method comprising, for a currently encoded information value: selecting a selected binarization from a set of binarizations for the currently encoded information value based on the previously encoded information value, and arithmetic coding the binary bits in the binary bit string of the currently encoded information value selected for binarization, in, The information value (10) is a non-negative integer, and The binary set (16) includes: a first binarization, associating a first binary bit string (221) of a first binary bit length with a currently encoded information value assumed to be 0, and associating a second binary bit string (222) of a second binary bit length with a currently encoded information value assumed to be 1, and second binarization, associating a third binary bit string (223) of a third binary bit length with a currently encoded information value assumed to be 0, and associating a fourth binary bit string (224) of a fourth binary bit length with a currently encoded information value assumed to be 1, and The first binary bit length is not equal to the third binary bit length, or the second binary bit length is not equal to the fourth binary bit length.
79. A computer program product having a program code for executing the method according to claim 77 or claim 78 when the program code is run on a computer.
80. A method for storing a data stream, comprising: Generating the data stream by the apparatus according to claim 39 or the method according to claim 78; as well as The data stream is stored on a computer readable medium.
Citation Information
Cited By
Coding concept for a sequence of information values
US12532032B2