Patent Description:
In bit-plane coding, one seeks to try to reduce the coding amount necessary by restricting the bit-planes coded to a fraction of the total amount of available bit-planes. Mostly, the bit-plane coding is performed on transform coefficients, i.e. coefficients of a transform of the actual data to be coded such as a spectral decomposition transform of a picture. Such a transform already "condenses" the overall signal energy into a smaller amount of samples, namely transform coefficients, and results in neighboring transform coefficients sharing similar statistics as far as the position of the most significant bit-plane among the available bit-planes is concerned, i.e. the most significant bit-plane having a non-zero bit in the respective transform coefficient. Accordingly, in the currently envisaged version of the upcoming JPEG XS, the transform coefficients representing a picture are coded in units of groups of transform coefficients with the datastream spending a syntax element per transform coefficient group which indicates the largest, i.e. most significant, bit-plane populated by the bits of the transform coefficients within that group, called GCLI, greatest coded line index. Alternative names are MSB Position or bitplane count. This GCLI value is coded in the datastream in a predictive manner such as using spatial prediction from neighboring transform coefficient groups. Such GCLI groups, in turn, are grouped into SIG groups and for each such SIG group of GCLI groups, a flag is spent in the datastream signaling the case where the prediction residual coded for the GCLI values is all zero for all the GCLI groups within an SIG group. If such a flag signals that all prediction residuals for GCLI are zero within an SIG group, no GCLI prediction residuals need to be transmitted and bitrate is saved.

However, there is still an ongoing wish to improve the coding efficiency of the just-outlined bit-plane concept in terms of, for instance, compression and/or coding complexity.

Document wg1m75019 (XP030190371) is a working document of the JPEG group with the title "text of ISO/IEC <NUM> WD (JPEG XS) v2. <NUM>" and was published on <NUM>-<NUM>-<NUM>. It describes the "syntax of the significance inclusion information", i.e. the syntax of "unpack_magnitudes (p,l) of a current precinct p and line I. For all bands being coded for the current precinct in the current line, the syntax traverses all coding groups g=<NUM>. This loop over all coding groups cyclically calls an if-clause which checks so-called "significance information". In particular, depending on a highest-level syntax element Fcp, it is indicated for each precinct in the data stream whether contribution coding is enabled for that precinct or not. If enabled, the data stream comprises, for the corresponding precinct, a flag Cp,l,b,j for each significance group j within each band b within each line I of the respective precinct p. The aforementioned if-clause checks whether contribution coding is enabled for the current precinct at all. If not, MSB delta coding is used so as to indicate the most significant bit plane for this coding group. This means that a Delta MSB value is coded in the data stream, called Delta Mp,l,b,g. Alternatively, if contribution coding is enabled, the if-clause just mentioned checks the significance information of the significance group to which the current coding group belongs. If this significance information Z is not set, the Delta MSB value is coded as well, but if it is set, the Delta MSB value is actively set to zero, thereby indicating zeroness for the corresponding coding group.

It is the object of the present invention to provide a bit-plane coding concept which is more efficient. This object is achieved by the subject-matter of the independent claims.

In accordance with a first aspect, the present application is based on a finding that a coding efficiency improvement may be achieved if bit-plane coding is performed in a manner so that coefficient groups for which the set of coded bit-planes is predictively signaled in the datastream, are grouped in two group sets and if a signal is spent in the datastream which signals, for a group set, whether the set of coded bit-planes of all coefficient groups of the respective group set are empty, i.e. all coefficients within the respective group sets are insignificant. By this measure, spending unnecessary bits for non-zero prediction residuals for coding the set of coded bit-planes for coefficient groups within a certain group set may be avoided in cases where, nevertheless, all the transform coefficients within all coefficient groups within the certain group set are insignificant, thereby tending to result in an improved compression. Beyond this, as far as the encoder is concerned, the determination whether transform coefficients are insignificant or not, i.e. whether the set of coded bit-planes, i.e. the non-zero bit-planes, are all beneath a quantization threshold, may be determined for each group set in parallel, i.e. independent from each other, thereby rendering easier a parallel implementation using the sort of group set-wise insignificant signalization.

In accordance with another aspect of the present application, it has been found out that a coding efficiency improvement may be achieved if bit-plane coding with group-set-wise insignificant signalization according to the first aspect discussed above is provided as a coding option alternative relative to the signalization for group sets discussed in the introductory portion of the specification according to which it may be signaled for a group set that there is no coded prediction residual for the coded bit-planes for the claim groups within the respective group set. To this, in accordance with the second aspect, the datastream provides information which identifies a first subset of group sets for which a significance coding mode is not to be used and a second subset of group sets for which the significance coding mode is to be used. The first subset of group sets is coded "normally", i.e. the datastream provides prediction residuals for the coded bit-planes of the coefficient groups of such group set and, if significant, bits within the coded bit-planes are coded in the datastream. For the second subset of group sets, the datastream comprises an indication or specification of the significance coding mode. In other words, this indication or specification signals to the decoder as to how the second subset of group sets are to be treated or, differently speaking, as to how the identification of the second subset of group sets is to be interpreted. A first mode of the significance coding mode corresponds to the interpretation according to which the prediction residual for the coded bit-plane signalization for the coefficient groups within such group set is zero. To this end, in accordance with a first significance coding mode type, merely the prediction residual signalization for the coded bit-plane signalization is omitted for the second subset of group sets. If the significance coding mode is indicated to be a second mode, then the group sets of the second subset are treated as collections of insignificant coefficients. To this end, the decoder inherits that for each coefficient group of such a group set, its coefficients are insignificant. According to this second aspect, the encoder is provided with the opportunity to switch between both significance coding mode options and the encoder may exploit this freedom in order to select the coding mode leading to a higher coding efficiency. Beyond this, however, providing the datastream with the opportunity to let the decoder know as to which significance coding mode option has been used, provides the design of the encoder side with the opportunity to choose the significance coding mode option more suitable for the intended implementation of the encoder side. For instance, when there is a high interest in achieving higher parallelism, then the insignificance signalization mode, i.e. second mode, might be preferred, while the first mode might be preferred in case of a single-thread implementation of the encoder. That is, the encoder may be implemented to operate merely in one of both mode types, chosen to be adapted to the encoder's implementation. Favorably, decoder complexity does not significantly differ between both mode types of the significance coding mode.

Advantageous aspects of the present application are the subject of dependent claims. Preferred embodiments of the present application are described below with respect to the figures among which:.

The following description of embodiments of the present application starts with a brief presentation of the current status of the JPEG XS standardization process, i.e. a currently discussed version for JPEG XS, whereupon it is outlined as to how this version could be modified in order to end-up into embodiments of the present application. Thereinafter, these embodiments are broadened in order to result into further embodiments described separately, but including individual references to specific details discussed before.

<FIG> provides an example of a decoding process currently envisaged for JPEG XS to which embodiments of the present application may be applied as described later on. As will become clear from the broadened embodiments described later, the present application is not limited to this kind of decoding process and the correspond coding process. Nevertheless, <FIG> assists the skilled reader in obtaining a better understanding of concepts of the present application.

According to <FIG>, codestream decoding is grouped into a syntax analysis part in block <NUM>, an entropy-decoding stage consisting of multiple blocks <NUM> to <NUM>, an inverse quantization in block <NUM>, an inverse wavelet transformation in block <NUM> and an inverse multiple component decorrelation in block <NUM>. In block <NUM>, sample values are scaled, a DC offset is added, and they are clamped to their nominal ranges.

In block <NUM>, the decoder analyzes the codestream syntax and retrieves information on the layout of the sampling grid, and the dimensions of so-called slices and precincts.

Sub-packets of entropy-coded data segment of the codestream are then decoded to significant information, sign information, MSB position information (also called GCLI information) and, using all this information, wavelet coefficient data. This operation is performed in blocks <NUM> to <NUM> in <FIG>.

Image and video compression typically applies a transform before running entropy coding. Reference [<NUM>], for instance, uses a block-based prediction, while reference [<NUM>], [<NUM>], [<NUM>], [<NUM>] advocate for wavelet transforms. A wavelet is used in the case of <FIG>, but again, <FIG> merely serves as an example and the same applies with respect to the usage of wavelet transform.

Such a wavelet transform is depicted in <FIG>. It decomposes an image into a number of subbands. Each subband represents a spatially down sampled and sub-band-specifically spectrally bandpass-filtered version of the picture <NUM>. As depicted in <FIG>, the number of horizontal decompositions might be different from the number of vertical decompositions. In each decomposition step, the low-pass subband of the previous decomposition is further decomposed. The L5 subband, for instance, represents a subsampled version of the image, while the other subbands contain the detail-information.

After the frequency transform, the coefficients of the subbands are entropy-coded. In other words, g≥<NUM> coefficients of a subband ABm, with A, B ∈ {L, H}, <MAT>, are arranged into a coefficient group. Then the most significant non-zero bit plane of the coefficient group is signaled, followed by the raw data bits. More details on the coding technique are explained in the following.

<FIG> illustrates the principle of GCLI coding which ends-up into syntax elements, the decoding of which, for instance, block <NUM> of <FIG> attends to. Hence, the GCLI coding is about coding the most significant bit positions and accordingly concerns the indication of the coded bit planes. This is done in the following manner. A number of coefficients which number is larger than <NUM>, and with the coefficients belonging to the same subband of a frequency transform, are combined into a group which is, from now on, called a coefficient group. See, for instance, <FIG>. The wavelet transform <NUM> depicted therein is an example for a transform of a picture <NUM>. Again, a wavelet transform is merely an example for transforms for which embodiments of the present application would be applicable. Instead of coding the values of the samples or pixels <NUM> of picture <NUM> directly, the coding is performed on the transform coefficients <NUM> of transform <NUM>. <FIG> assumes that a coefficient group is composed of four coefficients. The number is, however, chosen merely for illustration purposes and may be chosen differently. <FIG> illustrates that, for instance, such a coefficient group <NUM> comprises four spatially neighboring transform coefficients <NUM> all of which belong to the same subband of transform <NUM>. <FIG> illustrates that the coefficients <NUM> comprised in one coefficient group <NUM> horizontally neighbor each other, but this is also merely an example and the grouping of coefficients <NUM> into coefficient groups <NUM> may be done differently. <FIG> illustrates the bit representation of each coefficient of a first coefficient group at the left-hand side at <NUM> and for a second coefficient group at <NUM>. The bits of the absolute value of each coefficient are spread for each coefficient along a column. Accordingly, four columns are shown at <NUM> and <NUM>, respectively. Each bit belongs to a certain bit plane wherein the lowest bit in <FIG> belongs to the least significant bit plane, while the upper most bits belong to the most significant bit plane. For illustration purposes, eight available bit planes are shown in <FIG>, but the number may be different. In addition to the magnitude bits <NUM> of the transform coefficients, <FIG> shows for each coefficient a sign bit <NUM> above the corresponding magnitude bits. The GCLI coding is now explained with respect to <FIG> in more detail.

As already outlined, the coefficients are represented in sign-magnitude representation. The largest coefficient in a respective coefficient group determines the number of active bit planes for this coefficient group. A bit plane is called active, if at least one coefficient bit <NUM> of the bit plane itself or any higher bit plane (bit plane representing a larger number) is unequal to zero. The number of active bit planes is given by the so-called GCLI value, i.e. greatest coded line index. For coefficient group <NUM>, for instance, the GCLI is <NUM> while for the second coefficient group <NUM>, the GCLI is exemplarily <NUM>. A GCLI value of <NUM> would mean that no bit planes are active, and hence the complete coefficient group would be <NUM>. This situation is known as insignificant GCLI, and significant GCLI vice-versa. In order to achieve compression, only the active bit planes are placed into the bitstream, i.e. are coded.

For lossy encoding, some of the bit planes need possibly to be truncated such that the number of bit planes transmitted for a coefficient group is smaller than the GCLI value. This truncation is specified by the so-called GTLI, i.e. the greatest trimmed line index. An alternative name is truncation position. A GTLI of zero corresponds to no truncation. A GTLI value of <NUM> means that the number of transmitted bit planes for a coefficient group is <NUM> less than the GCLI value. In other words, the GTLI defines the smallest bit plane position that is included in the bitstream. In case of a simple dead zone quantization scheme, the transmitted bit planes equal the bit planes of the coefficient group without the truncated bit planes. In case of more advanced quantization schemes, some information of the truncated bit planed can be "pushed" into the transmitted bit planes by modifying the quantization bins. More details can be found in [<NUM>].

Since for each coefficient the number of remaining bit planes equals the difference between the GCLI and the GTLI values, it gets obvious that coefficient groups whose GCLIs is smaller or equal to the GTLI value are not contained in the bit stream. In other words, no (data) bits <NUM> are conveyed in the bit stream for these coefficient groups. Their coefficients are insignificant.

The active bit planes remaining after truncation and quantization are called remaining bit planes in the following or, alternatively speaking, truncated GCLI. Moreover, the GTLI is also called truncation point in the following. When the remaining bit planes is zero, the GCLI is known as insignificant truncated GCLI.

These remaining bit planes are then transmitted as raw bits to the decoder. Block <NUM> in <FIG> assumes responsibility for deriving these bits from the bit stream. In order to enable correct decoding, the decoder needs to know, however, the GCLI value of every coefficient group <NUM>. Together with the GTLI value, which is also signaled to the decoder, the decoder can infer the number of raw data bit planes that are in the bit stream.

The GCLI values themselves are signaled by a variable length code that represents the difference to the GCLI value of a previous coefficient group. This previous coefficient group can in principle be any coefficient group that the encoder has already encoded before. Hence, it can for instance be a horizontal or vertical neighbor group. The output from the prediction is the difference in the number of remaining bit planes between two coefficient groups, leading to a delta remaining bit planes. <FIG>, for instance, assumes that the left-hand coefficient group depicted at <NUM>, precedes coefficient group <NUM> in coding order and its GCLI serves as a predictor for the GCLI of coefficient group <NUM>. More details are described hereinafter. Please note that GCLI values being below the GTLI value are of no interest, since the coefficients are not contained in the bit stream in any case. Consequently, the prediction is performed in such a way that the decoder can infer whether the GCLI is greater than the GTLI, and if so, what is the value of the GCLI.

Please note that the method described below is agnostic to the transmission order of the different bit stream parts. For instance, it is possible to first place the GCLI coefficients of all subbands into the bit stream, followed by the data bits of all subbands. Alternatively, GCLI and data bits might be interleaved in the datastream.

Coefficients of the frequency transform depicted in <FIG> are organized in so-called precincts <NUM>. This is depicted in <FIG>. Precincts group coefficients of different subbands contributing to a given spatial region <NUM> of the input image <NUM>.

In order to enable the decoder to recover the signal, it should know that GCLI value for every coefficient group <NUM>. According to [<NUM>], different methods are available to signal them efficiently.

In the RAW mode, the GCLI value is transmitted without any prediction.

Hence, let F<NUM> be the coefficient group to be encoded next. Then the GCLI value can be encoded by a fixed length codeword representing the value: <MAT>.

In a horizontal prediction, the symbol coded is the difference between the GCLI value and the value of the GCLI previously coded belonging to the same line and the same wavelet subband, and considering the GTLI. This difference value is called residual or δ value in the following.

Let F<NUM> and F<NUM> be two horizontally neighbored coefficient groups, consisting of g><NUM> coefficients. Let F<NUM> be the coefficient group to be currently coded. Then GCLI(F<NUM>) can be signaled to the decoder by transmitting a residual calculated as follows: <MAT>.

The decoder recovers GCLI(F<NUM>) by computing <MAT> <MAT>.

Please note that in horizontal prediction, typically GTLI(F<NUM>)=GTLI(F<NUM>). Note furthermore that δ is transmitted as a variable length code, as described in [<NUM>].

In a vertical prediction between two subband lines, the result is the difference between the GCLI value and the GCLI of the same subset of coefficients in the previously coded line.

Let F<NUM> and F<NUM> be two vertically neighbored coefficient groups, consisting of g><NUM> coefficients. Let F<NUM> be the coefficient group to be currently coded. Then, GCLI(F<NUM>) can be encoded in the same way than in a horizontal prediction.

Vertical prediction is restricted within a slice, which is a predefined set of contiguous lines (e.g. <NUM> lines). In this way, the first precinct of a slice cannot be vertically predicted.

An alternative way for vertical prediction is that instead of the prediction described above, the following prediction formula is used: <MAT>.

Another alternative for vertical prediction is to use a so called bounded code: <MAT> with <MAT> <MAT> <MAT> with.

Such a code has the property of δ ≥ <NUM>, such that an efficient unary coding is possible.

The same prediction method can also be applied for <MAT>.

In [<NUM>], escape codes have been used in the GCLI coding to signal a sequence of coefficient groups consisting of a plurality of coefficients all being smaller than a predefined truncation threshold. By these means, coding efficiency can be improved since multiple zero coefficient groups can be represented by one escape word instead of requiring a code word per coefficient group.

While this method has the advantage of not requiring any overheads in terms of significance flags, computing the additional bits compared to the bits required when not using any escape code induces some complexity. Moreover, some coding methods do not allow to use espace codes in an easy manner.

See, for instance, <FIG> shows coefficient groups <NUM> that might be immediately consecutive with respect to the coding order <NUM> defined among the coefficient groups <NUM>, but this is not mandatory. According to the just-mentioned escape coding, the GCLI value transmitted in the datastream for coefficient group <NUM> could signal, by way of assuming the escape code, that its coefficients as well as the coefficients of a number of subsequent coefficient groups <NUM>, together forming a group set <NUM>, are all insignificant. The question as to which coefficient groups <NUM> belong to group set <NUM> could be known by default or could be signaled. For example, when contiguous GCLI coefficient groups <NUM> have insignificant truncated GCLI values, they can be discarded from the codestream to improve coding efficiency by this means, for example. In this spatial zero runs method, this is done by means of coding escape values for the first coefficient in the group set <NUM> being insignificant. However, as just-indicated, spending such coding escape values increases the coding complexity and is, accordingly, not suitable for extreme low complexity cases.

According to the so-called RSF method taught in [<NUM>], the burden for coding the GCLI values is reduced by signaling for group sets such as group set <NUM> in <FIG>, that the insignificant truncated GCLI values of the coefficient groups <NUM> are predicted from reference GCLI values leading, for all of them within group set <NUM>, to residuals equal to <NUM>. To this end, the coefficient groups <NUM> are grouped into group sets <NUM> and the datastream comprises for each group set <NUM> an RSF flag indicating whether the prediction residuals for the GCLI are all <NUM> within group set <NUM> in which case, naturally, no prediction residuals need to be transmitted in the datastream. However, RSF does not skip the coding of insignificant GCLIs when their corresponding residuals are not <NUM>.

It might be that prediction residuals for the GCLIs of a set <NUM> are non-zero while, however, due to truncation, all the coefficients of all coefficient groups <NUM> within the respective group set <NUM> are insignificant.

The embodiments described below provide an opportunity to delete insignificant truncated GCLIs from the codestream by modifying the interpretation of RSF, allowing being complementary to the just-outlined RSF method at low complexity.

This is discussed in more detail in the following.

In the RSF method discussed in [<NUM>], GCLI coefficients are arranged into groups inside each subband, from now onwards called SIG groups. Element <NUM> in <FIG> is such an SIG group, for instance. The SIG group size might be <NUM> or any other number greater than <NUM>. That is, a SIG group <NUM> may comprise two or more coefficient groups <NUM>. While coefficient groups <NUM> comprised by one SIG group <NUM> may, as just-outlined, belong to one subband of the transform <NUM>, this is not mandatory. Note that if the subband is not a multiple of a SIG group size such as <NUM>, then the last coefficients might be treated as an incomplete group.

At the beginning of the codestream for a precinct <NUM>, for example, a sequence of flags is signaled. Each flag corresponds to each SIG group <NUM> in the precinct. If the flag is set, then it means that all GCLI residuals corresponding to that group <NUM> are <NUM>, and therefore, are not present in the codestream.

As mentioned before, there are situations in which the GCLIs of an SIG group are totally truncated (or simply <NUM>), while their residuals are not <NUM>. This can happen, for instance, when they are predicted vertically from a line or row in which the GCLIs are significant. Here, RSF do not succeed on preventing their residuals from being signaled, when in reality it might be advantageous, given that residuals different from <NUM> require more budget for unary coding, for instance.

Thus, coefficient significance flags (CSF) are used in accordance with an embodiment of the present application instead of RSFs, thereby aiming at further extending the definition of RSF. By introducing a new GCLI coding method, CSF dedicate also one flag to every SIG group <NUM>, but they are set whenever the GCLIs of the coefficient groups <NUM> of the SIG group <NUM> are all insignificant after truncation, i.e. the set of coded bit planes for these coefficient groups <NUM> is empty. Hence, the same amount of flags than for RSF is required. As described hereinafter, CSF coding may be combined with RSF coding in the sense that both may be used in accordance with alternative coding options so that it can be selected per precinct <NUM> or per subband, for instance. Here, the same flags in the data stream are interpreted to be RSFs or CSFs depending on some additional signalization in the data stream.

The table <NUM> shows an example and a comparison of CSF and RSF methods. For SIG group <NUM>, CSF is selected since the truncated GCLI values are all <NUM>, while RSF flag is not given that the residuals are not <NUM>. For SIG group <NUM>, the situation is the opposite. For SIG group <NUM>, both GCLIs and residuals are <NUM> so that CSF would be one and RSF, too. And finally, in SIG group <NUM>, neither of them is selected, i.e. RSF and CSF is set to zero.

In the following, the CSF variant is discussed further.

For example, the usage of CSF flags has an impact in that a budget saving per SIG group may be achieved.

Alphabets for unary coding typically dedicate <NUM> bit to signal a residual value of <NUM>. Therefore, the budget saved by RSF is always the same for every deleted SIG group, and equals exactly to the size of the group. On the other hand, the budget overhead introduced by the method is constant through the image, and equals always to the amount of required RSF.

Regarding CSF, the budget overhead is exactly equal than for RSF. But in contrast, the peak budget saving per SIG group is equal or larger than with RSF. Indeed, residuals removed by CSF can be equal or different to <NUM>, so their budget can be greater or equal than the size of the group.

While RSF can be employed transparently to prediction, given that it is a post-processing (in encoder) or a pre-processing (in decoder), for CSF the prediction modules in decoder and encoder are slightly modified.

At the encoder, whenever a SIG group is found to contain only insignificant truncated GCLIs, then their coding can be completely skipped. However, the budget computation has to do more calculations in order to obtain the amount of bits saved by the residuals. In the decoder, inverse prediction of those deleted GCLIs with CSF can be also skipped and replaced by <NUM> instead.

In the following, picture coding using CSFs as just-outlined is described in more details. To this end, some function definitions are used as follows.

Let α be a coefficient group to be encoded.

A pseudocode for managing CSF is provided below.

The decoding of GCLI values of a subband is done as follows.

When using CSF, the decoder can be described as stated below. For a subband s, the set of values GCLI(ai) for coefficient groups ai is decoded as follows:
<IMG>.

The encoding of GCLI values of a subband is done as follows.

Let define the GTLI from which all GCLIs of a SIG group become insignificant, as follows: <MAT>.

That is, the maximum GCLI value of the group. Thus, the encoding of coefficient groups ai of subband s can be performed as follows:
<IMG>.

Compared thereto, a pseudocode for managing RSF is provided below, as a reference.

First, the decoding of GCLI values of a subband is inspected.

When using RSF, the decoder can be described as stated below. For a subband s, the set of values GCLI(ai) for coefficient groups (ai) is decoded as follows:
<IMG>.

The encoding of GCLI values of a subband in case if using RSF is as follows.

Let define the GTLI from which all residuals of a SIG group become insignificant, as follows: <MAT>.

Thus, the encoding of coefficient groups aj of subband s can be performed as follows:
<IMG>.

A switching between coefficient and residual significance flags could be supported. As explained above, coefficient significance flags can indicate the presence of a sequence of coefficient groups (so called SIG group) that are zero after quantization, even when their prediction residuals are not zero. Placing the code words representing the prediction residuals into the bit stream can be avoided by setting the significance information or significance flag representing the sig group correspondingly, increasing thus the coding efficiency.

Residual significance flags, on the other hand, signal the presence of a quantized SIG group having all zero prediction residuals. In other words, in case all quantized coefficients of a SIG group have the same value than their predicted value, which might be different than zero, the zero prediction residuals do not need to be placed into the bit stream, when the corresponding significance bit(s) of the SIG group are set appropriately.

To this end, the bit stream of every precinct (or even every subband) signals which of the two significance flags is chosen. By these means, the encoder can chose for every precinct or every subband the best alternative, giving some coding gain as explained below.

<FIG> present PSNR results which were obtained using the coding framework presented above, i.e. using the GCLI coding, combined with RSF coding, CSF coding or avariant allowing for a switching between both coding modes. <FIG> refer to coding of RGB <NUM><NUM> bit, namely PSNR optimized with different bpp (bit per pixel) constraints for RSF/CSF switchability, visually optimized with bitrate constraint of <NUM> bpp while comparing RSF only, CSF only and RSF/CSF switching, respectively, PSNR optimized with bitrate constraint of <NUM> bpp while comparing RSF only, CSF only and RSF/CSF switching, respectively, PSNR optimized with bitrate constraint of <NUM> bpp while comparing RSF only, CSF only and RSF/CSF switching, respectively, visually optimized with bitrate constraint of <NUM> bpp while comparing RSF only, CSF only and RSF/CSF switching, respectively, and visually optimized with bitrate constraint of <NUM> bpp while comparing RSF only, CSF only and RSF/CSF switching, respectively. Similar simulation results are - as indicated at the headlines, depicted in <FIG>for RGB <NUM><NUM> bit coding, and in <FIG> for YUV <NUM><NUM> bit coding. Multigeneration maximum PSNR and mean PSNR results are presented in <FIG>, namely for RGB <NUM><NUM> bit in <NUM> to <NUM>, for RGB <NUM><NUM> bitin <NUM> to <NUM>, and for YUV <NUM><NUM> bit in <FIG>.

In the following, some complexity aspects are discussed in connection with CSF and RSF. Before, however, an encoder architecture is presented with respect to <FIG>. The encoder is shown in <FIG> using reference sign <NUM> in a manner using, as a starting point, a wavelet transform <NUM> discussed previously. The wavelet transform <NUM> may have been obtained by a wavelet transformation by a transformer not shown in <FIG>. In order to encode the wavelet transform <NUM>, encoder <NUM> comprises a GCLI-extractor <NUM> which determines the greatest coded line index per coefficient group <NUM>. The encoder <NUM> operates, for instance, precinct-wise and seeks to meet a certain bitrate constrained. The GCLI extractor <NUM> feeds the determined GCLI values into a GCLI buffer <NUM> and a run/GTLI module <NUM>. Module <NUM> computes the smallest GTLI causing that all coefficient groups of a significant group are truncated to zero. More details are explained below. Module <NUM> forwards GCLI values and the smallest GTLI leading to an insignificant significant group to a subsequent budget computer <NUM> which computes a bit budget per GTLI candidate value. To this end, module <NUM> has access to, and keeps updated, for transform coefficient lines to be operated on next in coding order, the GCLI values of a previous transform coefficient line in a buffer <NUM>. Because the exact budget depends on the GTLI of the previous precinct which might not be available already, module <NUM> only computes an initial approximation of the bit budgets per GTLI candidate. To be more precise, the budget computer <NUM> operates on a line of transform coefficients of the current precinct. A precinct budget updater <NUM> which is connected to the GCLI buffer <NUM> provides a precinct budget update. It corrects for any deviation between the previous budget approximation and the actual bit budget. To this end, module <NUM> operates on the precinct to encode next by module <NUM>, causing that the GTLI of the previous precinct is already available. Based on the precinct budget update and budget values determined by computer <NUM>, the RA module <NUM> computes the GTLI value to effectively apply to the precinct to encode next in order to meet the afore mentioned bitrate constraint. This GTLI value is provided as input to a GCLI coder <NUM> which, in addition, receives the GCLI values from the GCLI buffer <NUM>. The GCLI coder <NUM> has access to the previous line of GCLI values in form of the previous line GCLI buffer <NUM> and to the GTLI of the previous line by way of a register <NUM>. GCLI coder <NUM> codes the GCLI values with details in this regard having been set out above and outputs same into a buffer <NUM>. The coefficients of the transform <NUM> are also buffered in a buffer <NUM> and those bits thereof which are in the coded bit planes as signaled in the data stream by way of the coded GCLI values in buffer <NUM>, are inserted into the data stream via a coefficient encoder <NUM>. As described above, this may be done in form of placing the bits as raw data into the data stream. A packer <NUM> packs the coded GCLI data and the raw data bits into the data stream.

The blocks in <FIG> highlighted, namely <NUM>, <NUM> and <NUM>, are concerned with the usage of two different types of significance flags, namely RSF and CSF. As further explained in [<NUM>] the wavelet coefficients of the wavelet transform <NUM> are stored in the coefficient buffer <NUM> for later data coding by encoder <NUM>. As also described in [<NUM>], the GCLI extractor <NUM> determines the GCLI value and stores it in buffer <NUM>.

In order to combine the two different sigflags methods, the following values need to be computed per significance group such as by module <NUM>: <MAT> With.

Given that <MAT> is the same value than used in [<NUM>], the complexity is not further discussed. Computation of <MAT> is possible by means of a comparator (<= <NUM> LUTs) and one register of <NUM> bits per subband. Moreover, initial budget computation is simplified by delaying the GCLI values by one significance group. For one vertical wavelet decomposition level (<NUM> subbands), this requires <NUM>. <NUM>=<NUM> bits. For Xilinx, this corresponds to <NUM>=<NUM> LUTs, or <NUM> MLAB blocks for Altera devices.

Another slight modification is required in the GCLI coder: When only using the residual significance flags (as in [<NUM>]), ssig prediction residuals needs to be buffered before encoding them to determine whether all of them are zero. This allows to either output the prediction residuals or signaling the SIG group as insignificant by means of the significance flags. When using <MAT>, the coder has to check in addition whether all the GCLIs gi to encode are all below the selected quantization/truncation parameter ti. This, however, is trivial, and no additional buffering is needed.

The computation of budget savings for coefficient significance flags is done as follows.

Whenever a significance group is signaled insignificant using the coefficient significance flags, the budget computation module in <FIG> needs to track the number of bits saved by not placing the prediction residuals into the bit stream.

The overall budget for both methods can hence be computed by.

This means that the complexity increase of using both methods just consists in computing an additional budget saving as discussed below.

Let's say vertical prediction according to the first option discussed above applies.

For this prediction method, the following equations are used <MAT>.

In case both the current and the reference GTLIs ti and ti-<NUM> are equal, equation (<NUM>) simplifies to <MAT>.

Knowing that the budget saving can only occur for <MAT>, we obtain from equation (<NUM>): <MAT>.

The budget savings thus uniquely depends on gi-<NUM> and <MAT>, plus the parameters ti-<NUM> and ti, such that it can be easily computed.

If the second vertical prediction option applies, the following equations are used <MAT>.

A corresponding decoding architecture is shown in <FIG>. The decoder of <FIG> is generally indicated using reference sign <NUM>. An input demultiplexer <NUM> receives the datastream and derives therefrom the coded coefficient bits within the coded bit planes, namely <NUM>, the GCLI residuals <NUM> and the flags which might be RSFs or CSFs, namely <NUM>. The bits <NUM> are stored in the data buffer <NUM>, the GCLI residual values in a GCLI buffer <NUM> and the flags <NUM> in buffer <NUM>. As depicted in <FIG>, the GCLI residual values stored in buffer <NUM> might be unary coded or coded as raw data and depending thereon, a raw decoder <NUM> or a unary decoder <NUM> is used to decode the GCLI residual values. A subband GCLI buffer <NUM> may, optionally, be accessible for decoder <NUM> and decoder <NUM>, respectively. Via a GCLI packer <NUM>, an inverse GCLI predictor <NUM> receives the GCLI residuals and reconstructs the GCLI values based on a previous GCLI <NUM> and on the basis of the RSF flag: if RSF applies, and the RSF flag for a current GCLI is set, inverse predictor <NUM> is informed on the prediction residual, i.e. the GCLI residual, being zero anyway. The predictor determined based on the previous GCLI <NUM> is then used as the current GCLI. The inverse predictor <NUM> outputs the GCLI determined and a multiplexer chooses this prediction output or a zero replacement depending on a CSF flag which applies for the current GCLI: if the CSF flag is set, there is no coded bitplane within the corresponding SIG group anyway and the GCLI is set accordingly, i.e. to zero or some value leading to insignificant transform coefficients coding considering the current GTLI. An unpacker controller <NUM> receives the output of the multiplexer <NUM> which, in turn, is also fed back as the previous GCLI to the inverse predictor <NUM>, and controls, in turn, an unpacker <NUM> which, depending on the current GCLI, retrieves coefficient bits of coded bit planes for the current coefficient group from data buffer <NUM>. At the output of unpacker <NUM>, the respective transform coefficients result.

Accordingly, <FIG> shows a block diagram of a decoder and shows, in particular, extensions in addition to [<NUM>] which enable the support of both significance flag types. For sake of completeness, it should be noted that <FIG> shows an additional GCLI packer <NUM> compared to [<NUM>].

In case a precinct (or subband) is encoded with residual significance flags, the inverse predictor simply assumes a prediction residual of zero instead of reading them from the GCLI packer <NUM>. When using the coefficient significance flags, the inverse predictor <NUM> can exactly perform the same operation. But instead of using the outcome of this prediction, the value is simply replaced by a zero value. Hence, in order to handle both flag types, the decoder of <FIG> simply comprises a <NUM> bit MUX2 element, namely <NUM>, that is controlled by the output of the significance flag buffer <NUM> and the type of the significance flag used. The increase in logic as far as the decoder is concerned is, thus, negligible.

After having described certain embodiments of the present application as an extension or modification of the currently envisaged version of JPEG XS, further embodiments for decoder and encoder and datastream are described as a kind of generalization of the embodiments discussed above. <FIG> illustrates an encoder <NUM>. The encoder of <FIG> is for encoding transform coefficients <NUM> into a datastream <NUM>. As described above, the transform coefficients <NUM> may be transform coefficients of a transform of a picture. Transform coefficients <NUM> may form one sub-portion of a plurality of sub-portions of a spectral decomposition of a picture and the encoder <NUM> may be configured to perform the encoding on a per sub-portion basis. Such a sub-portion may be a subband such as a subband of a wavelet transform, or groups of transform coefficients relating to a corresponding spatial region of spatial regions in which the picture is subdivided such as the region <NUM> corresponding to a precinct. It should be clear that the transform coefficients <NUM> may also be coefficients of a different transform such as, for instance, a DCT or the like. The transform coefficients are grouped into coefficient groups <NUM>. The number of coefficients <NUM> per group <NUM> may, as discussed above, be any number greater than <NUM> and is not restricted to <NUM> illustrated in <FIG>. The grouping of coefficients <NUM> into groups <NUM> may be done in a manner so that coefficients <NUM> belonging to one group <NUM> belong to the same subband. In case of a wavelet transform, coefficients <NUM> belonging to one group <NUM> may, for instance, be spatial neighbors of one subband, and in case of transform coefficients <NUM> being DCT coefficients, a group <NUM> may be composed of coefficients <NUM> stemming from different DCT transform blocks obtained from spatially neighboring regions of a picture, the coefficients of one group corresponding to one frequency component or coefficient within these DCT transform blocks. In particular, in case of a DCT transform, a picture could be transformed in units of blocks into DCT transform blocks of the same size, each coefficient position of which would represent a separate subband. For example, all DC coefficients of these DCT transform blocks would represent the DC subband, the coefficients to the right thereof another subband and so forth. Groups <NUM> could then collect coefficients of one subband of DCT transform blocks obtained from neighboring blocks of the picture.

The coefficient groups <NUM>, in turn, are grouped into group sets <NUM>. This may also be done in a manner not mixing coefficients of different subbands. Moreover, coefficients <NUM> of coefficient groups <NUM> within one group set <NUM> may all stem from the same subband.

The encoder <NUM> of <FIG> inserts into the datastream <NUM> information <NUM> which identifies a first subset of group sets <NUM> for which a significance coding mode is not to be used, i.e. group sets <NUM> for which GCLI residuals are coded, and a second subset of group sets for which the significance coding mode is to be used, i.e. group sets <NUM> for which GCLI residuals are not coded. In the description brought forward above, one CSF flag is inserted into datastream <NUM> for each group set <NUM> in order to form information <NUM>. The first subset of group sets <NUM> are the group sets <NUM> for which CSF is <NUM> or not set, while the second subset includes those group sets <NUM> for which CSF is <NUM>. For setting information <NUM> for a current group set <NUM>, encoder <NUM> checks <NUM> whether all transform coefficients <NUM> within group set <NUM> are insignificant, i.e. are quantized to <NUM>. Encoder <NUM> may insert into datastream <NUM> truncation information <NUM> indicating a set of one or more truncated least significant bit planes. The GTLI value discussed above may form part of information <NUM>. The GTLI <NUM> may be transmitted in datastream <NUM> at a granularity of the afore-mentioned sub-portions, for instance, i.e. per precinct, for instance, or at some other level such as in units of sub-bands or coefficient group rows. As a side, it is noted that the coefficient groups <NUM> may, other than exemplarily depicted in the figures, collect coefficients <NUM> neighboring each other along a direction oblique to the coefficient rows <NUM>. The GCLI values for which the information <NUM> provides the prediction residuals, may indicate the most significant bit plane to be coded into data stream <NUM> as an index relative to the GTLI which may index, in turn, the most significant one among the least significant bit planes up to which the magnitude bits <NUM> shall be truncated. If all coefficients of all groups <NUM> within a current group set <NUM> are <NUM>, the CSF flag for this group set <NUM> is set at <NUM>, and if not, is not set as shown at <NUM>. If not set, encoder <NUM> signals in the datastream <NUM> the set of coded bit planes by predicting this set at <NUM> on the basis of neighboring coefficient groups <NUM>, for instance, and inserting <NUM> the prediction residual into the datastream <NUM>, thereby forming the GCLI data <NUM> in datastream <NUM>. For instance, the set of coded bit planes may be signaled in datastream <NUM> by indexing, i.e. by indexing the greatest coded line. For coefficient groups <NUM> within the current group set <NUM>, for which the GCLI <NUM> is greater than the GTLI, encoder <NUM> encodes the corresponding coefficient bits of coefficients <NUM> of the respective coefficient group <NUM>, i.e. bits <NUM>, into datastream <NUM>. This bit insertion <NUM> may be done at a code rate of <NUM> such as, more concretely speaking, by inserting the bits as raw bits. The GCLI data values, in turn, may be coded into datastream <NUM> as a variable length code, for instance, such as a unary code as discussed above. The raw bits inserted at <NUM> are depicted in <FIG> at <NUM>. As already discussed above, within datastream <NUM>, raw bits <NUM>, GCLI data <NUM> and flags <NUM> may be interleaved or non-interleaved. As can be seen, CSF = <NUM> is a very compressed way of representing group set <NUM>. After any of <NUM> or <NUM>, the processing may proceed with another group set <NUM> in the same manner.

<FIG> shows a decoder corresponding to the encoder of <FIG>. The decoder <NUM> of <FIG> operates to reconstruct the transform coefficients <NUM> from datastream <NUM> and to this end, checks whether the CSF for a current group set <NUM> is set in which case decoder <NUM> zeroes, i.e. sets to zero, all transform coefficients <NUM> within group set <NUM> or synthesizes noise in this transform coefficients <NUM>. To this end, some sort of insignificant treatment <NUM> is performed for the current group set <NUM> if the check <NUM> indicates that significance coding mode is to be used for the current group set <NUM>. If not, however, decoder <NUM> treats the group set <NUM> normally. That is, decoder <NUM> predicts at <NUM> the GCLI of each coefficient group <NUM> within the current group set <NUM> and corrects <NUM> the prediction using the prediction residual taken from datastream <NUM>. As mentioned above, variable length decoding may use for deriving the prediction residual <NUM>. The prediction may be done using the GCLI of a coefficient group <NUM> neighboring the current coefficient group or the current group <NUM> vertically, meaning in the present example, that for all groups <NUM> within the current set <NUM>, the prediction reference, i.e. the vertically neighboring group <NUM> is external to current set <NUM>. Alternatively, the prediction <NUM> may be done using the GCLI of a coefficient group <NUM> neighboring the current coefficient group or the current group <NUM> horizontally, meaning in the present example, that for most groups <NUM> within the current set <NUM> except the outermost left one, for instance, the prediction reference, i.e. the horizontally neighboring group <NUM>, is within current set <NUM>. Naturally, it might be feasible to signal the prediction source for each group <NUM> in the data stream. Even non-prediction might be a possible mode. The details on prediction <NUM> are naturally, also transferable, onto prediction <NUM>. Mode switching may alternatively by signaled and selected by the encoder at some other granularity than groups <NUM> or sets <NUM>, such as coefficient rows <NUM> or rows of groups <NUM>, subbands or predincts <NUM>.

For each coefficient group <NUM> for which the GCLI is greater than the GTLI, i.e. for which the set of coded bit planes is not beneath the quantization threshold, as checked by decoder <NUM> at <NUM>, the bits of the corresponding coded bit planes of the coefficients <NUM> within the respective coefficient group <NUM> are read at <NUM> from datastream <NUM>. This means, decoder <NUM> reads or decodes bits in datastream <NUM>, namely <NUM>, directly into those bit planes indicated by the GCLI and the GTLI, namely therebetween in accordance with a predetermined mapping rule for inserting the bits from bitstream <NUM> into the bit planes.

In <FIG>, it is additionally illustrated that the encoder <NUM> may, optionally, signal within datastream <NUM> the fact that the information <NUM> pertains to this kind of significance indication, i.e. pertains to CSFs rather than, for instance RSFs. This indication is shown as being optionally inserted by encoder <NUM> into datastream <NUM> at <NUM>.

<FIG> shows an encoder <NUM> configured to use RSFs instead of CSF. The encoder <NUM> of <FIG> operates in the following manner. In particular, the following description concentrates on the differences to the operation of the encoder <NUM> of <FIG>.

The encoder <NUM> of <FIG> operates on a current group set <NUM> by determining at <NUM> the GCLI predictors for all coefficient groups <NUM> of that group set <NUM> and determining at <NUM> whether all predictions exactly fit, i.e. the prediction residuals are all <NUM> for all coefficient groups <NUM> within group set <NUM>. If this is the case, then encoder <NUM> signals this by setting RSF = <NUM> at <NUM> within the significance information <NUM> in datastream <NUM>. Here, indication <NUM> indicates that RSF signaling is conveyed in information field <NUM> of datastream <NUM> instead of CSF signaling as indicated by indication <NUM> in <FIG>. If all the GCLI prediction residuals are not <NUM>, however, then RSF flag for this group set <NUM> is set to <NUM> at <NUM> and the prediction residuals for the GCLI values for the coefficient groups <NUM> of the current group set <NUM> are inserted at <NUM> into datastream <NUM>, namely within field <NUM>. Irrespective whether RSF is set or not, it is checked whether non-truncated coded bit planes exist for each coefficient group, and if yes, they are inserted at <NUM> into datastream <NUM>.

It should be noted that an encoder in accordance with a further embodiment could be able to operate according to both modes, i.e. according to <FIG> or according to <FIG> with choosing there among in order to decide as to which option, RSF or CSF, is to be preferred according to some coding efficiency sense, for instance.

<FIG> shows a decoder <NUM> capable of dealing with a datastream <NUM> containing the indication <NUM> irrespective of whether indication <NUM> indicates the usage of CSF or RSF coding. The reference signs of <FIG> have been reused, but information <NUM> is indicated as "R/CSF" instead of "CSF" in order to indicate that the meaning of the flags of information <NUM> depends on indication <NUM>. The insignificant treatment <NUM> is performed by decoder <NUM> merely in case of the corresponding flag for the current group set <NUM> being set and the CSF mode being indicated by indication <NUM>, concurrently. If not, a further difference of the mode of operation compared to <FIG> is the fact that the prediction correction <NUM> is skipped by decoder <NUM> if a check <NUM> yields that the R/CSF flag is set for the current group set <NUM> and the indication <NUM> indicates the RSF mode. If not, the prediction correction <NUM> is performed.

With respect to <FIG>, it is noted that it is remarkable that the decoder <NUM> of <FIG> does almost not differ from the decoder of <FIG>. The capability of handling both, RSF and CSF coding, comes at almost no operational overhead. On the other hand, everybody seeking to install an encoder for generating a datastream <NUM> for feeding decoder <NUM>, is, in case of indication <NUM> being used, provided with the opportunity to choose among the RSF option of <FIG>, or the CSF option of <FIG>. In this regard, it should be noted that the CSF option might have advantages with respect to parallel processing capability, while the RSF option of <FIG> might be advantageous in case of an implementation of the encoder in a sequential operation style such as, for instance, in form of an FPGA or the like. In particular, while the RSF setting depends on the prediction reference bases for the prediction in step <NUM>, the CSF setting may be done independent from any other transform coefficients, except for the necessity to know about the GTLI, i.e. the quantization.

With respect to <FIG>, it should be noted that the data stream <NUM> could be provided by the encoder with information or a flag whether significance mode is used anyway, and depending thereon, information <NUM> and optionally used signaling <NUM> could be not present in data stream <NUM> with all group sets <NUM> being treated in normal mode instead.

These are some definitions that are going to be used along the document.

<FIG> shows an example for a pseudocode of a datastream <NUM>. In this pseudocode, the indication <NUM> is conveyed within a parameter called "Rm". Rm = <NUM> indicates the usage of CSF coding mode and the skipping of any bit derivation is urged by synthetically setting the prediction residual Δm at <NUM> to such a value that the correction <NUM> of the GCLI predictor computed at <NUM> is in any case small enough in order to not exceed the quantization threshold T as tested at <NUM>. The skipping of any GCLI residual reading from the datastream is done on the basis of the significance flag information at <NUM> by rendering the reading of any prediction residual, namely Δm, dependent on the significance flags Z. Whether or not Rm is <NUM> or <NUM>, does not influence this dependency of the prediction residual reading at <NUM> on the significance flags at <NUM>. If Rm is <NUM>, i.e. RSF mode is active, the prediction residual Δm is set to <NUM> at <NUM>. The bit derivation of coded bit planes is not depicted in <FIG> but is merely done for transform coefficient groups for which M is greater than <NUM>.

In the following, additional embodiments and aspects of the invention will be described which can be used individually or in combination with any of the features and functionalities and details described herein. These numbered aspects do not represent claims. They are provided for illustrative purposes only and do not define the scope of the protected invention.

A first aspect relates to a decoder configured to decode transform coefficients <NUM> from a data stream <NUM>, the transform coefficients being grouped into coefficient groups <NUM>, the coefficient groups <NUM> being grouped into group sets <NUM>, the decoder being configured to derive from the data stream <NUM> an indication <NUM> of a significance coding mode; derive from the data stream <NUM> information <NUM> which identifies a first subset of group sets <NUM> for which a significance coding mode is not to be used, and a second subset of group sets <NUM> for which the significance coding mode is to be used; for each group set out of the first subset, for each coefficient group of the respective group set, identify a first set of coded bit planes by deriving <NUM> a first prediction for the first set of coded bit planes based on a first previously decoded coefficient group, correcting <NUM> the first prediction using a first prediction residual <NUM> derived from the data stream so as to obtain a corrected prediction for the first set of coded bit planes, deriving <NUM> bits of the respective coefficient group within the corrected prediction for first set of coded bit planes from the data stream; if the significance coding mode is a first mode, for each group set out of the second subset, for each coefficient group of the respective group set, identify a second set of coded bit planes by deriving <NUM> a second prediction for the second set of coded bit planes based on a second previously decoded coefficient group, and derive <NUM> bits of the respective coefficient group within the prediction for the second set of coded bit planes from the data stream; and if the significance coding mode is a second mode, for each group set of the second subset, inherit <NUM> that for each coefficient group of respective group set, coefficients of the respective coefficient group are insignificant.

According to a second aspect when referring back to aspect <NUM>, the transform coefficients form one sub-portion of a plurality of sub-portions of a spectral decomposition of a picture <NUM>.

According to a third aspect when referring back to aspect <NUM>, the decoder is configured to derive from the data stream the significance coding mode on a per sub-portion basis.

According to a fourth aspect when referring back to aspect <NUM>, the sub-portions are sub-bands or groups of transform coefficients relating to a corresponding spatial region <NUM> of spatial regions into which the picture <NUM> is sub-divided.

According to a fifth aspect when referring back to any of aspects <NUM> to <NUM>, the decoder is configured to derive from the data stream truncation information <NUM> indicating a set of one or more truncated least significant bit planes for each coefficient group, and the first prediction, the corrected prediction and the second prediction indicate a most significant bit plane index relative to a most significant truncated bit plane of the set of one or more truncated least significant bit planes.

According to a sixth aspect when referring back to aspect <NUM>, the decoder is configured to derive from the data stream the truncation information <NUM> indicating the set of one or more truncated least significant bit planes at a granularity of coefficient group rows, sub-bands, or groups of transform coefficients relating to a corresponding spatial region <NUM> of spatial regions into which the picture <NUM> is sub-divided.

According to a seventh aspect when referring back to any of aspects <NUM> to <NUM>, the transform coefficients are spectral coefficients of a spectral decomposition <NUM> of a picture <NUM>.

According to an eighth aspect when referring back to any of aspects <NUM> to <NUM>, the transform coefficients are DCT or wavelet coefficients.

According to a ninth aspect when referring back to any of aspects <NUM> to <NUM>, the transform coefficients are spectral coefficients of a spectral decomposition <NUM> of a picture <NUM> into sub-bands, and grouped into the coefficient groups <NUM> in a manner so that transform coefficients <NUM> within one coefficient group <NUM> belong to the same sub-band.

According to a tenth aspect when referring back to any of aspects <NUM> to <NUM>, the decoder is configured to derive the information <NUM> from the data stream as one flag per group set <NUM>, with group sets <NUM> for which the flag assumes a first state, belonging to the first subset of group sets, and group sets for which the flag assumes a second state, belonging to the second subset of group sets.

According to an eleventh aspect when referring back to any of aspects <NUM> to <NUM>, the decoder is configured to perform the deriving <NUM> of the bits at a code rate of <NUM>.

According to a twelfth aspect when referring back to any of aspects <NUM> to <NUM>, the decoder is configured to set insignificant coefficients to zero or pseudo noise.

A thirteenth aspect relates to an encoder configured to encode transform coefficients <NUM> into a data stream <NUM>, the transform coefficients being grouped into coefficient groups <NUM>, the coefficient groups being grouped into group sets <NUM>, the encoder being configured to signal in the data stream <NUM> a significance coding mode <NUM> to be a first mode or a second mode, insert into the data stream <NUM> information <NUM> which identifies a first subset of group sets for which the significance coding mode is not to be used, and a second subset of group sets for which the significance coding mode is to be used; for each group set out of the first subset, for each coefficient group of the respective group set, identify a first set of coded bit planes in the data stream by deriving <NUM> a first prediction for the first set of coded bit planes based on a first previously coded coefficient group, insert <NUM> into the data stream <NUM> a first prediction residual <NUM> for correcting the first prediction so as to obtain a corrected prediction for the first set of coded bit planes, insert <NUM> bits of the respective coefficient group within the corrected prediction for the first set of coded bit planes into the data stream; if the significance coding mode is the first mode, for each group set out of the second subset, for each coefficient group of the respective group set, identify a second set of coded bit planes by deriving <NUM> a second prediction for the second set of coded bit planes based on a second previously coded coefficient group, and insert <NUM> bits within the prediction for the second set of coded bit planes into the data stream; and wherein the significance coding mode being the second mode signals that, for each group set of the second subset, for each coefficient group of respective group set, coefficients of the respective coefficient group are insignificant.

According to a fourteenth aspect when referring back to aspect <NUM>, the transform coefficients form one sub-portion of a plurality of sub-portions of a spectral decomposition of a picture.

According to a fifteenth aspect when referring back to aspect <NUM>, the encoder is configured to select and vary, by signalization in the data stream, the significance coding mode among at least the first and second modes on a per sub-portion basis.

According to a sixteenth aspect when referring back to aspect <NUM>, the sub-portions are sub-bands or groups of transform coefficients relating to a corresponding spatial region of spatial regions into which the picture is sub-divided.

According to a seventeenth aspect when referring back to any of aspects <NUM> to <NUM>, the encoder is configured to insert into the data stream truncation information indicating a set of one or more truncated least significant bit planes for each coefficient group, and the first prediction, the corrected prediction and the second prediction indicate a most significant bit plane index relative to a most significant truncated bit plane of the set of one or more truncated least significant bit planes.

According to an eighteenth aspect when referring back to aspect <NUM>, the encoder is configured to insert into the data stream the truncation information indicating the set of one or more truncated least significant bit planes at a granularity of coefficient group rows, sub-bands, or groups of transform coefficients relating to a corresponding spatial region of spatial regions into which the picture is sub-divided.

According to a nineteenth aspect when referring back to any of aspects <NUM> to <NUM>, the encoder is configured to select the significance coding mode among at least the first and second modes by default, or the encoder is configured to select the significance coding mode among at least the first and second modes by testing a set of coding modes including the first and second mode and choosing among the set of coding mode a best coding mode in accordance with a predetermined criterion.

According to a twentieth aspect when referring back to aspect <NUM>, the predetermined criterion depends on coding rate and/or coding distortion.

According to a twenty-first aspect when referring back to any of aspects <NUM> to <NUM>, the transform coefficients are spectral coefficients of a spectral decomposition of a picture.

According to a twenty-second aspect when referring back to any of aspects13 to <NUM>, the transform coefficients are DCT or wavelet coefficients.

According to a twenty-third aspect when referring back to any of aspects <NUM> to <NUM>, the transform coefficients are spectral coefficients of a spectral decomposition of a picture into sub-bands, and grouped into the coefficient groups in a manner so that transform coefficients within one coefficient group belong to the same sub-band.

According to a twenty-fourth aspect when referring back to any of aspects <NUM> to <NUM>, the encoder is configured to insert the information into the data stream as one flag per group set, with group sets for which the flag assumes a first state, belonging to the first subset of group sets, and group sets for which the flag assumes a second state, belonging to the second subset of group sets.

According to a twenty-fifth aspect when referring back to any of aspects <NUM> to <NUM>, the encoder is configured to perform the insertion of the bits at a code rate of <NUM>.

According to a twenty-sixth aspect when referring back to any of aspects <NUM> to <NUM>, insignificant coefficients is signaled to be set to zero or to pseudo noise.

A twenty-seventh aspect relates to a decoder configured to decode transform coefficients <NUM> from a data stream <NUM>, the transform coefficients <NUM> being grouped into coefficient groups <NUM>, the coefficient groups being grouped into group sets <NUM>, the decoder being configured to derive from the data stream <NUM> information <NUM> which identifies a first subset of group sets for which a significance coding mode is not to be used, and a second subset of group sets for which the significance coding mode is to be used; for each group set out of the first subset, for each coefficient group of the respective group set, identify a first set of coded bit planes by deriving <NUM> a first prediction for the first set of coded bit planes based on a first previously decoded coefficient group, correcting <NUM> the first prediction using a first prediction residual <NUM> derived from the data stream so as to obtain a corrected prediction for the first set of coded bit planes, derive <NUM> bits of the respective coefficient group within the corrected prediction for first set of coded bit planes from the data stream at a code rate of <NUM>; for each group set of the second subset, inherit <NUM> that for each coefficient group of respective group set, coefficients of the respective coefficient group are insignificant.

According to a twenty-eighth aspect when referring back to aspect <NUM>, the decoder is configured to derive from the data stream <NUM> whether the significance coding mode is applied or not; if the significance coding mode is not applied, skip the derivation of the information from the data stream and infer that the second subset is empty.

According to a twenty-ninth aspect when referring back to aspect <NUM>, the transform coefficients form one sub-portion of a plurality of sub-portions of a spectral decomposition of a picture, and the decoder is configured to derive from the data stream whether the significance coding mode is applied or not on a per sub-portion basis.

According to a thirtieth aspect when referring back to aspect <NUM>, the sub-portions are sub-bands or groups of transform coefficients relating to a corresponding spatial region of spatial regions into which the picture is sub-divided.

According to a thirty-first aspect when referring back to any of aspects <NUM> to <NUM>, the decoder is configured to derive from the data stream truncation information indicating a set of one or more truncated least significant bit planes for each coefficient group, and the first prediction and the corrected prediction indicate a most significant bit plane index relative to a most significant truncated bit plane of the set of one or more truncated least significant bit planes.

According to a thirty-second aspect when referring back to aspect <NUM>, the decoder is configured to derive from the data stream the truncation information indicating the set of one or more truncated least significant bit planes at a granularity of coefficient group rows, sub-bands, or groups of transform coefficients relating to a corresponding spatial region of spatial regions into which the picture is sub-divided.

According to a thirty-third aspect when referring back to any of aspects <NUM> to <NUM>, the transform coefficients are spectral coefficients of a spectrally decomposition of a picture.

According to a thirty-fourth aspect when referring back to any of aspects <NUM> to <NUM>, the transform coefficients are DCT or wavelet coefficients.

According to a thirty-fifth aspect when referring back to any of aspects <NUM> to <NUM>, the transform coefficients are spectral coefficients of a spectral decomposition of a picture into sub-bands, and grouped into the coefficient groups in a manner so that transform coefficients within one coefficient group belong to the same sub-band.

According to a thirty-sixth aspect when referring back to any of aspects <NUM> to <NUM>, the decoder is configured to derive the information from the data stream as one flag per group set, with group sets for which the flag assumes a first state, belonging to the first subset of group sets, and group sets for which the flag assumes a second state, belonging to the first subset of group sets.

According to a thirty-seventh aspect when referring back to any of aspects <NUM> to <NUM>, the decoder is configured to perform the deriving of the first prediction residual using a unary VLC code.

According to a thirty-eighth aspect when referring back to any of aspects <NUM> to <NUM>, the decoder is configured to set insignificant coefficients to zero or pseudo noise.

A thirty-ninth aspect relates to an encoder configured to encode transform coefficients into a data stream, the transform coefficients being grouped into coefficient groups, the coefficient groups being grouped into group sets, the encoder being configured to insert into the data stream information which identifies a first subset of group sets for which the significance coding mode is not to be used, and a second subset of group sets for which the significance coding mode is to be used; for each group set out of the first subset, for each coefficient group of the respective group set, identify a first set of coded bit planes by deriving a first prediction for the first set of coded bit planes based on a first previously coded coefficient group, insert into the data stream a first prediction residual for correcting the first prediction so as to obtain a corrected prediction for the first set of coded bit planes, insert bits of the respective coefficient group within the corrected prediction for the first set of coded bit planes into the data stream at a code rate of <NUM>, wherein, for each group set of the second subset, for each coefficient group of respective group set, coefficients of the respective coefficient group are insignificant.

According to a fortieth aspect, a method for decoding transform coefficients <NUM> from a data stream <NUM>, the transform coefficients being grouped into coefficient groups <NUM>, the coefficient groups <NUM> being grouped into group sets <NUM>, comprises: deriving from the data stream <NUM> an indication <NUM> of a significance coding mode; deriving from the data stream <NUM> information <NUM> which identifies a first subset of group sets <NUM> for which a significance coding mode is not to be used, and a second subset of group sets <NUM> for which the significance coding mode is to be used; for each group set out of the first subset, for each coefficient group of the respective group set, identifying a first set of coded bit planes by deriving <NUM> a first prediction for the first set of coded bit planes based on a first previously decoded coefficient group, correcting <NUM> the first prediction using a first prediction residual <NUM> derived from the data stream so as to obtain a corrected prediction for the first set of coded bit planes, deriving <NUM> bits of the respective coefficient group within the corrected prediction for first set of coded bit planes from the data stream; if the significance coding mode is a first mode, for each group set out of the second subset, for each coefficient group of the respective group set, identifying a second set of coded bit planes by deriving <NUM> a second prediction for the second set of coded bit planes based on a second previously decoded coefficient group, and deriving <NUM> bits of the respective coefficient group within the prediction for the second set of coded bit planes from the data stream; and if the significance coding mode is a second mode, for each group set of the second subset, inheriting <NUM> that for each coefficient group of respective group set, coefficients of the respective coefficient group are insignificant.

According to a forty-first aspect, a method for encoding transform coefficients <NUM> into a data stream <NUM>, the transform coefficients being grouped into coefficient groups <NUM>, the coefficient groups being grouped into group sets <NUM>, comprises: signaling in the data stream <NUM> a significance coding mode <NUM> to be a first mode or a second mode, inserting into the data stream <NUM> information <NUM> which identifies a first subset of group sets for which the significance coding mode is not to be used, and a second subset of group sets for which the significance coding mode is to be used; for each group set out of the first subset, for each coefficient group of the respective group set, identifying a first set of coded bit planes in the data stream by deriving <NUM> a first prediction for the first set of coded bit planes based on a first previously coded coefficient group, inserting <NUM> into the data stream <NUM> a first prediction residual <NUM> for correcting the first prediction so as to obtain a corrected prediction for the first set of coded bit planes, inserting <NUM> bits of the respective coefficient group within the corrected prediction for the first set of coded bit planes into the data stream; if the significance coding mode is the first mode, for each group set out of the second subset, for each coefficient group of the respective group set, identifying a second set of coded bit planes by deriving <NUM> a second prediction for the second set of coded bit planes based on a second previously coded coefficient group, and inserting <NUM> bits within the prediction for the second set of coded bit planes into the data stream; and wherein the significance coding mode being the second mode signals that, for each group set of the second subset, for each coefficient group of respective group set, coefficients of the respective coefficient group are insignificant.

According to a forty-second aspect, a method for decoding transform coefficients <NUM> from a data stream <NUM>, the transform coefficients <NUM> being grouped into coefficient groups <NUM>, the coefficient groups being grouped into group sets <NUM>, comprises: deriving from the data stream <NUM> information <NUM> which identifies a first subset of group sets for which a significance coding mode is not to be used, and a second subset of group sets for which the significance coding mode is to be used; for each group set out of the first subset, for each coefficient group of the respective group set, identifying a first set of coded bit planes by deriving <NUM> a first prediction for the first set of coded bit planes based on a first previously decoded coefficient group, correcting <NUM> the first prediction using a first prediction residual <NUM> derived from the data stream so as to obtain a corrected prediction for the first set of coded bit planes, deriving <NUM> bits of the respective coefficient group within the corrected prediction for first set of coded bit planes from the data stream at a code rate of <NUM>; for each group set of the second subset, inheriting <NUM> that for each coefficient group of respective group set, coefficients of the respective coefficient group are insignificant.

According to a forty-third aspect, a method for encoding transform coefficients into a data stream, the transform coefficients being grouped into coefficient groups, the coefficient groups being grouped into group sets, comprises: inserting into the data stream information which identifies a first subset of group sets for which the significance coding mode is not to be used, and a second subset of group sets for which the significance coding mode is to be used; for each group set out of the first subset, for each coefficient group of the respective group set, identifying a first set of coded bit planes by deriving a first prediction for the first set of coded bit planes based on a first previously coded coefficient group, insert into the data stream a first prediction residual for correcting the first prediction so as to obtain a corrected prediction for the first set of coded bit planes, inserting bits of the respective coefficient group within the corrected prediction for the first set of coded bit planes into the data stream at a code rate of <NUM>, wherein, for each group set of the second subset, for each coefficient group of respective group set, coefficients of the respective coefficient group are insignificant.

A forty-fourth aspect relates to a data stream generated by a method according to aspect <NUM> or <NUM>.

A forty-fifth aspect relates to a computer program having a program code for performing, when running on a computer, a method according to any of aspects <NUM> to <NUM>.

The inventive encoded data stream can be stored on a digital storage medium or can be transmitted on a transmission medium such as a wireless transmission medium or a wired transmission medium such as the Internet.

Claim 1:
Decoder configured to decode transform coefficients (<NUM>) from a data stream (<NUM>), the transform coefficients being grouped into coefficient groups (<NUM>), the coefficient groups (<NUM>) being grouped into group sets (<NUM>), the decoder being configured to
derive from the data stream (<NUM>) an indication (<NUM>) of a significance coding mode;
derive from the data stream (<NUM>) information (<NUM>) which identifies a first subset of group sets (<NUM>) for which a significance coding mode is not to be used, and a second subset of group sets (<NUM>) for which the significance coding mode is to be used;
for each group set out of the first subset, for each coefficient group of the respective group set,
identify a first set of coded bit planes by
deriving (<NUM>) a first prediction for the first set of coded bit planes based on a first previously decoded coefficient group,
correcting (<NUM>) the first prediction using a first prediction residual (<NUM>) derived from the data stream using variable length decoding so as to obtain a corrected prediction for the first set of coded bit planes,
deriving (<NUM>) bits of the respective coefficient group within the identified first set of coded bit planes from the data stream;
if the significance coding mode is a first mode, for each group set out of the second subset, for each coefficient group of the respective group set,
identify a second set of coded bit planes by deriving (<NUM>) a second prediction for the second set of coded bit planes based on a second previously decoded coefficient group, and
derive (<NUM>) bits of the respective coefficient group within the identified second set of coded bit planes from the data stream; and
if the significance coding mode is a second mode, for each group set of the second subset,
inherit (<NUM>) that for each coefficient group of respective group set, coefficients of the respective coefficient group are insignificant.