Abstract: Decoder for decoding a transformed representation of a sample block from a data stream. If a first coded coefficient is located inside a predetermined subarea of the transform coefficient block and if the underlying transform is within a first set of available transforms, the decoder decodes coefficients along a first coefficient scan order. If the transform is within a second set of available transforms, the decoder decodes coefficients located within the predetermined subarea along a second coefficient scan order, and infers that coefficients located outside the predetermined subarea are zero. The first coefficient scan order is so that coefficients outside the predetermined subarea are scanned between two transform coefficients located inside the predetermined subarea. The second coefficient scan order does not scan any coefficient outside the predetermined subarea between scanning the coefficients within the predetermined subarea.
Coding concepts for a transformed representation of a sample block
Description
Technical Field
Embodiments according to the invention related to Decoder for decoding a transformed representation of a sample block from a data stream, Encoder for encoding a transformed representation of a sample block into a data stream, corresponding methods, Computer programs having a program code for performing, when running on a computer, a method for decoding/encoding a transformed representation of a sample block from/into a data stream and a data stream.
Introduction
Hybrid video compression schemes, such as AVC and HEVC, rely on block-based prediction followed by transform of the prediction residual, quantization of the transform coefficients, and entropy coding of the quantization indices. The latter is also referred to as transform coefficient coding or residual coding. The following description uses the term transform also for integer approximations of transforms as implemented in practical hybrid video compression schemes.
Conventionally, a fixed transform is specified in a video coding standard for each potential block size N*N. For example, the HEVC standard specifies the usage of a DCT-II, except for intra-picture predicted 4x4 blocks, for which a DST-VI is used. Higher compression efficiency can be achieved by enabling a choice between multiple pre-defined transform types. The current draft for Versatile Video Coding (WC) specifies a set of five different horizontal and vertical transform type combinations (including the DCT-II, DST-VI I, and DCT-VIII). The bitstream includes a syntax by which the transform type selected by the encoder is signaled to the decoder. The coding of transform coefficient levels is independent of and signaled before the selected transform type. For complexity reasons, non-DCT-ll transform types are applied only to rows and columns that contain no more than 16 non-zero coefficients. In this case, the blocks to be transformed (transform blocks) can have a width and height greater than 16 but all coefficients outside the top-left 16x16 area are required to be zero. Furthermore, the transforms are applied to the complete transform block greater than 16x16 so that the resulting block of residual samples is also greater than 16x16. This way of reducing the implementation logic of transforms is further referred to as zero-out.
Furthermore, the current WC draft specifies an additional low frequency non-separabie transform (LFNST), which can be applied after the transform at the encoder and its inverse at the decoder before the inverse transform. For this LFNST multiple transform kernels can be selected at the encoder and signaled to the decoder using an LFNST index. For complexity reason, the LFNST can only be combined with the DCT-II in the current WC draft.
Background of the invention
Current state-of-the-art video coding technologies, including the WC development, specify means to signal one of multiple pre-defined transform types. The transform coefficient levels are coded before the syntax indicating the selected transform, e.g. a multiple transform selection (MTS) index.
The transform coefficient levels are coded in subblocks or coefficient groups. The subblocks are processed in using one scan pattern and the coefficient inside the subblocks are processed using a scan pattern as well. As in the current WC draft 7, both scan patterns can be a backward/reverse diagonal scan. However, other scan pattern and directions can be employed as well. Fig. 1 illustrates an example of a 32x32 transform block 104, which is subdivided into 64 4x4 subblocks 117. In this example, the subblocks 117 are processed reverse diagonal scan 115, i.e. from bottom-right 103 to top-left corner 101). Fig. 1 shows a backwards/inverse diagonal scanning of 4x4 subblocks 117 inside a 32x32 transform block 104. DCT-based transforms tend to concentrate the energy in the top left corner 101 and thus, quantized coefficient values tend to become zero in the bottom-right corner 103 of the block, i.e. the transform block 104, after quantization. To prevent coding and decoding a sequence of zeros before the first non-zero coefficient 102 in scan order 115, the position of the first (last) non-zero or significant coefficient 102 in (inverse) scan order 115 is signaled before processing the subblock. Knowing that, only the subblock 117 that contains this first significant coefficient, i.e. the first non-zero coefficient 102, and all subsequent subblocks 117 in scan order 115 are processed, as shown on the right side of Fig. 1.
Longer transforms, e.g. with 32 coefficients in one direction, require more logic and memory in implementations. As already mentioned before, this motivated the zero-out design in the current
WC draft. In this design, all transform types can be applied to 32 coefficients in each direction, but for the non-DCT-II types, the last 16 coefficients in each direction are required to be equal to 0. Fig. 2 illustrates this process where a 32x32 block, e.g. a sample block 84, of reconstructed residual samples is generated by applying a transform on a 32x32 transform block 104 where only the first 16x16 coefficients can be non-zero. Fig. 2 shows a transform coefficient level zero-out of a 32x32 transform block 104 before inverse transform 40/54.
The information of which transform is selected, e.g. an MTS index, is signaled after the transform coefficients. Consequently, the position of the first or last significant coefficient 102 is known. When this coefficient is outside the 16x16 non-zero area, i.e. the predetermined subarea 106, there is no need to signal the transform selection because the only allowed transform in this case is the DCT-II. However, in this current design, it cannot be guaranteed that all coefficients outside the 16x16 area are equal to zero. This can be seen in the example on the right-hand side in Fig. 3, where the last position, i.e. the first or last coded coefficient position 102, is located inside the 16x16 non-zero area but subsequent subblocks in scan patern 110 are outside this area. In case that these non-zero coefficients exist, an encoder constraint has to ensure that the signaled transform is the DCT-II, e.g. by always signaling an MTS index equal to 0. This produces a signaling overhead because the DCT-II is explicitly signaled although always required to be equal to 0. In the following a non-zero requirement might define that all non-zero transform coefficients are located inside the non-zero area, i.e. the predetermined subarea 106, and that all transform coefficients outside the non-zero area have to be zero. In the following two approaches are described to tackle this aspect. Fig. 3 shows on the left-hand side a modified diagonal scanning 110 of subblocks for zero-out, according to an embodiment of the invention.
When the multiple transform selection is combined with an additional transform, such as the aforementioned LFNST, the combination can also be restricted to reduce implementation logic. In the current WC draft, e.g., the LFSNT can only be combined with the DCT-II and an LFNST index, indicating whether LFNST is applied and if applied which kernel, is signaled before the MTS index. When the LFNST index indicates the use of an LFNST kernel, the MTS index is not signaled and inferred to be equal to 0, i.e. DCT-II. A simplified syntax diagram is illustrated on the left-hand side of Figure 13.
Therefore, it is desired to provide concepts for rendering picture coding and/or video coding more efficient to support choosing between multiple pre-defined transform types for a block of a picture.
Additionally, or alternatively, it is desired to reduce a bit stream and thus a signaiization cost, e.g., reducing signaling overhead.
This is achieved by the subject matter of the independent claims of the present application.
Further embodiments according to the invention are defined by the subject matter of the dependent claims of the present application.
Summary of the Invention
In accordance with a first aspect of the present invention, the inventors of the present application realized that one problem encountered when trying to enable a selection of a transform for a block of a picture stems from the fact that for some transforms, e.g., transforms within a second set of transforms, like non-DCT-ll transforms, it is required that non-zero coefficients of a transform coefficient block are only allowed/located in a predetermined subarea of the transform coefficient block. Depending on a position of a first coded coefficient position, i.e. a first non-zero coefficient, inside the predetermined subarea of the transform coefficient block, it is possible that zero coefficients outside the predetermined subarea are decoded/encoded along a coefficient scan order. The transform coefficients might be scanned according to the coefficient scan order from the first coded coefficient position onwards to a last scanning position, e.g., the coefficient in the top-left corner, i.e. a DC coefficient, or from a coefficient in the top-left corner of the transform coefficient block onwards to the first coded coefficient position, which might be understood as a last coded coefficient position in this latter case. According to the first aspect of the present application, this difficulty of decoding/encoding zero coefficients is overcome by using a different scanning order for transform coefficient blocks associated with transforms within a first set of one or more available transforms of a set of available transforms than for transform coefficient blocks associated with transforms within a second set of one or more available transforms of the set of available transforms. In case the transform coefficient block is associated with a transform within the first set of one or more available transforms, the transform coefficient block comprises non-zero coefficients outside the predetermined subarea of the transform coefficient block, and in case the transform coefficient block is associated with a transform within the second set of one or more available transforms, the transform coefficient block comprises non-zero coefficients only inside the predetermined subarea of the transform coefficient block. The inventors found, that using different coefficient scan orders dependent on a transform underlying the respective transform coefficient block is advantageous in terms of improving coding efficiency and reducing signaling
overhead. This is based on the idea that the transform can indicate whether all non-zero coefficients are located inside the predetermined subarea of the transform coefficient block or not, whereby the scan order can be chosen such that only non-zero transform coefficients are decoded/encoded along the chosen scan order. If the transform underlying the transform coefficient block is within the first set of one or more available transforms, values of the transform coefficients of the transform coefficient block which are, along the first coefficient scan order, located from the first coded coefficient position onwards to a last scanned position, are decoded/encoded and a decoder infers that transform coefficients of the transform coefficient block which are, along the first coefficient scan order, located upstream the first coded coefficient position, are zero. If the transform underlying the transform coefficient block is within the second set of one or more available transforms, values of transform coefficients of the transform coefficient block which are located within the predetermined subarea and are, along a second coefficient scan order, located from the first coded coefficient position onwards to the last scanned position, are decoded/encoded and a decoder infers that transform coefficients of the transform coefficient block which are, along the first coefficient scan order, located upstream the first coded coefficient position and transform coefficients of the transform coefficient block which are located outside the predetermined subarea are zero. Thus it can be prevented to decode/encode zero coefficients improving the coding efficiency, since less transform coefficients might be needed to scan.
Accordingly, in accordance with a first aspect of the present application, a decoder/encoder for decoding/encoding a transformed representation of a sample block from/into a data stream, is configured to decode/encode a coefficient position information from/into the data stream. The coefficient position information is indicative of a first coded coefficient position within a transform coefficient block. The first coded coefficient position might either indicate a position of a first non-zero transform coefficient in coefficient scan order or a position of a last non-zero transform coefficient in an inverse coefficient scan order. The decoder/encoder is configured to check whether the first coded coefficient position is located within a predetermined subarea of the transform coefficient block. The predetermined subarea might define a subarea of the transform coefficient block, inside which subarea transform coefficients can be non-zero and outside of which subarea all transform coefficients have to be zero for certain transforms. According to an embodiment, the transform coefficient block can comprise non-zero transform coefficients outside the predetermined subarea, in case the transform underlying the transform coefficient block is within a first set of one or more available transforms of a set of available transforms, and the
transform coefficients outside the predetermined subarea are zero, in case the transform underlying the transform coefficient block is within a second set of one or more available transforms of the set of available transforms. The predetermined subarea might consist of 16x16 transform coefficients. The predetermined subarea might be located in the top-left of the transform coefficient block. If the first coded coefficient position is located inside the predetermined subarea of the transform coefficient block, it is checked whether the transform underlying the transform coefficient block is within the first set of one or more available transforms of the set of available transforms or the second set of one or more available transforms of the set of available transforms. The decoder is configured to perform this check, using transformation information transmitted in the data stream. If the transform underlying the transform coefficient block is within the first set of one or more available transforms, the decoder/encoder is configured to decode/encode the values of the transform coefficients of the transform coefficient block which are, along a first coefficient scan order, located from the first coded coefficient position onwards to a last scanned position, wherein transform coefficients of the transform coefficient block which are, along the first coefficient scan order, located upstream the first coded coefficient position are zero. If the transform underlying the transform coefficient block is within the first set of one or more available transforms, the decoder is configured to infer that the transform coefficients of the transform coefficient block which are, along the first coefficient scan order, located upstream the first coded coefficient position are zero. If the transform underlying the transform coefficient block is within the second set of one or more available transforms, the decoder/encoder is configured to decode/encode values of transform coefficients of the transform coefficient block which are located within the predetermined subarea and are, along a second coefficient scan order, located from the first coded coefficient position onwards to the last scanned position, wherein transform coefficients of the transform coefficient block which are, along the first coefficient scan order, located upstream the first coded coefficient position and transform coefficients of the transform coefficient block which are located outside the predetermined subarea are zero. If the transform underlying the transform coefficient block is within the second set of one or more available transforms, the decoder is configured to infer that transform coefficients of the transform coefficient block which are, along the first coefficient scan order, located upstream the first coded coefficient position and transform coefficients of the transform coefficient block which are located outside the predetermined subarea are zero. The transform underlying the transform coefficient block along with the transform coefficient block defines the transformed representation. The second coefficient scan order scans the transform coefficients within the predetermined subarea without scanning any transform coefficient outside the predetermined subarea between the
transform coefficients within the predetermined subarea, and the first coefficient scan order scans the transform coefficients in a manner so that there are one or more transform coefficients outside the predetermined subarea which are scanned by the first coefficient scan order between two transform coefficients located inside the predetermined subarea.
According to an embodiment, the decoder/encoder is configured to, if the first coded coefficient position is located outside the predetermined subarea of the transform coefficient block, reduce a set of available transforms to the first set of one or more available transforms by removing from the set of available transforms the second set of one or more available transforms and determine the transform underlying the transform coefficient block out of the first set of one or more available transforms. The decoder/encoder is configured to decode/encode the values of the transform coefficients of the transform coefficient block which are, along the first coefficient scan order, located from the first coded coefficient position onwards to a last scanned position, wherein the transform coefficients of the transform coefficient block which are, along the first coefficient scan order, located upstream the first coded coefficient position are zero. The decoder is configured to infer that the transform coefficients of the transform coefficient block which are, along the first coefficient scan order, located upstream the first coded coefficient position are zero. Thus, in case the first coded coefficient position is located outside the predetermined subarea of the transform coefficient block, it is possible for the decoder to infer the transform underlying the transform coefficient block and it is not necessary for the encoder to encode transformation information related to the transform coefficient block into the data stream, whereby the bitstream can be reduced and a high coding efficiency can be achieved.
According to an embodiment, the decoder/encoder is configured to decode/encode the transformation information from/into the data stream using context-adaptive entropy decoding/encoding, e.g. context adaptive binary arithmetic coding, using a predetermined probability model, e.g., an estimated probability for a certain, e.g., LPS (least probable symbol), binary value as updated for a certain context. The decoder/encoder is configured to determine the predetermined probability model depending on where the first coded coefficient position is located within the transform coefficient block. The decoder/encoder might be configured to determine the predetermined probability model via determining the, e.g., continuously updated, context depending on where the first coded coefficient position is located within the transform coefficient block.
According to an embodiment, the decoder/encoder is configured to, in determining the predetermined probability model depending on where the first coded coefficient position is located within the transform coefficient block, set the predetermined probability model to a first probability model, e.g., first context, if the first coded coefficient position coincides with the last scanned position, set the predetermined probability model to a second probability model, e.g., second context, if the first coded coefficient position is, along the first coefficient scan order, no more than a predetermined number of transform coefficients away from the last scanned position, and set the predetermined probability model to a third probability model, e.g., third context, if the first coded coefficient position is, along the first coefficient scan order, more than the predetermined number of transform coefficients away from the last scanned position. The first and second coefficient scan orders coincide in the last scanned position and the predetermined number of transform coefficients upstream the last scanned position. In other words, up until that predetermined number, both scans are the same, or in even other words, both scans end at the last scanned position and are equal in the predetermined number of coefficients upstream the last scanned position. In other words, upstream the last scanned position up until that predetermined number, both scans are the same. The predetermined probability model might be set to the first probability model, if the transform coefficient block comprises only one non-zero transform coefficient. This single non-zero transform coefficient is located at the first coded coefficient position.
According to another embodiment, the decoder/encoder is configured to, in determining the predetermined probability model depending on where the first coded coefficient position is located within the transform coefficient block, set the predetermined probability model to a first probability model, if the first coded coefficient position is, along the first coefficient scan order, no more than a predetermined number of transform coefficients away from, or coincides with the last scanned position and set the predetermined probability model to a second probability model, if the first coded transform coefficient position is, along the first coefficient scan order, more than the predetermined number of coefficients away from the last scanned position. The first and second coefficient scan orders coincide in the last scanned position and the predetermined number of transform coefficients upstream the last scanned position.
According to an embodiment, the set of available transforms comprises one or more multi-stage transforms which correspond to a concatenation of a primary transform and a secondary transform within the predetermined subarea and consist of the primary transform outside the
predetermined subarea, and which are contained in the second set of one or more available transforms. In other words, the second set of one or more available transforms of the set of available transforms comprises the one or more multi-stage transforms. Additionally, the set of available transforms comprises a set of primary-only transforms comprising one or more first primary-only transforms out of which the first set of one or more available transforms consists, and one or more second primary-only transforms which are contained in the second set of one or more available transforms. The decoder/encoder is configured to decode/encode a secondary transform indicator from/into the data stream, the secondary transform indicator indicating whether the transform underlying the transform coefficient block is a multi-stage transform, i.e. within the second set of one or more available transforms, and which one out of the one or more multi-stage transforms, or whether the transform underlying the transform coefficient block is a primary-only transform. If the secondary transform indicator indicates that the transform underlying the transform coefficient block is a primary-only transform, the decoder/encoder is configured to decode/encode a transform indicator, e.g., a primary transform indicator, from/into the data stream which identifies the primary-only transform out of the set of primary-only transforms. Only the secondary transform indicator has to be decoded/encoded from/into the data stream in case the transform underlying the transform coefficient block is a multi-stage transform, since the secondary transform indicator already indicates the primary transform and the secondary transform. Thus, a high coding efficiency can be achieved, since the additional transform indicator might only be necessary in case the transform underlying the transform coefficient block is not a multi-stage transform.
According to an embodiment, the set of available transforms comprises a set of one or more multi-stage transforms which correspond to a concatenation of a primary transform and a secondary transform within the predetermined subarea and consist of the primary transform outside the predetermined subarea, and which are contained in the second set of one or more available transforms. Additionally, the set of available transforms comprises a set of primary-only transforms comprising one or more first primary-only transforms out of which the first set of one or more available transforms consists, and one or more second primary-only transforms which are contained in the second set of one or more available transforms. The decoder/encoder is configured to decode/encode a secondary transform indicator from/into the data stream. The secondary transform indicator indicates whether the transform underlying the transform coefficient block is a multi-stage transform, and, if yes, the secondary transform of the multi-stage transform, or whether the transform underlying the transform coefficient block is a primary-only transform. In other words, the secondary transform indicator indicates whether the transform underlying the transform coefficient block is a multi-stage transform or a primary-only transform. The decoder/encoder is configured to decode/encode a primary transform indicator from/into the data stream which identifies, in case of the secondary transform indicator indicating that the transform underlying the transform coefficient block is a primary-only transform, the primary-only transform out of the set of primary-only transforms, and, in case of the secondary transform indicator indicating that the transform underlying the transform coefficient block is a multi-stage transform, and if the set of one or more multi-stage transforms comprises more than one multi-stage transform with mutually different primary transforms, the primary transform of the multi-stage transform. Thus a high variability and flexibility in the selection of the transform underlying the transform coefficient block, especially in terms of multi-stage transforms, can be achieved, resulting in a high coding efficiency. In case all multi-stage transforms are associated with the same primary transform, i.e. the multi-stage transforms do not have mutually different primary transforms, it is not necessary to decode/encode the primary transform indicator.
According to an embodiment, the set of available transforms comprises multi-stage transforms, e.g., a set of two or more multi-stage transforms, each of which corresponds to a concatenation of a primary transform and a secondary transform within the predetermined subarea and consists of the primary transform outside the predetermined subarea, and which is contained in the second set of one or more available transforms. The second set of one or more available transforms might comprise all multi-stage transforms. Additionally, the set of available transforms comprises a set of primary-only transforms comprising a first primary-only transform, e.g., a DCT-II transform, out of which the first set of one or more available transforms consists, and to which the primary transform for all of the one or more multi-stage transforms is equal, and one or more second primary-only transforms, e.g. non-DCT-II transforms, which are contained in the second set of one or more available transforms. The decoder/encoder is configured to decode/encode a primary transform indicator from/into the data stream, the primary transform indicator indicating a first transform out of a set, e.g. the set of primary-only transforms, including the first primary-only transform and the one or more second primary-only transforms. If the first transform is the first primary-only transform, the decoder/encoder is configured to decode/encode a secondary transform indicator from/into the data stream which identifies the transform underlying the transform coefficient block out of a set including the first primary-only transform and the multi-stage transforms, wherein the transform underlying the transform coefficient block is, in case of the first transform being one of the one or more second primary-only transforms, the one second primary-only transform. In other words, if the primary transform indicator indicates that the first transform is one out of the one or more second primary-only transforms, the transform underlying the transform coefficient block is the indicated second primary-only transform, and if the primary transform indicator indicates that the first transform is the first primary-only transform, the transform underlying the transform coefficient block is, depending on the secondary transform indicator, either the first primary-only transform or a multi-stage transform corresponding to a concatenation of the first primary-only transform and a secondary transform, in the latter case, the secondary transform indicator might directly indicate/point to the transform underlying the transform coefficient block. Thus, the transform underlying the transform coefficient block can be selected and indicated in the data stream very efficiently resulting in a high coding efficiency.
According to an embodiment, the set of available transforms comprises a set of multi-stage transforms each of which corresponds to a concatenation of a primary transform and a secondary transform within the predetermined subarea and consists of the primary transform outside the predetermined subarea, and which is contained in the second set of one or more available transforms. Additionally, the set of available transforms comprises a set of primary-only transforms comprising one or more first primary-only transforms out of which the first set of one or more available transforms consists, and one or more second primary-only transforms which are contained in the second set of one or more available transforms. The decoder/encoder is configured to decode/encode a primary transform indicator from/into the data stream. The primary transform indicator indicates a first transform out of a set, e.g., out of the set of primary-only transforms, including the one or more first primary-only transforms and the one or more second primary-only transforms. If the first transform is a first primary-only transform which is equal to a primary transform of one or more of the multi-stage transforms, the decoder/encoder is configured to decode/encode a secondary transform indicator from/into the data stream which identifies the transform underlying the transform coefficient block out of a set including the first primary-only transform and the one or more multi-stage transforms whose primary transform equals the first primary-only transform. The special primary transform indicator and secondary transform indicator result in a high coding efficiency enabling, among other things, a great choice between different first primary-only transforms and between different multi-stage transforms with different primary transforms for a selection of the transform underlying the transform coefficient block. By enabling such a choice, it is possible to achieve a high compression efficiency.
According to an embodiment, the decoder/encoder is configured to perform the decoding/encoding of the primary transform indicator from/into the data stream using context-adaptive entropy decoding/encoding using a predetermined probability model. The decoder/encoder is configured to determine the predetermined probability model depending on where the first coded coefficient position is located within the transform coefficient block.
According to an embodiment, the decoder/encoder is configured to, in determining the predetermined probability model depending on where the first coded coefficient position is located within the transform coefficient block, set the predetermined probability model to a first probability model, if the first coded coefficient position coincides with the last scanned position, set the predetermined probability model to a second probability model, if the first coded coefficient position is, along the first coefficient scan order, no more than a predetermined number of transform coefficients away from the last scanned position, and set the predetermined probability model to a third probability model, if the first coded coefficient position is, along the first coefficient scan order, more than the predetermined number of transform coefficients away from the last scanned position. The first and second coefficient scan orders coincide in the last scanned position and the predetermined number of transform coefficients upstream the last scanned position.
According to an embodiment, the decoder/encoder is configured to, in determining the predetermined probability model depending on where the first coded coefficient position is located within the transform coefficient block, set the predetermined probability model to a first probability model, if the first coded coefficient position is, along the first coefficient scan order, no more than a predetermined number of transform coefficients away from, or coincides with the last scanned position, and set the predetermined probability model to a second probability model, if the first coded transform coefficient position is, along the first coefficient scan order, more than the predetermined number of coefficients away from the last scanned position. The first and second coefficient scan orders coincide in the last scanned position and the predetermined number of transform coefficients upstream the last scanned position.
According to an embodiment, the primary transform is equal for all of the one or more multi-stage transforms and is also equal to one of the one or more first primary-only transforms.
According to an embodiment, there is only one first primary-only transform.
According to an embodiment, the encoder is configured to subject the sample block to the transform underlying the transform coefficient block so as to obtain the transform coefficient block.
According to an embodiment, the decoder is configured to subject the transform coefficient block to a reverse transformation which reverses the transform underlying the transform coefficient block so as to obtain the sample block. According to an embodiment, the encoder comprises a feedback loop configured to subject the transform coefficient block to a reverse transformation which reverses the transform underlying the transform coefficient block so as to obtain the sample block.
According to an embodiment, the encoder is configured to derive a prediction residual of a prediction signal gained by intra-picture or inter-picture prediction and determine the sample block, e.g. including a quantization, to represent the prediction residual.
According to an embodiment, the decoder is configured to use the sample block to correct a prediction signal gained by intra-picture or inter-picture prediction. According to an embodiment, the encoder comprises a feedback loop configured to use the sample block to correct a prediction signal gained by intra-picture or inter-picture prediction.
In accordance with a second aspect of the present invention, the inventors of the present application realized that one problem encountered when trying to enable a selection of a transform for a block of a picture stems from the fact that for some transforms, like non-DCT-ll transforms, it is required that non-zero coefficients of a transform coefficient block are only allowed in a predetermined subarea of the transform coefficient block. Currently, a signaling overhead is produced to indicate the transform underlying the transform coefficient block, when transforms with the above described non-zero requirement can also be chosen. According to the second aspect of the present application, this difficulty is overcome by checking whether all transform coefficients of the transform coefficient block which are, along a predetermined coefficient scan order, located from a first coded coefficient position onwards to a last scanned position are, if not located within the predetermined subarea of the transform coefficient block, zero. The inventors found that it is advantageous to check whether non-zero transform coefficients are located outside the predetermined subarea, since even if the first coded coefficient position is located inside the predetermined subarea, it is still possible that non-zero transform coefficients are located along the predetermined scan order outside the predetermined subarea. This is based on the idea that the check enables to automatically identify, whether the transform underlying the transform coefficient block is a transform with the above described non-zero requirement or not. Thus it is not necessary, for each transform coefficient block, to select the transform underlying the respective transform coefficient block out of a set of all available transforms. Instead it is, with this feature, possible to reduce the set of all available transforms to the relevant transforms, whereby a high coding efficiency can be achieved. Furthermore, a high compression can be achieved, since it is not necessary to indicate by an additional syntax element whether the transform underlying the transform coefficient block is one out of transforms with the non-zero requirement or one out of transforms without the non-zero requirement.
Accordingly, in accordance with a second aspect of the present application, a decoder/encoder for decoding/encoding a transformed representation of a sample block from/into a data stream, is configured to decode/encode a coefficient position information from/into the data stream. The coefficient position information is indicative of a first coded coefficient position within a transform coefficient block. The first coded coefficient position might either indicate a position of a first non-zero transform coefficient in coefficient scan order or a position of a last non-zero transform coefficient in an inverse coefficient scan order. Furthermore, the decoder/encoder is configured to decode/encode values of transform coefficients of the transform coefficient block which are, along a predetermined coefficient scan order, located from the first coded coefficient position onwards to a last scanned position, and infer that transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located upstream the first coded coefficient position are zero. The transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position, might either comprise only transform coefficients with a value being non-zero or transform coefficients with a value being zero and transform coefficients with a value being non-zero. The decoder/encoder is configured to check whether all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position are, if not located within a predetermined subarea of the transform coefficient block, zero. The predetermined subarea might define a subarea of the transform coefficient block, inside which subarea transform coefficients can be non-zero and outside of which subarea all transform coefficients have to be zero for certain transforms. According to an embodiment, the transform coefficient block can comprise non-zero transform coefficients outside
the predetermined subarea, in case the transform underlying the transform coefficient block is within a first set of one or more available transforms of a set of available transforms, and the transform coefficients outside the predetermined subarea are zero, in case the transform underlying the transform coefficient block is within a second set of one or more available transforms of the set of available transforms. The predetermined subarea might consist of 16x16 transform coefficients. The predetermined subarea might be located in the top-left of the transform coefficient block. If all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position are, if not located within the predetermined subarea of the transform coefficient block, zero, the decoder/encoder is configured to decode/encode a transformation information from/into the data stream and identify, using the transformation information, a transform underlying the transform coefficient block out of a set of available transforms, e.g., out of the second set of one or more available transforms of the set of available transforms. If not all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position are, if not located within the predetermined subarea of the transform coefficient block, zero, the decoder/encoder is configured to reduce the set of available transforms to the first set of one or more available transforms by removing from the set of available transforms the second set of one or more available transforms and determine the transform underlying the transform coefficient block out of the first set of one or more available transforms. The transform underlying the transform coefficient block along with the transform coefficient block defines the transformed representation. The predetermined coefficient scan order scans the transform coefficients in a manner so that there are one or more transform coefficients outside the predetermined subarea which are scanned by the predetermined coefficient scan order between two transform coefficients located inside the predetermined subarea.
According to an embodiment, the decoder/encoder is configured to check whether the first coded coefficient position is located within the predetermined subarea of the transform coefficient block, and check whether all transform coefficients which are located outside the predetermined subarea of the transform coefficient block and are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position are zero. The latter check is optionally merely performed if the first coded coefficient position is located within the predetermined subarea of the transform coefficient block. In case, the first coded coefficient position is located outside the predetermined subarea of the transform coefficient block, the
decoder/encoder might be configured to infer that not all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position are, if not located within the predetermined subarea of the transform coefficient block, zero.
According to an embodiment, the decoder/encoder can comprise features and or functionalities as described with regard to the decoder/encoder according to the first aspect, if the first coded coefficient position is located within the predetermined subarea of the transform coefficient block.
According to an embodiment, the decoder/encoder is configured to perform the decoding/encoding of the transformation information from/into the data stream using context-adaptive entropy decoding/encoding using a predetermined probability model and determine the predetermined probability model depending on where the first coded coefficient position is located within the transform coefficient block.
According to an embodiment, the decoder/encoder is configured to, in determining the predetermined probability model depending on where the first coded coefficient position is located within the transform coefficient block, set the predetermined probability model to a first probability model, if the first coded coefficient position coincides with the last scanned position, set the predetermined probability model to a second probability model, if the first coded coefficient position is, along the predetermined coefficient scan order, no more than a predetermined number of transform coefficients away from the last scanned position, and set the predetermined probability model to a third probability model, if the first coded coefficient position is, along the predetermined coefficient scan order, more than the predetermined number of transform coefficients away from the last scanned position.
According to another embodiment, the decoder/encoder is configured to, in determining the predetermined probability model depending on where the first coded coefficient position is located within the transform coefficient block, set the predetermined probability model to a first probability model, if the first coded coefficient position is, along the predetermined coefficient scan order, no more than a predetermined number of transform coefficients away from, or coincides with the last scanned position, and set the predetermined probability model to a second probability model, if the first coded transform coefficient position is, along the predetermined coefficient scan order, more than the predetermined number of coefficients away from the last scanned position.
According to an embodiment, the set of available transforms comprises multi-stage transforms, e.g., a set of multi-stage transforms, each of which corresponds to a concatenation of a primary transform and a secondary transform within the predetermined subarea and consists of the primary transform outside the predetermined subarea, and which is contained in the second set of one or more available transforms. In other words, the second set of one or more available transforms of the set of available transforms comprises the two or more multi-stage transforms. Additionally, the set of available transforms comprises a set of primary-only transforms comprising a first primary-only transform out of which the first set of one or more available transforms consists, and to which the primary transform for all of the one or more multi-stage transforms is equal, and one or more second primary-only transforms which are contained in the second set of one or more available transforms. The decoder/encoder is configured to, if all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position are, if not located within the predetermined subarea of the transform coefficient block, zero,
decode/encode a secondary transform indicator from/into the data stream, the secondary transform indicator indicating whether the transform underlying the transform coefficient block is a multi-stage transform, and which one out of the one or more multi-stage transforms, or whether the transform underlying the transform coefficient block is a primary-only transform, i.e. whether same belongs to the set of primary-only transforms or to the set of multi-stage transforms, and check whether the secondary transform indicator indicates that the transform underlying the transform coefficient block is a primary-only transform. If the secondary transform indicator indicates that the transform underlying the transform coefficient block is a primary-only transform, the decoder/encoder is configured to decode/encode a transform indicator, e.g., a primary transform indicator, from/into the data stream which identifies the primary-only transform out of the set of primary-only transforms.
If not all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position are, if not located within the predetermined subarea of the transform coefficient block, zero, the transform underlying the transform coefficient block is the first primary-only transform. With this embodiment, it is possible to infer that the transform underlying the transform coefficient block is the first primary-only transform, if the transform coefficient block comprises non-zero transform coefficients outside the predetermined subarea. Thus, for such transform coefficient blocks, the data stream does not need to comprise transformation information, whereby a high compression can be achieved. Furthermore, it is possible to explicitly indicate a multi-stage transform as the transform underlying the transform coefficient block using the secondary transform indicator and by using additionally to the secondary transform indicator the primary transform indicator, it is possible to unambiguously indicate a primary-only transform as the transform underlying the transform coefficient block. It is to be noted that, with this special transform selection, it is possible to also indicate the first primary-only transform as the transform underlying the transform coefficient block for blocks with all non-zero transform coefficients inside the predetermined subarea, whereby a great choice of transforms is provided achieving a high compression efficiency.
According to an embodiment, the set of available transforms comprises multi-stage transforms, e.g., a set of multi-stage transforms, each of which corresponds to a concatenation of a primary transform and a secondary transform within the predetermined subarea and consists of the primary transform outside the predetermined subarea, and which is contained in the second set of one or more available transforms. Additionally, the set of available transforms comprises a set of primary-only transforms comprising a first primary-only transform out of which the first set of one or more available transforms consists, and to which the primary transform for all of the one or more multi-stage transforms is equal, and one or more second primary-only transforms which are contained in the second set of one or more available transforms. The decoder/encoder is configured to, if all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position are, if not located within the predetermined subarea of the transform coefficient block, zero,
decode/encode a primary transform indicator from/into the data stream, the primary transform indicator indicating a first transform out of a set, e.g., the set of primary-only transforms, including the first primary-only transform and the one or more second primary-only transforms,
if the first transform is the first primary-only transform, decode/encode a secondary transform indicator from/into the data stream which identifies the transform underlying the transform coefficient block out of a set including the first primary-only transform and the multi-stage transforms, and
in case of the first transform being one of the one or more second primary-only transforms, the transform underlying the transform coefficient block is, the one second primary-only transform.
If not all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position are, if not located within the predetermined subarea of the transform coefficient block, zero, the transform underlying the transform coefficient block is the first primary-only transform.
Claims
1. Decoder (20) for decoding a transformed representation of a sample block (84) from a data stream (14), configured to
decode a coefficient position information (100) from the data stream, wherein the coefficient position information is indicative of a first coded coefficient position (102) within a transform coefficient block (104),
check (107) whether the first coded coefficient position (102) is located within a predetermined subarea (106) of the transform coefficient block (104),
if the first coded coefficient position (102) is located inside the predetermined subarea (106) of the transform coefficient block (104),
check (111), using transformation information (108) transmitted in the data stream, whether a transform (131) underlying the transform coefficient block (104) is within a first set (132) of one or more available transforms of a set (130) of available transforms or a second set (134) of one or more available transforms of the set (130) of available transforms,
if the transform (131) underlying the transform coefficient block (104) is within the first set (132) of one or more available transforms, decode (109) the values of the transform coefficients of the transform coefficient block (104) which are, along the first coefficient scan order (110), located from the first coded coefficient position (102) onwards to a last scanned position (101), and infer that transform coefficients (112) of the transform coefficient block (104) which are, along the first coefficient scan order (110), located upstream the first coded coefficient position (102) are zero,
if the transform (131) underlying the transform coefficient block (104) is within the second set (134) of one or more available transforms, decode (113) values of transform coefficients of the transform coefficient block (104) which are located within the predetermined subarea (106) and are, along a second coefficient scan order (114), located from the first coded coefficient position (102) onwards to the last scanned position (101), and infer that transform coefficients (116) of the transform coefficient block (104) which are, along the first coefficient scan order (110), located upstream the first coded coefficient position (102) and transform coefficients of the transform coefficient block (104) which are located outside the predetermined subarea (106) are zero,
wherein the transform (131) underlying the transform coefficient block (104) along with the transform coefficient block (104) defines the transformed representation, and
wherein the second coefficient scan order (114) scans the transform coefficients within the predetermined subarea (106) without scanning any transform coefficient (118) outside the predetermined subarea (106) between the transform coefficients within the predetermined subarea (106), and the first coefficient scan order (110) scans the transform coefficients in a manner so that there are one or more transform coefficients (118) outside the predetermined subarea (106) which are scanned by the first coefficient scan order (110) between two transform coefficients (120) located inside the predetermined subarea (106).
2. Decoder (20) of claim 1 , configured to
if the first coded coefficient position (102) is located outside the predetermined subarea (106) of the transform coefficient block (104),
reduce a set (130) of available transforms to the first set (132) of one or more available transforms by removing from the set (130) of available transforms the second set (134) of one or more available transforms and determine the transform (131) underlying the transform coefficient block (104) out of the first set (132) of one or more available transforms,
decode (109) the values of the transform coefficients of the transform coefficient block (104) which are, along the first coefficient scan order (110), located from the first coded coefficient position (102) onwards to a last scanned position (101), and infer that the transform coefficients of the transform coefficient block (104) which are, along the first coefficient scan order, located upstream the first coded coefficient position (102) are zero.
3. Decoder (20) of claim 1 or 2, configured to
decode the transformation information (108) from the data stream using context-adaptive entropy decoding (230) using a predetermined probability model,
determine the predetermined probability model (232) depending on where the first coded coefficient position (102) is located within the transform coefficient block (104).
4. Decoder (20) of claim 3, configured to
in determining the predetermined probability model (232) depending on where the first coded coefficient position (102) is located within the transform coefficient block (104),
set the predetermined probability model (232) to a first probability model (236i), if the first coded coefficient position (102) coincides with the last scanned position (101),
set the predetermined probability model (232) to a second probability model (2362), if the first coded coefficient position (102) is, along the first coefficient scan order (110), no more than a predetermined number (240) of transform coefficients away from the last scanned position (101),
set the predetermined probability model (232) to a third probability model (2363), if the first coded coefficient position (102) is, along the first coefficient scan order, more than the predetermined number (240) of transform coefficients away from the last scanned position (101),
wherein the first and second coefficient scan orders (110, 114) coincide in the last scanned position (101) and the predetermined number (240) of transform coefficients (122) upstream the last scanned position (101).
5. Decoder (20) of claim 3, configured to
In determining the predetermined probability model (232) depending on where the first coded coefficient position (102) is located within the transform coefficient block (104),
set the predetermined probability model (232) to a first probability model (238i), if the first coded coefficient position (102) is, along the first coefficient scan order (110), no more than a predetermined number (240) of transform coefficients away from, or coincides with the last scanned position (101),
set the predetermined probability model (232) to a second probability model (2382), if the first coded transform coefficient position is, along the first coefficient scan order, more than the predetermined number (240) of coefficients away from the last scanned position (101), wherein the first and second coefficient scan orders coincide in the last scanned position (101) and the predetermined number (240) of transform coefficients upstream the last scanned position (101).
6. Decoder (20) of any of the previous claims,
wherein the set (130) of available transforms comprises
one or more multi-stage transforms (136) which correspond to a concatenation of a primary transform and a secondary transform within the predetermined subarea (106) and consist of the primary transform outside the predetermined subarea, and which are contained in the second set (134) of one or more available transforms, and
a set (138) of primary-only transforms comprising one or more first primary-only transforms out of which the first set (132) of one or more available transforms consists,
and one or more second primary-only transforms which are contained in the second set (134) of one or more available transforms, and
wherein the decoder (20) is configured to
decode a secondary transform indicator (124) from the data stream, the secondary transform indicator (124) indicating whether the transform (131) underlying the transform coefficient block (104) is a multi-stage transform, and which one out of the one or more multi-stage transforms, or whether the transform (131) underlying the transform coefficient block is a primary-only transform,
if the secondary transform indicator (124) indicates that the transform (131) underlying the transform coefficient block is a primary-only transform, decode a transform indicator (126) from the data stream which identifies the primary-only transform out of the set (138) of primary-only transforms.
7. Decoder (20) of any of the previous claims,
wherein the set (130) of available transforms comprises
a set (136) of one or more multi-stage transforms which correspond to a concatenation of a primary transform and a secondary transform within the predetermined subarea (106) and consist of the primary transform outside the predetermined subarea, and which are contained in the second set (134) of one or more available transforms, and
a set (138) of primary-only transforms comprising one or more first primary-only transforms out of which the first set (132) of one or more available transforms consists, and one or more second primary-only transforms which are contained in the second set (134) of one or more available transforms, and
wherein the decoder (20) is configured to
decode a secondary transform indicator (124) from the data stream, the secondary transform indicator (124) indicating whether the transform (131) underlying the transform coefficient block (104) is a multi-stage transform, and, if yes, the secondary transform of the multi-stage transform, or whether the transform (131) underlying the transform coefficient block is a primary-only transform,
decode a primary transform indicator (126) from the data stream which identifies, in case of the secondary transform indicator (124) indicating that the transform underlying the transform coefficient block is a primary-only transform, the primary-only transform out of the set (138) of primary-only transforms, and, in case of the secondary transform indicator (124) indicating that the transform underlying the transform coefficient block is a multi- stage transform, and if the set (136) of one or more multi-stage transforms comprises more than one multi-stage transform with mutually different primary transforms, the primary transform of the multi-stage transform.
8. Decoder (20) of any of the previous claims,
wherein the set (130) of available transforms comprises
multi-stage transforms (136) each of which corresponds to a concatenation of a primary transform and a secondary transform within the predetermined subarea (106) and consists of the primary transform outside the predetermined subarea, and which is contained in the second set (134) of one or more available transforms, and
a set (138) of primary-only transforms comprising a first primary-only transform out of which the first set (132) of one or more available transforms consists, and to which the primary transform for all of the one or more multi-stage transforms (136) is equal, and one or more second primary-only transforms which are contained in the second set (134) of one or more available transforms, and
wherein the decoder (20) is configured to
decode a primary transform indicator (126) from the data stream, the primary transform indicator (126) indicating a first transform out of a set (138) including the first primary-only transform and the one or more second primary-only transforms,
if the first transform is the first primary-only transform, decode a secondary transform indicator (124) from the data stream which identifies the transform (131) underlying the transform coefficient block (104) out of a set including the first primary-only transform and the multi-stage transforms, wherein the transform underlying the transform coefficient block is, in case of the first transform being one of the one or more second primary-only transforms, the one second primary-only transform.
9. Decoder (20) of any of the previous claims,
wherein the set (130) of available transforms comprises
a set (136) of multi-stage transforms each of which corresponds to a concatenation of a primary transform and a secondary transform within the predetermined subarea (106) and consists of the primary transform outside the predetermined subarea, and which is contained in the second set (134) of one or more available transforms, and
a set (138) of primary-only transforms comprising one or more first primary-only transforms out of which the first set (132) of one or more available transforms consists, and one or more second primary-only transforms which are contained in the second set (134) of one or more available transforms, and
wherein the decoder (20) is configured to
decode a primary transform indicator (126) from the data stream, the primary transform indicator (126) indicating a first transform out of a set (138) including the one or more first primary-only transforms and the one or more second primary-only transforms, if the first transform is a first primary-only transform which is equal to a primary transform of one or more of the multi-stage transforms, decode a secondary transform indicator (124) from the data stream which identifies the transform (131) underlying the transform coefficient block (104) out of a set including the first primary-only transform and the one or more multi-stage transforms whose primary transform equals the first primary-only transform.
10. Decoder (20) of claim 8 or 9, configured to
perform the decoding of the primary transform indicator (126) from the data stream using context-adaptive entropy decoding using a predetermined probability mode!,
determine the predetermined probability model depending on where the first coded coefficient position (102) is located within the transform coefficient block (104).
11 . Decoder (20) of claim 10, configured to
in determining the predetermined probability model depending on where the first coded coefficient position (102) is located within the transform coefficient block (104),
set the predetermined probability model to a first probability model (236i), if the first coded coefficient position (102) coincides with the last scanned position (101),
set the predetermined probability model to a second probability model (2362), if the first coded coefficient position (102) is, along the first coefficient scan order (110), no more than a predetermined number (240) of transform coefficients away from the last scanned position,
set the predetermined probability model to a third probability model (2363), if the first coded coefficient position (102) is, along the first coefficient scan order, more than the
predetermined number (240) of transform coefficients away from the last scanned position,
wherein the first and second coefficient scan orders (110, 114) coincide in the last scanned position (101) and the predetermined number (240) of transform coefficients (122) upstream the last scanned position (101).
12. Decoder (20) of claim 10, configured to
In determining the predetermined probability model depending on where the first coded coefficient position (102) is located within the transform coefficient block (104),
set the predetermined probability model to a first probability model (238i), if the first coded coefficient position (102) is, along the first coefficient scan order (110), no more than a predetermined number (240) of transform coefficients away from, or coincides with the last scanned position (101),
set the predetermined probability model to a second probability model (2382), if the first coded transform coefficient position is, along the first coefficient scan order, more than the predetermined number (240) of coefficients away from the last scanned position, wherein the first and second coefficient scan orders coincide in the last scanned position and the predetermined number (240) of transform coefficients upstream the last scanned position.
13. Decoder (20) of any of claims 6 to 12,
wherein the primary transform is equal for all of the one or more multi-stage transforms and is also equal to one of the one or more first primary-only transforms.
14. Decoder (20) of any of claims 6 to 13,
wherein there is only one first primary-only transform.
15. Decoder (20) of any of the previous claims 1 to 14,
configured to subject the transform coefficient block (104) to a reverse transformation which reverses the transform (131) underlying the transform coefficient block so as to obtain the sample block.
16. Decoder (20) of any of the previous claims 1 to 15, configured to use the sample block to correct a prediction signal gained by intra-picture or inter-picture prediction.
17. Decoder (20) for decoding a transformed representation of a sample block (84) from a data stream (14), configured to
decode a coefficient position information (150) from the data stream (14), wherein the coefficient position information (150) is indicative of a first coded coefficient position (102) within a transform coefficient block (104),
decode values of transform coefficients of the transform coefficient block (104) which are, along a predetermined coefficient scan order (110), located from the first coded coefficient position (102) onwards to a last scanned position (101), and infer that transform coefficients (112) of the transform coefficient block (104) which are, along the predetermined coefficient scan order, located upstream the first coded coefficient position (102) are zero,
check (152) whether all transform coefficients of the transform coefficient block (104) which are, along the predetermined coefficient scan order (110), located from the first coded coefficient position (102) onwards to the last scanned position (101 ) are, if not located within a predetermined subarea (106) of the transform coefficient block (104), zero,
if all transform coefficients of the transform coefficient block (104) which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position (101) are, if not located within the predetermined subarea of the transform coefficient block (104), zero,
decode a transformation information (154) from the data stream and identify, using the transformation information, a transform (131) underlying the transform coefficient block (104) out of a set (130; 138) of available transforms,
if not ail transform coefficients of the transform coefficient block (104) which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position (101) are, if not located within the predetermined subarea of the transform coefficient block (104), zero,
reduce the set (130; 138) of available transforms to a first set (132) of one or more available transforms by removing from the set (130) of available transforms a second set (134) of one or more available transforms and determine the transform (131) underlying the transform coefficient block (104) out of the first set (132) of one or more available transforms,
wherein the transform (131) underlying the transform coefficient block (104) along with the transform coefficient block (104) defines the transformed representation,
wherein the predetermined coefficient scan order (110) scans the transform coefficients in a manner so that there are one or more transform coefficients (118) outside the predetermined
subarea (106) which are scanned by the predetermined coefficient scan order (110) between two transform coefficients (120) located inside the predetermined subarea (106).
18. Decoder (20) of claim 17, configured to
check (152a) whether the first coded coefficient position (102) is located within the predetermined subarea (106) of the transform coefficient block (104), and
check (152b) whether all transform coefficients (118) which are located outside the predetermined subarea (106) of the transform coefficient block (104) and are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position (101) are zero.
19. Decoder (20) of claim 17 or 18, configured to
perform the decoding of the transformation information (154) from the data stream using context-adaptive entropy decoding (230) using a predetermined probability model (232), determine the predetermined probability model (232) depending on where the first coded coefficient position (102) is located within the transform coefficient block (104).
20. Decoder (20) of claim 19, configured to
in determining the predetermined probability model (232) depending on where the first coded coefficient position (102) is located within the transform coefficient block (104),
set the predetermined probability model (232) to a first probability model (236i), if the first coded coefficient position (102) coincides with the last scanned position (101), set the predetermined probability model (232) to a second probability model (2362), if the first coded coefficient position is, along the predetermined coefficient scan order, no more than a predetermined number (240) of transform coefficients away from the last scanned position,
set the predetermined probability model (232) to a third probability model (2363), if the first coded coefficient position is, along the predetermined coefficient scan order, more than the predetermined number (240) of transform coefficients away from the last scanned position.
21 . Decoder (20) of claim 19, configured to
In determining the predetermined probability model (232) depending on where the first coded coefficient position (102) is located within the transform coefficient block (104),
set the predetermined probability model (232) to a first probability model (238i), if the first coded coefficient position is, along the predetermined coefficient scan order, no more than a predetermined number (240) of transform coefficients away from, or coincides with the last scanned position (101),
set the predetermined probability model (232) to a second probability model (2382), if the first coded transform coefficient position is, along the predetermined coefficient scan order, more than the predetermined number (240) of coefficients away from the last scanned position.
22. Decoder (20) of any of the previous claims,
Wherein the set (130) of available transforms comprises
multi-stage transforms (136) each of which corresponds to a concatenation of a primary transform and a secondary transform within the predetermined subarea (106) and consists of the primary transform outside the predetermined subarea, and which is contained in the second set (134) of one or more available transforms, and
a set (138) of primary-only transforms comprising a first primary-only transform out of which the first set (132) of one or more available transforms consists, and to which the primary transform for all of the one or more multi-stage transforms (136) is equal, and one or more second primary-only transforms which are contained in the second set (134) of one or more available transforms, and
wherein the decoder (20) is configured to
if all transform coefficients of the transform coefficient block (104) which are, along the predetermined coefficient scan order, located from the first coded coefficient position (102) onwards to the last scanned position (101) are, if not located within the predetermined subarea (106) of the transform coefficient block, zero,
decode a secondary transform indicator (156) from the data stream, the secondary transform indicator (156) indicating whether the transform (131) underlying the transform coefficient block is a multi-stage transform, and which one out of the one or more multi-stage transforms, or whether the transform (131) underlying the transform coefficient block is a primary-only transform,
check (158) whether the secondary transform indicator (156) indicates that the transform (131) underlying the transform coefficient block is a primary-only transform,
if the secondary transform indicator (156) indicates that the transform (131) underlying the transform coefficient block is a primary-only transform, decode a transform indicator (160) from the data stream which identifies the primary-only transform out of the set (138) of primary-only transforms, wherein, if not all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position (102) onwards to the last scanned position (101) are, if not located within the predetermined subarea of the transform coefficient block, zero, the transform (131) underlying the transform coefficient block is the first primary-only transform.
23. Decoder (20) of any of the previous claims,
Wherein the set (130) of available transforms comprises
multi-stage transforms (136) each of which corresponds to a concatenation of a primary transform and a secondary transform within the predetermined subarea (106) and consists of the primary transform outside the predetermined subarea, and which is contained in the second set (134) of one or more available transforms, and
a set (138) of primary-only transforms comprising a first primary-only transform out of which the first set (132) of one or more available transforms consists, and to which the primary transform for all of the one or more multi-stage transforms (136) is equal, and one or more second primary-only transforms which are contained in the second set (134) of one or more available transforms, and
wherein the decoder (20) is configured to
if all transform coefficients of the transform coefficient block (104) which are, along the predetermined coefficient scan order, located from the first coded coefficient position (102) onwards to the last scanned position (101) are, if not located within the predetermined subarea (106) of the transform coefficient block, zero,
decode a primary transform indicator (160) from the data stream, the primary transform indicator (160) indicating a first transform out of a set (138) including the first primary-only transform and the one or more second primary-only transforms, if the first transform is the first primary-only transform, decode a secondary transform indicator (156) from the data stream which identifies the transform (131) underlying the transform coefficient block out of a set including the first primary- only transform and the multi-stage transforms,
wherein the transform (131) underlying the transform coefficient block is, in case of the first transform being one of the one or more second primary-only transforms, the one second primary-only transform,
wherein, if not all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position (102) onwards to the last scanned position (101) are, if not located within the predetermined subarea (106) of the transform coefficient block, zero, the transform (131) underlying the transform coefficient block is the first primary-only transform.
24. Decoder (20) of claim 22 or 23,
wherein the primary transform is equal for all of the one or more multi-stage transforms and is also equal to one of the one or more first primary-only transforms.
25. Decoder (20) of 22 or 24,
wherein there is only one first primary-only transform.
26. Decoder (20) of any of the previous claims 17 to 25,
configured to subject the transform coefficient block (104) to a reverse transformation which reverses the transform (131) underlying the transform coefficient block so as to obtain the sample block.
27. Decoder (20) of any of the previous claims 17 to 26
configured to use the sample block to correct a prediction signal gained by intra-picture or inter-picture prediction.
28. Encoder (10) for encoding a transformed representation of a sample block (84) into a data stream (14), configured to
encode a coefficient position information (100) into the data stream, wherein the coefficient position information is indicative of a first coded coefficient position (102) within a transform coefficient block (104),
check (107) whether the first coded coefficient position (102) is located within a predetermined subarea (106) of the transform coefficient block (104),
if the first coded coefficient position (102) is located inside the predetermined subarea (106) of the transform coefficient block (104),
check (111) whether a transform (131) underlying the transform coefficient block (104) is within a first set (132) of one or more available transforms of a set (130) of available transforms or a second set (134) of one or more available transforms of the set (130) of available transforms,
if the transform (131) underlying the transform coefficient block (104) is within the first set (132) of one or more available transforms, encode (109) the values of the transform coefficients of the transform coefficient block (104) which are, along the first coefficient scan order (110), located from the first coded coefficient position onwards to a last scanned position (101), wherein transform coefficients (112) of the transform coefficient block (104) which are, along the first coefficient scan order (110), located upstream the first coded coefficient position are zero,
if the transform (131) underlying the transform coefficient block (104) is within the second set (134) of one or more available transforms, encode (113) values of transform coefficients of the transform coefficient block (104) which are located within the predetermined subarea (106) and are, along a second coefficient scan order (114), located from the first coded coefficient position onwards to the last scanned position (101), wherein transform coefficients (116) of the transform coefficient block (104) which are, along the first coefficient scan order (110), located upstream the first coded coefficient position and transform coefficients of the transform coefficient block (104) which are located outside the predetermined subarea (106) are zero,
wherein the transform (131) underlying the transform coefficient block (104) along with the transform coefficient block (104) defines the transformed representation, and
wherein the second coefficient scan order (114) scans the transform coefficients within the predetermined subarea (106) without scanning any transform coefficient outside the predetermined subarea between the transform coefficients within the predetermined subarea
(106), and the first coefficient scan order (110) scans the transform coefficients in a manner so that there are one or more transform coefficients (118) outside the predetermined subarea (106) which are scanned by the first coefficient scan order (110) between two transform coefficients (120) located inside the predetermined subarea (106).
29. Encoder (10) of claim 28, configured to
if the first coded coefficient position (102) is located outside the predetermined subarea (106) of the transform coefficient block (104),
reduce a set (130) of available transforms to the first set (132) of one or more available transforms by removing from the set (130) of available transforms the second set (134) of one or more available transforms and determine the transform (131) underlying the transform coefficient block out of the first set (132) of one or more available transforms, encode (109) the values of the transform coefficients of the transform coefficient block which are, along the first coefficient scan order (110), located from the first coded coefficient position onwards to a last scanned position (101), wherein the transform coefficients of the transform coefficient block which are, along the first coefficient scan order, located upstream the first coded coefficient position are zero.
30. Encoder (10) of claim 28 or 29, configured to
encode the transformation information (108) into the data stream using context-adaptive entropy encoding (230) using a predetermined probability model (232),
determine the predetermined probability model (232) depending on where the first coded coefficient position (102) is located within the transform coefficient block (104).
31 . Encoder (10) of claim 30, configured to
in determining the predetermined probability model (232) depending on where the first coded coefficient position (102) is located within the transform coefficient block (104),
set the predetermined probability model (232) to a first probability model (236i), if the first coded coefficient position (102) coincides with the last scanned position (101), set the predetermined probability model (232) to a second probability model (2362), if the first coded coefficient position is, along the first coefficient scan order (110), no more than a predetermined number (240) of transform coefficients away from the last scanned position (101),
set the predetermined probability model (232) to a third probability model (2363), if the first coded coefficient position is, along the first coefficient scan order, more than the predetermined number (240) of transform coefficients away from the last scanned position,
wherein the first and second coefficient scan orders (110, 114) coincide in the last scanned position (101) and the predetermined number (240) of transform coefficients (122) upstream the last scanned position (101).
32. Encoder (10) of claim 30, configured to
in determining the predetermined probability model (232) depending on where the first coded coefficient position (102) is located within the transform coefficient block (104),
set the predetermined probability model (232) to a first probability model (238i), if the first coded coefficient position is, along the first coefficient scan order (110), no more than a predetermined number (240) of transform coefficients away from, or coincides with the last scanned position (101),
set the predetermined probability model (232) to a second probability model (2382), if the first coded transform coefficient position is, along the first coefficient scan order, more than the predetermined number (240) of coefficients away from the last scanned position, wherein the first and second coefficient scan orders coincide in the last scanned position and the predetermined number (240) of transform coefficients upstream the last scanned position.
33. Encoder (10) of any of the previous claims,
wherein the set (130) of available transforms comprises
one or more multi-stage transforms (136) which correspond to a concatenation of a primary transform and a secondary transform within the predetermined subarea (106) and consist of the primary transform outside the predetermined subarea, and which are contained in the second set (134) of one or more available transforms, and
a set (138) of primary-only transforms comprising one or more first primary-only transforms out of which the first set (132) of one or more available transforms consists, and one or more second primary-only transforms which are contained in the second set (134) of one or more available transforms, and
wherein the encoder (10) is configured to
encode a secondary transform indicator (124) into the data stream, the secondary transform indicator (124) indicating whether the transform (131) underlying the transform coefficient block (104) is a multi-stage transform, and which one out of the one or more multi-stage transforms, or whether the transform (131 ) underlying the transform coefficient block is a primary-only transform,
if the secondary transform indicator (124) indicates that the transform underlying the transform coefficient block is a primary-only transform, encode a transform indicator (126) into the data stream which identifies the primary-only transform out of the set (138) of primary-only transforms.
34. Encoder (10) of any of the previous claims,
wherein the set (130) of available transforms comprises
a set (136) of one or more multi-stage transforms which correspond to a concatenation of a primary transform and a secondary transform within the predetermined subarea (106) and consist of the primary transform outside the predetermined subarea, and which are contained in the second set (134) of one or more available transforms, and
a set (138) of primary-only transforms comprising one or more first primary-only transforms out of which the first set (132) of one or more available transforms consists, and one or more second primary-only transforms which are contained in the second set (134) of one or more available transforms, and
wherein the encoder (10) is configured to
encode a secondary transform indicator (124) into the data stream, the secondary transform indicator (124) indicating whether the transform (131) underlying the transform coefficient block (104) is a multi-stage transform, and, if yes, the secondary transform of the multi-stage transform, or whether the transform underlying the transform coefficient block (104) is a primary-only transform,
encode a primary transform indicator (126) into the data stream which identifies, in case of the secondary transform indicator (124) indicating that the transform underlying the transform coefficient block (104) is a primary-only transform, the primary-only transform out of the set (138) of primary-only transforms, and, in case of the secondary transform indicator (124) indicating that the transform underlying the transform coefficient block is a multi-stage transform, and if the set (136) of one or more multi-stage transforms comprises more than one multi-stage transform with mutually different primary transforms, the primary transform of the multi-stage transform.
35. Encoder (10) of any of the previous claims,
wherein the set (130) of available transforms comprises
multi-stage transforms (136) each of which corresponds to a concatenation of a primary transform and a secondary transform within the predetermined subarea (106) and consists of the primary transform outside the predetermined subarea, and which is contained in the second set (134) of one or more available transforms, and
a set (138) of primary-only transforms comprising a first primary-only transform out of which the first set (132) of one or more available transforms consists, and to which the primary transform for ail of the one or more multi-stage transforms (136) is equal, and one or more second primary-only transforms which are contained in the second set (134) of one or more available transforms, and
wherein the encoder (10) is configured to
encode a primary transform indicator (126) into the data stream, the primary transform indicator (126) indicating a first transform out of a set (138) including the first primary-only transform and the one or more second primary-only transforms,
if the first transform is the first primary-only transform, encode a secondary transform indicator (124) into the data stream which identifies the transform (131) underlying the transform coefficient block (104) out of a set (138) including the first primary-only transform and the multi-stage transforms, wherein the transform underlying the transform coefficient block is, in case of the first transform being one of the one or more second primary-only transforms, the one second primary-only transform.
36. Encoder (10) of any of the previous claims,
wherein the set (130) of available transforms comprises
a set (136) of multi-stage transforms each of which corresponds to a concatenation of a primary transform and a secondary transform within the predetermined subarea (106) and consists of the primary transform outside the predetermined subarea, and which is contained in the second set (134) of one or more available transforms, and
a set (138) of primary-only transforms comprising one or more first primary-only transforms out of which the first set (132) of one or more available transforms consists,
and one or more second primary-only transforms which are contained in the second set (134) of one or more available transforms, and
wherein the encoder (10) is configured to
encode a primary transform indicator (126) into the data stream, the primary transform indicator (126) indicating a first transform out of a set (138) including the one or more first primary-only transforms and the one or more second primary-only transforms, if the first transform is a first primary-only transform which is equal to a primary transform of one or more of the multi-stage transforms, encode a secondary transform indicator (124) into the data stream which identifies the transform (131) underlying the transform coefficient block (104) out of a set including the first primary-only transform and the one or more multi-stage transforms whose primary transform equals the first primary-only transform.
37. Encoder (10) of claim 35 or 36, configured to
perform the encoding of the primary transform indicator (126) into the data stream using context-adaptive entropy encoding using a predetermined probability model,
determine the predetermined probability model depending on where the first coded coefficient position (102) is located within the transform coefficient block (104).
38. Encoder (10) of claim 37, configured to
in determining the predetermined probability model depending on where the first coded coefficient position (102) is located within the transform coefficient block (104),
set the predetermined probability model to a first probability model (236i), if the first coded coefficient position (102) coincides with the last scanned position (101),
set the predetermined probability model to a second probability model (2362), if the first coded coefficient position is, along the first coefficient scan order (110), no more than a predetermined number (240) of transform coefficients away from the last scanned position,
set the predetermined probability model to a third probability model (2363), if the first coded coefficient position is, along the first coefficient scan order, more than the predetermined number (240) of transform coefficients away from the last scanned position,
wherein the first and second coefficient scan orders (110, 114) coincide in the last scanned position (101) and the predetermined number (240) of transform coefficients (122) upstream the last scanned position (101).
39. Encoder (10) of claim 37, configured to
in determining the predetermined probability model depending on where the first coded coefficient position (102) is located within the transform coefficient block (104),
set the predetermined probability model to a first probability model (2381), if the first coded coefficient position is, along the first coefficient scan order (110), no more than a predetermined number (240) of transform coefficients away from, or coincides with the last scanned position (101),
set the predetermined probability model to a second probability model (2382), if the first coded transform coefficient position is, along the first coefficient scan order, more than the predetermined number (240) of coefficients away from the last scanned position, wherein the first and second coefficient scan orders coincide in the last scanned position and the predetermined number (240) of transform coefficients upstream the last scanned position.
40. Encoder (10) of any of claims 33 to 39,
wherein the primary transform is equal for all of the one or more multi-stage transforms and is also equal to one of the one or more first primary-only transforms.
41. Encoder (10) of any of claims 33 to 40,
wherein there is only one first primary-only transform.
42. Encoder (10) of any of the previous claims 28 to 41 ,
comprising a feedback loop configured to subject the transform coefficient block (104) to a reverse transformation which reverses the transform (131) underlying the transform coefficient block so as to obtain the sample block.
43. Encoder (10) of any of the previous claims 28 to 42,
configured to subject the sample block to the transform (131) underlying the transform coefficient block (104) so as to obtain the transform coefficient block.
44. Encoder (10) of any of the previous claims 28 to 43,
comprising a feedback loop configured to use the sample block to correct a prediction signal gained by intra-picture or inter-picture prediction.
45. Encoder (10) of any of the previous claims 28 to 44,
configured to derive a prediction residual of a prediction signal gained by intra-picture or inter-picture prediction and determine the sample block to represent the prediction residual.
46. Encoder (10) for encoding a transformed representation of a sample block (84) into a data stream (14), configured to
encode a coefficient position information (150) into the data stream (14), wherein the coefficient position information (150) is indicative of a first coded coefficient position (102) within a transform coefficient block (104),
encode values of transform coefficients of the transform coefficient block (104) which are, along a predetermined coefficient scan order (110), located from the first coded coefficient position (102) onwards to a last scanned position (101), wherein transform coefficients (112) of the transform coefficient block (104) which are, along the predetermined coefficient scan order, located upstream the first coded coefficient position are zero,
check (152) whether ail transform coefficients of the transform coefficient block (104) which are, along the predetermined coefficient scan order (110), located from the first coded coefficient position onwards to the last scanned position (101) are, if not located within a predetermined subarea (106) of the transform coefficient block (104), zero,
if ail transform coefficients of the transform coefficient block (104) which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position (101) are, if not located within the predetermined subarea (106) of the transform coefficient block (104), zero,
encode a transformation information (154) into the data stream and identify, using the transformation information, a transform (131) underlying the transform coefficient block (104) out of a set (130; 138) of available transforms,
if not ail transform coefficients of the transform coefficient block (104) which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position (101) are, if not located within the predetermined subarea (106) of the transform coefficient block (104), zero,
reduce the set (130; 138) of available transforms to a first set (132) of one or more available transforms by removing from the set (130) of available transforms a second set (134) of one or more available transforms and determine the transform (131) underlying the transform coefficient block (104) out of the first set (132) of one or more available transforms,
wherein the transform (131) underlying the transform coefficient block (104) along with the transform coefficient block (104) defines the transformed representation,
wherein the predetermined coefficient scan order (110) scans the transform coefficients in a manner so that there are one or more transform coefficients (118) outside the predetermined
subarea (106) which are scanned by the predetermined coefficient scan order (110) between two transform coefficients (120) located inside the predetermined subarea (106).
47. Encoder (10) of claim 46, configured to
check (152a) whether the first coded coefficient position (102) is located within the predetermined subarea (106) of the transform coefficient block (104), and
check (152b) whether all transform coefficients (118) which are located outside the predetermined subarea (106) of the transform coefficient block and are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position (101) are zero.
48. Encoder (10) of claim 46 or 47, configured to
perform the encoding of the transformation information (152) into the data stream using context-adaptive entropy encoding (230) using a predetermined probability model (232), determine the predetermined probability model (232) depending on where the first coded coefficient position (102) is located within the transform coefficient block (104).
49. Encoder (10) of claim 48, configured to
in determining the predetermined probability model (232) depending on where the first coded coefficient position (102) is located within the transform coefficient block (104),
set the predetermined probability model (232) to a first probability model (2361), if the first coded coefficient position (102) coincides with the last scanned position (101), set the predetermined probability model (232) to a second probability model (2362), if the first coded coefficient position is, along the predetermined coefficient scan order, no more than a predetermined number (240) of transform coefficients away from the last scanned position (101),
set the predetermined probability model (232) to a third probability model (2363), if the first coded coefficient position is, along the predetermined coefficient scan order, more than the predetermined number (240) of transform coefficients away from the last scanned position.
50. Encoder (10) of claim 48, configured to
in determining the predetermined probability model (232) depending on where the first coded coefficient position (102) is located within the transform coefficient block (104),
set the predetermined probability model (232) to a first probability model (238i), if the first coded coefficient position (102) is, along the predetermined coefficient scan order, no more than a predetermined number (240) of transform coefficients away from, or coincides with the last scanned position (101),
set the predetermined probability model (232) to a second probability model (2382), if the first coded transform coefficient position is, along the predetermined coefficient scan order, more than the predetermined number (240) of coefficients away from the last scanned position (101).
51 . Encoder (10) of any of the previous claims,
wherein the set (130) of available transforms comprises
multi-stage transforms (136) each of which corresponds to a concatenation of a primary transform and a secondary transform within the predetermined subarea (106) and consists of the primary transform outside the predetermined subarea, and which is contained in the second set (134) of one or more available transforms, and
a set (138) of primary-only transforms comprising a first primary-only transform out of which the first set (132) of one or more available transforms consists, and to which the primary transform for all of the one or more multi-stage transforms (136) is equal, and one or more second primary-only transforms which are contained in the second set (134) of one or more available transforms, and
wherein the encoder (10) is configured to
if ail transform coefficients of the transform coefficient block (104) which are, along the predetermined coefficient scan order, located from the first coded coefficient position (102) onwards to the last scanned position (101) are, if not located within the predetermined subarea (106) of the transform coefficient block (104), zero,
encode a secondary transform indicator (156) into the data stream, the secondary transform indicator (156) indicating whether the transform (131) underlying the transform coefficient block is a multi-stage transform, and which one out of the one or more multi-stage transforms, or whether the transform (131) underlying the transform coefficient block is a primary-only transform,
check (158) whether the secondary transform indicator (156) indicates that the transform (131) underlying the transform coefficient block is a primary-only transform,
if the secondary transform indicator (156) indicates that the transform (131) underlying the transform coefficient block is a primary-only transform, encode a transform indicator (160) into the data stream which identifies the primary-only transform out of the set (138) of primary-only transforms, wherein, if not all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position (102) onwards to the last scanned position (101) are, if not located within the predetermined subarea (106) of the transform coefficient block, zero, the transform (131) underlying the transform coefficient block is the first primary-only transform.
52. Encoder (10) of any of the previous claims,
wherein the set (130) of available transforms comprises
multi-stage transforms (136) each of which corresponds to a concatenation of a primary transform and a secondary transform within the predetermined subarea (106) and consists of the primary transform outside the predetermined subarea, and which is contained in the second set (134) of one or more available transforms, and
a set (138) of primary-only transforms comprising a first primary-only transform out of which the first set (132) of one or more available transforms consists, and to which the primary transform for ail of the one or more multi-stage transforms (136) is equal, and one or more second primary-only transforms which are contained in the second set (134) of one or more available transforms, and
wherein the encoder (10) is configured to
if all transform coefficients of the transform coefficient block (104) which are, along the predetermined coefficient scan order, located from the first coded coefficient position (102) onwards to the last scanned position (101) are, if not located within the predetermined subarea (106) of the transform coefficient block, zero,
encode a primary transform indicator (160) into the data stream, the primary transform indicator (160) indicating a first transform out of a set (138) including the first primary-only transform and the one or more second primary-only transforms, if the first transform is the first primary-only transform, encode a secondary transform indicator (156) into the data stream which identifies the transform (131) underlying the transform coefficient block (104) out of a set including the first primary-only transform and the multi-stage transforms,
wherein the transform (131) underlying the transform coefficient block is, in case of the first transform being one of the one or more second primary-only transforms, the one second primary-only transform,
wherein, if not all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position (102) onwards to the last scanned position (101) are, if not located within the predetermined subarea (106) of the transform coefficient block, zero, the transform underlying the transform coefficient block is the first primary-only transform.
53. Encoder (10) of claim 51 or 52,
wherein the primary transform is equal for all of the one or more multi-stage transforms and is also equal to one of the one or more first primary-only transforms.
54. Encoder (10) of 51 or 53,
wherein there is only one first primary-only transform.
55. Encoder (10) of any of the previous claims 46 to 54,
comprising a feedback loop configured to subject the transform coefficient block (104) to a reverse transformation which reverses the transform (131) underlying the transform coefficient block so as to obtain the sample block.
56. Encoder (10) of any of the previous claims 46 to 55,
configured to subject the sample block to the transform (131) underlying the transform coefficient block (104) so as to obtain the transform coefficient block.
57. Encoder (10) of any of the previous claims 46 to 56,
comprising a feedback loop configured to use the sample block to correct a prediction signal gained by intra-picture or inter-picture prediction.
58. Encoder (10) of any of the previous claims 46 to 57,
configured to derive a prediction residual of a prediction signal gained by intra-picture or inter-picture prediction and determine the sample block to represent the prediction residual.
59. Method for decoding a transformed representation of a sample block (84) from a data stream (14), comprising
decode a coefficient position information (100) from the data stream, wherein the coefficient position information is indicative of a first coded coefficient position (102) within a transform coefficient block (104),
check (107) whether the first coded coefficient position (102) is located within a predetermined subarea (106) of the transform coefficient block,
if the first coded coefficient position (102) is located inside the predetermined subarea (106) of the transform coefficient block,
check (111), using transformation information (108) transmitted in the data stream, whether a transform underlying the transform coefficient block (104) is within a first set (132) of one or more available transforms of a set (130) of available transforms or a second set (134) of one or more available transforms of the set (130) of available transforms, if the transform underlying the transform coefficient block is within the first set (132) of one or more available transforms, decode (109) the values of the transform coefficients of the transform coefficient block which are, along the first coefficient scan order (110), located from the first coded coefficient position onwards to a last scanned position (101), and infer that transform coefficients (112) of the transform coefficient block which are, along the first coefficient scan order, located upstream the first coded coefficient position are zero, if the transform underlying the transform coefficient block is within the second set (134) of one or more available transforms, decode (113) values of transform coefficients of the transform coefficient block which are located within the predetermined subarea and are, along a second coefficient scan order (114), located from the first coded coefficient position onwards to the last scanned position (101), and infer that transform coefficients (116) of the transform coefficient block which are, along the first coefficient scan order, located upstream the first coded coefficient position and transform coefficients of the transform coefficient block which are located outside the predetermined subarea are zero, wherein the transform underlying the transform coefficient block along with the transform coefficient block defines the transformed representation, and
wherein the second coefficient scan order (114) scans the transform coefficients within the predetermined subarea (106) without scanning any transform coefficient outside the predetermined subarea between the transform coefficients within the predetermined subarea (106), and the first coefficient scan order (110) scans the transform coefficients in a manner so that there are one or more transform coefficients (118) outside the predetermined subarea (106) which are scanned by the first coefficient scan order (110) between two transform coefficients (120) located inside the predetermined subarea (106).
60. Method for decoding a transformed representation of a sample block (84) from a data stream (14), comprising
decode a coefficient position information (150) from the data stream (14), wherein the coefficient position information (150) is indicative of a first coded coefficient position (102) within a transform coefficient block (104),
decode values of transform coefficients of the transform coefficient block which are, along a predetermined coefficient scan order (110), located from the first coded coefficient position onwards to a last scanned position, and infer that transform coefficients (112) of the transform coefficient block which are, along the predetermined coefficient scan order, located upstream the first coded coefficient position are zero,
check (152) whether all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order (110), located from the first coded coefficient position onwards to the last scanned position are, if not located within a predetermined subarea (106) of the transform coefficient block, zero,
if all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position are, if not located within the predetermined subarea of the transform coefficient block, zero,
decode a transformation information (154) from the data stream and identify, using the transformation information, a transform underlying the transform coefficient block out of a set (130; 138) of available transforms,
if not all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position are, if not located within the predetermined subarea of the transform coefficient block, zero,
reduce the set (130; 138) of available transforms to a first set (132) of one or more available transforms by removing from the set of available transforms a second set of one or more available transforms and determine the transform underlying the transform coefficient block out of the first set of one or more available transforms,
wherein the transform underlying the transform coefficient block along with the transform coefficient block defines the transformed representation,
wherein the predetermined coefficient scan order (110) scans the transform coefficients in a manner so that there are one or more transform coefficients (118) outside the predetermined subarea (106) which are scanned by the predetermined coefficient scan order (110) between two transform coefficients (120) located inside the predetermined subarea (106).
61 . Method for encoding a transformed representation of a sample block (84) into a data stream (14), comprising
encode a coefficient position information (100) into the data stream, wherein the coefficient position information is indicative of a first coded coefficient position (102) within a transform coefficient block (104),
check (107) whether the first coded coefficient position (102) is located within a predetermined subarea (106) of the transform coefficient block,
if the first coded coefficient position (102) is located inside the predetermined subarea (106) of the transform coefficient block,
check (111) whether a transform underlying the transform coefficient block (104) is within a first set (132) of one or more available transforms of a set (130) of available transforms or a second set (134) of one or more available transforms of the set of available transforms,
if the transform underlying the transform coefficient block is within the first set (132) of one or more available transforms, encode (109) the values of the transform coefficients of the transform coefficient block which are, along the first coefficient scan order (110), located from the first coded coefficient position onwards to a last scanned position (101), wherein transform coefficients (112) of the transform coefficient block which are, along the first coefficient scan order, located upstream the first coded coefficient position are zero, if the transform underlying the transform coefficient block is within the second set (134) of one or more available transforms, encode (113) values of transform coefficients of the transform coefficient block which are located within the predetermined subarea and are, along a second coefficient scan order (114), located from the first coded coefficient position onwards to the last scanned position (101), wherein transform coefficients (116) of the transform coefficient block which are, along the first coefficient scan order, located upstream the first coded coefficient position and transform coefficients of the transform coefficient block which are located outside the predetermined subarea are zero, wherein the transform underlying the transform coefficient block along with the transform coefficient block defines the transformed representation, and
wherein the second coefficient scan order (114) scans the transform coefficients within the predetermined subarea (106) without scanning any transform coefficient outside the predetermined subarea between the transform coefficients within the predetermined subarea (106), and the first coefficient scan order (110) scans the transform coefficients in a manner so that there are one or more transform coefficients (118) outside the predetermined subarea (106) which are scanned by the first coefficient scan order (110) between two transform coefficients (120) located inside the predetermined subarea (106).
62. Method for encoding a transformed representation of a sample block (84) into a data stream (14), comprising
encode a coefficient position information (150) into the data stream (14), wherein the coefficient position information (150) is indicative of a first coded coefficient position (102) within a transform coefficient block (104),
encode values of transform coefficients of the transform coefficient block which are, along a predetermined coefficient scan order (110), located from the first coded coefficient position onwards to a last scanned position, wherein transform coefficients (112) of the transform coefficient block which are, along the predetermined coefficient scan order, located upstream the first coded coefficient position are zero,
check (152) whether all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order (110), located from the first coded coefficient position onwards to the last scanned position are, if not located within a predetermined subarea (106) of the transform coefficient block, zero,
if all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position are, if not located within the predetermined subarea of the transform coefficient block, zero,
encode a transformation information (154) into the data stream and identify, using the transformation information, a transform underlying the transform coefficient block out of a set (130; 138) of available transforms,
if not all transform coefficients of the transform coefficient block which are, along the predetermined coefficient scan order, located from the first coded coefficient position onwards to the last scanned position are, if not located within the predetermined subarea of the transform coefficient block, zero,
reduce the set (130; 138) of available transforms to a first set (132) of one or more available transforms by removing from the set of available transforms a second set of one or more available transforms and determine the transform underlying the transform coefficient block out of the first set of one or more available transforms,
wherein the transform underlying the transform coefficient block along with the transform coefficient block defines the transformed representation,
wherein the predetermined coefficient scan order (110) scans the transform coefficients in a manner so that there are one or more transform coefficients (118) outside the predetermined subarea (106) which are scanned by the predetermined coefficient scan order (110) between two transform coefficients (120) located inside the predetermined subarea (106).
63. Computer program having a program code for performing, when running on a computer, a method of any of claims 59, 60, 61 and 62.
64. Data stream storing a video which has been encoded using a video coding method including a method of any of claims 61 and 62.
| Section | Controller | Decision Date |
|---|---|---|
| # | Name | Date |
|---|---|---|
| 1 | 202217028623-IntimationOfGrant30-07-2024.pdf | 2024-07-30 |
| 1 | 202217028623.pdf | 2022-05-18 |
| 2 | 202217028623-PatentCertificate30-07-2024.pdf | 2024-07-30 |
| 2 | 202217028623-TRANSLATIOIN OF PRIOIRTY DOCUMENTS ETC. [18-05-2022(online)].pdf | 2022-05-18 |
| 3 | 202217028623-Written submissions and relevant documents [01-07-2024(online)].pdf | 2024-07-01 |
| 3 | 202217028623-STATEMENT OF UNDERTAKING (FORM 3) [18-05-2022(online)].pdf | 2022-05-18 |
| 4 | 202217028623-POWER OF AUTHORITY [18-05-2022(online)].pdf | 2022-05-18 |
| 4 | 202217028623-FORM-26 [21-06-2024(online)].pdf | 2024-06-21 |
| 5 | 202217028623-NOTIFICATION OF INT. APPLN. NO. & FILING DATE (PCT-RO-105-PCT Pamphlet) [18-05-2022(online)].pdf | 2022-05-18 |
| 5 | 202217028623-Correspondence to notify the Controller [18-06-2024(online)].pdf | 2024-06-18 |
| 6 | 202217028623-US(14)-ExtendedHearingNotice-(HearingDate-25-06-2024).pdf | 2024-06-10 |
| 6 | 202217028623-FORM 1 [18-05-2022(online)].pdf | 2022-05-18 |
| 7 | 202217028623-REQUEST FOR ADJOURNMENT OF HEARING UNDER RULE 129A [03-06-2024(online)].pdf | 2024-06-03 |
| 7 | 202217028623-DRAWINGS [18-05-2022(online)].pdf | 2022-05-18 |
| 8 | 202217028623-FORM 3 [29-05-2024(online)].pdf | 2024-05-29 |
| 8 | 202217028623-DECLARATION OF INVENTORSHIP (FORM 5) [18-05-2022(online)].pdf | 2022-05-18 |
| 9 | 202217028623-COMPLETE SPECIFICATION [18-05-2022(online)].pdf | 2022-05-18 |
| 9 | 202217028623-US(14)-HearingNotice-(HearingDate-07-06-2024).pdf | 2024-05-24 |
| 10 | 202217028623-CLAIMS UNDER RULE 1 (PROVISIO) OF RULE 20 [18-05-2022(online)].pdf | 2022-05-18 |
| 10 | 202217028623-FORM 3 [11-04-2023(online)].pdf | 2023-04-11 |
| 11 | 202217028623-ABSTRACT [17-03-2023(online)].pdf | 2023-03-17 |
| 11 | 202217028623-MARKED COPIES OF AMENDEMENTS [25-05-2022(online)].pdf | 2022-05-25 |
| 12 | 202217028623-CLAIMS [17-03-2023(online)].pdf | 2023-03-17 |
| 12 | 202217028623-FORM 18 [25-05-2022(online)].pdf | 2022-05-25 |
| 13 | 202217028623-COMPLETE SPECIFICATION [17-03-2023(online)].pdf | 2023-03-17 |
| 13 | 202217028623-FORM 13 [25-05-2022(online)].pdf | 2022-05-25 |
| 14 | 202217028623-Annexure [25-05-2022(online)].pdf | 2022-05-25 |
| 14 | 202217028623-DRAWING [17-03-2023(online)].pdf | 2023-03-17 |
| 15 | 202217028623-AMMENDED DOCUMENTS [25-05-2022(online)].pdf | 2022-05-25 |
| 15 | 202217028623-FER_SER_REPLY [17-03-2023(online)].pdf | 2023-03-17 |
| 16 | 202217028623-OTHERS [17-03-2023(online)].pdf | 2023-03-17 |
| 16 | 202217028623-Proof of Right [08-07-2022(online)].pdf | 2022-07-08 |
| 17 | 202217028623-FER.pdf | 2022-09-20 |
| 17 | 202217028623-Correspondence-091122.pdf | 2022-12-07 |
| 18 | 202217028623-FORM 3 [27-10-2022(online)].pdf | 2022-10-27 |
| 18 | 202217028623-Others-091122.pdf | 2022-12-07 |
| 19 | 202217028623-FORM 3 [27-10-2022(online)].pdf | 2022-10-27 |
| 19 | 202217028623-Others-091122.pdf | 2022-12-07 |
| 20 | 202217028623-Correspondence-091122.pdf | 2022-12-07 |
| 20 | 202217028623-FER.pdf | 2022-09-20 |
| 21 | 202217028623-OTHERS [17-03-2023(online)].pdf | 2023-03-17 |
| 21 | 202217028623-Proof of Right [08-07-2022(online)].pdf | 2022-07-08 |
| 22 | 202217028623-AMMENDED DOCUMENTS [25-05-2022(online)].pdf | 2022-05-25 |
| 22 | 202217028623-FER_SER_REPLY [17-03-2023(online)].pdf | 2023-03-17 |
| 23 | 202217028623-DRAWING [17-03-2023(online)].pdf | 2023-03-17 |
| 23 | 202217028623-Annexure [25-05-2022(online)].pdf | 2022-05-25 |
| 24 | 202217028623-COMPLETE SPECIFICATION [17-03-2023(online)].pdf | 2023-03-17 |
| 24 | 202217028623-FORM 13 [25-05-2022(online)].pdf | 2022-05-25 |
| 25 | 202217028623-CLAIMS [17-03-2023(online)].pdf | 2023-03-17 |
| 25 | 202217028623-FORM 18 [25-05-2022(online)].pdf | 2022-05-25 |
| 26 | 202217028623-ABSTRACT [17-03-2023(online)].pdf | 2023-03-17 |
| 26 | 202217028623-MARKED COPIES OF AMENDEMENTS [25-05-2022(online)].pdf | 2022-05-25 |
| 27 | 202217028623-CLAIMS UNDER RULE 1 (PROVISIO) OF RULE 20 [18-05-2022(online)].pdf | 2022-05-18 |
| 27 | 202217028623-FORM 3 [11-04-2023(online)].pdf | 2023-04-11 |
| 28 | 202217028623-COMPLETE SPECIFICATION [18-05-2022(online)].pdf | 2022-05-18 |
| 28 | 202217028623-US(14)-HearingNotice-(HearingDate-07-06-2024).pdf | 2024-05-24 |
| 29 | 202217028623-DECLARATION OF INVENTORSHIP (FORM 5) [18-05-2022(online)].pdf | 2022-05-18 |
| 29 | 202217028623-FORM 3 [29-05-2024(online)].pdf | 2024-05-29 |
| 30 | 202217028623-REQUEST FOR ADJOURNMENT OF HEARING UNDER RULE 129A [03-06-2024(online)].pdf | 2024-06-03 |
| 30 | 202217028623-DRAWINGS [18-05-2022(online)].pdf | 2022-05-18 |
| 31 | 202217028623-US(14)-ExtendedHearingNotice-(HearingDate-25-06-2024).pdf | 2024-06-10 |
| 31 | 202217028623-FORM 1 [18-05-2022(online)].pdf | 2022-05-18 |
| 32 | 202217028623-NOTIFICATION OF INT. APPLN. NO. & FILING DATE (PCT-RO-105-PCT Pamphlet) [18-05-2022(online)].pdf | 2022-05-18 |
| 32 | 202217028623-Correspondence to notify the Controller [18-06-2024(online)].pdf | 2024-06-18 |
| 33 | 202217028623-POWER OF AUTHORITY [18-05-2022(online)].pdf | 2022-05-18 |
| 33 | 202217028623-FORM-26 [21-06-2024(online)].pdf | 2024-06-21 |
| 34 | 202217028623-Written submissions and relevant documents [01-07-2024(online)].pdf | 2024-07-01 |
| 34 | 202217028623-STATEMENT OF UNDERTAKING (FORM 3) [18-05-2022(online)].pdf | 2022-05-18 |
| 35 | 202217028623-TRANSLATIOIN OF PRIOIRTY DOCUMENTS ETC. [18-05-2022(online)].pdf | 2022-05-18 |
| 35 | 202217028623-PatentCertificate30-07-2024.pdf | 2024-07-30 |
| 36 | 202217028623-IntimationOfGrant30-07-2024.pdf | 2024-07-30 |
| 36 | 202217028623.pdf | 2022-05-18 |
| 1 | 202217028623E_20-09-2022.pdf |