Coding concepts for transform representations of sample blocks

By employing different scanning orders for transform coefficients and inferring zero coefficients within a predetermined region, the solution addresses inefficiencies in selecting and signaling multiple transform types in video coding, enhancing coding efficiency and reducing complexity.

CN120321399APending Publication Date: 2025-07-15FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510751083.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2019-11-26
Filing Date
2020-11-25
Publication Date
2025-07-15

AI Technical Summary

Technical Problem

The existing video encoding technology has problems such as large signaling overhead and low encoding efficiency when selecting transformation types. Especially when selecting between multiple predefined transformation types, it is impossible to effectively reduce the signaling cost of the bit stream.

Method used

By using different scanning order and probability models, the transformation type is determined based on the position information of the transform coefficient block, the encoding of zero coefficients is reduced, the encoding efficiency is optimized, and signaling overhead is reduced through context adaptive entropy coding technology.

Benefits of technology

It achieves more efficient coding efficiency and lower signaling overhead, supports flexible selection of multiple transformation types between picture blocks, and improves the compression performance of video encoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120321399A_ABST
    Figure CN120321399A_ABST
Patent Text Reader

Abstract

The invention relates to a coding concept for a transform representation of a block of samples. Disclosed is an apparatus for decoding a picture or video, the apparatus configured to perform operations including decoding coefficient position information from a data stream, the coefficient position information indicating a coefficient position of a non-zero coefficient within a transform block; determining that at least one non-zero coefficient is located outside the region of the transform block based on the coefficient position of the non-zero coefficient in the transform block; based on the determination, a transform is selected for application to the transform block.
Need to check novelty before this filing date? Find Prior Art

Description

This application is a divisional application of the patent application with national application number 202080094703.9. The filing date of the patent application is November 25, 2020, and the invention title is "Coding Concepts for Transform Representations of Sample Blocks". Technical Field

[0001] Embodiments according to the present invention relate to a decoder for decoding a transform representation of a sample block from a data stream, an encoder for encoding a transform representation of a sample block into a data stream, a corresponding method, a computer program, and a data stream. The computer program has program code for performing, when run on a computer, a method for decoding / encoding a transform representation of a sample block from / to a data stream.

[0002] Introduction Hybrid video compression schemes such as AVC and HEVC rely on block-based prediction, which is followed by transformation 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 will also use the term transform for the integer approximation of the transform as implemented in an actual hybrid video compression scheme.

[0003] Typically, a fixed transform is specified in a video coding standard for each possible block size N×N. For example, except for 4x4 blocks for intra picture prediction (for which DST-VI is used), the HEVC standard specifies the use of DCT-II. Higher compression efficiency can be achieved by implementing a selection between multiple predefined transform types. The current draft for Versatile Video Coding (VVC) specifies a set of five different combinations of horizontal and vertical transform types (including DCT-II, DST-VII, and DCT-VIII). The bitstream includes syntax by which the transform type selected by the encoder is signaled to the decoder. The coding of the transform coefficient level is independent of the selected transform type and is signaled before the selected transform type. For reasons of complexity, non-DCT-II transform types are only applied to rows and columns containing no more than 16 non-zero coefficients. In this case, the block to be transformed (transform block) may have a width and height greater than 16, but requires that all coefficients outside the upper left 16x16 region be zero. Additionally, the transform is applied to a complete transform block larger than 16x16, such that the resulting block of residual samples is also larger than 16x16. This way of reducing the implementation logic of the transform is further referred to as zeroing.

[0004] In addition, the current VVC draft specifies an additional Low-Frequency Non-Separable Transform (LFNST) that can be applied after the transform at the encoder and whose inverse transform can be applied 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 reasons of complexity, in the current VVC draft, the LFNST can only be combined with DCT-II. Background Art

[0005] Current state-of-the-art video coding techniques (including VVC development) specify means for signaling one of multiple predefined transform types. Before the syntax indicating the selected transform (e.g., the Multiple Transform Selection (MTS) index), the transform coefficient levels are encoded.

[0006] The transform coefficient levels are encoded in sub-blocks or groups of coefficients. One scan pattern is used to process the sub-blocks, and also a scan pattern is used to process the coefficients within the sub-blocks. As in the current VVC draft 7, two scan patterns can be backward / antidiagonal scans. However, other scan patterns and directions can also be employed. Figure 1 An example of a 32x32 transform block 104 is illustrated, and the 32x32 transform block 104 is subdivided into 64 4x4 sub-blocks 117. In this example, an antidiagonal scan 115 (i.e., from the lower right 103 to the upper left 101) is used to process the sub-blocks 117. Figure 1 A backward / retrograde diagonal scan of the 4x4 sub-blocks 117 within the 32x32 transform block 104 is shown. DCT-based transforms tend to concentrate energy in the upper left corner 101, and thus, the quantized coefficient values tend to become zero in the block (i.e., the transform block 104) at the lower right corner 103 after quantization. To prevent encoding and decoding of a sequence of zeros before the first non-zero coefficient 102 in the scan order 115, the position of the first (last) non-zero or significant coefficient 102 in the (retrograde) scan order 115 is signaled before processing the sub-blocks. It is known that, as shown on the Figure 1 right side, only the sub-blocks 117 containing this first significant coefficient (i.e., the first non-zero coefficient 102) and all subsequent sub-blocks 117 in the scan order 115 are processed.

[0007] Longer transforms (e.g., having 32 coefficients in one direction) require more logic and memory in implementation. As previously mentioned, this drives the zeroing design in the current VVC draft. In this design, all transform types can be applied to 32 coefficients in each direction, but for non-DCT-II types, the last 16 coefficients in each direction are required to be equal to 0. Figure 2The process is illustrated, in which a 32x32 block of reconstructed residual samples (e.g., sample block 84) is generated by applying a transform to the 32x32 transform block 104, where only the first 16x16 coefficients can be non-zero. Figure 2 Shows the transform coefficient levels of the 32x32 transform block 104 being zeroed before the inverse transform 40 / 54.

[0008] After the transform coefficients, information indicating which transform is selected, such as the MTS index, is signaled. Thus, the position of the first or last significant coefficient 102 is known. When the coefficient is outside the 16x16 non-zero region (i.e., the predetermined sub-region 106), signaling of the transform selection is not required because, in this case, the only allowed transform is DCT-II. However, in the current design, it cannot be guaranteed that all coefficients outside the 16x16 region are equal to zero. This can be seen in the example on the right in Figure 3 where the last position (i.e., the position of the first or last coded coefficient 102) is inside the 16x16 non-zero region, but the subsequent sub-blocks in the scan pattern 110 are outside this region. In the presence of these non-zero coefficients, the encoder constraint must ensure that the signaled transform is DCT-II, for example, by always signaling that the MTS index is equal to 0. This results in signaling overhead because, although DCT-II is always required to be 0, it is explicitly signaled. Hereinafter, the non-zero requirement can be defined such that all non-zero transform coefficients are inside the non-zero region (i.e., the predetermined sub-region 106), and all transform coefficients outside the non-zero region must be zero. Hereinafter, two approaches are described to address this aspect. Figure 3 The modified diagonal scan 110 of the sub-block for zeroing according to an embodiment of the present invention is shown on the left.

[0009] When multiple transform selections are combined with additional transforms (such as the aforementioned LFNST), the combination can also be restricted to reduce implementation logic. In the current VVC draft, for example, LFSNT can only be combined with DCT-II, and before the MTS index, the LFNST index is signaled, which indicates whether LFNST is applied and, if so, which kernel. When the LFNST index indicates the use of the LFNST kernel, the MTS index is not signaled and the MTS index is inferred to be equal to 0, i.e., DCT-II. In Figure 13 the simplified syntax diagram is illustrated on the left.

[0010] Therefore, it is desirable to provide concepts for making picture coding and / or video coding more efficient to support selection between multiple predefined transform types for picture blocks. Additionally or alternatively, it is desirable to reduce the bitstream and thus reduce the signaling cost, e.g., reduce the signaling overhead.

[0011] This is achieved by the subject matter of the independent claims of the present application.

[0012] Further embodiments according to the invention are defined by the subject matter of the dependent claims of the present application. Summary of the Invention

[0013] According to a first aspect of the present invention, the inventors of the present application have recognized that a problem encountered when attempting to enable the selection of a transform for a picture block originates from the fact that for some transforms, for example, transforms within a second set of transforms (such as non-DCT-II transforms), it is required that the non-zero coefficients of the transform coefficient block be allowed to be located only in a predetermined sub-region of the transform coefficient block / be located in a predetermined sub-region of the transform coefficient block. Depending on the position of the first coding coefficient position (i.e., the first non-zero coefficient) within the predetermined sub-region of the transform coefficient block, it is possible to decode / encode the zero coefficients outside the predetermined sub-region along the coefficient scan order. The transform coefficients can be scanned according to the coefficient scan order from the first coding coefficient position forward to the last scan position (e.g., the coefficient in the upper left corner, i.e., the DC coefficient) or from the coefficient in the upper left corner of the transform coefficient block forward to the first coding coefficient position (which can be understood as the last coding coefficient position in the latter case). According to the first aspect of the present application, this difficulty in decoding / encoding zero coefficients is overcome by using a different scan order for the transform coefficient blocks associated with the transforms within a first set of one or more available transforms of the set of available transforms compared to the transform coefficient blocks associated with the transforms within a second set of one or more available transforms of the set of available transforms. In the case where the transform coefficient block is associated with a transform within a first set of one or more available transforms, the transform coefficient block includes non-zero coefficients outside the predetermined sub-region of the transform coefficient block, and in the case where the transform coefficient block is associated with a transform within a second set of one or more available transforms, the transform coefficient block includes non-zero coefficients only within the predetermined sub-region of the transform coefficient block. The inventors have found that using different coefficient scan orders depending on the transform on which the corresponding transform coefficient block is based is advantageous in 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 within a predetermined sub-region of the transform coefficient block, whereby the scan order can be selected such that only non-zero transform coefficients are decoded / encoded along the selected scan order. If the transform on which the transform coefficient block is based is within a first set of one or more available transforms, the values of the transform coefficients of the transform coefficient block located along the first coefficient scan order from the first coding coefficient position forward to the last scan position are decoded / encoded, and the decoder infers that the transform coefficients of the transform coefficient block located upstream of the first coding coefficient position along the first coefficient scan order are zero. If the transform on which the transform coefficient block is based is within a second set of one or more available transforms, the values of the transform coefficients of the transform coefficient block located within the predetermined sub-region and along the second coefficient scan order from the first coding coefficient position forward to the last scan position are decoded / encoded, and the decoder infers that the transform coefficients of the transform coefficient block located upstream of the first coding coefficient position along the first coefficient scan order and the transform coefficients of the transform coefficient block located outside the predetermined sub-region are zero.Thus, it is possible to prevent the decoding / encoding of zero coefficients, thereby improving the encoding efficiency, because fewer transform coefficients may need to be scanned.

[0014] Accordingly, in a first aspect of the present application, a decoder for decoding a transform representation of a sample block from a data stream / an encoder for encoding into a data stream is configured to decode / encode coefficient position information from / into the data stream. The coefficient position information indicates a first encoded coefficient position within a transform coefficient block. The first encoded coefficient position may indicate the position of the first non-zero transform coefficient in the coefficient scan order or the position of the last non-zero transform coefficient in the reverse coefficient scan order. The decoder / encoder is configured to check whether the first encoded coefficient position is within a predetermined sub-region of the transform coefficient block. The predetermined sub-region may define a sub-region of the transform coefficient block within which sub-region transform coefficients can be non-zero and outside of which, for some transforms, all transform coefficients must be zero. According to an embodiment, in the case where the transform on which the transform coefficient block is based is within a first set of one or more available transforms of a set of available transforms, the transform coefficient block may include non-zero transform coefficients outside the predetermined sub-region, and in the case where the transform on which the transform coefficient block is based is within a second set of one or more available transforms of a set of available transforms, the transform coefficients outside the predetermined sub-region are zero. The predetermined sub-region may consist of 16x16 transform coefficients. The predetermined sub-region may be located in the upper left corner of the transform coefficient block. If the first encoded coefficient position is within the predetermined sub-region of the transform coefficient block, then it is checked whether the transform on which the transform coefficient block is based is within a first set of one or more available transforms of a set of available transforms or within a second set of one or more available transforms of a set of available transforms. The decoder is configured to perform this check using transform information transmitted in the data stream. If the transform on which the transform coefficient block is based is within a first set of one or more available transforms, then the decoder / encoder is configured to decode / encode the values of the transform coefficients of the transform coefficient block that are located along a first coefficient scan order from the first encoded coefficient position forward to the last scan position, wherein the transform coefficients of the transform coefficient block that are located upstream of the first encoded coefficient position along the first coefficient scan order are zero. If the transform on which the transform coefficient block is based is within a first set of one or more available transforms, then the decoder is configured to infer that the transform coefficients of the transform coefficient block that are located upstream of the first encoded coefficient position along the first coefficient scan order are zero. If the transform on which the transform coefficient block is based is within a second set of one or more available transforms, then the decoder / encoder is configured to decode / encode the values of the transform coefficients of the transform coefficient block that are located within the predetermined sub-region and that are located along a second coefficient scan order from the first encoded coefficient position forward to the last scan position, wherein the transform coefficients of the transform coefficient block that are located upstream of the first encoded coefficient position along the first coefficient scan order and the transform coefficients of the transform coefficient block that are located outside the predetermined sub-region are zero.If the transform on which a transform coefficient block is based is within a second set of one or more available transforms, the decoder is configured to infer as zero the transform coefficients of the transform coefficient block that are upstream of a first coded coefficient position along a first coefficient scan order and the transform coefficients of the transform coefficient block that are outside a predetermined sub-region. The transform on which the transform coefficient block is based, together with the transform coefficient block, defines a transform representation. A second coefficient scan order scans the transform coefficients within the predetermined sub-region without scanning any transform coefficients outside the predetermined sub-region between the transform coefficients that are not within the predetermined sub-region, and the first coefficient scan order scans the transform coefficients in such a way that there is one or more transform coefficients outside the predetermined sub-region that are scanned by the first coefficient scan order between two transform coefficients that are within the predetermined sub-region.

[0015] According to an embodiment, the decoder / encoder is configured to reduce the available transforms to a first set of one or more available transforms by removing a second set of one or more available transforms from the set of available transforms if the first coded coefficient position is outside a predetermined sub-region of the transform coefficient block, and to determine the transform on which the transform coefficient block is based from 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 that are along the first coefficient scan order from the first coded coefficient position forward to the last scan position, wherein the transform coefficients of the transform coefficient block that are upstream of the first coded coefficient position along the first coefficient scan order are zero. The decoder is configured to infer as zero the transform coefficients of the transform coefficient block that are upstream of the first coded coefficient position along the first coefficient scan order. Thus, in the case where the first coded coefficient position is outside the predetermined sub-region of the transform coefficient block, it is possible for the decoder to infer the transform on which the transform coefficient block is based, and for the encoder it is not necessary to encode transform information related to the transform coefficient block into the data stream, thereby enabling a reduction in the bitstream and achieving high coding efficiency.

[0016] According to an embodiment, the decoder / encoder is configured to decode / encode transform information into / from the data stream using a predetermined probability model (e.g., the estimated probability for a certain (e.g., LPS (Least Probable Symbol)) binary value as updated for a certain context) using context-adaptive entropy decoding / encoding (e.g., context-adaptive binary arithmetic coding). The decoder / encoder is configured to determine the predetermined probability model depending on where the first coded coefficient position is within the transform coefficient block. The decoder / encoder may be configured to determine the predetermined probability model by determining, for example, a context that is continuously updated depending on where the first coded coefficient position is within the transform coefficient block.

[0017] According to an embodiment, when determining a predetermined probability model depending on where the first coding coefficient position is within a transform coefficient block, if the first coding coefficient position coincides with the last scan position, the predetermined probability model is set to a first probability model, e.g., a first context; if the first coding coefficient position is no more than a predetermined number of transform coefficients away from the last scan position along a first coefficient scan order, the predetermined probability model is set to a second probability model, e.g., a second context; and if the first coding coefficient position is more than a predetermined number of transform coefficients away from the last scan position along the first coefficient scan order, the predetermined probability model is set to a third probability model, e.g., a third context. The first coefficient scan order and the second coefficient scan order coincide within the last scan position and a predetermined number of transform coefficients upstream of the last scan position. In other words, up to the predetermined number, the two scans are the same, or even in other words, the two scans end at the last scan position and are equal within a predetermined number of coefficients upstream of the last scan position. In other words, upstream of the last scan position, up to the predetermined number, the two scans are the same. If the transform coefficient block includes only one non-zero transform coefficient, the predetermined probability model may be set to the first probability model. The single non-zero transform coefficient is located at the first coding coefficient position.

[0018] According to another embodiment, when determining a predetermined probability model depending on where the first coding coefficient position is within a transform coefficient block, if the first coding coefficient position is no more than a predetermined number of transform coefficients away from the last scan position along a first coefficient scan order or coincides with the last scan position, the predetermined probability model is set to a first probability model, and if the first coding transform coefficient position is more than a predetermined number of coefficients away from the last scan position along the first coefficient scan order, the predetermined probability model is set to a second probability model. The first coefficient scan order and the second coefficient scan order coincide within the last scan position and a predetermined number of transform coefficients upstream of the last scan position.

[0019] According to an embodiment, the set of available transforms includes one or more multi-stage transforms, the one or more multi-stage transforms corresponding to a cascade of a primary transform and a secondary transform within a predetermined sub-region and consisting of a primary transform outside the predetermined sub-region, and the one or more multi-stage transforms being included in a 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 includes one or more multi-stage transforms. Additionally, the set of available transforms includes a set of only primary transforms, the set of only primary transforms including: one or more first-only primary transforms, with the one or more first-only primary transforms forming a first set of one or more available transforms; and one or more second-only primary transforms, which are included in the second set of one or more available transforms. The decoder / encoder is configured to decode / encode a secondary transform indicator from / to the data stream, the secondary transform indicator indicating whether the transform on which the transform coefficient block is based is a multi-stage transform (i.e., within the second set of one or more available transforms) and which one of the one or more multi-stage transforms, or indicating whether the transform on which the transform coefficient block is based is a only primary transform. If the secondary transform indicator indicates that the transform on which the transform coefficient block is based is a only primary transform, the decoder / encoder is configured to decode / encode a transform indicator (e.g., a primary transform indicator) from / to the data stream, the transform indicator identifying the only primary transform from the set of only primary transforms. In the case where the transform on which the transform coefficient block is based is a multi-stage transform, only the secondary transform indicator must be decoded / encoded from / to the data stream, since the secondary transform indicator already indicates the primary transform and the secondary transform. Thus, high coding efficiency can be achieved, since an additional transform indicator may only be required in the case where the transform on which the transform coefficient block is based is not a multi-stage transform.

[0020] According to an embodiment, the set of available transforms includes one or more sets of multi-stage transforms, the one or more sets of multi-stage transforms corresponding to a cascade of a primary transform and a secondary transform within a predetermined sub-region and consisting of a primary transform outside the predetermined sub-region, and the one or more sets of multi-stage transforms being included in a second set of one or more available transforms. Additionally, the set of available transforms includes a set of only primary transforms, the set of only primary transforms including: one or more first only-primary transforms, the one or more first only-primary transforms forming a first set of one or more available transforms; and one or more second only-primary transforms, which are included in a second set of one or more available transforms. The decoder / encoder is configured to decode / encode a secondary transform indicator into / from the data stream. The secondary transform indicator indicates whether the transform on which a transform coefficient block is based is a multi-stage transform, and if so, indicates the secondary transform of the multi-stage transform, or the secondary transform indicator indicates whether the transform on which a transform coefficient block is based is a only-primary transform. In other words, the secondary transform indicator indicates whether the transform on which a transform coefficient block is based is a multi-stage transform or a only-primary transform. The decoder / encoder is configured to decode / encode a primary transform indicator into / from the data stream, and in the case where the secondary transform indicator indicates that the transform on which a transform coefficient block is based is a only-primary transform, the primary transform indicator identifies the only-primary transform from the set of only-primary transforms, and in the case where the secondary transform indicator indicates that the transform on which a transform coefficient block is based is a multi-stage transform, and if the one or more sets of multi-stage transforms include more than one multi-stage transform having different primary transforms, the primary transform indicator identifies the primary transform of the multi-stage transform. Thus, a high variability and flexibility in the selection of the transform on which a transform coefficient block is based (especially in terms of multi-stage transforms) can be achieved, leading to high coding efficiency. In the case where all multi-stage transforms are associated with the same primary transform (i.e., the multi-stage transforms do not have different primary transforms), it is not necessary to decode / encode the primary transform indicator.

[0021] According to an embodiment, the set of available transforms includes multi-stage transforms, e.g., a set of two or more multi-stage transforms, each corresponding to a cascade of a primary transform and a secondary transform within a predetermined sub-region and consisting of a primary transform outside the predetermined sub-region, and the set of the two or more multi-stage transforms is included in a second set of one or more available transforms. The second set of one or more available transforms may include all multi-stage transforms. Additionally, the set of available transforms includes a set of only primary transforms, the set of only primary transforms includes: a first only primary transform (e.g., DCT-II transform), the first only primary transform forms a first set of one or more available transforms, and the primary transforms for all the multi-stage transforms among the one or more multi-stage transforms are equal to the first only primary transform; and one or more second only primary transforms (e.g., non-DCT-II transforms), which are included in the second set of one or more available transforms. The decoder / encoder is configured to decode / encode a primary transform indicator into / from the data stream, the primary transform indicator indicating a first transform from a set including the first only primary transform and the one or more second only primary transforms (e.g., the set of only primary transforms). If the first transform is the first only primary transform, the decoder / encoder is configured to decode / encode a secondary transform indicator into / from the data stream, the secondary transform indicator identifying the transform on which the transform coefficient block is based from a set including the first only primary transform and the multi-stage transforms, wherein, in the case where the first transform is one of the one or more second only primary transforms, the transform on which the transform coefficient block is based is one of the second only primary transforms. In other words, if the primary transform indicator indicates that the first transform is one of the one or more second only primary transforms, the transform on which the transform coefficient block is based is the indicated second only primary transform, and if the primary transform indicator indicates that the first transform is the first only primary transform, depending on the secondary transform indicator, the transform on which the transform coefficient block is based is the first only primary transform or a multi-stage transform corresponding to a cascade of the first only primary transform and the secondary transform. In the latter case, the secondary transform indicator may directly indicate / point to the transform on which the transform coefficient block is based. Thus, it is possible to very efficiently select and indicate the transform on which the transform coefficient block is based in the data stream, resulting in high coding efficiency.

[0022] According to an embodiment, the set of available transforms includes a set of multi-stage transforms, each of which corresponds to a cascade of a primary transform and a secondary transform within a predetermined sub-region and consists of a primary transform outside the predetermined sub-region, and the set of multi-stage transforms is included in a second set of one or more available transforms. Additionally, the set of available transforms includes a set of only primary transforms, and the set of only primary transforms includes: one or more first only-primary transforms, from which the one or more first only-primary transforms form a first set of one or more available transforms; and one or more second only-primary transforms, which are included in a second set of one or more available transforms. The decoder / encoder is configured to decode / encode a primary transform indicator into / from the data stream. The primary transform indicator indicates a first transform from a set including one or more first only-primary transforms and one or more second only-primary transforms (e.g., from the set of only primary transforms). If the first transform is a first only-primary transform that 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 into / from the data stream, and the secondary transform indicator identifies a transform on which the transform coefficient block is based from a set including the first only-primary transform and one or more multi-stage transforms whose primary transform is equal to the first only-primary transform. Special primary transform indicators and secondary transform indicators result in high coding efficiency, enabling, among other things, an excellent selection between different first only-primary transforms and between different multi-stage transforms having different primary transforms for the transform on which the transform coefficient block is based. By being able to achieve such a selection, it is possible to achieve high compression efficiency.

[0023] According to an embodiment, the decoder / encoder is configured to perform decoding / encoding of the primary transform indicator into / from the data stream using context-adaptive entropy decoding / encoding with a predetermined probability model. The decoder / encoder is configured to determine the predetermined probability model depending on where the first coding coefficient position is within the transform coefficient block.

[0024] According to an embodiment, when determining the predetermined probability model depending on where the first coding coefficient position is within the transform coefficient block, the decoder / encoder sets the predetermined probability model to a first probability model if the first coding coefficient position coincides with the last scan position; sets the predetermined probability model to a second probability model if the first coding coefficient position is no more than a predetermined number of transform coefficients away from the last scan position along a first coefficient scan order; and sets the predetermined probability model to a third probability model if the first coding coefficient position is more than a predetermined number of transform coefficients away from the last scan position along the first coefficient scan order. The first coefficient scan order and the second coefficient scan order coincide among the last scan position and a predetermined number of transform coefficients upstream of the last scan position.

[0025] According to an embodiment, when determining a predetermined probability model depending on where the first coding coefficient position is within a transform coefficient block, if the first coding coefficient position is no more than a predetermined number of transform coefficients away from the last scan position or coincides with the last scan position along a first coefficient scan order, the predetermined probability model is set to a first probability model; and if the first coding transform coefficient position is more than a predetermined number of coefficients away from the last scan position along the first coefficient scan order, the predetermined probability model is set to a second probability model. The first coefficient scan order and the second coefficient scan order coincide among the last scan position and a predetermined number of transform coefficients upstream of the last scan position.

[0026] According to an embodiment, the primary transform is equal for all multi-stage transforms in one or more multi-stage transforms and is also equal to one of the one or more first-only primary transforms.

[0027] According to an embodiment, there is only one first-only primary transform.

[0028] According to an embodiment, the encoder is configured to subject a sample block to the transform on which the transform coefficient block is based in order to obtain the transform coefficient block.

[0029] According to an embodiment, the decoder is configured to subject the transform coefficient block to an inverse transform that reverses the transform on which the transform coefficient block is based in order to obtain the sample block. According to an embodiment, the encoder includes a feedback loop configured to subject the transform coefficient block to an inverse transform that reverses the transform on which the transform coefficient block is based in order to obtain the sample block.

[0030] According to an embodiment, the encoder is configured to derive a prediction residual of a prediction signal obtained by intra-picture or inter-picture prediction and determine a sample block (e.g., including quantization) to represent the prediction residual.

[0031] According to an embodiment, the decoder is configured to use the sample block to correct the prediction signal obtained by intra-picture or inter-picture prediction. According to an embodiment, the encoder includes a feedback loop configured to use the sample block to correct the prediction signal obtained by intra-picture or inter-picture prediction.

[0032] According to a second aspect of the present invention, the inventors of the present application have recognized that a problem encountered when attempting to enable the selection of a transform for a picture block originates from the fact that for some transforms (such as non-DCT-II transforms), non-zero coefficients of the transform coefficient block are only allowed in a predetermined sub-region of the transform coefficient block. Currently, when it is also possible to select a transform with the non-zero requirement described above, signaling overhead is generated to indicate the transform on which the transform coefficient block is based. According to the second aspect of the present application, this difficulty is overcome by checking whether all transform coefficients of the transform coefficient block located along a predetermined coefficient scan order from the first coding coefficient position forward to the last scan position are zero if they are not located within the predetermined sub-region of the transform coefficient block. The inventors have found that it is advantageous to check whether non-zero transform coefficients are located outside the predetermined sub-region because, even if the first coding coefficient position is located within the predetermined sub-region, it is still possible for non-zero transform coefficients to be located outside the predetermined sub-region along the predetermined scan order. This is based on the idea that this check can enable automatically identifying whether the transform on which the transform coefficient block is based is a transform with the non-zero requirement described above. Thus, for each transform coefficient block, it is not necessary to select from the set of all available transforms the transform on which the corresponding transform coefficient block is based. Instead, using this feature, it is possible to reduce the set of all available transforms to relevant transforms, thereby enabling high coding efficiency. In addition, high compression can be achieved because it is not necessary for an additional syntax element to indicate whether the transform on which the transform coefficient block is based is one of the transforms with a non-zero requirement or one of the transforms without a non-zero requirement.

[0033] Accordingly, in a second aspect of the present application, a decoder / encoder for decoding / encoding a transformed representation of a sample block into / from a data stream is configured to decode / encode coefficient position information into / from the data stream. The coefficient position information indicates a first coded coefficient position within a transform coefficient block. The first coded coefficient position may indicate the position of the first non-zero transform coefficient in a coefficient scan order or the position of the last non-zero transform coefficient in a reverse coefficient scan order. Further, the decoder / encoder is configured to decode / encode values of transform coefficients of the transform coefficient block that are located in a predetermined coefficient scan order from the first coded coefficient position forward to the last scan position, and to infer that transform coefficients of the transform coefficient block that are located upstream of the first coded coefficient position in the predetermined coefficient scan order are zero. The transform coefficients of the transform coefficient block that are located in a predetermined coefficient scan order from the first coded coefficient position forward to the last scan position may include only transform coefficients having non-zero values, or may include transform coefficients having zero values and transform coefficients having non-zero values. The decoder / encoder is configured to check whether all transform coefficients of the transform coefficient block that are located in a predetermined coefficient scan order from the first coded coefficient position forward to the last scan position are zero if they are not located within a predetermined sub-region of the transform coefficient block. The predetermined sub-region may define a sub-region of the transform coefficient block such that, for certain transforms, within the sub-region, transform coefficients can be non-zero, and outside the sub-region, all transform coefficients must be zero. According to an embodiment, the transform coefficient block can include non-zero transform coefficients outside the predetermined sub-region in the case where the transform on which the transform coefficient block is based is within a first set of one or more available transforms of a set of available transforms; and the transform coefficients outside the predetermined sub-region are zero in the case where the transform on which the transform coefficient block is based is within a second set of one or more available transforms of the set of available transforms. The predetermined sub-region may consist of 16x16 transform coefficients. The predetermined sub-region may be located in the upper left corner of the transform coefficient block. If all transform coefficients of the transform coefficient block that are located in a predetermined coefficient scan order from the first coded coefficient position forward to the last scan position are zero if they are not located within the predetermined sub-region of the transform coefficient block, the decoder / encoder is configured to decode / encode transform information into / from the data stream, and to use the transform information to identify the transform on which the transform coefficient block is based from a set of available transforms (e.g., a second set of one or more available transforms of the set of available transforms).If all transform coefficients that are along a predetermined coefficient scan order of a transform coefficient block and that are from a first coded coefficient position forward to the last scan position are zero if they are not within a predetermined sub-region of the transform coefficient block, the decoder / encoder is configured to reduce the set of available transforms to a first set of one or more available transforms by removing a second set of one or more available transforms from the set of available transforms, and to determine the transform on which the transform coefficient block is based from the first set of one or more available transforms. The transform on which the transform coefficient block is based, together with the transform coefficient block, defines a transform representation. The predetermined coefficient scan order scans the transform coefficients in such a way that there is one or more transform coefficients outside the predetermined sub-region that are scanned by the predetermined coefficient scan order between two transform coefficients that are within the predetermined sub-region.

[0034] According to an embodiment, the decoder / encoder is configured to check whether the first coded coefficient position is within a predetermined sub-region of the transform coefficient block, and to check whether all transform coefficients that are outside the predetermined sub-region of the transform coefficient block and that are along the predetermined coefficient scan order from the first coded coefficient position forward to the last scan position are zero. Optionally, if the first coded coefficient position is within the predetermined sub-region of the transform coefficient block, only the latter check is performed. In the case where the first coded coefficient position is outside the predetermined sub-region of the transform coefficient block, the decoder / encoder may be configured to infer that all transform coefficients that are along the predetermined coefficient scan order of the transform coefficient block and that are from the first coded coefficient position forward to the last scan position are zero if they are not within the predetermined sub-region of the transform coefficient block.

[0035] According to an embodiment, if the first coded coefficient position is within a predetermined sub-region of the transform coefficient block, the decoder / encoder can include the features and / or functionality described with respect to the decoder / encoder according to the first aspect.

[0036] According to an embodiment, the decoder / encoder is configured to perform decoding / encoding of transform information from / to a data stream using context-adaptive entropy decoding / encoding using a predetermined probability model, and to determine the predetermined probability model depending on where the first coded coefficient position is within the transform coefficient block.

[0037] According to an embodiment, when determining a predetermined probability model depending on where the first coding coefficient position is within a transform coefficient block, if the first coding coefficient position coincides with the last scan position, the predetermined probability model is set to a first probability model; if the first coding coefficient position is no more than a predetermined number of transform coefficients away from the last scan position along a predetermined coefficient scan order, the predetermined probability model is set to a second probability model; and if the first coding coefficient position is more than a predetermined number of transform coefficients away from the last scan position along the predetermined coefficient scan order, the predetermined probability model is set to a third probability model.

[0038] According to another embodiment, when determining a predetermined probability model depending on where the first coding coefficient position is within a transform coefficient block, if the first coding coefficient position is no more than a predetermined number of transform coefficients away from the last scan position or coincides with the last scan position along a predetermined coefficient scan order, the predetermined probability model is set to a first probability model; and if the first coding transform coefficient position is more than a predetermined number of coefficients away from the last scan position along the predetermined coefficient scan order, the predetermined probability model is set to a second probability model.

[0039] According to an embodiment, the set of available transforms includes multi-stage transforms, e.g., a set of multi-stage transforms, each of which corresponds to a cascade of a primary transform and a secondary transform within a predetermined sub-region and consists of a primary transform outside the predetermined sub-region, and the set of multi-stage transforms is included in a 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 includes two or more multi-stage transforms. Additionally, the set of available transforms includes a set of only primary transforms, the set of only primary transforms includes: a first only primary transform, from which the first only primary transform forms a first set of one or more available transforms, and the primary transforms for all multi-stage transforms among the one or more multi-stage transforms are equal to the first only primary transform; and one or more second only primary transforms, which are included in the second set of one or more available transforms. The decoder / encoder is configured such that if all transform coefficients along the predetermined coefficient scan order within the transform coefficient block from the first coding coefficient position forward to the last scan position are zero if they are not within the predetermined sub-region of the transform coefficient block, then: decode / encode a secondary transform indicator into / from the data stream, the secondary transform indicator indicating whether the transform on which the transform coefficient block is based is a multi-stage transform and which one of the one or more multi-stage transforms it is from, or indicating whether the transform on which the transform coefficient block is based is a only primary transform, i.e., whether the transform on which the transform coefficient block is based belongs to the set of only primary transforms or to the set of multi-stage transforms, and Check whether the secondary transform indicator indicates that the transform on which the transform coefficient block is based is a primary-only transform. If the secondary transform indicator indicates that the transform on which the transform coefficient block is based is a primary-only transform, the decoder / encoder is configured to decode / encode a transform indicator (e.g., a primary transform indicator) from / to the data stream, the transform indicator identifying the primary-only transform from the set of primary-only transforms.

[0040] If all transform coefficients of a transform coefficient block that are in a predetermined coefficient scan order from the first coded coefficient position forward to the last scan position are zero if they are not within a predetermined sub-region of the transform coefficient block, then the transform on which the transform coefficient block is based is a first primary-only transform. In the case of this embodiment, if a transform coefficient block includes non-zero transform coefficients outside the predetermined sub-region, it is possible to infer that the transform on which the transform coefficient block is based is a first primary-only transform. Thus, for such a transform coefficient block, the data stream does not need to include transform information, whereby high compression can be achieved. In addition, it is possible to use the secondary transform indicator to clearly indicate a multi-stage transform as the transform on which the transform coefficient block is based, and, by using a primary transform indicator in addition to the secondary transform indicator, it is possible to clearly indicate a primary-only transform as the transform on which the transform coefficient block is based. It will be noted that with this special transform selection, it is possible to also indicate the first primary-only transform as the transform on which the transform coefficient block is based for blocks within the predetermined sub-region having all non-zero transform coefficients, thereby providing an excellent transform selection and achieving high compression efficiency.

[0041] According to an embodiment, the set of available transforms includes 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 a predetermined sub-region and consists of a primary transform outside the predetermined sub-region, and the multi-stage transforms are included in a second set of one or more available transforms. Additionally, the set of available transforms includes a set of primary-only transforms, the set of primary-only transforms including: a first primary-only transform, from which the first primary-only transform forms a first set of one or more available transforms, and for which the primary transform of all multi-stage transforms among the one or more multi-stage transforms is equal to the first primary-only transform; and one or more second primary-only transforms, which are included in the second set of one or more available transforms. The decoder / encoder is configured such that if all transform coefficients of a transform coefficient block that are in a predetermined coefficient scan order from the first coded coefficient position forward to the last scan position are zero if they are not within a predetermined sub-region of the transform coefficient block, then: Decode / encode a primary transform indicator from / to the data stream, the primary transform indicator indicating a first transform from a set (e.g., the set of primary-only transforms) including the first primary-only transform and one or more second primary-only transforms, If the first transform is a first-only primary transform, decode / encode the secondary transform indicator into the data stream, the secondary transform indicator identifying the transform on which the transform coefficient block is based from a set including the first-only primary transform and the multi-stage transform, and in the case where the first transform is a second-only primary transform of one or more second-only primary transforms, the transform on which the transform coefficient block is based is a second-only primary transform.

[0042] If not all transform coefficients of the transform coefficient block that are located along a predetermined coefficient scan order from the first coded coefficient position forward to the last scan position are zero if they are not within a predetermined sub-region of the transform coefficient block, the transform on which the transform coefficient block is based is a first-only primary transform.

[0043] According to an embodiment, the primary transform is equal for all multi-stage transforms of one or more multi-stage transforms and is also equal to a first-only primary transform of one or more first-only primary transforms.

[0044] According to an embodiment, there is only one first-only primary transform.

[0045] According to an embodiment, the encoder is configured to subject a sample block to the transform on which the transform coefficient block is based to obtain the transform coefficient block.

[0046] According to an embodiment, the decoder is configured to subject the transform coefficient block to an inverse transform that reverses the transform on which the transform coefficient block is based to obtain the sample block. According to an embodiment, the encoder includes a feedback loop configured to subject the transform coefficient block to an inverse transform that reverses the transform on which the transform coefficient block is based to obtain the sample block.

[0047] According to an embodiment, the encoder is configured to derive a prediction residual of a prediction signal obtained by intra-picture or inter-picture prediction and determine a sample block (e.g., including quantization) to represent the prediction residual.

[0048] According to an embodiment, the decoder / encoder is configured to use the sample block to correct a prediction signal obtained by intra-picture or inter-picture prediction. According to an embodiment, the encoder includes a feedback loop configured to use the sample block to correct a prediction signal obtained by intra-picture or inter-picture prediction.

[0049] Embodiments relate to a method for decoding / encoding a transformed representation of a sample block into / from a data stream, the method comprising decoding / encoding coefficient position information into / from the data stream, wherein the coefficient position information indicates a first coded coefficient position within a transform coefficient block. The method comprises checking whether the first coded coefficient position is within a predetermined sub-region of the transform coefficient block. If the first coded coefficient position is within the predetermined sub-region of the transform coefficient block, the method comprises checking whether the transform on which the transform coefficient block is based is within a first set of one or more available transforms of a set of available transforms or within a second set of one or more available transforms of the set of available transforms. The method for decoding is capable of performing the checking using transform information conveyed in the data stream. If the transform on which the transform coefficient block is based is within the first set of one or more available transforms, the method comprises decoding / encoding the values of the transform coefficients of the transform coefficient block that are located along a first coefficient scan order from the first coded coefficient position forward to the last scan position, wherein the transform coefficients of the transform coefficient block that are located upstream of the first coded coefficient position along the first coefficient scan order are zero. The method for decoding comprises inferring that the transform coefficients of the transform coefficient block that are located upstream of the first coded coefficient position along the first coefficient scan order are zero. If the transform on which the transform coefficient block is based is within the second set of one or more available transforms, the method comprises decoding / encoding the values of the transform coefficients of the transform coefficient block that are located within the predetermined sub-region and that are located along a second coefficient scan order from the first coded coefficient position forward to the last scan position, wherein the transform coefficients of the transform coefficient block that are located upstream of the first coded coefficient position along the first coefficient scan order and the transform coefficients of the transform coefficient block that are located outside the predetermined sub-region are zero. The method for decoding comprises inferring that the transform coefficients of the transform coefficient block that are located upstream of the first coded coefficient position along the first coefficient scan order and the transform coefficients of the transform coefficient block that are located outside the predetermined sub-region are zero. The transform on which the transform coefficient block is based, together with the transform coefficient block, defines the transform representation. The second coefficient scan order scans the transform coefficients within the predetermined sub-region without scanning any transform coefficients outside the predetermined sub-region between the transform coefficients within the predetermined sub-region, and the first coefficient scan order scans the transform coefficients in such a way that there are one or more transform coefficients outside the predetermined sub-region that are scanned by the first coefficient scan order between two transform coefficients within the predetermined sub-region.

[0050] An embodiment relates to a method for decoding / encoding a transformed representation of a sample block into / from a data stream, the method comprising decoding / encoding coefficient position information into / from the data stream, wherein the coefficient position information indicates a first coded coefficient position within a transform coefficient block. The method comprises decoding / encoding values of transform coefficients of the transform coefficient block that are located along a predetermined coefficient scan order from the first coded coefficient position forward to a last scan position, wherein transform coefficients of the transform coefficient block that are located upstream of the first coded coefficient position along the predetermined coefficient scan order are zero. The method for decoding comprises inferring that transform coefficients of the transform coefficient block that are located upstream of the first coded coefficient position along the predetermined coefficient scan order are zero. Additionally, the method comprises checking whether all transform coefficients of the transform coefficient block that are located along the predetermined coefficient scan order from the first coded coefficient position forward to the last scan position are zero if they are not located within a predetermined sub-region of the transform coefficient block. If all transform coefficients of the transform coefficient block that are located along the predetermined coefficient scan order from the first coded coefficient position forward to the last scan position are zero if they are not located within a predetermined sub-region of the transform coefficient block, the method comprises: decoding / encoding transform information into / from the data stream; and identifying a transform from a set of available transforms on which the transform coefficient block is based. The method for decoding may use the transform information to perform the identification. If not all transform coefficients of the transform coefficient block that are located along the predetermined coefficient scan order from the first coded coefficient position forward to the last scan position are zero if they are not located within a predetermined sub-region of the transform coefficient block, the method comprises: reducing the available transforms to a first set of one or more available transforms by removing a second set of one or more available transforms from the set of available transforms; and determining a transform from the first set of one or more available transforms on which the transform coefficient block is based. The transform on which the transform coefficient block is based, together with the transform coefficient block, defines the transformed representation. The predetermined coefficient scan order scans the transform coefficients in such a way that there is one or more transform coefficients outside the predetermined sub-region that are scanned by the predetermined coefficient scan order between two transform coefficients inside the predetermined sub-region.

[0051] The method as described above is based on the same considerations as the encoder / decoder as described above. Incidentally, the method is capable of being completed with all features and functionalities that are also described with respect to the encoder / decoder.

[0052] An embodiment relates to a data stream that has a picture or video encoded into the data stream using the method for encoding described herein.

[0053] An embodiment relates to a computer program that has program code for performing the method described herein when run on a computer. BRIEF DESCRIPTION OF THE DRAWINGS

[0054] The drawings are not necessarily to scale, and the emphasis is generally placed on illustrating the principles of the present invention. In the following description, various embodiments of the present invention are described with reference to the following drawings, in which: Figure 1 An example of a 32x32 transform block subdivided into 64 4x4 sub-blocks is shown; Figure 2 The reconstruction of a 32x32 block is shown, where only the first 16x16 coefficients can be non-zero; Figure 3 The unmodified scan of a transform block according to the current design and the modified scan of a transform block according to an embodiment are shown; Figure 4 A device for predictively encoding a picture or video is shown; Figure 5 A device for predictively decoding a picture or video is shown; Figure 6 The relationship between the reconstructed signal and the combination of the prediction residual signal and the prediction signal is shown; Figure 7 A decoder capable of changing the scan order according to an embodiment is shown; Figure 8 The selection of the transform on which the transform coefficient block is based in the case where the first coding coefficient position is outside a predetermined sub-region according to an embodiment is shown; Figure 9 The CABAC coding of transform information according to an embodiment is shown; Figure 10 Transform coefficient blocks having different numbers of non-zero transform coefficients according to an embodiment are shown; Figure 11a The set of available transforms according to the first embodiment is shown; Figure 11b The set of available transforms according to the second embodiment is shown; Figure 12 A decoder for checking whether transform coefficients outside a predetermined sub-region are zero according to an embodiment is shown; Figure 13 A first simplified syntax diagram is shown; and Figure 14 A second simplified syntax diagram is shown. DETAILED DESCRIPTION

[0055] In the following description, equal or equivalent elements or elements having equal or equivalent functionality are referred to by equal or equivalent reference numerals even if they appear in different drawings.

[0056] In the following description, numerous details are set forth to provide a more thorough explanation of embodiments of the present invention. However, it will be apparent to those skilled in the art that embodiments of the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form rather than in detail to avoid obscuring embodiments of the present invention. Additionally, unless otherwise specifically noted, the features of the different embodiments described below may be combined with each other.

[0057] Moreover, it will be noted that, herein, a non-zero transform coefficient defines a transform coefficient having a non-zero value, and a zero transform coefficient defines a transform coefficient having a zero value.

[0058] In the following, various examples are described that can help achieve more efficient compression by using transform type signaling for coefficient level coding zeroing. The embodiments presented herein describe a signaling concept that, depending on the choice of the specific transform type, restricts the region of the coded transform coefficients within a block that can be non-zero, with the goal of reducing signaling overhead and simplifying the encoding / decoding logic for hybrid video compression applications.

[0059] To facilitate understanding of the following embodiments of the present application, the description begins with a description of a video encoder and a video decoder of a block-based predictive codec for encoding pictures of a video, in order to form an example of an encoding architecture into which embodiments for encoding and decoding a transform representation of a sample block can be built. Regarding Figures 4 to 6 while describing the video encoder and the video decoder. The embodiments of the present application described herein can be easily built separately into Figure 4 and Figure 5 the video encoder and decoder, however, the embodiments of the present application can also be used to form video encoders and decoders that do not operate according to the encoding architecture on which the Figure 4 and Figure 5 video encoder and decoder are based.

[0060] Figure 4 A device is shown for predictively encoding picture 12 or a video constituted by a sequence of picture 12 into data stream 14. For this purpose, block-by-block predictive encoding is used. Moreover, transform-based residual encoding is exemplarily used. Reference numeral 10 is used to indicate the device or encoder. Figure 5Shows the corresponding decoder 20, i.e., a device 20 configured to predictively decode picture 12' in a picture block or video composed of picture 12' from a data stream 14, which also exemplarily uses transform-based residual decoding herein, where an apostrophe has been used to indicate that picture 12' reconstructed by decoder 20 deviates from picture 12 initially encoded by device 10 in terms of the coding loss introduced by quantization of the prediction residual signal. Figure 4 And Figure 5 Exemplarily uses transform-based prediction residual coding. However, embodiments of the present application are not limited to this prediction residual coding. As will be outlined below, the same applies to other details described with respect to Figure 4 And Figure 5 Other details described.

[0061] Encoder 10 is configured to subject the prediction residual signal to a spatial-to-spectral transform and encode the thus obtained prediction residual signal into data stream 14. Similarly, decoder 20 is configured to decode the prediction residual signal from data stream 14 and subject the thus obtained prediction residual signal to a spectral-to-spatial transform.

[0062] Internally, encoder 10 may include a prediction residual signal former 22 that generates a prediction residual 24 to measure the deviation of a prediction signal 26 from an original signal (i.e., a video or the current picture 12). The prediction residual signal former 22 may be, for example, a subtractor that subtracts the prediction signal from the original signal (i.e., the current picture 12). Then, encoder 10 further includes a transformer 28 that subjects the prediction residual signal 24 to a spatial-to-spectral transform to obtain a spectral-domain prediction residual signal 24', which is then quantized by a quantizer 32 (also included in encoder 10). The thus quantized prediction residual signal 24'' is encoded into bitstream 14. For this purpose, encoder 10 may optionally include an entropy encoder 34 that entropy encodes the prediction residual signal as transformed and quantized into data stream 14. The prediction signal 26 is generated by a prediction stage 36 of encoder 10 based on the prediction residual signal 24'' decoded into and from data stream 14. For this purpose, as Figure 4As shown in, the prediction stage 36 may internally include a dequantizer 38 that dequantizes the prediction residual signal 24" to obtain a spectral domain prediction residual signal 24"'. Except for quantization loss, the spectral domain prediction residual signal 24"' corresponds to the signal 24'. The dequantizer 38 is followed by an inverse transformer 40 that subjects the latter prediction residual signal 24"' to an inverse transform, i.e., a spectral-to-spatial transform, to obtain a prediction residual signal 24"". Except for quantization loss, the prediction residual signal 24"" corresponds to the original prediction residual signal 24. Then, a combiner 42 of the prediction stage 36 recombines the prediction signal 26 and the prediction residual signal 24"" by addition, for example, to obtain a reconstructed signal 46, i.e., a reconstruction of the original signal 12. The reconstructed signal 46 may correspond to the signal 12'.

[0063] Then, the prediction module 44 of the prediction stage 36 generates a prediction signal 26 based on the signal 46 by using, for example, spatial prediction (i.e., intra-frame prediction) and / or temporal prediction (i.e., inter-frame prediction). Details in this regard are described below.

[0064] Similarly, the decoder 20 may be internally composed of components corresponding to the prediction stage 36 and interconnected in a manner corresponding to the prediction stage 36. In particular, an entropy decoder 50 of the decoder 20 may entropy-decode the quantized spectral domain prediction residual signal 24" from the data stream. Then, a dequantizer 52, an inverse transformer 54, a combiner 56, and a prediction module 58 that are interconnected and cooperate in the manner described above with respect to the modules of the prediction stage 36 recover the reconstructed signal based on the prediction residual signal 24", such that Figure 5 as shown in, the output of the combiner 56 results in a reconstructed signal, i.e., the video or its current picture 12'.

[0065] Although not specifically described above, it is readily apparent that the encoder 10 can be set to include some coding parameters such as, for example, prediction modes, motion parameters, etc. according to certain optimization schemes (such as, for example, in a manner that optimizes certain rate and distortion related criteria (i.e., coding cost) and / or uses certain rate control). As described in more detail below, the encoder 10, the decoder 20, and the corresponding modules 44, 58 respectively support different prediction modes, such as intra-coding mode and inter-coding mode, and these prediction modes form a set or pool of primitive prediction modes, based on which the prediction of picture blocks is constructed in a manner described in more detail below. The granularity at which the encoder and decoder switch between these prediction constructs can correspond to subdividing pictures 12 and 12' into blocks respectively. Note that some of these blocks can be blocks that are only intra-coded, and some blocks can be blocks that are only inter-coded, and optionally, even additional blocks can be blocks obtained using both intra-coding and inter-coding, but the details are stated below. According to the intra-coding mode, a prediction signal for a block is obtained based on the spatial, already-coded / decoded neighborhood of the corresponding block. There may be several intra-coding sub-modes, and the selection of which "quasi" represents an intra-prediction parameter. There may be a directional or angular intra-coding sub-mode, according to which the prediction signal for the corresponding block is filled by extrapolating the sample values of the neighborhood in a certain direction specific to the corresponding directional intra-coding sub-mode to the corresponding block. For example, the intra-coding sub-mode can also include one or more additional sub-modes, such as: DC coding mode, according to which the prediction signal for the corresponding block assigns a DC value to all samples within the corresponding block; and / or planar intra-coding mode, according to which, in the case of deriving the inclination and offset of a plane defined by a two-dimensional linear function based on neighboring samples, the prediction signal of the corresponding block is approximated or determined as the spatial distribution of the sample values described by the two-dimensional linear function at the sample positions of the corresponding block. In contrast, according to the inter-prediction mode, a prediction signal for a block can be obtained, for example, by predicting inside the block in time. For the parameterization of the inter-prediction mode, a motion vector can be signaled in the data stream, and the motion vector indicates the spatial displacement of a portion of a previously-coded picture of the video, where the previously-coded / decoded picture is sampled in order to obtain the prediction signal for the corresponding block.This means that, in addition to the residual signal coding included in data stream 14 (such as the entropy-coded transform coefficient levels representing the quantized spectral-domain prediction residual signal 24”), data stream 14 can also encode prediction-related parameters for assigning to block prediction modes, prediction parameters for the assigned prediction modes (such as motion parameters for inter-frame prediction modes), and optionally additional parameters (which use the assigned prediction modes and prediction parameters to control the formation of the final prediction signal for the block) into data stream 14, as will be outlined in more detail below. Additionally, the data stream can include parameters that control and signal the subdivision of pictures 12 and 12’ into blocks respectively. The decoder 20 uses these parameters in the same manner as used by the encoder to subdivide the pictures, to assign the same prediction modes and parameters to the blocks, and to perform the same prediction to result in the same prediction signal.

[0066] Figure 6 Illustrates the relationship between the reconstructed signal on one hand (i.e., reconstructed picture 12’) and the combination of the prediction signal 26 and the prediction residual signal 24”” signaled in the data stream on the other hand. As already referred to above, this combination can be an addition. The prediction signal 26 is illustrated in Figure 6 as subdividing the picture area into blocks 80 of different sizes. However, this is only an example. This subdivision can be any subdivision, such as regularly subdividing the picture area into rows and columns of blocks or multi-tree subdividing picture 12 into leaf blocks of different sizes, such as quadtree subdivision, etc., where Figure 6 illustrates a mixture of these subdivisions, where first, the picture area is subdivided into rows and columns of root blocks, and then the rows and columns of root blocks are further subdivided according to recursive multi-tree subdivision to result in blocks 80.

[0067] Figure 6 The prediction residual signal 24”” in Figure 6 is also illustrated as subdividing the picture area into blocks 84. These blocks can be referred to as transform blocks or transform coefficient blocks in order to distinguish them from the coding blocks 80. In fact, Figure 6 illustrates that the encoder 10 and the decoder 20 can respectively use two different subdivisions of pictures 12 and 12’ into blocks, i.e., one is subdivided into coding blocks 80 and the other is subdivided into blocks 84. The two subdivisions can be the same, i.e., each block 80 can simultaneously form a transform block 84, and vice versa, but Figure 6The following situation is illustrated: wherein, for example, the subdivision of transform block 84 forms an extension of the subdivision of counterpart block 80 such that any boundary between two blocks 80 covers the boundary between two blocks 84, or alternatively, each block 80 coincides with one of the transform blocks 84 or coincides with a cluster of transform blocks 84. However, the subdivisions can also be determined or selected independently of each other such that the transform blocks 84 can alternatively straddle the block boundaries between the blocks 80. Thus, with respect to the subdivision into transform blocks 84, similar statements are true as those made with respect to the subdivision into blocks 80, namely, that the blocks 84 can be the result of regularly subdividing the picture region into blocks arranged in rows and columns, the result of a recursive multi-tree subdivision of the picture region, or a combination thereof, or any other category of segmentation. Incidentally, note that the blocks 80 and the blocks 84 are not limited to being square, rectangular, or any other shape. Moreover, the subdivision of the current picture 12 into blocks 80 where a prediction signal is formed and the subdivision of the current picture 12 into blocks 84 where a prediction residue is encoded may not be the only subdivisions used for encoding / decoding. These subdivisions are made according to the granularity at which the prediction signal determination and residue encoding are performed, but first, the residue encoding can alternatively be performed without subdivision, and second, at a granularity other than these subdivisions, the encoder and decoder can set certain coding parameters that can include some of the aforementioned parameters (such as, prediction parameters, prediction signal constitution control signals, etc.).

[0068] Figure 6 The combination of the illustrated prediction signal 26 and the prediction residue signal 24'' directly results in the reconstructed signal 12'. However, it should be noted that according to an alternative embodiment, for example, a prediction signal such as obtained from other views or from other coding layers encoded / decoded in a separate prediction loop with a separate DPB, more than one prediction signal 26 can be combined with the prediction residue signal 24'' to result in the picture 12'.

[0069] In Figure 6 the transform blocks 84 should have the following significance. The transformer 28 and the inverse transformer 54 perform their transformations in units of these transform blocks 84. For example, many codecs use a certain type of DST or DCT for all transform blocks 84. Some codecs allow skipping the transformation such that for some of the transform blocks 84, the prediction residue signal is directly encoded in the spatial domain. However, according to the embodiments described herein, as described with respect to one or more of the following Figures 7 to 12 the encoder 10 and the decoder 20 are configured in such a way that they support several transformations (i.e., the set 130 of available transformations).

[0070] In the following, embodiments will be described: Through the embodiments, the coding efficiency for transform type signaling can be improved, and / or through the embodiments, the compression efficiency can be improved by implementing a selection among multiple transform types. The embodiments in the following will mostly illustrate features and functionality in view of the decoder. However, obviously, the encoder can include the same or similar features and functionality. For example, the decoding performed by the decoder can correspond to the encoding performed by the encoder. In addition, the encoder can include the same features as described regarding the decoder in a feedback loop (e.g., in prediction stage 36).

[0071] Figure 7 A decoder 20 is shown for decoding a transform representation of a sample block 84 from a data stream 14. According to an embodiment, an encoder is configured to subject the sample block 84 to a transform on which a transform coefficient block 104 is based, so as to obtain the transform coefficient block 104. The transform coefficient block 104, together with the transform 131 on which the transform coefficient block 104 is based, defines the transform representation.

[0072] Figure 7 The decoder 20 shown is configured to decode coefficient position information 100 from the data stream 14. The coefficient position information 100 indicates a first coded coefficient position 102 within the transform coefficient block 104. The first coded coefficient position 102 can indicate the position of the first non-zero transform coefficient in a scan order (e.g., in a first coefficient scan order 110 or a second coefficient scan order 114). In the case of a reverse / inverse scan order, the first coded coefficient position 102 can indicate the position of the last non-zero transform coefficient along the reverse / inverse scan order. A non-zero transform coefficient is defined herein as a transform coefficient having a value not equal to zero, and a zero transform coefficient is defined as a transform coefficient having a value equal to zero.

[0073] The decoder 20 is configured to check 107 whether the first coded coefficient position 102 is within a predetermined sub-region 106 of the transform coefficient block 104.

[0074] If the first coded coefficient position 102 is located inside a predetermined sub-region 106 of the transform coefficient block 104, the decoder 20 is configured to check 111 using the transform information 108 transmitted in the data stream 14 whether the transform 131 on which the transform coefficient block 104 is based is within a first set 132 of one or more available transforms of the set 130 of available transforms or within a second set 134 of one or more available transforms of the set 130 of available transforms. According to an embodiment, the first set 132 of one or more available transforms comprises transforms for the transform coefficient block 104 having non-zero transform coefficients outside the predetermined sub-region, such as the transform coefficient 118. According to an embodiment, the second set 134 of one or more available transforms comprises transforms for the transform coefficient block 104 not having any non-zero transform coefficients outside the predetermined sub-region 106. In other words, one or more transforms out of the second set 134 of one or more available transforms may have the following requirements, i.e., non-zero requirements: all transform coefficients outside the predetermined sub-region have a value equal to zero and the non-zero transform coefficients are located only inside the predetermined sub-region 106. A transform out of the first set 132 of one or more available transforms may not necessarily satisfy the non-zero requirement.

[0075] If the transform 131 on which the transform coefficient block 104 is based is within the first set 132 of one or more available transforms, the decoder 20 is configured to decode 109 the values of the transform coefficients of the transform coefficient block 104 located along the first coefficient scanning order 110 from the first coded coefficient position 102 forward to the last scanning position 101, and infer that the transform coefficients 112 of the transform coefficient block 104 located upstream of the first coded coefficient position 102 along the first coefficient scanning order 110 are zero. Figure 7 , for this first condition, the decoder 20 may be configured to infer that all transform coefficients 112 in the shaded area of the transform coefficient block 104 are zero. The first coefficient scanning order 110 scans the transform coefficients of the transform coefficient block 104 in such a way that there are one or more transform coefficients 118 outside the predetermined sub-region 106 that are scanned by the first coefficient scanning order 110 between two transform coefficients 120 located inside the predetermined sub-region 106. As shown in Figure 7 As exemplarily shown in the embodiment of the invention, the transform coefficients 1181-1183 outside the predetermined sub-region 106 are scanned between the two transform coefficients 1201 and 1202 located inside the predetermined sub-region 106 through the first coefficient scanning order 110, and the transform coefficient 1184 outside the predetermined sub-region 106 is scanned between the two transform coefficients 1203 and 1204 located inside the predetermined sub-region 106 through the first coefficient scanning order 110.

[0076] If the transform 131 on which the transform coefficient block 104 is based is within a second set 134 of one or more available transforms, the decoder 20 is configured to decode 113 the values of the transform coefficients of the transform coefficient block 104 that are within a predetermined sub-region 106 and that are located, along a second coefficient scan order 114, from a first coded coefficient position 102 forward to a last scan position 101, and to infer that the transform coefficients 116 of the transform coefficient block 104 that are upstream of the first coded coefficient position 102 and the transform coefficients 118 of the transform coefficient block 104 that are outside the predetermined sub-region 106 are zero. The second coefficient scan order 114 scans the transform coefficients 120 within the predetermined sub-region 106 without scanning any transform coefficients 118 outside the predetermined sub-region 106 between the transform coefficients 120 that are not within the predetermined sub-region 106.

[0077] According to an embodiment, checking 107 whether the first coded coefficient position 102 is within the predetermined sub-region 106 of the transform coefficient block 104 can result in recognizing that the first coded coefficient position 102 is not within the predetermined sub-region 106. Such a negative case 210 is shown in Figure 8 . The positive case 200 of recognizing that the first coded coefficient position 102 is within the predetermined sub-region 106 is indicated only by three dots in Figure 8 because the positive case has already been described with respect to Figure 7 .

[0078] If the first coded coefficient position 102 is outside the predetermined sub-region 106 of the transform coefficient block 104, the decoder 20 is configured to reduce 220 the set 130 of available transforms to a first set 132 of one or more available transforms by removing a second set 134 of one or more available transforms from the set 130 of available transforms, and to determine the transform 131 on which the transform coefficient block 104 is based from the first set 132 of one or more available transforms. This determination can be performed by using transform information 108 transmitted in the data stream 14, or, if the first set 132 of one or more available transforms consists of only one transform, this determination can be performed by inferring that the transform 131 on which the transform coefficient block 104 is based is that one transform. Additionally, the decoder 20 is configured to decode 109 the values of the transform coefficients of the transform coefficient block 104 that are located, along the first coefficient scan order 110, from the first coded coefficient position 102 forward to the last scan position 101, and to infer that the transform coefficients 112 of the transform coefficient block 104 that are upstream of the first coded coefficient position 102 along the first coefficient scan order 110 are zero. As shown in Figure 8 , the decoder 20 can be configured to infer that all transform coefficients 112 in the shaded region of the transform coefficient block 104 are zero.

[0079] With respect toFigure 8 the described features and / or functionality are optional for Figure 7 decoder 20.

[0080] According to an embodiment, as Figure 9 shown in Figure 7 Decoder 20 shown in is configured to use context adaptive entropy decoding 230 (e.g., context adaptive binary arithmetic coding) to decode transform information 108 from data stream 14. Decoder 20 may use a predetermined probability model 232, e.g., the estimated probability for a certain binary value updated for a certain context. The decoder may be configured to determine 234 the predetermined probability model 232 depending on where the first coding coefficient position 102 is located within the transform coefficient block 104, see Figure 9 and Figure 10 .

[0081] According to an embodiment, for example Figure 9 shown in the first embodiment, when decoder 20 is configured to determine 234 the predetermined probability model 232 depending on where the first coding coefficient position 102 is located within the transform coefficient block 104, if the first coding coefficient position 102 coincides with the last scan position 101, the predetermined probability model 232 is set to the first probability model 2361; if the first coding coefficient position 102 is no more than a predetermined number 240 of transform coefficients away from the last scan position 101 along the first coefficient scan order 110, the predetermined probability model 232 is set to the second probability model 2362; and if the first coding coefficient position 102 is more than a predetermined number 240 of transform coefficients away from the last scan position 101 along the first coefficient scan order 110, the predetermined probability model 232 is set to the third probability model 2363. The predetermined number 240 for this embodiment can be set to ten transform coefficients, and the last possible transform coefficient that is no more than a predetermined number 240 of transform coefficients away from the last scan position 101 along the first coefficient scan order 110 is indicated by reference numeral 240. However, clearly, different predetermined numbers 240 of transform coefficients can also be selected.

[0082] According to an alternative embodiment, for example Figure 9In the second embodiment shown, the decoder 20 is configured such that when determining the predetermined probability model 232 depending on where the first coding coefficient position 102 is within the transform coefficient block 104, if the first coding coefficient position 102 is not more than a predetermined number 240 of transform coefficients away from the last scan position 101 along the first coefficient scan order 110 or coincides with the last scan position 101, the predetermined probability model 232 is set to the first probability model 2381; and if the first coded transform coefficient position 102 is more than a predetermined number 240 of coefficients away from the last scan position 101 along the first coefficient scan order 110, the predetermined probability model 232 is set to the second probability model 2382. The predetermined number 240 for this embodiment can be set to eight transform coefficients, and the last possible transform coefficient among the transform coefficients not more than a predetermined number 240 of transform coefficients away from the last scan position 101 along the first coefficient scan order 110 is indicated by the reference numeral 240. However, as already described above, obviously, a different predetermined number 240 of transform coefficients can also be selected.

[0083] For the two embodiments described above, the first coefficient scan order 110 and the second coefficient scan order 114 coincide among the last scan position 101 and a predetermined number 240 of transform coefficients upstream of the last scan position 101. When Figure 7 superimposing the first coefficient scan order 110 and the second coefficient scan order 114 shown (refer to decoding 109 for the first coefficient scan order 110 and refer to decoding 113 for the second coefficient scan order 114), there are transform coefficients up to which the two scans are the same upstream of the last scan position 101. In Figure 7 the case of the transform coefficient block 104 shown, there are ten transform coefficients up to which the two scans are the same upstream of the last scan position 101. The predetermined number 240 of transform coefficients can be set to a number within the range from three transform coefficients to the maximum number, up to which the first coefficient scan order 110 and the second coefficient scan order 114 coincide upstream of the last scan position 101. The predetermined number 240 of transform coefficients can be set to a number within the range from three to ten transform coefficients or from three to nine transform coefficients (such as eight transform coefficients).

[0084] It will be noted that the first probability model 2361 and the second probability model 2362 of the first embodiment described above can be different from the first probability model 2381 and the second probability model 2382 of the second embodiment described above.

[0085] Figure 10The transform coefficient block coefficients 104 are shown on the left side. For this transform coefficient block 104, a predetermined number 240 is set to eight transform coefficients, and for this transform coefficient block 104, the first coded transform coefficient position 102 is equal to eight transform coefficients. Additionally, Figure 10 The transform coefficient block 104 is shown on the right side, where the first coded transform coefficient position 102 is equal to the last scanning position 101 mentioned above.

[0086] According to Figure 11a and 11b In the embodiment shown in Figure 7 the set 130 of available transforms shown and described with respect to Figure 11a includes one or more multi-stage transforms 136. The multi-stage transforms 136 correspond to the cascade of a primary transform 136a and a secondary transform 136b within a predetermined sub-region 106 and are composed of the primary transform 136a outside the predetermined sub-region 106. In other words, as shown in the upper right of Figure 11a under the forward transform performed, for example, by an encoder, the primary transform 136a is applied to the entire sample block 84 (i.e., within and outside the predetermined sub-region 106) to determine the processed coefficient block 84', and the secondary transform is only applied to the predetermined sub-region 106 of the processed coefficient block 84' to determine the transform coefficient block 104. Under the inverse transform performed, for example, by a decoder, the inverse transform of the secondary transform 136b is applied to the predetermined sub-region 106 of the transform coefficient block 104 to determine the processed coefficient block 84', and the inverse transform of the primary transform 136a is applied to the entire processed coefficient block 84' to determine the sample block 84. Alternatively, as shown in the upper left of Figure 11a it is also possible to apply the primary transform and the secondary transform in one transform step, where the secondary transform 136b is only applied within the predetermined sub-region 106 and the primary transform 136a is applied within and outside the predetermined sub-region 106. One or more multi-stage transforms 136 are included in the second set 134 of one or more available transforms.

[0087] Additionally, the set 130 of available transforms includes a set 138 of only primary transforms. The set 138 of only primary transforms includes: one or more first only-primary transforms that, together with one or more other first only-primary transforms, form the first set 132 of one or more available transforms; and one or more second only-primary transforms that are included in the second set 134 of one or more available transforms. Figure 11a The first set 132 of one or more available transforms is shown to be composed of one first only-primary transform T0, and Figure 11b The first set 132 of one or more available transforms is shown to be composed of N1 first only-primary transforms T1 to T N1 N1. Figure 11aOne or more of the second-only primary transforms in are T1... T N1 are referenced, and, Figure 11b One or more of the second-only primary transforms in are T N1+1 ... T N2 are referenced.

[0088] Although the following embodiments are described with respect to Figure 11b it will be apparent that it may also be possible to use the signaling introduced by the transform 131 on which the transform coefficient block 104 is based for the set 130 as shown in Figure 11a .

[0089] According to Figure 11b the embodiment shown in, the decoder is configured to decode the secondary transform indicator 124 from the data stream. The secondary transform indicator 124 indicates whether the transform 131 on which the transform coefficient block 104 is based is a multi-level transform (i.e., a transform within the set 136) and which one of the one or more multi-level transforms 136, or indicates whether the transform 131 on which the transform coefficient block 104 is based is a only-primary transform, i.e., a transform of the set 138. If the secondary transform indicator 124 indicates that the transform 131 on which the transform coefficient block 104 is based is a only-primary transform, the decoder is configured to decode the transform indicator 126 (e.g., the primary transform indicator) from the data stream, and the transform indicator 126 identifies the only-primary transform from the set 138 of only-primary transforms.

[0090] According to Figure 11b an additional or alternative embodiment shown in, the decoder is configured to decode the secondary transform indicator 124 from the data stream, and the secondary transform indicator 124 indicates whether the transform 131 on which the transform coefficient block 104 is based is a multi-level transform 136, and, if so, indicates the secondary transform 136b of the multi-level transform (i.e., the T of the transform 131 on which the transform coefficient block 104 is based) (s)) or indicates whether the transform 131 on which the transform coefficient block 104 is based is a primary-only transform, i.e., a transform within the set 138. Additionally, the decoder is configured to decode the primary transform indicator 126 from the data stream. In the case where the secondary transform indicator 124 indicates that the transform 131 on which the transform coefficient block 104 is based is a primary-only transform, the primary transform indicator 126 identifies the primary-only transform (i.e., one of the sets 138) from the set 138 of primary-only transforms. And, in the case where the secondary transform indicator 124 indicates that the transform 131 on which the transform coefficient block 104 is based is a multi-stage transform (i.e., a transform of the set 136), and if the set 136 of one or more multi-stage transforms includes more than one multi-stage transform having different primary transforms 136a, the primary transform indicator 126 identifies the primary transform 136a of the multi-stage transform. Thus, in this case, the primary transform indicator 126 is configured to indicate the primary-only transform from the set 138 of primary-only transforms or, depending on what the secondary transform indicator 124 indicates, to indicate the primary transform 136a for the multi-stage transform.

[0091] According to Figure 11b In an additional or alternative embodiment as shown in, the decoder is configured to decode the primary transform indicator 126 from the data stream. The primary transform indicator 126 indicates a first transform from the set 138 of primary-only transforms, and the set 138 of primary-only transforms includes one or more first primary-only transforms T1... T N1 (i.e., the primary transform of the first set 132 of transforms) and one or more second primary-only transforms T N1+1 ... T N2 (i.e., the primary transform of the second set 134 of transforms). If the first transform is one of the first primary-only transforms T1... T N1 in, the decoder is configured to decode the secondary transform indicator 124 from the data stream, and the secondary transform indicator 124 identifies the transform 131 on which the transform coefficient block 104 is based from a set (e.g., one from the set 130 of available transforms that does not have one or more second primary-only transforms T N1 ... T N1+1 ... T N2 ) that includes the multi-stage transform 136 and one or more first primary-only transforms T1... T N1 In the alternative, in the case where the first transform is one of the first primary-only transforms T1... T N1 from, one or more primary transforms T1 (p) to a set (in which some transforms can be equal to each other), which can identify the transform 131 on which the transform coefficient block 104 is based. In the case where the first transform is the primary transform of a multi-stage transform among multi-stage transforms, the transform 131 on which the transform coefficient block 104 is based is a multi-stage transform. In the case where the first transform is one of one or more second-only primary transforms T N1+1 ……T N2 among the second-only primary transforms, one of the second-only primary transforms is indicated by the primary transform indicator 126. Thus, in the case where the first transform is one of one or more first-only primary transforms T1……T N1 among the first-only primary transforms, the secondary transform indicator 124 indicates the transform 131 on which the transform coefficient block 104 is based, and, in the case where the first transform is one of one or more second-only primary transforms T N1+1 ……T N2 among the second-only primary transforms, the primary transform indicator 126 indicates the transform 131 on which the transform coefficient block 104 is based.

[0092] According to Figure 11b the additional or alternative embodiments shown, the decoder is configured to decode the primary transform indicator 126 from the data stream. The primary transform indicator 126 indicates the first transform from the set including one or more first-only primary transforms T1……T N1 and one or more second-only primary transforms T N1+1 ……T N2 If the first transform is the primary transform T1 (p) to among one or more multi-stage transforms in the multi-stage transform 136 that is equal to the first-only primary transforms T1……T N1 , the decoder is configured to decode the secondary transform indicator 124 from the data stream, and the secondary transform indicator 124 identifies the transform 131 on which the transform coefficient block 104 is based from the set including the first-only primary transform and one or more multi-stage transforms whose primary transform is equal to the first-only primary transform (e.g., the first-only primary transform indicated by the primary transform indicator 126).

[0093] According to an embodiment, the decoder 20 is configured to perform decoding of the primary transform indicator 126 from the data stream using context-adaptive entropy decoding with a predetermined probability model, and determine the predetermined probability model depending on where the first coding coefficient position 102 is located within the transform coefficient block 104.

[0094] According to an embodiment, when the decoder 20 is configured to determine the predetermined probability model depending on where the first coding coefficient position 102 is located within the transform coefficient block 104, If the first coding coefficient position 102 coincides with the last scan position 101, the predetermined probability model is set to the first probability model. If the first coding coefficient position 102 is not more than a predetermined number 240 of transform coefficients away from the last scan position 101 along the first coefficient scan order 110, the predetermined probability model is set to the second probability model, and If the first coding coefficient position 102 is more than a predetermined number 240 of transform coefficients away from the last scan position 101 along the first coefficient scan order 110, the predetermined probability model is set to the third probability model.

[0095] The first coefficient scan order 110 and the second coefficient scan order 114 coincide in the last scan position 101 and a predetermined number 240 of transform coefficients 120 upstream of the last scan position 101.

[0096] According to an alternative embodiment, the decoder 20 is configured to determine a predetermined probability model depending on where the first coding coefficient position 102 is within the transform coefficient block 104, If the first coding coefficient position 102 is not more than a predetermined number 240 of transform coefficients away from the last scan position 101 or coincides with the last scan position 101 along the first coefficient scan order 110, the predetermined probability model is set to the first probability model, and If the first coding transform coefficient position 102 is more than a predetermined number 240 of coefficients away from the last scan position 101 along the first coefficient scan order 110, the predetermined probability model is set to the second probability model.

[0097] The first coefficient scan order 110 and the second coefficient scan order 114 coincide in the last scan position 101 and a predetermined number 240 of transform coefficients upstream of the last scan position 101.

[0098] The above-described setting of the predetermined probability model for context-adaptive entropy decoding of the primary transform indicator 126 from the data stream may include features and / or functionality as described for the setting of the predetermined probability model 232 of context-adaptive entropy decoding 230 for decoding the transform information 108 from the data stream 14 as shown in Figure 9 The first probability model, the second probability model, and optionally the third probability model for context-adaptive entropy decoding of the primary transform indicator 126 may be different from the first probability model, the second probability model, and optionally the third probability model for context-adaptive entropy decoding of the transform information 108.

[0099] According to an embodiment, the primary transform is equal for all of the one or more multi-stage transforms 136 and is also equal to one of the one or more first primary-only transforms T0 or T1-T N1 among a first primary-only transform.

[0100] According to an embodiment, as Figure 11a shown, there is only one first primary-only transform T0.

[0101] According to an embodiment, the decoder 20 is configured to subject the transform coefficient block 104 to an inverse transform (e.g., an inverse transform) that reverses the transform 131 on which the transform coefficient block 104 is based, in order to obtain the sample block 84.

[0102] According to an embodiment, the decoder 20 is configured to use the sample block 84 to correct a prediction signal obtained by intra-picture or inter-picture prediction.

[0103] Figure 12 Shown is the decoder 20 for decoding the transform representation of the sample block 84 from the data stream 14. The decoder 20 is configured to decode the coefficient position information 150 from the data stream 14. The coefficient position information 150 indicates the first encoded coefficient position 102 within the transform coefficient block 104. The coefficient position information 150 may have the same characteristics and / or functionality as described for the coefficient position information 100 of the decoder as shown in Figure 7 .

[0104] The decoder 20 is configured to decode the values of the transform coefficients 120 of the transform coefficient block 104 that are located along a predetermined coefficient scan order 110 from the first encoded coefficient position 102 forward to the last scan position 101, and to infer that the transform coefficients 112 of the transform coefficient block 104 that are located upstream of the first encoded coefficient position 102 along the predetermined coefficient scan order 110 are zero. As Figure 12 shown, the transform coefficients 112 in the shaded region of the transform coefficient block 104 are inferred to be zero.

[0105] The decoder is configured to check 152 all of the transform coefficients 118 of the transform coefficient block 104 that are located along a predetermined coefficient scan order 110 from the first encoded coefficient position 102 forward to the last scan position 101 (i.e., at Figure 12Whether the transform coefficients indicated by x in the middle are all zero if they are not located within the predetermined sub-region 106 of the transform coefficient block 104. In the embodiments described later, for example, this check is performed in a manner where the coefficients are individually checked for zeroness based on the corresponding significance flags. However, there are alternatives. For example, it is possible that the check 152 can be performed block-by-subblock, and the predetermined sub-region 106 includes all sub-blocks except some sub-blocks of the lowest spectral components. For example, it includes the DC sub-block including the DC coefficient and the nxm sub-blocks located at the upper left corner of the block 104 that include the last scan position 101. For example, n can be equal to m. For example, n can be 4 and m can be 4. More precisely, the transform coefficient block can be subdivided into sub-blocks, where each sub-block is, for example, 4x4 transform coefficients large, such that the upper left sub-block is the sub-block of the lowest spectral component. Each sub-block can be indicated, for example, by an index or by coordinates (e.g., xS and yS) that define the position of the corresponding sub-block within the transform coefficient block 104, where xS indicates the sub-block column of the corresponding sub-block, and yS indicates the sub-block row of the corresponding sub-block, where the indices start from zero, i.e., the sub-block (xS,yS)=(0,0) is the DC sub-block. The predetermined coefficient scan order 110 can traverse the coefficients of the block 104 block-by-subblock, i.e., traverse all the coefficients within a sub-block before moving on to the next sub-block. The sub-blocks can be traversed in a manner similar to the scan within each sub-block (i.e., diagonally). For each sub-block except the sub-block of the lowest spectral component and the sub-block including the last scan position 101, a sub-block flag can be transmitted in the data stream, i.e., decoded by the decoder and encoded by the encoder into the data stream, and the sub-block flag indicates whether any significant coefficients are included within the corresponding sub-block for the corresponding sub-block. The decoder can check, based on these sub-block flags, whether there are significant values in any sub-block outside the predetermined region (i.e., in any sub-block between the nxn lowest spectral component sub-blocks and the sub-block including the last encoded coefficient). By this measure, it is tested whether all the transform coefficients 118 along the predetermined coefficient scan order 110 of the transform coefficient block 104, from the first encoded coefficient position 102 forward to the last scan position 101, are zero if they are not located within the predetermined sub-region 106 of the transform coefficient block 104, i.e., in the case where all the encoded sub-block flags for the sub-blocks between the nxn sub-blocks and the sub-block including the last encoded coefficient are zero. For example, in the case where the predetermined region is 16x16 transform coefficients large (i.e., 4 sub-blocks wide and 4 sub-blocks high), the check 152 checks whether the sub-blocks outside the predetermined sub-region 106 (e.g., the sub-blocks indicated by coordinates xS>3 or yS>3) include one or more significant transform coefficients. Let's continue the description.

[0106] If all transform coefficients 118 along a predetermined coefficient scan order 110 of transform coefficient block 104 that are located from a first coded coefficient position 102 forward to a final scan position 101 are zero if they are not within a predetermined sub-region 106 of transform coefficient block 104, then decoder 20 is configured to decode 153 transform information 154 from data stream 14 and use the transform information 154 to identify 155 the transform 131 on which transform coefficient block 104 is based from a set 130 of available transforms (e.g., from a second set 134 of one or more available transforms that is from set 130 of available transforms).

[0107] If not all transform coefficients 118 along a predetermined coefficient scan order 110 of transform coefficient block 104 that are located from a first coded coefficient position 102 forward to a final scan position 101 are zero if they are not within a predetermined sub-region 106 of transform coefficient block 104, then the decoder is configured to reduce the set 130 of available transforms to a first set 132 of one or more available transforms by removing a second set 134 of one or more available transforms from the set 130 of available transforms and determine the transform 131 on which transform coefficient block 104 is based from the first set 132 of one or more available transforms. This can also be described in the following way: If a sub-block is outside a predetermined region, e.g., the upper left 16x16 coefficients, and it is significant (i.e., e.g., the corresponding sub-block contains at least one non-zero coefficient), then it follows that only a limited set of transforms can be utilized, e.g., only the transforms of a first set 132 of one or more available transforms. If the set 132 contains only one transform (e.g., only DCT-II), then the value of mts_idx can be inferred as 0.

[0108] According to an embodiment, the set 130 of available transforms can be, for example Figure 11a or the set 138 of only primary transforms as shown in 11b, the set 138 of only primary transforms including, for example, one or more first only primary transforms T1... T included in a first set 132 of one or more available transforms N1 and one or more second only primary transforms T N1+1 ... T N2 included in a second set 134 of one or more available transforms. Preferably, as shown in, for example Figure 11a the set 130 of available transforms consists of a first only primary transform T0 and one or more second only primary transforms T1... T N Thus, in the case where it is not the case that outside a predetermined sub-region 106 of transform coefficient block 104 in transform coefficient block 104 Figure 12In a second case where all transform coefficients 118 indicated by x are zero, the decoder may determine a first primary-only transform T0 as the transform 131 on which the transform coefficient block 104 is based. Outside the predetermined sub-region 106 of the transform coefficient block 104, the transform coefficient block 104 is in Figure 12 In another case where all transform coefficients 118 indicated by x are zero, the decoder may determine the transform 131 from the set 130 on which the transform coefficient block 104 is based by means of an index transmitted in the data stream for block 104 (i.e., in this other case, decoded by the decoder from the data stream and encoded by the encoder into the data stream). The set 130 of available transforms may include five different options, and one transform T0 may be a DCTII-DCTII transform. The latter example may be combined, for example, with the example mentioned above of checking for zero sub-block by sub-block outside the predetermined region. Additionally, in this example, optionally, it may be possible that there is an encoding option for block 104 according to which the transform 131 on which block 104 is based is a combination of a primary transform and a secondary transform as just outlined. For example, it may be possible that if the position of the last encoded transform coefficient satisfies a certain condition, an additional index selects a secondary transform from the set of secondary transforms. As an option, this set may not include a secondary transform, i.e., effectively leaving the primary transform as the identity transform of the primary-only transform. If the certain condition is not met, the secondary transform will also not be used.

[0109] The transform 131 on which the transform coefficient block 104 is based, together with the transform coefficient block 104, defines a transform representation, and the predetermined coefficient scan order 110 scans the transform coefficients 120 in such a way that there is one or more transform coefficients 118 outside the predetermined sub-region 106 that are scanned by the predetermined coefficient scan order 110 between two transform coefficients 120 located inside the predetermined sub-region 106, i.e., the transform coefficients indicated by x.

[0110] According to an embodiment, the decoder is configured to check whether the first encoded coefficient position 102 is within the predetermined sub-region 106 of the transform coefficient block 104 and to check 152 whether all transform coefficients 118 located outside the predetermined sub-region 106 of the transform coefficient block 104 and along the predetermined coefficient scan order 110 from the first encoded coefficient position 102 forward to the last scan position 101 are zero. Optionally, if the first encoded coefficient position 102 is within the predetermined sub-region 106 of the transform coefficient block 104, only the check 152 is performed. This results from the fact that in the case where the first encoded coefficient position 102 is outside the predetermined sub-region 106 of the transform coefficient block 104, the transform coefficients outside the predetermined sub-region 106 should not be zero.

[0111] According to an embodiment, the decoder 20 is configured to perform decoding 153 of the transform information 154 from the data stream 14 using context adaptive entropy decoding using a predetermined probability model, and to determine the predetermined probability model depending on where the first coding coefficient position 102 is located within the transform coefficient block 104. Optionally, as Figure 9 shown, the predetermined probability model for context adaptive entropy decoding for decoding the transform information 154 from the data stream 14 may be set as described with respect to the predetermined probability model 232 for context adaptive entropy decoding 230 for decoding the transform information 108 from the data stream. However, it is obvious that the first probability model, the second probability model, and the optional third probability model for context adaptive entropy decoding of the transform information 154 may be different from the first probability model, the second probability model, and the optional third probability model for context adaptive entropy decoding of the transform information 108.

[0112] According to an embodiment, as Figure 11a shown, the set 130 of available transforms includes a multi-stage transform 136, each of which corresponds to a primary transform and a secondary transform cascade within a predetermined sub-region 106, and consists of a primary transform outside the predetermined sub-region 106. The multi-stage transform 136 is included in one or more second sets 134 of available transforms. The set 138 of only primary transforms includes: a first only primary transform T0, the first only primary transform T0 forms a first set 132 of one or more available transforms, and for all primary transforms of all the multi-stage transforms 136 among the one or more multi-stage transforms is equal to the first only primary transform T0; and one or more second only primary transforms T1-T N1 , which are included in one or more second sets 134 of available transforms.

[0113] According to an embodiment, use the description above and in Figure 11aThe set 130 of available transforms shown in. The decoder 20 is configured to decode a secondary transform indicator 156 from the data stream 14 if all transform coefficients 118 of the transform coefficient block 104 along a predetermined coefficient scan order 110 that are located from the first coded coefficient position 102 forward to the last scan position 101 are zero if not within a predetermined sub-region 106 of the transform coefficient block 104. The secondary transform indicator 156 indicates whether the transform 131 on which the transform coefficient block 104 is based is a multi-stage transform 136 and which one of one or more multi-stage transforms 136, or indicates whether the transform 131 on which the transform coefficient block 104 is based is a primary-only transform 138. In other words, the secondary transform indicator 156 indicates whether the transform 131 on which the transform coefficient block 104 is based belongs to the multi-stage transform 136 or to the primary-only transform 138, where if the transform 131 belongs to the multi-stage transform 136, the transform 131 on which the transform coefficient block 104 is based is directly indicated by the secondary transform indicator 156. Additionally, in this first case 157, it is checked whether the secondary transform indicator 156 indicates that the transform 131 on which the transform coefficient block 104 is based is a primary-only transform 138, and if the secondary transform indicator 156 indicates that the transform 131 on which the transform coefficient block 104 is based is a primary-only transform 138, the decoder 20 is configured to decode a transform indicator 160 (e.g., a primary transform indicator) from the data stream 14, the transform indicator 160 identifying the primary-only transform from the set 138 of primary-only transforms. In the second case 159, if not all transform coefficients 118 of the transform coefficient block 104 along the predetermined coefficient scan order 110 that are located from the first coded coefficient position 102 forward to the last scan position 101 are zero if not within the predetermined sub-region 106 of the transform coefficient block 104, the transform on which the transform coefficient block is based is the first primary-only transform T0.

[0114] According to an embodiment, use is made of the set 130 of available transforms described above and shown in Figure 11a The decoder 20 is configured to decode a primary transform indicator 160 from the data stream 14 if all transform coefficients 118 of the transform coefficient block 104 along a predetermined coefficient scan order 110 that are located from the first coded coefficient position 102 forward to the last scan position 101 are zero if not within a predetermined sub-region 106 of the transform coefficient block 104. The primary transform indicator 160 indicates the primary-only transform from among those including the first primary-only transform T0 and one or more second primary-only transforms T1 - T N1The first transform of the set. If the first transform is the first-only primary transform T0, the decoder 20 is configured to decode the secondary transform indicator 156 from the data stream 14, and the secondary transform indicator 156 identifies the transform 131 on which the transform coefficient block 104 is based from the set including the first-only primary transform T0 and the multi-stage transform 136. If the first transform is one of one or more second-only primary transforms T1 - T N1 in the one of the second-only primary transforms, the transform 131 on which the transform coefficient block 104 is based is one of the second-only primary transforms, i.e., the second-only primary transform indicated by the primary transform indicator 160. If not all of the transform coefficients 118 of the transform coefficient block 104 along the predetermined coefficient scan order 110 from the first coded coefficient position 102 forward to the last scan position 101 are zero if they are not within the predetermined sub-region 106 of the transform coefficient block 104, the transform 131 on which the transform coefficient block 104 is based is the first-only primary transform T0.

[0115] According to an embodiment, the primary transform is equal for all of the one or more multi-stage transforms 136, and is also equal to one of the one or more first-only primary transforms, e.g., equal to Figure 11a T0 in Figure 11b or equal to one of T1 - T N1 in one of them.

[0116] According to an embodiment, as Figure 11a shown, there is only one first-only primary transform T0.

[0117] According to an embodiment, the decoder 20 is configured to subject the transform coefficient block 104 to an inverse transform that inverses the transform 131 on which the transform coefficient block 104 is based, so as to obtain the sample block 84.

[0118] According to an embodiment, the decoder 20 is configured to use the sample block 84 to correct the prediction signal obtained by intra-picture or inter-picture prediction.

[0119] According to an embodiment, an encoder having the parallel features and / or functionality of one of the decoders described above with respect to Figures 7 to 12 one of them is configured to subject the sample block 84 to the transform 131 on which the transform coefficient block 104 is based, so as to obtain the transform coefficient block 104.

[0120] According to an embodiment, an encoder having the parallel features and / or functionality of one of the decoders described above with respect to Figures 7 to 12 one of them is configured to derive the prediction residual of the prediction signal obtained by intra-picture or inter-picture prediction, and determine the sample block 84 (e.g., including quantization) to represent the prediction residual.

[0121] The following description describes in other terms the two ways described above for improving the coding efficiency for transform type signaling: 1. Maintain the signaling transform type after the coefficient level in the sub-block When the first (last) significant coefficient position 102 in the current transform block 104 is within a region where all coefficients are required to be equal to 0 for a certain subset of the allowed transforms (i.e., the first (last) significant coefficient position 102 is outside the predetermined sub-region 106 (e.g., outside the 16x16 region for the non-DCT-II transform described above)), only the subset of the allowed transforms that does not have a non-zero requirement can be signaled, e.g., the transforms of the first set 132 of the available transforms of the set of available transforms 130. In the case where this subset contains only one transform, no signaling is required and the transform is inferred (e.g., the MTS index is not signaled but is inferred to be equal to 0, which is illustrated in Figure 13 the two simplified syntax diagrams).

[0122] Figure 13 Shows simplified syntax diagrams regarding the unmodified sub-block (SB) scan depending on the transform selection using mts_idx.

[0123] When the first (last) significant coefficient position 102 in the current transform block 104 is outside the region where all coefficients are required to be equal to 0 for a certain subset of the allowed transforms (i.e., the first (last) significant coefficient position 102 is inside the predetermined sub-region 106 (e.g., inside the 16x16 region for the non-DCT-II transform described above)), as Figure 12 shown, the position of each subsequently scanned coefficient is checked 152. If at least one coefficient 118 is outside the non-zero region (i.e., the predetermined sub-region 106), only the subset of the allowed transforms that does not have a non-zero requirement can be signaled, e.g., the transforms of the first set 132 of the available transforms of the set of available transforms 130. In the case where this subset contains only one transform, no signaling is required and the transform is inferred (e.g., the MTS index is not signaled but is inferred to be equal to 0). This condition is illustrated in Figure 13 the simplified syntax diagram on the right (see the condition on AllLumaCoeffOutside16x16AreZero).

[0124] In the case where an additional transform (e.g., LFNST) can be applied, the selection of the transform is signaled 156 before the transform type, and it indicates that for applying the additional transform, only a subset of the transforms allowed in combination with the additional transform can be signaled. In the case where there is only one transform in the subset, no signaling is required, and the transform is inferred (e.g., if the LFNST index is greater than 0, which signals the application of LFNST, then the MTS index is not signaled but is inferred to be equal to 0, which corresponds to DCT-II as illustrated in the two simplified syntax diagrams in Figure 13 .

[0125] In the case where an additional transform (e.g., LFNST) can be applied, the selection of the additional transform is signaled 156 after the transform type, and the transform type indicates the transforms not allowed to be combined with the additional transform. The selection of the additional transform is not signaled but is inferred to be disabled (e.g., if the MTS index is greater than 0, which signals the application of a non-DCT-II transform, then the LFNST index is not signaled but is inferred to be equal to 0, which corresponds to disabling LFNST).

[0126] 2. Signal transform type after the first (last) significant coefficient position and before the coefficient levels in the sub-block After the first (last) significant coefficient position 102 in the current transform block 104 is signaled 100 and it is located inside a region where all coefficients are required to be equal to 0 for a certain subset of the allowed transforms (i.e., the first (last) significant coefficient position 102 is outside the predetermined sub-region 106 (e.g., outside the 16x16 region for the non-DCT-II transform described above)), as Figure 8 shown, only a subset of the allowed transforms that do not have a non-zero requirement can be signaled, e.g., the transforms of the first set 132 of the available transforms of the set of available transforms 130. In the case where there is only one transform in the subset, no signaling is required, and the transform is inferred (e.g., the MTS index is not signaled but is inferred to be equal to 0). This condition is illustrated in the two simplified syntax diagrams in Figure 14 (see the condition on LastCoeffPosY in 16x16).

[0127] Figure 14 Shows simplified syntax diagrams regarding the modified sub-block (SB) scan depending on the transform selection using mts_idx.

[0128] When signaling a transform that requires all coefficients outside a specific region (i.e., the predetermined sub-region 106) to be equal to 0, as shown on the left in Figure 3 or as in Figure 7As shown in, the scanning order is changed such that only sub-blocks and coefficients within the region (i.e., the predetermined sub-region 106) are in the scanning path 114. This condition is also illustrated in Figure 14 two simplified syntax diagrams in (see the condition on mts_idx>0).

[0129] In cases where an additional transform (e.g., LFNST) can be applied, the selection 124 of the additional transform is signaled after the transform type, and the transform type indicates transforms that are not allowed to be combined with the additional transform. For example, for the second-only primary transform, the selection of the additional transform is not signaled but is inferred to be disabled (e.g., if the MTS index is greater than 0, which signals the application of a non-DCT-II transform, then the LFNST index is not signaled but is inferred to be equal to 0, which corresponds to disabling the LFNST illustrated in the simplified syntax diagram on the Figure 14 left side of ).

[0130] In addition to the previous cases, as Figure 9 shown in, the signaling of the transform type can also be performed using context-adaptive entropy coding 230 (e.g., context-adaptive binary arithmetic coding (CABAC)). In this case, the context selection can depend on the condition of whether an additional transform (e.g., LFNST) is allowed to be applied. This can be the number 240 of non-zero coefficients in the current block (i.e., the current transform coefficient block 104) inferred from the first (last) significant coefficient position 102. If applying an additional transform to the DC coefficient (i.e., the last scanning position 101, i.e., the upper-left (0,0) zero-frequency position) would result in the same DC coefficient, then applying and signaling such an additional transform would be meaningless if there is only one DC coefficient in the current transform block, i.e., in the case where the first coding coefficient position 102 coincides with the last scanning position 101. Therefore, if the last (first) significant position points to the DC position that is also the first and last position in the scanning order, then there is no need to signal the additional transform, and a specific context A, e.g., the first probability model, is selected for the MTS index. In Figure 10 the right side of illustrates this case. Additionally, to reduce the complexity in terms of the number of multiplications, for the additional transform in the scanning order 110, only a certain maximum number 240 of coefficients (e.g., 8) are allowed from the first (last) significant position 102 to the DC (i.e., the last scanning position 101). In Figure 10 the left side of illustrates this case. In all other cases where an additional transform can be applied and / or signaled indication is possible, another context B (e.g., the second probability model) is selected. In summary, the condition for context selection based on the previous examples will be: · If the current transform block 104 has more non-zero coefficients than DC, and there are no more than 8 coefficients in the scan order 110 from the last significant position to DC, then context A is selected, e.g., the second probability model 2362.

[0131] · Otherwise, context B is selected.

[0132] Another example may have more than 2 contexts depending on conditions · If the current transform block 104 has no more non-zero coefficients than DC, then context A is selected, i.e., the first probability model 2361.

[0133] · Otherwise, if there are no more than 8 coefficients in the scan order from the last significant position to DC, then context B is selected, i.e., the second probability model 2362.

[0134] · Otherwise, context C is selected, i.e., the third probability model 2363.

[0135] The conditions can also be applied to multiple transform blocks. For example, in the case where a luminance transform block is divided into multiple (e.g., 4) transform blocks, for the luminance and two chrominance blocks or for more than one luminance block, there must be more coefficients than DC.

[0136] Figure 10 An 8x8 block is shown, which has four 4x4 sub-blocks and a maximum of eight non-zero coefficients in the scan order (left) or has only one non-zero coefficient at the DC position (right).

[0137] In the case where an additional transform (e.g., LFNST) can be applied, the selection of the additional transform is signaled before the transform type, and it indicates that for the application of the additional transform, only a subset of the transforms allowed in combination with the additional transform can be signaled. In the case where the subset contains only one transform, no signaling is required and the transform is inferred (e.g., if the LFNST index is greater than 0, which signals the application of LFNST, then the MTS index is not signaled but is inferred to be equal to 0, which corresponds to DCT-II illustrated in the simplified syntax diagram on the Figure 14 right).

[0138] 3. Example of implementation Figure 11a and Figure 11b the primary transforms T i and T i (p) may include one or more of the following: o DCT-II (or DCT-III), where DCT represents the discrete cosine transform o DST-IV, where DST represents the discrete sine transform o DCT-IV o DST-VII o Identity transform (IT) Primary transform T i and T i (p) can be a separable transform.

[0139] Secondary transform T i (s) can be an inseparable transform as follows: T applied to the primary transform within sub-region 106 i (p) coefficients to produce, at the encoder, coefficients of the final transform coefficient block 104 in the forward direction, where the decoder applies the inverse transform T -1 to the transform coefficient block 104 to invert the resulting multi-stage transform T i (s) ·T i (p) inverse, to obtain the sample block 84.

[0140] The following remarks should be made. Sequences 114 and 110 are not limited to the illustrated example of a diagonal scan from (horizontally and vertically) the highest frequency coefficients (located diagonally in block 104 relative to the last scan position 101 which may be the DC coefficient), and do not necessarily scan the coefficients first along a per-sub-block scan process of all coefficients within a scanned sub-block before another sub-block. Also, sub-array 106 is not limited to being 16x16 coefficients large, and can be any rectangular coefficient sub-array extending diagonally from the last scan position 101 into block 104.

[0141] Also,[[]] Figure 11a is illustrative only. More than one only-primary transform can be included in set 132. Depicted in Figure 11b The primary transform T1 of the multi-stage transform 136 (p) to can be unequal to another, but can have one or more different members of the only-primary transforms where one or more of which in set 136 can belong to set 132, or not.

[0142] Also, only because of the clustering T1 Figure 11a exemplarily shown in (p) =... = T N2 (p) = T0, it has been possible, in the case of indicating the non-existence of only-primary transforms, to regard the indicator 124 as indicating the selected multi-stage transform, or in the case of indicating the non-existence of only-primary transforms, to regard the indicator 124 as indicating the selected secondary transform. The indicator 124 can alternatively be interpreted as indicating the secondary transform if still available.

[0143] Although some aspects have been described in the context of a device, it will be apparent that these aspects also represent a description of a corresponding method, where a block or device corresponds to a method step or a feature of a method step. Similarly, aspects described in the context of method steps also represent a description of corresponding blocks or items or features of a corresponding device. Some or all of the method steps may be performed by (or using) a hardware device such as, for example, a microprocessor, a programmable computer, or an electronic circuit. In some embodiments, one or more of the most important method steps may be performed by such a device.

[0144] Inventive encoded signals such as, for example, video signals can be stored on a digital storage medium or can be transmitted on a transmission medium such as, for example, a wireless transmission medium or a wired transmission medium such as the Internet.

[0145] Depending on certain implementation requirements, embodiments of the present invention can be implemented in hardware or in software. The implementation can use a digital storage medium (for example, a floppy disk, a DVD, a Blu-ray disc, a CD, a ROM, a PROM, an EPROM, an EEPROM, or a flash memory) having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the corresponding method is performed. Thus, the digital storage medium can be computer-readable.

[0146] Some embodiments according to the present invention include a data carrier having electronically readable control signals that are capable of cooperating with a programmable computer system such that one of the methods described herein is performed.

[0147] In general, embodiments of the present invention can be implemented as a computer program product having program code that is operative to perform one of the methods when the computer program product is run on a computer. The program code can be stored, for example, on a machine-readable carrier.

[0148] Other embodiments include a computer program stored on a machine-readable carrier for performing one of the methods described herein.

[0149] In other words, thus, embodiments of the inventive method are computer programs having program code for performing one of the methods described herein when the computer program is run on a computer.

[0150] Thus, further embodiments of the inventive method are data carriers (or digital storage media or computer-readable media) that include a computer program recorded thereon for performing one of the methods described herein. The data carrier, digital storage medium, or recording medium is generally tangible and / or non-transitory.

[0151] Accordingly, a further embodiment of the inventive method is a data stream or signal sequence representing a computer program for performing one of the methods described herein. The data stream or signal sequence can be configured, for example, to be transferred via a data communication connection (e.g., via the Internet).

[0152] A further embodiment includes a processing device, such as a computer or a programmable logic device, configured or adapted to perform one of the methods described herein.

[0153] A further embodiment includes a computer on which a computer program for performing one of the methods described herein has been installed.

[0154] A further embodiment according to the invention includes a device or system configured to transfer a computer program (e.g., electronically or optically) for performing one of the methods described herein to a receiver. The receiver can be, for example, a computer, a mobile device, a memory device, etc. The device or system can include, for example, a file server for transferring the computer program to the receiver.

[0155] In some embodiments, a programmable logic device (e.g., a field programmable gate array) can be used to perform some or all of the functionality of the methods described herein. In some embodiments, a field programmable gate array can cooperate with a microprocessor in order to perform one of the methods described herein. Generally, the methods are preferably performed by any hardware device.

[0156] The devices described herein can be implemented using a hardware device or using a computer or using a combination of a hardware device and a computer.

[0157] The devices described herein or any components of the devices described herein can be implemented at least in part in hardware and / or in software.

[0158] The methods described herein can be performed using a hardware device or using a computer or using a combination of a hardware device and a computer.

[0159] The methods described herein or any components of the devices described herein can be performed at least in part by hardware and / or by software.

[0160] The embodiments described above are illustrative only of the principles of the invention. It is understood that modifications and variations of the arrangements and details described herein will be apparent to other technicians in the art. Accordingly, it is intended to be limited only by the scope of the upcoming patent claims and not by the specific details presented by the description and interpretation of the embodiments herein.

Claims

1. An apparatus for decoding a picture or video, the apparatus being configured to perform operations including: Decoding coefficient position information from a data stream, the coefficient position information indicating the coefficient positions of non-zero coefficients within a transform block; Determining that at least one non-zero coefficient is located outside a region of the transform block based on the coefficient positions of the non-zero coefficients within the transform block; Selecting a transform to be applied to the transform block based on the determination; 2. The device according to claim 1, wherein, The coefficient positions of the non-zero coefficients include the position of the last significant coefficient in the scan order within the transform block; 3. The device according to claim 1, wherein, The region of the transform block includes the upper left 16x16 region of the transform block; 4. The device according to claim 1, wherein The selection of the transform includes: Inferring that the value of a multi-transform selection index mts_idx is zero, where the value of the mts_idx is not signaled in the data stream and where the value of the mts_idx indicates the transform to be applied; 5. The apparatus according to claim 1, wherein the selected transform includes a discrete cosine transform (DCT) II; 6. An apparatus for encoding a picture or video, the apparatus being configured to perform operations including: Encoding coefficient position information into a data stream, the coefficient position information indicating the coefficient positions of non-zero coefficients within a transform block; Determining that at least one non-zero coefficient is located outside a region of the transform block based on the coefficient positions of the non-zero coefficients within the transform block; Selecting a transform to be applied to the transform block based on the determination; 7. The apparatus according to claim 6, wherein The coefficient positions of the non-zero coefficients include the position of the last significant coefficient in the scan order within the transform block; 8. The apparatus according to claim 6, wherein, The region of the transform block includes the upper left 16x16 region of the transform block; 9. The device according to claim 6, wherein, The selected transform includes a discrete cosine transform (DCT) II; 10. A method for decoding a picture or video, the method including: Decoding coefficient position information from a data stream, the coefficient position information indicating the coefficient positions of non-zero coefficients within a transform block; Determining that at least one non-zero coefficient is located outside a region of the transform block based on the coefficient positions of the non-zero coefficients within the transform block; Selecting a transform to be applied to the transform block based on the determination; 11. The method according to claim 10, wherein, The coefficient positions of the non-zero coefficients include the position of the last significant coefficient in the scan order within the transform block; 12. The method according to claim 10, wherein The region of the transform block includes the upper left 16x16 region of the transform block; 13. The method according to claim 10, wherein, The selection of the transform includes: Inferring that the value of a multi-transform selection index mts_idx is zero, where the value of the mts_idx is not signaled in the data stream and the value of the mts_idx indicates the transform to be applied; 14. The method according to claim 10, wherein, The selected transform includes a discrete cosine transform (DCT) II; 15. A non-transitory storage medium storing program code, which when executed by at least one processor, causes the at least one processor to perform the method according to any one of claims 10-14; 16. A method for encoding a picture or video, the method including: Encoding coefficient position information into a data stream, the coefficient position information indicating the coefficient positions of non-zero coefficients within a transform block; Determining that at least one non-zero coefficient is located outside a region of the transform block based on the coefficient positions of the non-zero coefficients within the transform block; Based on the determination, a transform applied to the transform block is selected.

17. The method according to claim 16, wherein The coefficient positions of the non-zero coefficients include the last significant coefficient position in the scan order within the transform block.

18. The method according to claim 16, wherein The region of the transform block includes the upper left 16x16 region of the transform block.

19. The method according to claim 16, wherein The selected transform includes the discrete cosine transform (DCT) II.

20. A non-transitory storage medium storing program code that, when executed by at least one processor, causes the at least one processor to perform the method according to any one of claims 16-19.