Transform coefficient coding
The apparatus efficiently encodes transform coefficients by adapting symbolization schemes and parameters based on coefficient levels and previously encoded data, addressing the challenge of achieving high compression ratios with low complexity in diverse image and video coding scenarios.
Patent Information
- Application Number
- JP2025045301
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2012-01-20
- Filing Date
- 2025-03-19
- Publication Date
- 2025-06-17
AI Technical Summary
Existing transform coefficient coding schemes struggle to achieve high compression ratios while maintaining low complexity, especially when dealing with diverse data such as luma, chroma components, depth maps, and variable block sizes.
The proposed solution involves an apparatus that maps transform coefficients to different symbolization schemes based on their levels, using a combination of first and second symbolization schemes within specific level intervals. This apparatus includes a symbolizer, a context-adaptive entropy encoder, and a symbolization parameter determination device, which adapt the symbolization parameters based on previously encoded transform coefficients.
This approach allows for efficient entropy encoding by accurately matching symbol methods to coefficient statistics, achieving high coding efficiency while keeping the complexity of transform coefficient coding low.
Smart Images

Figure 2025090840000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to transform coefficient coding, for example, to the transform coefficients of a transform coefficient block of an image.
Background Art
[0002] In a block-based image and / or video codec, an image or a frame is encoded in units of blocks. Among them, a transform-based codec subordinates a block of an image or a frame to a transform in order to obtain a transform coefficient block. For example, an image or a frame is transform-encoded in units of blocks, and is predictively encoded by an encoded prediction residual generated as a result of converting the coefficient levels of the transform coefficients of these transform blocks using entropy coding.
[0003] In order to increase the efficiency of entropy coding, context is used to accurately determine the probability of a symbol of a transform coefficient level to be encoded. However, in recent years, the requirements imposed on image and / or video codecs have increased. In addition to luma and chroma components, the codec sometimes has to transmit depth maps, transparency values, and others. Furthermore, the transform block size is variable within an increasingly large range. Due to these diversities, the codec has a number of different contexts with different functions for determining context from already encoded transform coefficients.
Summary of the Invention
Problems to be Solved by the Invention
[0004] Different possibilities of achieving a high compression ratio with a more appropriate complexity are to match the symbol method to the statistics of the coefficients as accurately as possible. However, in order to perform this adaptation close to the actual statistics, it is essential to consider various factors, thereby requiring quite different symbolization schemes.
[0005] Therefore, despite maintaining the possibility of achieving high coding efficiency, it is necessary to keep the complexity of transform coefficient coding low.
[0006] An object of the present invention is to provide this kind of transform coefficient coding scheme.
Means for Solving the Problems
[0007] This object is achieved by the subject matter of the independent claims in progress.
[0008] According to an aspect of the present invention, an apparatus for encoding a plurality of transform coefficients having transform coefficient levels in a stream maps a current transform coefficient to a first set of one or more symbols according to a first symbolization scheme when the transform coefficient level of the current transform coefficient is within a range of a first level interval, to a combination of a second set of symbols mapped according to the first symbolization scheme when the transform coefficient level of the current transform coefficient is within a range of a second level interval and the maximum level of the first level interval, to a third set of symbols according to a second symbolization scheme parameterizable according to symbolization parameters depending on the position of the transform coefficient level of the current transform coefficient within the range of the second level interval, including a symbolizer configured to do so. Further, the apparatus includes a context-adaptive entropy encoder configured to entropy-encode a first set of one or more symbols into a data stream when the transform coefficient level of the current transform coefficient is within a range of the first level interval, and to entropy-encode a second set of one or more symbols into the data stream when the transform coefficient level of the current transform coefficient is within a range of the second level interval, and the context-adaptive entropy encoder is configured to use a context according to previously encoded transform coefficients with a function parameter set to a first setting when entropy-encoding at least one predetermined symbol of the second set of one or more symbols into the data stream, and the function parameter is parameterizable by the function parameter. Further, the apparatus includes a symbolization parameter determination device configured to determine symbolization parameters for mapping to a third set of symbols according to previously encoded transform coefficients via a function having a function parameter set to a second setting when the transform coefficient level of the current transform coefficient is within a range of the second level interval. An inserter is configured to insert a third set of symbols into the data stream when the transform coefficient level of the current transform coefficient is within a range of the second level interval.
[0009] In another aspect of the invention, an apparatus for encoding a plurality of transform coefficients of different transform blocks, each having a transform coefficient level, into a data stream, comprises a symbolizer configured to map a transform coefficient level for a current transform coefficient to a set of symbols according to a parameterizable symbolization scheme according to symbolization parameters; an inserter configured to insert the set of symbols for the current transform coefficient into the data stream; and a symbolization parameter determination device configured to determine, in a function parameterizable manner via function parameters, symbolization parameters for the current transform coefficient according to previously processed transform coefficients, wherein the inserter, the de-symbolizer and the symbolization parameter determination device are configured to process the transform coefficients of different transform blocks in sequence, and the function parameters vary an information component type of the transform block of the current transform coefficient and / or a frequency component in which the current transform coefficient is arranged within the range of the transform block according to the size of the transform block of the current transform coefficient.
[0010] The idea behind the present invention is to use the same function due to context dependence and dependence of the symbolization parameters of previously encoded / decoded transform coefficients. By changing the function parameters - using the same function is used with respect to different transform block sizes and / or the frequency part of the transform block in the case of transform coefficients spatially arranged in the transform block. A further variation of this idea is to use the same function for dependence of symbolization parameters on different sizes of the transform block of the current transform coefficient, different information component types of the transform block of the current transform coefficient and / or previously encoded / decoded transform coefficients for different information components, wherein the current transform coefficient is arranged in the transform block.
[0011] Detailed and advantageous aspects of the invention are the subject of the dependent claims. Furthermore, preferred embodiments of the invention are described below with reference to the drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0012]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11A
Figure 11B
Figure 12
Figure 13
DETAILED DESCRIPTION OF THE INVENTION
[0013] Note that for the following description, the same reference numerals are used in these figures for elements that appear in one or more of these figures. Thus, the description of an element of this kind with respect to one figure applies equally to the description of this element in other figures where it appears.
[0014] Furthermore, the description presented below assumes encoded transform coefficients arranged two-dimensionally, such as in an image transform block, for example. However, this application is not limited to image and / or video coding. Rather, the encoded transform coefficients may be, for example, the transform coefficients of a one-dimensional transform used for audio coding and the like.
[0015] For the purpose of explaining the problems faced by the embodiments described further below and the ways in which the embodiments described further later solve these problems, reference is made in advance to FIGS. 1 to 3, which show examples of general methods of those of transform blocks of transform coefficients and entropy coding, which are improved by the embodiments described later.
[0016] FIG. 1 shows a block 10 of a conversion coefficient 12 serving as a sample. In this embodiment, the conversion coefficients are arranged two-dimensionally. In particular, although other two-dimensional arrays are possible, those are shown as samples as being regularly arranged vertically and horizontally. The conversion connected to the conversion coefficient 12 or the conversion block 10 may be a DCT or, for example, some other conversion that decomposes an (image) block, or some blocks of spatially arranged values into components of different spatial frequencies. In the present embodiment of FIG. 1, for example, frequencies f x (i), f y (j) of the frequency pair (f x (i), f y (j)) are arranged two-dimensionally in column i and row j so as to correspond to the conversion coefficient 12, and f x / y (i) < f x / y (i + 1) and (i, j) are the positions of the respective coefficients in the conversion block 10.
[0017] Often, the conversion coefficients 12 corresponding to lower frequencies have a higher conversion coefficient level than the conversion coefficients corresponding to higher frequencies. Therefore, often, many conversion coefficients near the highest frequency component of the conversion block 10 are quantized to zero and are not encoded. Rather, the scan order 14 is defined among the conversion coefficients 12 that arrange the two-dimensionally arranged conversion coefficients 12(i, j) one-dimensionally in an order, that is, a sequence of coefficients in (i, j) → k, whereby the conversion coefficient levels tend to monotonically decrease along this order, that is, it is likely that the coefficient level of coefficient k is greater than the coefficient level of coefficient k + 1.
[0018] For example, a zigzag or raster scan can be defined among the conversion coefficients 12. According to the scan, the block 10 can be scanned diagonally, for example, from the DC component conversion coefficient (the upper left coefficient) to the highest frequency conversion coefficient (the lower right coefficient) or vice versa. Alternatively, a row-wise or column-wise scan of the conversion coefficients between the extremely component conversion coefficients just mentioned can be used.
[0019] As will be described later, when encoding the transform block, the position of the last non-zero transform coefficient L in the scan order 14 is first encoded into the data stream, and then the transform coefficients are simply encoded along the scan path 14 from the DC transform coefficient to the last non-zero transform coefficient L - optionally in that direction or in the reverse direction.
[0020] The transform coefficient 12 has a signed or unsigned transform coefficient level. For example, the transform coefficient 12 could have been obtained by the aforementioned transform having a next quantization onto a set of possible quantization values associated with each transform coefficient level. The quantization function used to quantize the transform coefficient, i.e., map the transform coefficient to a transform coefficient level, may be linear or non-linear. In other words, each transform coefficient 12 has a transform coefficient level outside the range of possible level intervals. FIG. 2 shows, for example, an example where the transform coefficient level x is defined within the range of levels [0, 2 N-1 . Another embodiment may have no upper bound on the interval range. Further, FIG. 2 shows only positive transform coefficient levels, although it may be signed. It should be noted that different possibilities exist for all of the embodiments outlined below regarding the signs of the transform coefficients 12 and their encoding, and all of these possibilities are within the scope of these embodiments. With respect to FIG. 2, this means that there may also be no lower bound on the range interval of the transform coefficient levels.
[0021] In any case, different symbolization schemes are used to cover different portions of the range interval 20 or intervals 16, 18 in order to encode the conversion coefficient levels of the conversion coefficient 12. More precisely, the conversion coefficient levels within the first level interval 16 can be symbolized onto a set of one or more symbols simply according to the first symbolization scheme, except for those equal to the maximum level of the first level interval 16. However, the conversion coefficient levels existing within the second level interval 18 are mapped to the combination of symbol sets of the first and second symbolization schemes. As will be emphasized later, the third and further intervals can thus follow the second interval.
[0022] As shown in FIG. 2, the second level interval 18 is located above the first level interval 16, but overlaps with the latter at the maximum level of the first level interval 16 as shown in FIG. 2 of the embodiment. For the conversion coefficient levels existing within the second level interval 18, each level is mapped to the combination of a set of first symbols corresponding to the maximum level of the first level interval according to the first symbolization scheme, and a set of second symbols according to the position of the conversion coefficient levels within the second level interval 18 according to the second symbolization scheme.
[0023] In other words, the first symbolization scheme 16 maps the levels covered by the first level interval 16 onto a set of first symbol sequences. Note that in the case of a binary alphabet and for the first level interval 16 simply covering two conversion coefficient levels such as 0 and 1, the length of the symbol sequence in the set of symbol sequences of the first symbolization scheme is merely one binary symbol. According to the embodiment of the present application, the first symbolization scheme is the Truncated Unary binarization of the levels of the interval 16. In the case of a binary alphabet, the symbol is called a bin.
[0024] As will be described in more detail below, the second symbolization scheme maps levels within a second level interval 18 of varying lengths onto a set of second symbol sequences, where the second symbolization scheme is parameterizable according to symbolization parameters. The second symbolization scheme can map levels within interval 18, i.e., within the range of the maximum level of the x-first interval, onto a Rice code with a Rice parameter.
[0025] In particular, the second symbolization scheme 18 can be configured such that the symbolization parameter varies the speed at a rate at which the length of the symbol sequence of the second scheme increases from the lower bound to the upper bound of the second level interval 18. Clearly, the increased length of the symbol sequence consumes more data transfer rate in the data stream in which the conversion factor is to be encoded. Usually, it is preferred if the length of the symbol sequence onto which a particular level is mapped is related to the actual probability that the conversion factor level currently being encoded is each level. Of course, the later description is also valid for levels outside the second level interval 18 within the first level interval 16, or for the general first symbolization scheme.
[0026] In particular, as shown in FIG. 3, the conversion factor generally indicates a particular statistic or probability of the occurrence of a particular conversion factor level. FIG. 3 shows a graph associating with each possible conversion factor level x the probability that each conversion factor level is actually considered by the conversion factor in question. More precisely, FIG. 3 shows two such associations or probability curves, i.e., for two coefficients in different contexts. That is, FIG. 3 assumes conversion factors that are distinguished according to their context such that the conversion factor is determined, for example, by the conversion factor value of an adjacent conversion factor. Depending on the context, FIG. 3 shows that the probability curve associating probability values with each conversion factor level can depend on the context of the conversion factor in question.
[0027] According to the embodiments described below, the symbols of the symbol sequence of the first symbolization scheme 16 are entropy encoded by a context adaptation method. That is, the context is related to the symbol, and the alphabet probability distribution associated with the selected context is used to entropy encode each symbol. The symbols of the symbol sequence of the second symbolization scheme are inserted into the data stream directly or using a fixed alphabet probability distribution such as an equal probability distribution where all members of the alphabet are likely to be equal.
[0028] The context used to entropy encode the symbols of the first symbolization scheme must be appropriately selected to allow for a good adaptation of the alphabet probability distribution estimated from the actual alphabet statistics. That is, whenever a symbol having this context is encoded / decoded, the entropy encoding scheme can be configured to update the current evaluation of the alphabet probability distribution of the context, thereby approaching the actual alphabet statistics. If the context is appropriately selected, the approximation is faster, which, although subtle enough, does not result in too many different contexts so as to avoid an overly distant relationship between a particular context and the symbol.
[0029] Similarly, the symbolization parameters of the coefficients must be selected depending on the previously encoded / decoded coefficients in order to approach the actual alphabet statistics as closely as possible. Although the symbolization parameters are directly determined from the previously encoded / decoded coefficients, the determination must closely correspond to the correlation of the dependence of the probability curve in the second interval 18 on the previously encoded / decoded coefficients, so too fine a diversification is not a significant problem here.
[0030] As will be described in more detail below, an embodiment for encoding the conversion coefficients described later is advantageous in that a general function is used to achieve context adaptation and determination of the symbolization parameters. Selecting the correct context is important, as previously explained, to achieve a high encoding efficiency or compression ratio, and this applies to the symbolization parameters. The embodiments described later can achieve this purpose by maintaining an overhead for showing a low dependence on the previously encoded / decoded coefficients. In particular, the inventors of the present application have found a way to find a good compromise between, on the one hand, an effective dependence on the previously encoded / decoded coefficients and, on the other hand, reducing the number of validity logics for showing individual context dependencies.
[0031] FIG. 4 shows an apparatus for encoding a plurality of conversion coefficients having conversion coefficient levels in a data stream according to the present invention. In the following description, although this assumption is not decisive for the present invention as described above, the symbol alphabet is often considered to be a binary alphabet, and thus it should be noted that all of these descriptions are illustrated for extension onto other symbol alphabets.
[0032] The apparatus of FIG. 4 is for encoding a plurality of conversion coefficients input at input 30 into a data stream 32. The apparatus includes a symbolizer 34, a context adaptive entropy encoder 36, a symbolization parameter determination device 38, and an inserter 40.
[0033] The symbolizer 34 has its input connected to the input 30 and is configured to map the current conversion coefficient that is currently inputting that input onto the symbols in the method described above with respect to FIG. 2. That is, the symbolizer 34 maps the current conversion coefficient onto a first set of one or more symbols according to a first symbolization scheme, and when the conversion coefficient level x of the current conversion coefficient is within the range of the first level interval 16, and when the conversion coefficient level of the current conversion coefficient is within the range of the second level interval 18, a second set of symbols onto which the maximum level of the first level interval 16 is mapped according to the first symbolization scheme thereon, and is configured to be mapped onto a combination of a third set of symbols according to the position of the conversion coefficient level of the current conversion coefficient within the range of the second level interval 18 according to the second symbolization scheme. In other words, when the conversion coefficient level of the current conversion coefficient is within the range of the first level interval 16 but outside the second level interval, the symbolizer 34 maps the current conversion coefficient onto the symbol sequence of the first symbolization scheme of the first symbolization scheme, and the symbol sequence of the first symbolization scheme for the maximum level of the first level interval 16 and the symbol sequence of the second symbolization scheme when the conversion coefficient level of the current conversion coefficient is within the range of the second level interval.
[0034] The symbolizer 34 has two outputs, one for the symbol sequence of the first symbolization scheme and the other for the symbol sequence of the second symbolization scheme. The inserter 40 has an input for receiving the symbol sequence 42 of the second symbolization scheme, and the context adaptive entropy encoder 36 has an input for receiving the symbol sequence 44 of the first symbolization scheme. Further, the symbolizer 34 has a parameter input for receiving the symbolization parameter 46 from the output of the symbolization parameter determination device 38.
[0035] The context adaptive entropy encoder 36 is configured to entropy encode the symbols of the first symbol sequence 44 in the data stream 32. The inserter 40 is configured to insert the symbol sequence 42 into the data stream 32.
[0036] Generally speaking, the entropy encoder 36 and the inserter 40 sequentially scan the transform coefficients. Obviously, the inserter 40 simply operates for the transform coefficients, and the level of the transform coefficient is located within the second level interval 18. However, as described in detail below, there are different possibilities for ordering during the operation of the entropy encoder 36 and the inserter 40. According to the first embodiment, after the entropy encoding of the entropy encoder of the first symbol sequence 44 related to the same transform coefficient in the data stream 32, prior to the entropy encoding of the entropy encoder related to the next transform coefficient embedded in the data stream 32, the encoding device of FIG. 4 is configured to scan the transform coefficients in a single scan such that the inserter 40 inserts the symbol sequence of the transform coefficient into the data stream 32.
[0037] According to another embodiment, the apparatus uses two scans, and within the scope of the first scan, the context adaptive entropy encoder 36 sequentially encodes the symbol sequence 44 in the data stream 32 for each transform coefficient with the inserter 40, and inserts the symbol sequence 42 for the transform coefficient, the level of the transform coefficient being within the scope of the second level interval 18. There can even be more advanced schemes where, for example, the context adaptive entropy encoder 36 uses several scans to encode the individual symbols of the first symbol sequence 44 in the data stream 32, such as the first symbol or bin in the first scan and the second symbol or bin of the sequence 44 in a subsequent second scan, etc.
[0038] As already shown above, the context adaptive entropy encoder 36 is configured to entropy encode at least one predetermined symbol of the symbol sequence 44 in the data stream 32 in a context adaptive manner. For example, the context adaptation can be used for all symbols of the symbol sequence 44. Alternatively, the context adaptive entropy encoder 36 can limit the context adaptation to only the symbol sequence at the first position and the first symbolization scheme, or to the first and second, or the first to third positions, etc.
[0039] As described above, for context adaptation, the encoder 36 manages the context by storing and updating an alphabet probability distribution evaluation for each context. Each time a symbol of a particular context is encoded, the currently stored alphabet probability distribution evaluation is updated using the actual value of this symbol, thereby approaching the actual alphabet statistics of the symbols of that context.
[0040] Similarly, the symbolization parameter determination device 38 is configured to determine the symbolization parameter 46 of the second symbolization scheme and its symbol sequence 42 according to the previously encoded transform coefficient.
[0041] More precisely, the context entropy encoder 36 is configured to use or select a context for the current transform coefficient via a function having function parameters that are parameterizable via the function parameters and set to a first setting according to the previously encoded transform coefficients, while the symbolization parameter determination device 38 is configured to determine the symbolization parameter 46 with function parameters set to a second setting via the same function according to the previously encoded transform coefficients. The settings can be different, but nevertheless, the logical overhead is reduced such that the symbolization parameter determination device 38 and the context adaptive entropy encoder 36 use the same function. Only the function parameters can be different between, on the one hand, the context selection of the entropy encoder 36 and, on the other hand, the symbolization parameter determination of the symbolization parameter determination device 38.
[0042] It should be noted that, as far as the dependence on the previously encoded transform coefficients is concerned, these previously encoded transform coefficients are limited to the range already encoded in the data stream 32. For example, even if it is imagined that such a previously encoded transform coefficient is located within the second level interval 18, the symbol sequence 42 has not yet been inserted into the data stream 32. In that case, the symbolization parameter determination device 38 and the context adaptive entropy encoder 36 only know from the first symbol sequence 44 of the previously encoded transform coefficients that it is located within the second level interval 18. In that case, the maximum level of the first level interval 16 can serve as a representative for this previously encoded transform coefficient. In that range, the dependence "on the previously encoded transform coefficients" is understood in a broad way to include the dependence "on information about other transform coefficients previously encoded / inserted into the data stream 32". Furthermore, transform coefficients located "beyond" the last non-zero coefficient L can be presumed to be zero.
[0043] To finalize the description of FIG. 4, the outputs of the entropy encoder 36 and the inserter 40 are connected via a switch 50 to a common output 48 and have the same connectivity between, on the one hand, the information inserted / encoded before the symbolization parameter determination device 38 and the input of the context adaptive entropy encoder 36 and, on the other hand, at the outputs of the entropy encoder 36 and the inserter 40. The switch 50 connects the output 48 to any one of the outputs of the entropy encoder 36 and the inserter 40 in the order described above, for the various possibilities of using one, two or more scans for encoding the conversion factor.
[0044] To explain the general use of parameterizable functions related to the context adaptation entropy encoder 36 and the symbolization parameter determination device 38, reference is made to FIG. 1. The function jointly used by the entropy encoder 36 and the symbolization parameter determination device 38 is shown as 52 (i.e., g(f(x))) in FIG. 1. The function is defined to be applied to a set of pre-encoded transformation coefficients that, as described above, include those pre-encoded coefficients having a specific spatial relationship in relation to the current coefficients. A specific example for this function is described in more detail below. Generally speaking, f is a function that combines a set of pre-encoded coefficient levels into a scalar, and g is a function that examines in which interval the scalar lies. In other words, the function g(f(x)) is applied to a set of pre-encoded transformation coefficients x. In FIG. 1, the transformation coefficient 12 indicated by the small crosses represents the current transformation coefficient. For example, the generated transformation coefficient 12 indicates the set of transformation coefficients x to which the function 52 is applied to obtain the entropy context index 54 indicating the symbolization parameter 46 and the context for the current transformation coefficient x. As shown in FIG. 1, a local template that defines the relative spatial arrangement around the current transformation coefficient can be used to determine the set of related pre-encoded transformation coefficients x from all the pre-encoded transformation coefficients. As can be seen in FIG. 1, the template 56 can include the transformation coefficients immediately adjacent below and to the right of the current transformation coefficient. By selecting the template in this way, the symbol sequences 42 and 44 of the transformation coefficients in one diagonal direction of the scan 140 are encoded in parallel because there are no transformation coefficients in the diagonal direction that enter the template 56 of the other transformation coefficients in the same diagonal direction. Naturally, similar templates are provided for row- and column-wise scans.
[0045] TIFF2025090840000002.tif104168
[0046] It is [0,d fWithin it, g(f(x)) continues. g(f(x)) has at least one base context index offset number ctx base In addition, when the context index offset number cts offset is used to determine, the resulting context index ctx = ctx base +cts offset The numerical range of is [ctx base ; ctx base +d f . Whenever different sets of contexts are referred to as entropy encoding symbols of symbol sequence 44, [ctx base,1 ; ctx base +d f does not overlap with [ctx base,2 ; ctx base +d f , so ctx base is selected. This is true, for example, regarding the following. · Conversion coefficients belonging to conversion blocks of different sizes; · Conversion coefficients belonging to conversion blocks of different information component types such as, for example, depth, luma, chroma, etc.; · Conversion coefficients belonging to different frequency portions of the same conversion block;
[0047] TIFF2025090840000003.tif35170
[0048] d f forms part of the function parameter. d forms part of the function parameter.
[0049] TIFF2025090840000004.tif27168
[0050] As described above, the index i can index the conversion coefficient 12 within the range of the template 56. x iIt can be set to zero for each template position existing outside the conversion block. Further, the context adaptive entropy encoder 36 is such that the context dependency from the previously encoded conversion coefficients via a function is x when it is within the range of the first level interval 16 i is equal to the conversion coefficient level of the previously encoded conversion coefficient i, and is configured to be equal to the maximum level of the first level interval 16 when the conversion coefficient level of the previously encoded conversion coefficient i is within the range of the second level, or, regardless of whether the conversion coefficient level of the previously encoded conversion coefficient i is within the ranges of the first and second level intervals, x i is configured to be equal to the conversion coefficient level of the previously encoded conversion coefficient i.
[0051] As far as the symbolization parameter determination device is concerned, in the determination of the symbolization parameter, regardless of whether the previously encoded conversion coefficient i is within the range of the first or second level interval, x i can be configured to be equal to the conversion coefficient level of the previously encoded conversion coefficient i.
[0052] TIFF2025090840000005.tif9167
[0053] The device can also be configured such that h = |x i | - t.
[0054] In a further embodiment, depending on the relevant spatial arrangement of the conversion coefficients in relation to the current conversion coefficient, i.e., based on the template around the position of the current conversion coefficient, the device can be configured to spatially determine the previously encoded conversion coefficients.
[0055] The apparatus is configured to determine the position of the last non-zero transform coefficient L among the transform coefficients of the transform coefficient block 10 along a predetermined scan order 14 and insert information about the position into the data stream 32, and the plurality of transform coefficients includes from the last non-zero transform coefficient L to the start of the predetermined scan order, that is, including the DC component transform coefficient.
[0056] In a further aspect, the symbolizer 34 can be configured to use a first symbolization scheme modified for symbolization of the last transform coefficient L. According to the modified first symbolization scheme, only non-zero transform coefficient levels within the range of the first level interval 16 are mapped, and the zero level is presumed not to be applied to the last transform coefficient L. For example, the first bin of Truncated Unary binarization is suppressed for the coefficient L.
[0057] The context-adaptive entropy encoder is configured to use a different set of contexts for entropy encoding a first set of one or more symbols for the last non-zero transform coefficient than the context used for entropy encoding a first set of one or more symbols other than the last non-zero transform coefficient.
[0058] The context-adaptive entropy encoder can traverse a plurality of transform coefficients in the reverse scan order leading from the last non-zero transform coefficient to the DC transform coefficient of the transform coefficient block. This may or may not also be applied to the second symbol sequence 42.
[0059] The apparatus is configured to encode a plurality of transform coefficients into a data stream 32 in two scans, and a context adaptive entropy encoder 36 is configured to entropy encode a first symbol sequence 44 for the transform coefficients into the data stream 32 in an order corresponding to a first scan of the transform coefficients, and an inserter 40 is subsequently configured to insert into the data stream 32 a symbol sequence 42 for transform coefficients having transform coefficient levels within a second level interval 18 in an order corresponding to the occurrence of transform coefficients having transform coefficient levels within the second level interval 18 within a range of a second scan of the transform coefficients. An example for the resulting data stream 32 is shown in FIG. 5a: it optionally includes information 57 at the position of L, followed later in an entropy encoded form (at least some in the context adaptive entropy encoding form), and further followed later directly or, for example, by a symbol sequence 44 inserted using a bypass mode (equal to a likely alphabet).
[0060] In a further aspect, the apparatus is configured to sequentially encode a plurality of transform coefficients into a data stream 23 in a single scan, and the context adaptive entropy encoder 36 and the inserter 40 are configured for each transform coefficient in the scan order of the single scan to insert into the data stream 32 a symbol sequence 42 for each transform coefficient having transform coefficient levels within a second level interval 18 immediately after the entropy encoding of the symbol sequence 44 by the context adaptive entropy encoder into the data stream 32, and in addition thereto it forms combinations in which the same transform coefficients are mapped, whereby the symbol sequence 42 is scattered into the data stream 32 between symbol sequences 44 of the transform coefficients. The result is illustrated in FIG. 5b.
[0061] The inserter 40 can be configured to insert the symbol sequence 42 into the data stream using entropy coding directly or using a fixed probability distribution. The first symbolization scheme may be a Truncated Unary binarization scheme. The second symbolization scheme may be such that the symbol sequence 42 consists of Rice codes.
[0062] As already described above, the embodiment of FIG. 4 can be implemented within the scope of a video / video coder. An example of such a video / video coder or image coder is shown in FIG. 6. The image encoder is usually denoted by reference numeral 60 and includes, for example, an apparatus 62 corresponding to that shown in FIG. 4. When encoding the image 64, the encoder 60 is configured to convert the block 66 of the image 64 into a transform coefficient block 10 of the plurality of transform coefficients for each transform block 10 to be processed by the apparatus 62 so as to encode them. In particular, the apparatus 62 processes the transform block 10 so as to transform the block by the transform block. At this time, the apparatus 62 can use the function 52 for blocks 10 of different sizes. For example, hierarchical multi-tree splitting can be used to decompose the image 64 or its tree root block into blocks 66 of different sizes. The transform blocks 10 obtained from applying the transform to these blocks 66 are thus of different sizes and, accordingly, the function 52 is optimized for different block sizes using different function parameters, but the overall overhead gives such different dependencies for the symbolization parameters on the one hand and keeps the context index low on the other hand.
[0063] Figure 7 shows an apparatus for decoding a plurality of transform coefficients having transform coefficient levels from a data stream 32 adapted to the apparatus outlined above with respect to Figure 4. In particular, the apparatus of Figure 7 includes a context adaptive entropy decoder 80, a de-symbollizer and extractor 84, and a symbolization parameter determination device 86. For the current transform coefficient, the context adaptive entropy decoder 80 is configured to entropy decode a first set of one or more symbols, i.e., symbol sequence 44, from the data stream 32. The de-symbollizer 82 is configured to map a first set of one or more symbols, i.e., symbol sequence 44, to transform coefficient levels within a first level interval 16 according to a first symbolization scheme. More precisely, the context adaptive entropy decoder 80 and the de-symbollizer 82 operate in an interactive manner. The de-symbollizer 82 notifies the context adaptive entropy decoder 80 by signal 88 when symbols are continuously decoded by the decoder 80 from the data stream 32, and the valid symbol sequence of the first symbolization scheme is terminated.
[0064] If the transform coefficient level to which a first set of one or more symbols, i.e., symbol sequence 44, is mapped according to the first symbolization scheme is the maximum level of the first level interval 16, the extractor 84 is configured to extract from the data stream 32 a second set of symbols, i.e., symbol sequence 42. Also, the de-symbollizer 82 and the extractor 84 can operate cooperatively. That is, the de-symbollizer 82 can notify the extractor 84 by signal 90 when the effective symbol sequence of the second symbolization scheme is terminated as soon as the extractor 84 finishes extracting the symbol sequence 42.
[0065] As already described above, the descrambler 82 is configured to map a second set of symbols, i.e., symbol sequence 42, according to a second symbolization scheme that is parameterizable according to symbolization parameter 46, to positions within the range of the second level interval 18.
[0066] The context-adaptive entropy decoder 80 is configured to use a context by function 52 according to the previously decoded conversion coefficients when decoding at least one predetermined symbol of the first symbol sequence 44. When the conversion coefficient level at which the first symbol sequence 44 is mapped according to the first symbolization scheme is the maximum level of the first level interval 16, the symbolization parameter determination device 86 determines the symbolization parameter 46 by function 52 according to the previously decoded conversion coefficients. For this purpose, the inputs of the entropy decoder 80 and the symbolization parameter determination device 86 are connected via a switch 92 to the output of the descrambler 82 that outputs the value x i of the conversion coefficient.
[0067] As described above, for context adaptation, the decoder 80 manages the context by storing and updating the alphabet probability distribution evaluation for each context. Each time a symbol of a particular context is decoded, the currently stored alphabet probability distribution evaluation is updated using the actual / decoded value of this symbol, thereby approaching the actual alphabet statistics of the symbols of that context.
[0068] Similarly, the symbolization parameter determination device 86 is configured to determine the symbolization parameter 46 for the second symbolization scheme and its symbol sequence 42 according to the previously decoded conversion coefficients.
[0069] Generally, all possible modification aspects and details described above with respect to encoding are also transferable to the decoding device of FIG. 7.
[0070] FIG. 8 is shown in connection with FIG. 6. That is, the apparatus of FIG. 7 is implemented within the scope of the image decoder 100. The image decoder 100 of FIG. 7 includes an apparatus according to FIG. 7, i.e., apparatus 102. The image decoder 100 is configured to reconstruct block 106 of image 104 from transform coefficient block 10 having a plurality of transform coefficients decoded by apparatus 102 from data stream 32 that is input to the image decoder 100 in sequence when decoding or reconstructing image 104. In particular, apparatus 102 processes transform block 10 block by block and commonly uses function 52 for blocks 106 of different sizes as described above.
[0071] It should be noted that the image encoder and decoder 60 and 100 can be configured to apply transform / reattachment to the prediction residual to use predictive coding. Further, data stream 32 can have the re-division information encoded therein, which signals the image decoder 100 of the re-division into blocks that individually depend on the transform.
[0072] In the following, the above embodiments are described in some other words and specific aspects that are individually moved to the above embodiments are described in more detail. That is, the above embodiments related to a particular method of context modeling for the encoding of syntax elements relate, for example, to converting the coefficients of block-based images and video coders, and that aspect is described and further emphasized below.
[0073] Embodiments can relate to the field of digital signal processing and, in particular, to methods and apparatus for image and video decoders and encoders. In particular, the encoding of transform coefficients and their associated syntax elements in block-based image and video coders can be performed according to the described embodiments. To that extent, some embodiments have shown improved context modeling for the encoding of related syntax elements in order to transform coefficients having an entropy coder using probability modeling. Further, the derivation of Rice parameters used for the adaptive binarization of the remaining absolute transform coefficients can be made as described above with respect to the symbolization parameters. The unification, simplification, easy parallel processing, and moderate memory usage with respect to the context memory are advantages of the embodiments compared to straightforward forward context modeling.
[0074] In other words, the embodiments of the present invention can reveal a novel method for the selection of context models of syntax elements related to the encoding of transform coefficients of block-based image and video coders. Further, derivation rules for symbolization parameters such as Rice parameters that control the binarization of the remaining values of the absolute return coefficients are described. Basically, the embodiments used a simple and general set of rules for all or some context model selections for syntax elements related to the encoding of transform coefficients.
[0075] The aforementioned first symbolization scheme may also be Truncated Unary binarization. In that case, coeff_significant_flag, coeff_abs_greater_1, and coeff_abs_greater_2 are called binary syntax elements or symbols that form the first, second, and third bins resulting from the Truncated Unary binarization of the transform coefficient. As described above, Truncated Unary binarization can only represent a prefix that occurs simultaneously with a suffix that is itself a Rice code in the case of the level of the transform coefficient included within the range of the second level range 18. A further suffix may be, for example, a 0-order Exp-Golomb code, thereby forming further level intervals following the first and second intervals 16 and 18 of FIG. 2 (not shown in FIG. 2).
[0076] Based on the same set of rules 52 used for context model selection, as described above, the derivation of the Rice parameter for the adaptive binarization of the remaining absolute transform coefficients is performed.
[0077] Regarding the scan order, it should be noted that it can vary compared to the above description. Furthermore, different block sizes and shapes are, however, supported by the same set of rules, i.e., using the same function 52, in the apparatuses of FIGS. 4 and 6. Thus, a unified and simplified scheme for the context model of the syntax elements related to the coding of the transform coefficient combined with the harmonization for the derivation of the symbolization parameters is achieved. In this way, context model selection and symbolization parameter derivation can use the same logic, such as, for example, hardware incorporated, programmed hardware, or software subroutines, etc.
[0078] To achieve the derivation of general and simple schemes for context model selection and symbolization parameters such as Rice parameters, the already encoded transform coefficients of the blocks or shapes are evaluated as described above. To evaluate the already encoded transform coefficients, the encoding of the coeff_significant_flag, which is the first bin resulting from the binarization (which could have been called the encoding of the significance map), and the separation of the absolute value of the remaining transform coefficient levels are performed using the general function 52.
[0079] That is, after the encoding of the absolute transform coefficients, the encoding of the sign information is performed in an alternating manner by encoding the sign directly. In this way, all transform coefficients are encoded in only one scan path. Alternatively, as long as the evaluation value f(x) depends only on the absolute level information, the sign information can be encoded in a different scan path.
[0080] As shown above, the transform coefficients can be encoded in one scan path or in multiple scan paths. This is enabled or explained by the cut-off offset c, which indicates the number of symbols of the (first and second) symbolizations of the transform coefficients processed in scan i. In the case of an empty cut-off offset, one scan is used. To obtain improved results for context model selection and the derivation of symbolization parameters, the first cut-off parameter c0 of the cut-off offset c must be greater than 1. i
[0081] A cut-off offset c is selected such that c={c0, c1} where c0 = 1, c1 = 3, and |c| = 2. c0 indicates the number of bins / symbols of the first binarization included in the first scan, and c1 = 3, which indicates the symbol position within the range of the first binarization covered by the first binarization up to that point, is for the second scan. Another example is where c0 is equal to 1 and c1 is equal to 2, etc., and the scheme encodes the first bin obtained from the binarization for all blocks or shapes in the first scan path and then gives it when encoding the second bin for all blocks or shapes in the second scan path.
[0082] The local template 56 for the encoding of the coeff_significant_flag, i.e., the first bin from the binarization process, can be designed as shown in FIG. 1 or as shown in FIG. 9. For uniformity and simplification, the local template 56 is used for all block sizes and shapes. Instead of evaluating only the neighboring numbers for which the transform coefficient is not equal to zero, all transform coefficients are input into the function 52 in the form of x i The local template 56 can be fixed, i.e., independent of the position of the current transform coefficient or the scan index, independent of the previously encoded transform coefficients, or it can be adaptable, i.e., dependent on the position of the current transform coefficient or the scan index and / or the previously encoded transform coefficients, and the size can be fixed or adapted. Further, when the size and shape of the template are adjusted to allow for the range of all scan positions of the block or shape, all already encoded transform coefficients up to a certain limit or all already encoded transform coefficients are used for the evaluation process.
[0083] As an example, FIG. 9 shows another embodiment for a local template 56 that can be used for an 8×8 transform block 10 having a diagonal scan 14. L means the last significant scan position, and the scan position marked with x means the current scan position. Note that for a different scan order, the local template can be deformed to match the scan order 14. In the case of an advanced diagonal scan, for a different scan order, the local template 56 can be inverted along the diagonal direction.
[0084] Context model selection and symbolization parameter derivation may be based on different evaluation values f(x) resulting from the evaluation of the already encoded neighboring x i This evaluation is performed for all scan positions having an already encoded neighbor covered by the local template 56. The local template 56 is variable or has a fixed size and depends on the scan order. However, the shape and size of the template are an adaptation only to the scan order, and thus the derivation of the value f(x) is independent of the scan order 140 and the shape and size of the template 56. Note that by setting the dimensions and shape of the template 56 so as to enable coverage of all scan positions of the block 10 for all scan positions, the usage of all already encoded transform coefficients of the current block or shape is achieved.
[0085] As described above, the selection of the context model index and the derivation of the symbolization parameters use the evaluation value f(x). Generally, a general set of mapping functions maps the resulting evaluation value f(x) onto the context model index and onto specific symbolization parameters. In addition, additional information as the current spatial position or the last significant scan position L of the current transform coefficient inside the transform block or shape 10 can be used for the selection of the context model related to the coding of the transform coefficient and for the derivation of the symbolization parameters. Note that the information resulting from the evaluation and the spatial location or the last information can be combined and thus specific weighting is possible. After the evaluation and derivation process, all parameters (context model index, symbolization parameters) are available for the coding of all transform coefficient levels or transform coefficients up to a specific limit.
[0086] As an example configuration of the present invention presented, the cutoff offset size is empty. This means that each transform coefficient is completely transmitted before processing the next transform coefficient along the scan order.
[0087] TIFF2025090840000006.tif62170
[0088] TIFF2025090840000007.tif25169
[0089] TIFF2025090840000008.tif27170
[0090] TIFF2025090840000009.tif26170
[0091] Note that for both types of evaluation values, additional weighting factors can control the importance of specific neighbors. For example, the weighting factor w iis higher for neighbors with shorter spatial distances than for neighbors with larger spatial distances. Further, when all w i is set to 1, the weighting is ignored.
[0092] As a configuration of an embodiment of the presented invention, f0, f1, f2 and f3 are evaluation values having respective t and δ(x i ) as defined in (1). For this example, f0 is used for the derivation of the context index of the first bin, f1 is used for the derivation of the context index of the second bin, f2 is used for the derivation of the context index of the third bin, and f3 is used for the derivation of the Rice parameter. In other embodiment configurations, f0 is used for the context model selection of the first bin, while f1 is required for the context model selection of the second and third bins and the Rice parameter. Here, the Rice parameter also serves as an expression for other symbolization parameters.
[0093] TIFF2025090840000010.tif84169
[0094] The first scan position for scanning the conversion coefficient when encoding / decoding may be the last scan position L when applied in the scan direction of FIG. 1 indicating the highest frequency from DC. That is, at least the first scan for crossing the coefficient for encoding / decoding can indicate from coefficient L to DC. For this scan position L, the first bin index is ignored as the last information already sent a signal that this scan position consists of non-zero conversion coefficients. For this scan position, another context model index can be used for the encoding of the second and third bins obtained from the binarization of the conversion coefficients.
[0095] TIFF2025090840000011.tif171170
[0096] In this formula, d j means the weight for the diagonal line of the current scan position, and idx inc means the step size. Further, note that the offset index can be reversed for a practical implementation. For a fixed example implementation, when the current scan position is on the first and second diagonal lines and is moved by |ctx0| for the third and fourth diagonal lines, especially when it is 2*|ctx0|, the reversal will set the additional index to zero. Using a given formula, when d0 and d1 are set to 2, d3 and d4 are set to 1, and all the remaining diagonal elements are set to 0, a behavior similar to the example configuration is achieved.
[0097] Even if the context model index is equal for different block sizes or plane types (e.g., luma and chroma), the base context model index may result in different values in different sets of the context model. For example, the same base index for block sizes larger than 8×8 of luma can be used, while the base index may be different for 4×4 and 8×8 of luma. However, the base index can be classified in different ways in order to have a meaningful number of context models.
[0098] As an example of the embodiment configuration, the context models for the 4×4 blocks and the remaining blocks may be different in luma, while on the other hand, the same base index can be used for the chroma signal. In other examples, the same base index can be used for the luma and chroma signals, while on the other hand, the context models for luma and chroma are different. Further, the context models for the second and third bins can be classified as resulting in a smaller number of context memories. If the context model index derivations for the second and third bins are equal, the same context model can be used to transmit the second and third bins. Through the correct combination of the grouping and weighting of the base index, a meaningful number of context models can achieve the result of context memory savings.
[0099] In a preferred embodiment of the present invention, the cutoff set c is empty. That is, only one scan is used. For this preferred embodiment, the sign information can be interleaved using the same scan path or encoded in another scan path. As another preferred example, the set size c is equal to 1 and c0, and the first and only value of the cutoff set c is equal to 3. This corresponds to the above embodiment using two scans. In this preferred embodiment, the symbolization parameter derivation such as the Rice parameter selection can be done using the same function 52, and the context model selection can be done for all three bins resulting from Truncated Unary binarization.
[0100] In a preferred embodiment, the size of the local template is 5. The size of the local template may also be 4. For this preferred embodiment, neighbors with a vertical spatial distance of 2 can be removed compared to FIG. 9. In another preferred embodiment, the template size is adaptable and adjusted to the scan order. For this preferred embodiment, neighbors encoded in the previous processing step are not included in the template, unlike in the cases of FIGS. 1 and 9. By doing so, the dependencies or waiting times are reduced, resulting in a higher processing order. In a further preferred embodiment, the template size and shape are adjustable to be sufficiently large (e.g., the same block or shape size as the current block or shape). As another preferred example, two local templates can be used, and they can be combined by weighting factors. For this preferred embodiment, the local templates can be different in size and shape.
[0101] In a preferred embodiment, f0 is used to select a context model index for the first bin, and f1 is used to select context model indexes for the second bin, the third bin, and the Rice parameter. In this preferred embodiment, the input vector n = {0, 1, 2, 3, 4, 5} results in six context models. The input vectors n for the second and third bin indexes may be the same, e.g., n = {0, 1, 2, 3, 4}, while the input vector n for the Rice parameter may be n = {3, 9, 21}. Further, in a preferred embodiment, the aforementioned frequency portion of the transform block where a different context set is used can be formed by a disjoint set of diagonal (raster) scan diagonal lines (or lines). For example, when viewed from the DC component, different context - based offset numbers can exist for the first and second diagonal lines, the second and third diagonal lines, and the fourth and fifth diagonal lines, such that context selection for the coefficients of these diagonal lines occurs among a disjoint set of contexts. Note that the first diagonal line is 1. For the second and third bin indexes, diagonal lines in the range between [0, 2] have a weighting coefficient of 2, and diagonal lines in the range between [3, 9] have a weighting coefficient of 1. These additional offsets are used in the case of the luma signal, while all the weighting coefficients for chroma are equal to zero. Also, for this preferred embodiment, the context models for the second and third bin indexes at the first scan position, which is the last significant scan position, are separated from the remaining context models. This means that the evaluation process can never select this separate context model.
[0102] In a preferred embodiment, a 4×4 luma block or shape uses a single set of contexts for the first bin, while the context models for the remaining block sizes or shapes are similar. In this preferred embodiment, there is no separation between the block sizes or shapes for the chroma signal. In other preferred embodiments of the present invention, there is no separation between the block sizes or shapes that result in the same base index or set of context models for all block sizes and shapes. It should be noted that for both preferred embodiments, different sets of context models are used for the luma and chroma signals.
[0103] The following shows an example without context adaptive entropy coding, using the binarization of the Rice parameters modified according to the above-described example. According to this selectable coding scheme, only the Rice binarization scheme is used (optionally, with the addition of an Exp-Golomb suffix). Thus, the adaptive context model does not need to encode the transform coefficients. For the alternative coding scheme, the Rice parameter derivation uses rules similar to those of the above example. In other words, an alternative coding scheme based on the same set of rules or logic is described in order to reduce complexity and context memory and to improve the latency of the encoding pipeline. For this alternative coding scheme, the context model selection for the first three bins resulting from binarization is disabled, and the first three bins resulting from Truncated Unary binarization, i.e., the first symbolization scheme, can be encoded with fixed equal probabilities (i.e., a probability of 0.5). Alternatively, the Truncated Unary binarization scheme is omitted and the interval boundaries of the binarization scheme are adjusted. In this use, the left boundary of the Rice interval, i.e., interval 18, is 0 instead of 3 (with interval 16 being zero). The right / upper boundary for this use cannot be changed or can be subtracted by 3. The derivation of the Rice parameter can be modified with respect to the evaluation value and with respect to the input vector n.
[0104] Thus, in accordance with the modified embodiment just outlined, an apparatus for decoding a plurality of transform coefficients of different transform blocks each having a transform coefficient level from a data stream 32 can be configured and operative as shown and described with respect to FIG. 10.
[0105] The apparatus of FIG. 10 includes an extractor 120 configured to extract a set of symbols or symbol sequence 122 from the data stream 32 for the current transform coefficient. The extraction is performed as described above with respect to the extractor 84 of FIG. 7.
[0106] The desymbolizer 124 is configured to map a set of symbols 122 to a conversion coefficient level for a current conversion coefficient according to a symbolization scheme that can parameterize the set of symbols according to symbolization parameters. The mapping can simply use a parameterizable symbolization scheme such as Rice binarization, or can simply use this parameterizable symbolization scheme only as a prefix or suffix for the overall symbolization of the current conversion coefficient. In the case of FIG. 2, for example, a parameterizable symbolization scheme, i.e., a second one, formed a suffix in relation to the symbol sequence of the first symbolization scheme.
[0107] To show more embodiments, reference is made to FIGS. 11a and b. According to FIG. 11a, the interval range 20 of the conversion factor is subdivided into three intervals 16, 18, and 126, and together they cover the interval range 20 and overlap with each other at the respective maximum levels of the respective lower intervals. When the coefficient level x is within the range of the highest interval 126, the overall symbolization is a combination of the symbol sequence 44 of the first symbolization scheme 128 that symbolizes the level within the range of interval 16, and the symbol sequence is followed by the first suffix, that is, the symbol sequence 42 of the second symbolization scheme 130 that symbolizes the level within the range of interval 18, and further forms a prefix followed by the second suffix, that is, the symbol sequence 132 of the third symbolization scheme 134 that symbolizes the level within the range of interval 126. The latter may be, for example, an Exp-Golomb code of order 0. When the coefficient level x is within the range of the middle interval 18 (but not within the range of interval 126), the overall symbolization is simply a combination of only the prefix 44 followed by the first suffix 42. When the coefficient level x is within the range of the lowest interval 16 (but not within the range of interval 18), the overall symbolization consists of only the prefix 44. The overall symbolization is configured such that it has no prefix. Without the third symbolization, the symbolization according to FIG. 11a can correspond to one of FIG. 2. The third symbolization scheme 134 may be Golomb-Rice2 quantization. The second symbolization scheme 130 can form something parameterizable, but it could also have been the first symbolization scheme 128.
[0108] Another overall symbolization is shown in FIG. 11. Here, only two symbolization schemes are combined. Compared with FIG. 11a, the first symbolization scheme is left out. Depending on x within the range of interval 136 of scheme 134 or interval 138 (outside interval 136) of scheme 130, the symbolization of x includes the prefix 140 and the suffix 142, or simply includes only the prefix 140.
[0109] Furthermore, the apparatus of FIG. 10 includes a symbolization parameter determination device 144 connected between the output of the de-simbolizer and the parameter input of the de-simbolizer 124. The determination device 144 is configured by the function 52 to determine the symbolization parameter 46 for the current conversion coefficient according to the previously processed conversion coefficient (as long as it can be derived from the non-symbolized fragment or the non-symbolized / processed / decoded part so far).
[0110] The extractor 120, the de-simbolizer 124, and the symbolization parameter determination device 144 are sequentially configured to process the conversion coefficients of different conversion blocks as described above. That is, the scan 140 is traversed in the opposite direction within the range of the conversion block 10. For example, several scans are used for different symbolized fragments, i.e., prefixes and suffixes.
[0111] The function parameters vary according to the conversion block of the current conversion coefficient, the information component type of the conversion block of the current conversion coefficient, and / or the size of the frequency portion where the current conversion coefficient is positioned within the range of the conversion block.
[0112] The function that defines the relationship between the previously decoded conversion coefficient on the one hand and the symbolization parameter on the other hand is such that the apparatus is configured as g(f(x)) as described above.
[0113] As described above, the spatial determination of the previously processed conversion coefficient can be used according to the relative spatial arrangement with respect to the current conversion coefficient.
[0114] Since the extractor 120 can be configured to extract a set of symbols from the data stream directly or using entropy decoding with a fixed probability distribution, the apparatus can operate very easily and quickly. The parameterizable symbolization scheme may be such that the set of symbols consists of Rice codes, and the symbolization parameter is the Rice parameter.
[0115] In other words, the de-symmetrizer 124 can be configured to limit the symmetrization scheme to level intervals such as 18 or 138 outside the range of the conversion factor range interval 20, such that the set of symbols represents a prefix or suffix with respect to other parts of the current symmetrization of the conversion factors such as 44 and 132 or 142. For other symbols, it can be extracted from the data stream directly or using entropy decoding with a fixed probability distribution, although FIGS. 1-9 show that entropy coding using context adaptation can also be used.
[0116] The apparatus of FIG. 10 can be used as the apparatus 102 of the image decoder 102 of FIG. 8.
[0117] For completeness, FIG. 12 shows an apparatus adapted to the apparatus of FIG. 10 for encoding a plurality of conversion factors of different conversion blocks each having a conversion factor level.
[0118] The apparatus of FIG. 12 includes a symmetrizer 150 configured to map the conversion factor levels for the current conversion factors onto a set of symbols or symbol sequence according to a symmetrization scheme parameterizable according to symmetrization parameters.
[0119] The inserter 154 is configured to insert the set of symbols for the current conversion factors into the data stream 32.
[0120] The symmetrization parameter determination device 156 is configured to determine the symmetrization parameters 46 of the current conversion factors according to the previously processed conversion factors by a function 52 parameterizable using function parameters, and for this purpose is connected between the output of the inserter 154 and the parameter input of the symmetrizer 150, or between the output and input of the symmetrizer 150.
[0121] The inserter 154, the symbolizer 150, and the symbolization parameter determination device 156 are configured to sequentially process the transform coefficients of different transform blocks, and the function parameters vary according to the size of the transform block of the current transform coefficient, the information component type of the transform block of the current transform coefficient, and / or the frequency portion in which the current transform coefficient is located within the range of the transform block.
[0122] As described above with respect to the decoder of FIG. 10, the apparatus of FIG. 12 can be configured such that the function that defines the relationship between, on the one hand, the previously decoded transform coefficients and, on the other hand, the symbolization parameters is g(f(x)), and the previously processed transform coefficients are spatially determined according to their relative spatial arrangement related to the current transform coefficient. The inserter is configured to insert a set of symbols into the data stream, either directly or using entropy coding with a fixed probability distribution, and the symbolization scheme is such that the set of symbols consists of Rice codes and the symbolization parameters are Rice parameters. The symbolizer is configured to limit the symbolization scheme from the range interval 20 of the transform coefficients to the level interval such that the set of symbols represents a prefix or a suffix with respect to the other parts of the overall symbolization of the current transform coefficient.
[0123] As described above, in the preferred embodiments of FIGS. 10 to 12, the context model selection for the first three bins is disabled as compared to the embodiments of FIGS. 1 to 9. For this preferred embodiment, the bins obtained as a result from Truncated Unary binarization128 are encoded with a fixed probability of 0.5. In another preferred embodiment, Truncated Unary binarization128 is omitted as shown in FIG. 11b, and the boundaries for the Rice intervals are adjusted so as to result in the same interval range at the highest level of technology (i.e., the left and right boundaries minus 3). For this preferred embodiment, the Rice parameter derivation rule is modified as compared to the embodiments of FIGS. 1 to 9. Instead, f1 is used as the evaluation value, for example, f0 can be used. Further, the input vector is adjusted to n = {4, 10, 22}.
[0124] The further embodiments described below illustrate, on the one hand, the possibility of having substantially different templates for context selection / dependency states and, on the other hand, the determination of the symbolization parameters. That is, the template of coefficient x i remains the same for context selection / dependency state and the determination of the symbolization parameters, but the coefficient x i involved in the influence on f(x) is effectively shown to be different between context selection / dependency state and the determination of the symbolization parameters by an appropriate setting w i : As a result, all coefficients x i for which the weight w i is zero do not affect f(x), designing the part of the template for which w i is zero to be different between context selection / dependency state on the one hand and the determination of the symbolization parameters on the other hand, effectively resulting in different "effective templates" for context selection / dependency state and the determination of the symbolization parameters. In other words, for a particular i for one of context selection / dependency state and the determination of the symbolization parameters, some w iSet to zero and for another context selection / dependency state and symbolization parameter determination, w at a specific template position i i By setting to a non-zero value, the template for the first-mentioned context selection / dependency state and symbolization parameter determination is less effective than the template for the latter context selection / dependency state and symbolization parameter determination. Also, as described above, the template can include all the transform coefficients of the block, regardless of the position of the currently encoded transform coefficient, for example.
[0125] For example, attention is drawn to FIG. 13 showing a transform coefficient block 10 consisting of an array of 16×16 transform coefficients 12 as a sample. The transform coefficient block 10 is further divided into sub-blocks 200 of 4×4 transform coefficients 12, respectively. Thus, the sub-blocks 200 are arranged in a 4×4 array at regular intervals. According to this embodiment, in order to encode the transform coefficient block 10, the significance map is encoded within the range of the data stream 32, and the significance map indicates the positions of significant transform coefficient levels 12, i.e., transform coefficient levels different from 0. Then, transform coefficient minus 1 among these significant transform coefficients is encoded within the range of the data stream. The encoding of the latter transform coefficient is performed by context adaptive entropy encoding and variable length coding schemes as described above, i.e., using a generally parameterizable function for selecting a context and determining symbolization parameters. A specific scan order is used to serialize or order the significant transform coefficients. One example of such a scan order is illustrated in FIG. 13: the sub-blocks 200 are scanned from the highest frequency (bottom right) towards DC (top left), and the transform coefficients 12 are scanned before the transform coefficients of the next sub-block in the sub-block order within each sub-block 200. This is indicated by the arrow 202 showing the sub-block scan, and 204 shows the part of the actual coefficient scan. The scan index is transmitted within the data stream 32 for selecting among several scan paths for scanning the sub-blocks 200 and / or for transforming the coefficients 12 within each sub-block, respectively. In FIG. 13, the diagonal scan is illustrated for both the sub-block scan 202 and the scan of the transform coefficients 12 within each sub-block. Thus, in the decoder, the significance map is decoded, and the transform coefficient levels of the significant transform coefficients are decoded using the scan order just mentioned and the above-described embodiment using a parameterizable function. In the description outlined in more detail below, xS and yS mean the sub-block column and sub-block row measured from the DC position at the top left of the block 10, for example, in which the currently encoded / decoded transform coefficient is arranged.xP and yP denote the position of the currently encoded / decoded transform coefficient measured from the upper left corner (DC coefficient position) of the current sub-block (xS, yS). This is illustrated in FIG. 13 for the upper right sub-block 200. xC and yC denote the position of the currently decoded / encoded transform coefficient measured in the transform coefficient from the DC position above it. Further, since the block 10 in FIG. 13, i.e., the 16×16 block size, is selected merely for illustrative purposes, the embodiments outlined further below use log2TrafoSize as a parameter denoting the size of block 10, which is considered a quadratic expression. log2TrafoSize indicates the logarithmic duplicity of the number of transform coefficients in each row of the log2 transform coefficients of the length of the ends of block 10, i.e., block 10 measured in the transform coefficient. CtxIdxInc selects the context last. Further, in the specific embodiments outlined below, in order to signal sub-blockwise whether some important transform coefficients are located within each sub-block 200, i.e., whether only unimportant transform coefficients are located within each sub-block 200, it is assumed that the above-described important map signals a coded_sub_block_flag, i.e., a binary syntax element or flag, for the sub-block 200 of block 10. If the flag is zero, only unimportant transform coefficients are located within each sub-block.
[0126] Thus, according to this embodiment, the following is performed by the context-adaptive entropy decoder / encoder to select the context of the signal for the specific transform coefficients for which the significant_coeff_flag, i.e., the flag that is part of the significance map, and the coded_sub_block_flag including the transform coefficients for which each sub-block 200 is non-zero, signal whether each coefficient is significant, i.e., non-zero.
[0127] The inputs to this process are the color component index cIdx, the current coefficient scan position (xC,yC), the scan order index scanIdx, and the transform block size log2TrafoSize. The output of this process is ctxIdxInc. The variable sigCtx depends on the previously decoded bins at the current position (xC,yC), the color component index cIdx, the transform block size, and the syntax element coded_sub_block_flag. For the derivation of sigCtx, the following applies. - If log2TrafoSize is equal to 2, sigCtx is retrieved from the table as follows using ctxIdxMap[]. sigCtx=ctxIdxMap[(yC<<2)+xC] - Otherwise, if xC + yC is equal to 0, sigCtx is retrieved as follows. sigCtx=0 - Otherwise, sigCtx is retrieved using the previous value of coded_sub_block_flag as follows. - The horizontal and vertical sub-block positions xS and yS are set equal to (xC>>2) and (yC>>2), respectively. - The variable prevCsbf is set equal to 0. - If xS is (1<<(log2TrafoSize-2))-1, the following applies. prevCsbf+=coded_sub_block_flag[xS+1][yS] - If yS is less than (1<<(log2TrafoSize-2))-1, the following applies. prevCsbf+=(coded_sub_block_flag[xS][yS+1]<<1) - The inner sub-block positions xP and yP are set equal to (xC&3) and (yC&3), respectively. - The variable sigCtx is retrieved as follows. - If prevCsbf is equal to 0, the following applies. sigCtx=(xP+yP==0)?2:(xP+yP<3)?1:0 - Otherwise, if prevCsbf is equal to 1, the following applies. sigCtx=(yP==0)?2:(yP==1)?1:0 - Otherwise, if prevCsbf is equal to 2, the following applies. sigCtx=(xP==0)?2:(xP==1)?1:0 - Otherwise, (prevCsbf is equal to 3), the following applies. sigCtx=2 - The variable sigCtx is modified as follows. - If cIdx is equal to 0, the following applies. - If (xS+yS) is greater than 0, the following applies. sigCtx+=3 - The variable sigCtx is modified as follows. - If log2TrafoSize is equal to 3, the following applies. sigCtx+=(scanIdx==0)?9:15 - Otherwise, the following applies. sigCtx+=21 - Otherwise, (if cIdx is greater than 0), the following applies. - If log2TrafoSize is equal to 3, the following applies. sigCtx+=9 - Otherwise, the following applies. sigCtx+=12
[0128] The context index increment ctxIdxInc is derived as follows using the color component index cIdx and sigCtx. - If cIdx is equal to 0, ctxIdxInc is derived as follows. ctxIdxInc=sigCtx - Otherwise, ctxIdxInc (where cIdx is greater than 0) is derived as follows. ctxIdxInc = 27 + sigCtx
[0129]
Table 1
[0130] As described above, for each significant transform coefficient, a further set of syntax elements or symbols is transmitted within the data stream to convey the signal at that level. According to the embodiment outlined below, for one significant transform coefficient, the following set of syntax elements or transform coefficients is transmitted: Coeff_abs_level_greater1_flag, coeff_abs_level_greater2_flag (optional) and coeff_abs_level_remaining whereby the currently encoded / decoded significant transform coefficient level TransCoeffLevel is as follows. TransCoeffLevel = (coeff_abs_level_remaining + baseLevel) * (1 - 2 * coeff_sign_flag)) where baseLevel = 1 + coeff_abs_level_greater1_flag + coeff_abs_level_greater2_flag
[0131] Note that significant_coeff_flag is, for clarity, one for significant transform coefficients and is thus considered part of the transform coefficient coding, i.e., part of its entropy encoded symbol.
[0132] The context adaptive entropy decoder / encoder performs context selection for the coeff_abs_level_greater1_flag, for example, as follows. For example, the current sub-block scan index i increases along the scan path 202 towards the DC direction, and the current coefficient scan index n increases within each sub-block where the currently encoded / decoded transform coefficient position is located, where, as outlined above, different possibilities exist for the scan paths 202 and 204, which is actually variable according to the index scanIdx.
[0133] The inputs to this process of selecting the context of the coeff_abs_level_greater1_flag are the current sub-block color component index cIdx, the current sub-block scan index i, and the current coefficient scan index n. The output of this process is ctxIdxInc.
[0134] The variable ctxSet identifies the current context set, and for its derivation, the following applies. - If this process is called for the first time for the current sub-block scan index i, the following applies. - The variable ctxSet is initialized as follows. - If the current sub-block scan index i is equal to 0 or cIdx is greater than 0, the following applies. ctxSet = 0 - Otherwise, (i is greater than 0 and cIdx is equal to 0), the following applies. ctxSet = 2 - The variable lastGreater1Ctx is derived as follows. - If the current sub-block with the scan index i is the first one processed in this dependency section for the current transform block, the variable lastGreater1Ctx is set equal to 1. - Otherwise, the variable lastGreater1Ctx is set equal to the value of greater1Ctx fetched during the last invocation of the process specified in this subordinate clause for the syntax element coeff_abs_level_greater1_flag for the previous sub-block having scan index i+1. - When lastGreater1Ctx is equal to 0, ctxSet is incremented by 1 as follows. ctxSet=ctxSet+1 - The variable greater1Ctx is set equal to 1. - Otherwise (this process is not called for the first time for the current sub-block scan index i), the following applies. - The variable ctxSet is set equal to the variable ctxSet fetched during the last invocation of the process specified in this subordinate clause. - The variable greater1Ctx is set equal to the variable greater1Ctx fetched during the last invocation of the process specified in this subordinate clause. - When greater1Ctx is greater than 0, the variable lastGreater1Flag is set equal to the syntax element coeff_abs_level_greater1_flag used during the last invocation of the process specified in this subordinate clause, and greater1Ctx is modified as follows. - When lastGreater1Flag is equal to 1, greater1Ctx is set equal to 0. - Otherwise (lastGreater1Flag is equal to 0), greater1Ctx is incremented by 1. The context index increment ctxIdxInc is fetched as follows using the current context set ctxSet and the current context greater1Ctx. ctxIdxInc=(ctxSet*4)+Min3(greater1Ctx) When cIdx is greater than 0, ctxIdxInc is modified as follows. ctxIdxInc = ctxIdxInc + 16
[0135] The method of selecting the context of coeff_abs_level_greater2_flag can be made the same as coeff_abs_level_greater2_flag with the following differences: The context index increment ctxIdxInc is set equal to the variable ctxSet as follows. ctxIdxInc = ctxSet When cIdx is greater than 0, ctxIdxInc is modified as follows. ctxIdxInc = ctxIdxInc + 4
[0136] For symbolization parameter selection, the following is performed here by a symbolization parameter determination device to determine symbolization parameters including cLastAbsLevel and cLastRiceParam.
[0137] The input to this process is the binarization request for the syntax elements coeff_abs_level_remaining[n] and baseLevel. The output of this process is the binarization of the syntax elements. The variables cLastAbsLevel and cLastRiceParam are derived as follows. - When n is equal to 15, cLastAbsLevel and cLastRiceParam are set equal to 0. - Otherwise (n is less than 15), cLastAbsLevel is set equal to baseLevel + coeff_abs_level_remaining[n + 1], and cLastRiceParam is set equal to the value of cRiceParam derived during the activation of the binarization process as specified in this dependency section for the syntax element coeff_abs_level_remaining[n + 1] of the same transform block. The variable cRiceParam is derived from cLastAbsLevel and cLastRiceParam as follows: cRiceParam = Min(cLastRiceParam+(cLastAbsLevel>(3*(1<<cLastRiceParam))?1:0) The variable cTRMax is derived from cRiceParam as follows: cTRMax=4<<cRiceParam The binarization of coeff_abs_level_remaining includes a prefix part and (if any) a suffix part. The prefix part of the binarization is derived, for example, by causing a Rice binarization process for the prefix part Min(cTRMax,coeff_abs_level_remaining[n]). For example, if the prefix bin string is equal to a 4-bit string where all bits are equal to 1, the bin string includes a prefix bin string and a suffix bin string. The suffix bin string can be derived, for example, using an Exp-Golomb order-k binarization for the suffix part (coeff_abs_level_remaining[n]=cTRMax) having an Exp-Golomb order k equal to cRiceParam+1.
[0138] It should be noted that the above embodiments can be varied. For example, there may be no dependence on the color component index cIdx. For example, only one color component is considered. Further, all explicit values can be varied. Among these, the embodiments outlined so far are to be widely interpreted in order to incorporate variations.
[0139] In the above embodiments, the embodiments outlined above can be conveniently used as follows. In particular, on the one hand, the determination of CtxIdxInc for the determination of the symbolization parameters for coeff_abs_level_greater1_flag and coeff_abs_level_remaining is reconciled using the above functions f and g by setting the function parameters as follows.
[0140] For this purpose, FIG. 13 serves as an example and shows the "current transformation coefficient" exemplified by the cross 206. This is the representation for any transformation coefficient to which any of the syntactic elements mentioned later are related. It is arranged at (xP, yP) = (1, 1) and (xC, yC) = (1, 5) within the current sub-block (xS, yS) = (0, 1). The adjacent sub-block on the right is at (xS, yS) = (1, 1), the adjacent sub-block at the bottom is at (xS, yS) = (0, 2), and the sub-block encoded immediately before depends on the scan path 202. Here, as an example, the diagonal scan 202 is shown, and the sub-block encoded / decoded before the current sub-block is in the state of (xS, yS) = (1, 0).
[0141] TIFF2025090840000013.tif26149
[0142] TIFF2025090840000014.tif190169
[0143] To select the context of coeff_abs_greater1_flag, the following can be calculated by the encoding / decoding device. That is, it uses functions (1) and (2) with the function parameters set as follows.
[0144] For function (2), the parameters are set as follows: For all x in the immediately previous sub-block and the current sub-block i with respect to w i=1 is set and zero is set for all others. |x i For all x in the current sub - block having |x i | = 1, h(x i ) = 1 |x i |>1, for all x in the current sub - block having i h(x i ) = 2 4 For all x in the immediately previous sub - block i h(x i ) = 2 16 t = 2 For the function (1), n is 8 and d f is set as follows. n=(0,1,2,2 4 ,2 16 ,2 16 +1,2 16 +2,2 16 +2 4 )
[0145] To select the context of the coeff_abs_greater2_flag, the following can be calculated by the entropy encoding / decoding device. In particular, it uses functions (1) and (2) having the function parameters set as described above for the coeff_abs_greater2_flag, where d f is 1: n=(2 16 )
[0146] TIFF2025090840000015.tif94169
[0147] TIFF2025090840000016.tif210154TIFF2025090840000017.tif211159
[0148] The syntax indicates that the level of the transform coefficient consists of coeff_abs_level_remaining and baseLevel, where baseLevel consists of 1+coeff_abs_level_greater1_flag[n]+coeff_abs_level_greater2_flag[n]. Since the syntax element is significant_coeff_flag = 1 at this position (or when the level is reconstructed at the decoder), 1 is used. The "first set" is then the TU code (a Rice code with parameterization equal to 0) - from which the first three syntax elements are formed. The "second set" then forms the syntax element coeff_abs_level_remaining.
[0149] Since the boundary is shifted between the "first" and "second sets", the maximum value is determined by coeff_abs_greater1_flag, coeff_abs_greater2_flag or significant_coeff_flag, whereby the branches correspond to the syntax elements of the table.
[0150] The above setting of the function parameters is further motivated below. g(f) forms the sum of adjacent coefficients and, using the result, the context and non-symbolization parameters are derived, and subsequent changes are performed according to the spatial position.
[0151] g(x) obtains a single value. This value corresponds to the result of the function f(x). Knowing this, context selection and further parameterization of the Rice parameters are derived.
[0152] Since significant_coeff_flag:h is a function of x itself, f(x) or any other function is chained multiple times. For all positions in the right 4×4 sub-block w iThe function f(x) with = 1 has t = 1 and h is a function constructed like f(x) but reversed, so that ultimately a value of 0 or 1 is obtained as a result, i.e., h(x) = min(1, f(x)).
[0153] Equally, for the second entry, this is applied to the lower 4×4 sub-block. And prevCsbf = h0 + 2Xh1, and prefCsbf may be a function h within the range of f(x).
[0154] When t = ∞ is set, the value of the syntax element coded_sub_block_flag is derived. Thus, a value between values including 0 and 3 is obtained as a result for the outermost f(x). The parameter n for g(x) is either (xP + yP), xP, yP, or (0,0). When f(x) = 0 is obtained as a result, n = (xP + yP, xP + yP + 3), and for f(x) = 1, a result of n = (yP, yP + 1) is obtained, for f(x) = 2, a result of n = (xP, xP + 1) is obtained, and for f(x) = 3, a result of n = (0,0) is obtained. So to speak, f(x) can be directly evaluated to determine n. The remaining above equations simply describe the adaptation depending on further dependencies on luma / chroma and global position and scan. In the case of a pure 4×4 block, prevCsbf = 4 (it may be different) and f(x) can be constructed so that values for the mapping table can be reproduced in this way.
[0155] coeff_abs_level_greater1_flag: Here, the evaluation of the sub-blocks is similar and only the previous sub-block is evaluated. The result is, for example, 1 or 2 (which must be two different values), and t = 2. This corresponds to the selection of the base index according to the levels already decoded in the previous sub-block. The direct dependence on the levels located within the sub-block can be obtained in this way. Effectively, switching by one index is performed when 0 is decoded (starting from 1 and limited to 3) and immediately set to 0 when 1 is decoded. If the arrangement is not considered, the parameterization can be performed as follows, starting from 0 and for all levels in the same sub-block w i = 1 and t = 3, that is, f(x) provides coeff_abs_greater1_flag = 1 for the number of levels. For a further function f(x), t = 2, that is, the number of positions having the encoded syntax element coeff_abs_greater1_flag. The first function is limited, that is, h0 = f(x) = min(f0(x), 2), and the second function is limited by h1 = f(x) = max(f1(x), 1). All of this is connected by a delta function (0 when h1 = 1, h0 otherwise). For coeff_abs_greater2_flag, only the derivation of the set is used (w i is set to 0 for the connected internal functions).
[0156] coeff_abs_level_remaining: The selection is only limited to the current sub-block and n is derived as described above.
[0157] With regard to the embodiment just outlined, the following is noted. In particular, in accordance with the above description, different possibilities exist for the description of the template: the template can be a movable template, the position of which is determined depending on the position of the current coefficient 206. An outline of an exemplary movable template of this kind is represented in FIG. 13 by a dotted line 208. The template consists of the current sub-block, in which the current coefficient 206 is located, adjacent sub-blocks to the right and below the current sub-block, as well as one or more sub-blocks immediately preceding the current sub-block in either the sub-block scan 202 or the sub-block scan 202, some of which are selectable using the scan index described above. Alternatively, the template 208 can simply include all transform coefficients 12 of the block 10.
[0158] In the above example, there are further different possibilities for choosing the values of h and n. Therefore, these values can be set differently. As far as those weights are concerned, which are set to 1, this is w i The same is true somehow for w. The same can be set to other non-zero values. They do not even have to be equal to each other. i h(x i ), the same result value will be multiplied by different non-zero w i Furthermore, the symbolization parameters do not have to be Rice parameters, in other words the symbolization scheme is not limited to the Rice symbolization scheme. With regard to the context index selection, reference is made to the above description where it has already been noted that the final context index can be obtained by adding the context index as obtained by using the function g(f) to several offset indexes which are specific for each type of syntax element, i.e. specific for significant_coeff_flag, coeff_abs_level_greater1_flag and coeff_abs_level_greater2_flag.
[0159] Although several aspects are described in relation to an apparatus, it is clear that these aspects also represent corresponding method descriptions, and a block or apparatus corresponds to a method step or a feature of a method step. Similarly, aspects described in relation to method steps also represent descriptions of corresponding blocks or members or features of a corresponding apparatus. Some or all of the method steps may be performed (or caused to be performed) by 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 can be performed by such a device.
[0160] Depending on specific implementation requirements, embodiments of the present invention can be implemented in hardware or in software. The implementation can be carried out using a digital storage medium having electronically readable control signals stored thereon, such as a flexible disk, a DVD, a Blu-ray, a CD, a ROM, a PROM, an EPROM, an EEPROM, or a flash memory, which, in cooperation with (or can cooperate with) a programmable computer system, causes each method to be performed. Thus, the digital storage medium can be computer-readable.
[0161] Some embodiments according to the present invention include a data carrier having electronically readable control signals, which can cooperate with a programmable computer system such that one of the methods described herein is performed.
[0162] Typically, embodiments of the present invention can be implemented as a computer program product having program code, which is implemented to perform one of the methods when the computer program product runs on a computer. The program code can be stored, for example, on a machine-readable carrier.
[0163] Other embodiments include a computer program for performing one of the methods described herein and stored on a machine-readable carrier.
[0164] In other words, an embodiment of the inventive method is a computer program having program code for performing one of the methods described herein when the computer program runs on a computer.
[0165] A further embodiment of the inventive method is a data carrier (or digital storage medium or computer-readable medium) consisting of a computer program recorded thereon for performing one of the methods described herein. The data carrier, digital storage medium or recording medium is typically tangible and / or non-transitory.
[0166] A further embodiment of the inventive method is a sequence of a data stream or signal representing a computer program for performing one of the methods described herein. The sequence of the data stream or signal can be configured to be transferred via a data communication connection, for example, the Internet.
[0167] A further embodiment includes processing means, such as a computer or programmable logic device, configured or adapted to perform one of the methods described herein.
[0168] A further embodiment includes a computer installed with a computer program for performing one of the methods described herein.
[0169] Further embodiments according to the present invention include an apparatus or system configured to transfer (e.g., electronically or optically) to a receiver a computer program for executing one of the methods described herein in the receiver. The receiver can be, for example, a computer, a mobile device, a memory device, etc. The apparatus or system includes, for example, a file server for moving the computer program to the receiver.
[0170] In some embodiments, a programmable logic device (e.g., a field programmable gate array) can be used to execute some or all of the functionality of the methods described herein. In some embodiments, a field programmable gate array can cooperate with a microprocessor to execute one of the methods described herein. Usually, the method is preferably executed by any hardware device.
[0171] The above-described embodiments are merely illustrative for the principles of the present invention. Modifications and changes in the arrangements and details described herein will be apparent to other persons skilled in the art. Accordingly, it is intended to be limited only by the scope of the impending patent claims and not by the specific details shown as examples and explanations in this specification.
Claims
1. An apparatus for decoding a plurality of transform coefficients (12) having transform coefficient levels from a data stream (32), comprising: a context adaptive entropy decoder (80) configured to entropy decode a first set (44) of one or more symbols from the data stream (32) for a current transform coefficient (x); a desymbolizer (82) configured to map the first set (44) of one or more symbols onto transform coefficient levels within a first level interval (16) according to a first symbolization scheme; an extractor (84) configured to extract a second set of symbols (42) from the data stream (32) when the transform coefficient level to which the first set of one or more symbols is mapped according to the first symbolization scheme is a highest level of the first level interval (16); a desymbolizer (82) configured to map the second set of symbols (42) onto positions within a second level interval (18) according to a second symbolization scheme that is parameterizable according to a symbolization parameter; the context adaptive entropy decoder (80) is configured to use a context depending on previously decoded transform coefficients when entropy decoding at least one given symbol of the first set (44) of one or more symbols from the data stream (32) by a function parameterizable by function (52) parameters, with function parameters set to a first setting; and The apparatus further includes a symbolization parameter determination device configured to determine the symbolization parameters (46) in response to previously decoded transform coefficients by a function (52) having the function parameters set to a second setting when the transform coefficient level to which the first set (44) of one or more symbols is mapped according to the first symbolization scheme is a maximum level of the first level interval (16).
2.
3. The context adaptive entropy coder is adapted to determine whether the context dependency from the previously decoded transform coefficients by the function If it is within the first level interval then x i is equal to the transform coefficient level of the previously decoded transform coefficient i and is equal to a maximum level in the first level interval if the transform coefficient level of the previously decoded transform coefficient i is within the second level interval; or Regardless of the transform coefficient level of the previously decoded transform coefficient i that falls within the first or second level interval, x i is equal to the transform coefficient level of the previously decoded transform coefficient i. The apparatus of claim 2 .
4. The symbolization parameter setting device determines the dependence of the symbolization parameters on the previously decoded transform coefficients by the function. Regardless of the transform coefficient level of the previously decoded transform coefficient i that falls within the first or second level interval, x i The apparatus of claim 2 or 3, wherein x is configured to be equal to the transform coefficient level of the previously decoded transform coefficient i.
5.
6. The device is configured such that h is |x i The apparatus of any one of claims 2 to 5, configured such that |-t.
7. 7. An apparatus according to claim 1, wherein the apparatus is configured to spatially determine previously coded transform coefficients in relation to a current transform coefficient depending on a spatial arrangement of the associated transform coefficients.
8. The apparatus of any one of claims 1 to 7, wherein the apparatus is configured to extract information of the position of a last non-zero transform coefficient among transform coefficients of a transform coefficient block along a predetermined scan order (14) from the data stream (32), and the plurality of transform coefficients includes the transform coefficients from the last non-zero transform coefficient to a DC transform coefficient of the transform coefficient block along the scan order.
9. 9. The apparatus of claim 8, wherein the symbolizer is configured to use a modified first symbolization scheme for mapping the first set of one or more symbols of the last non-zero transform coefficient, and wherein only non-zero transform coefficient levels are included within the first level interval, while a zero level is presumed not to be applied to the last transform coefficient.
10. 10. The apparatus of claim 8 or claim 9, wherein the context adaptive entropy decoder is configured to use a separate set of contexts for entropy decoding the first set of one or more symbols for the last non-zero transform coefficient, separate from contexts used to entropy decode the first set of one or more symbols other than the last non-zero transform coefficient.
11. The apparatus of claim 8 , wherein the context adaptive entropy decoder traverses the plurality of transform coefficients in a reverse scan order leading from the last non-zero transform coefficient to the DC transform coefficient of the transform coefficient block.
12. 12. The apparatus of claim 1, wherein the apparatus is configured to decode the plurality of transform coefficients from the data stream in two scans, the context adaptive entropy decoder is configured to entropy decode the first set of symbols for the transform coefficients from the data stream in an order corresponding to the first scan of the transform coefficients, and the extractor is configured to subsequently extract the second set of symbols for the transform coefficients for which the first set of symbols are mapped onto the maximum level of the first level interval from the data stream in an order corresponding to the presence of transform coefficients mapped onto the maximum level of the first level interval within a second scan of the transform coefficients.
13. 13. The apparatus of claim 1, wherein the apparatus is configured to decode the plurality of transform coefficients from the data stream sequentially in one scan, the second set of symbols being interspersed in the data stream between the first set of symbols of the transform coefficients, and the context adaptive entropy decoder and the extractor are configured to extract, for each transform coefficient in a scan order of the one scan, the second set of symbols of the respective transform coefficients for which the first set of symbols is mapped onto the maximum level of the first level interval from the data stream immediately following entropy decoding by the context adaptive entropy decoder of the first set of one or more symbols of each transform coefficient for which the first set of symbols is mapped onto the maximum level of the first level interval.
14. 14. The apparatus of claim 1, wherein the extractor is configured to extract the second set of symbols from the data stream using entropy decoding, either directly or with a fixed probability distribution.
15. 15. The apparatus of claim 1, wherein the first symbolization scheme is a Truncated Unary Binaryization scheme.
16. 16. The apparatus of claim 1, wherein the second symbolization scheme is such that the second set of symbols comprises a Rice code.
17. 17. An image decoder comprising an apparatus as claimed in any one of claims 1 to 16, the image decoder being configured to, when decoding an image, re-transform a block of the image from a transform coefficient block, the apparatus being configured to sequentially decode a number of transform coefficients of a transform coefficient block using the function for transform coefficients of different sizes for transform coefficients of different sizes and / or for different information component types, for each transform coefficient.
18. 18. An image decoder as claimed in claim 17, wherein the apparatus is configured to use different sets of contexts for different frequency parts of the transform coefficient block, for transform coefficient blocks of different sizes, and / or for transform coefficient blocks of different information content types, where the context for the current transform coefficient is selected depending on the previously decoded transform coefficient.
19. An apparatus for coding a plurality of transform coefficients having transform coefficient levels into a data stream (32), comprising: on a first set of one or more symbols according to a first symbolization scheme if the transform coefficient level of the current transform coefficient is within a first level interval (16). if the transform coefficient level of the current transform coefficient is within a second level interval (18), then according to a second symbolization scheme parameterizable according to a symbolization parameter (46), on a combination of a second set of symbols onto which the maximum levels of the first level interval (16) are mapped according to the first symbolization scheme and a third set depending on the position of the transform coefficient level of the current transform coefficient within the second level interval (18), a symbolizer (34) configured to map the current transform coefficients; a context adaptive entropy encoder (36) configured to entropy code the first set of one or more symbols into the data stream if a transform coefficient level of the current transform coefficient is within the first level interval and to entropy code the second set of one or more symbols into the data stream if a transform coefficient level of the current transform coefficient is within the second level interval, the context adaptive entropy encoder being configured to use a context depending on previously coded transform coefficients by a function parameterizable by function parameters set to a first setting when entropy coding at least one predetermined symbol of the second set of one or more symbols into the data stream; a symbolization parameter determination unit (38) configured to determine, if a change coefficient level of the current transform coefficient is within the second level interval, a symbolization parameter (46) for mapping onto a third set of symbols in response to previously coded transform coefficients by a function having the function parameters set to a second setting; and an inserter (40) configured to insert the third set of symbols into the data stream if a transform coefficient level of the current transform coefficient is within the second level interval.
20.
21. The context adaptive entropy encoder (36) is adapted to determine whether the context dependency from the previously encoded transform coefficients by the function is: x i is equal to the transform coefficient level of a previously coded transform coefficient i if it is within the first level interval (16) and is equal to the maximum level of the first level interval (16) if the previously coded transform coefficient i is within the second level interval (18); or Regardless of whether the transform coefficient level of the previously coded transform coefficient i is within the first or second level interval, x i is equal to the transform coefficient level of the previously coded transform coefficient i. The apparatus of claim 20 .
22. The symbolization parameter determination device (38) determines whether the dependence of the symbolization parameters on the previously coded transform coefficients by the function is: Regardless of whether the previously coded transform coefficient i is within the first or second level interval, x i is equal to the transform coefficient level of the previously coded transform coefficient i.
22. The apparatus according to claim 20 or claim 21, comprising:
23.
24. The device is configured such that h is |x i 24. The apparatus of claim 20, wherein the apparatus is configured such that |-t.
25. 25. An apparatus according to any of claims 19 to 24, wherein the apparatus is configured to spatially determine the previously coded transform coefficients depending on a relative spatial arrangement of the transform coefficients in relation to the current transform coefficient.
26. 26. An apparatus as described in any one of claims 19 to 25, wherein the apparatus is configured to determine a last non-zero transform coefficient among transform coefficients of a transform coefficient block along a predetermined scanning order and configured to input position information into the data stream, the plurality of transform coefficients including the transform coefficients from the last non-zero transform coefficient to a start of the predetermined scanning order.
27. 27. The apparatus of claim 26, wherein the symbolizer is configured to use a modified first symbolization scheme for symbolizing the last transform coefficient that includes only non-zero transform coefficient levels within the first level interval while assuming that a zero level does not result in the last transform coefficient.
28. 28. The apparatus of claim 26 or 27, wherein the context adaptive entropy encoder is configured to use a different set of contexts for entropy coding the first set of one or more symbols for the last non-zero transform coefficient separately from contexts used to encode the first set of one or more symbols other than the last non-zero transform coefficient.
29. 29. The apparatus of claim 26, wherein the context adaptive entropy encoder is configured to traverse the transform coefficients in a reverse scan order running from the last non-zero transform coefficient to a DC transform coefficient of the transform coefficient block.
30. 30. The apparatus of claim 19, wherein the apparatus is configured to encode the plurality of transform coefficients into the data stream in two scans, the context adaptive entropy coder being configured to entropy code the first and second sets of symbols for the transform coefficients into the data stream in an order corresponding to the first scan of the transform coefficients, and then the inserter being configured to insert a third set of symbols for the transform coefficients having transform coefficient levels within the second level interval into the data stream in an order corresponding to occurrence of the transform coefficients having the transform coefficient levels within the second level interval within the second scan of the transform coefficients.
31. 31. The apparatus of claim 19, wherein the apparatus is configured to encode the plurality of transform coefficients into the data stream sequentially in one scan, and wherein the context adaptive entropy encoder and the inserter are configured to insert, for each transform coefficient in a scan order of the one scan, a third set of symbols for each transform coefficient having a transform coefficient level within the second level interval into the data stream immediately after entropy coding of the context adaptive entropy coder of the second set of one or more symbols for each transform coefficient having a transform coefficient level within the second level interval, such that the third set of symbols is interspersed in the data stream between the first and second sets of symbols for the transform coefficient.
32. 32. The apparatus of claim 19, wherein the inserter is configured to insert the third set of symbols into the data stream using entropy coding with a direct or fixed probability distribution.
33. 33. The apparatus of claim 19, wherein the first symbolization scheme is a Truncated Unary Binaryization scheme.
34. 34. The apparatus of claim 19, wherein the second symbolization scheme is such that the third set of symbols comprises a Rice code.
35. 35. An image encoder including an apparatus according to any one of claims 19 to 34, the image encoder being configured to transform blocks of the image when encoding the image into transform coefficient blocks, the apparatus (62) being configured to code a plurality of transform coefficients of the transform coefficient blocks, the transform coefficient blocks being configured to code a plurality of transform coefficient blocks of the transform coefficient block using a function (52) for blocks of different sizes for each transform coefficient block.
36. 36. The image encoder of claim 35, wherein the apparatus is configured to use, for different frequency components of the transform coefficient block, different sets of contexts, where the context for the current transform coefficient is selected depending on the previously coded transform coefficient.
37. 1. An apparatus for decoding a plurality of transform coefficients (12) of different transform coefficient blocks, each having a transform coefficient level, from a data stream (32), comprising: an extractor configured to extract a set of symbols from the data stream for a current transform coefficient; a desymbolizer configured to map the set of symbols to transform coefficient levels for the current transform coefficient according to a symbolization scheme that is parameterizable according to a symbolization parameter; and a symbolization parameter determination device configured to determine the symbolization parameters (46) for the current transform coefficient in dependence on previously processed transform coefficients by a function (52) parameterizable by function parameters (46), The extractor, the symbolizer and the symbolization parameter determination device are configured to process the transform coefficients of the different transform blocks in sequence, and the function parameters vary depending on the size of the transform block of the current transform coefficient, the information type of the transform block of the current transform coefficient and / or the frequency component within which the current transform coefficient is located.
38.
39.
40. The device is configured such that h is |x i The apparatus of claim 38 or claim 39, configured such that |-t.
41. 41. Apparatus according to any of claims 37 to 40, wherein the apparatus is configured to spatially determine the previously processed transform coefficients depending on their relative spatial position in relation to the current transform coefficient.
42. 42. Apparatus according to any of claims 37 to 41, wherein the extractor is configured to extract a set of symbols from the data stream using entropy decoding, either directly or with a fixed probability distribution.
43. 43. Apparatus according to any of claims 37 to 42, wherein the symbolisation scheme is such that the set of symbols comprises a Rice code and the symbolisation parameters comprise Rice parameters.
44. 44. An apparatus as claimed in any one of claims 37 to 43, wherein the desymbolizer is configured to restrict a symbolization scheme from a range interval (20) of the transform coefficient to a level interval (18) such that the set of symbols represents a prefix or a suffix with respect to other parts of the overall symbolization of the current transform coefficient.
45. An apparatus for encoding a plurality of transform coefficients (12) of different transform blocks, each having a transform coefficient level, into a data stream (32), comprising: a symbolizer configured to map transform coefficient levels for a current transform coefficient onto a set of symbols according to the symbolization scheme, the symbolization scheme being parameterizable according to a symbolization parameter; an inserter configured to insert the set of symbols for the current transform coefficient into the data stream; and a symbolization parameter determination device configured to determine the symbolization parameters (46) for the current transform coefficient in dependence on previously processed transform coefficients by a function (52) parameterizable by function parameters (46), The inserter, the symbolizer and the symbolization parameter determination device are configured to process transform coefficients of different transform blocks in sequence, and function parameters vary depending on the transform block of the current transform coefficient, the information content type of the transform block of the current transform coefficient and / or the frequency content at which the current transform coefficient is located within the transform block.
46.
47.
48. The device is configured such that h is |x i The apparatus of claim 46 or claim 47, configured such that |-t.
49. 49. Apparatus according to any of claims 46 to 48, wherein the apparatus is configured to spatially determine the previously processed transform coefficients depending on their relative spatial position in relation to the current transform coefficient.
50. 50. Apparatus according to any of claims 46 to 49, wherein the inserter is configured to insert the set of symbols into the data stream directly or using a fixed probability distribution.
51. 51. Apparatus according to any of claims 46 to 50, wherein the symbolisation scheme is such that the set of symbols comprises a Rice code and the symbolisation parameters are Rice parameters.
52. 52. An apparatus as claimed in any one of claims 46 to 51, wherein the symbolizer is configured to restrict a symbolization scheme from a range interval (20) of a transform coefficient to a level interval (18) such that the set of symbols represents a prefix or a suffix with respect to other parts of the overall symbolization of the current transform coefficient.
53. A method for decoding a plurality of transform coefficients (12) having transform coefficient levels from a data stream (32), comprising the steps of: entropy decoding a first set (44) of one or more symbols from the data stream (32) for a current transform coefficient (x); de-symbolizing the first set of one or more symbols (44) onto transform coefficient levels within a first level interval (16) according to a first symbolization scheme; extracting a second set of symbols (42) from the data stream (32) when the transform coefficient levels to which the first set of one or more symbols are mapped according to the first symbolization scheme are maximum levels of the first level interval (16); the de-symbolization mapping includes mapping the second set of symbols (42) to positions within a second level interval (18) according to a second symbolization scheme, the second symbolization scheme being parameterizable by a symbolization parameter; the entropy decoding comprises entropy decoding at least one given symbol of the first set of one or more symbols from the data stream (32) using a context responsive to previously decoded transform coefficients by a function parameterizable by the function (52) parameters having function parameters set to a first setting; The method further comprises: determining said symbolization parameters (46) in response to previously decoded transform coefficients by said function (52) having said function parameters set to a second setting when the transform coefficient level to which said first set (44) of one or more symbols is mapped according to said first symbolization scheme is a maximum level of said first level interval (16).
54. A method for coding a plurality of transform coefficients having transform coefficient levels into a data stream (32), comprising the steps of: symbolization mapping the current transform coefficients; on a first set of one or more symbols according to a first symbolization scheme if a transform coefficient level of the current transform coefficient is within a first level interval (16). if the transform coefficient level of the current transform coefficient is within a second level interval (18), a symbolization mapping according to a second symbolization scheme, which is parameterizable according to a symbolization parameter (46), onto a combination of a second set of symbols onto which the maximum levels of the first level interval (16) are mapped according to the first symbolization scheme, and a third set of symbols depending on the position of the transform coefficient level of the current transform coefficient within the second level interval (18); a context-adaptive entropy coding step comprising the steps of: entropy coding the first set of one or more symbols into the data stream if a transform coefficient level of the current transform coefficient is within the first level interval; and entropy coding the second set of one or more symbols into the data stream if a transform coefficient level of the current transform coefficient is within the second level interval, wherein during entropy coding, the context-adaptive entropy coding includes at least one predetermined symbol of the second set of one or more symbols into the data stream using a context dependent on previously coded transform coefficients by a function parameterizable by function parameters including function parameters set to a first setting; and determining the symbolization parameters (46) for mapping onto the third set of symbols according to the previously coded transform coefficients by a function having the function parameters set to a second setting if the transform coefficient level of the current transform coefficient is within the second level interval; and inserting the third set of symbols into the data stream if a transform coefficient level of the current transform coefficient is within the second level interval.
55. 1. A method for decoding a plurality of transform coefficients (12) of different transform blocks, each having a transform coefficient level, from a data stream (32), comprising: extracting a set of symbols from the data stream for a current transform coefficient; de-symbolizing a set of symbols onto transform coefficient levels for the current transform coefficient according to a symbolization scheme that is parameterizable according to a symbolization parameter; and determining said symbolization parameters (46) for said current transform coefficient in dependence on previously processed transform coefficients by a function (52) parameterizable by function parameters (46), The method, wherein the extraction, symbolization mapping and determination are performed sequentially on transform coefficients of different transform blocks, and the function parameters vary depending on the size of the transform block of the current transform coefficient, the information content type of the transform coefficient block of the current transform coefficient and / or the frequency content within which the current transform coefficient is located.
56. 1. A method for coding a plurality of transform coefficients (12) of different transform blocks, each having a transform coefficient level, into a data stream (32), comprising the steps of: symbolizing mapping a transform coefficient level for a current transform coefficient onto a set of symbols according to a symbolization scheme that is parameterizable according to a symbolization parameter; inserting the set of symbols for the current transform coefficient into the data stream; and determining said symbolization parameters (46) for said current transform coefficient in dependence on previously processed transform coefficients by a function (52) parameterizable by function parameters (46), The method, wherein the insertion, symbolization mapping and determination are performed sequentially on the transform coefficients of the different transform blocks, and the function parameters vary depending on the size of the transform block of the current transform coefficient, the information content type of the transform coefficient block of the current transform coefficient and / or the frequency content within which the current transform coefficient is located.
57. 57. A computer program having a program code for performing the method of any of claims 53 to 56, when the computer program runs on a computer.