Coding concepts for the converted representation of the sample block

By employing a different scan order and context-adaptive entropy coding for transformation coefficients, the inefficiencies in video coding are addressed, resulting in reduced signaling overhead and improved compression efficiency for non-DCT-II transforms.

JP2026053578APending Publication Date: 2026-03-25FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-12-24
Publication Date
2026-03-25

AI Technical Summary

Technical Problem

Current video coding techniques, such as the Versatile Video Coding (VVC) draft, face inefficiencies in signaling overhead due to the requirement that non-zero transformation coefficients must be confined within a predetermined sub-area, leading to increased complexity and reduced compression efficiency when using non-DCT-II transforms.

Method used

Implement a different scan order for transformation coefficient blocks based on the location of the first coded coefficient within a predetermined sub-area, allowing non-zero coefficients to be outside the sub-area for certain transforms, and adapt entropy coding using context-adaptive methods to reduce signaling overhead.

Benefits of technology

This approach reduces signaling overhead and improves coding efficiency by efficiently encoding/decoding transformation coefficients, especially for non-DCT-II transforms, thereby enhancing video compression.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026053578000001_ABST
    Figure 2026053578000001_ABST
Patent Text Reader

Abstract

This provides an efficient picture coding method that supports the selection of conversion types for blocks of pictures. [Solution] The decoder 20 decodes from the data stream 14 coefficient position information 100 indicating the first coded coefficient position 102 in the conversion coefficient block 104 and conversion information 108 relating to the conversion applied to the conversion coefficient block. If the conversion information indicates a conversion that requires that conversion coefficients located outside a predetermined sub-area of ​​the conversion coefficient block be zero, the decoder decodes, according to a second coefficient scan order 114, the values ​​of conversion coefficients located within a predetermined sub-area 106 from the first coded coefficient position indicated by the coefficient position information, and, according to a first coefficient scan order 110, infers that the conversion coefficients located upstream of the first coded coefficient position and the conversion coefficients located outside the predetermined sub-area are zero.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

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

[0002] introduction Hybrid video compression schemes such as AVC and HEVC rely on block-based predictions, followed by a transformation of the predicted residuals, quantization of the transformation coefficients, and entropic coding of the quantization index. The latter is also referred to as transformation coefficient coding or residual coding. The following explanation uses the term "transformation" even for integer approximations of the transformation, as is implemented in practical hybrid video compression schemes.

[0003] Conventionally, fixed transforms are defined in video coding standards for each potential block size N×N. For example, the HEVC standard defines the use of DCT-II, except for intra-predicted 4×4 blocks for which DST VI is used. By enabling a choice between multiple predefined transform types, higher compression efficiency can be achieved. The current draft for Versatile Video Coding (VVC) defines five different sets of horizontal and vertical transform type combinations (including DCT-II, DST-VII, and DCT-VIII). The bitstream includes syntax by which the transform type selected by the encoder is signaled thereby to the decoder. The coding of the transform coefficient levels is independent of the selected transform type and is signaled before the selected transform type. Due to complexity, non-DCT-II transform types are applied only to rows and columns that include 16 or fewer non-zero coefficients. In this case, the block to be transformed (transform block) may have a width and height greater than 16, but all coefficients outside the upper left 16×16 area need to be zero. Further, the transform is applied to a full transform block larger than 16×16, and as a result, the block resulting as a result of the residual samples is also larger than 16×16. This manner of reducing the implementation logic of the transform is further referred to as zeroing out.

[0004] Furthermore, the current VVC draft defines additional low-frequency non-separable transforms (LFNST) that can be applied before the transform in the encoder and after its inverse in the decoder. For this LFNST, multiple transform kernels may be selected in the encoder and may be signaled to the decoder using an LFNST index. Due to complexity, in the current VVC, only LFNST can be combined with DCT-II.

Background Art

[0005] Current state-of-the-art video coding techniques, including the development of VVC, define means for signaling one of a plurality of predefined transform types. A syntax indicating the selected transform, e.g., the transform coefficient levels are coded before a plurality of transform selection (MTS) indices.

[0006] The transform coefficient levels are coded in sub-blocks or coefficient groups. One scan pattern is used to process the sub-blocks, and still another scan pattern is used to process the coefficients inside the sub-blocks. As in the current VVC draft 7, both scan patterns may be backward / antidiagonal scans. However, other scan patterns and directions may also be employed. FIG. 1 illustrates an example of a 32×32 transform block 104 subdivided into 64 4×4 sub-blocks 117. In this example, the sub-blocks 117 are processed with an antidiagonal scan 115, i.e., from the lower right corner 103 to the upper left corner 101. FIG. 1 shows the backward / antidiagonal scanning of the 4×4 sub-blocks 117 inside the 32×32 transform block 104. DCT-based transforms tend to concentrate energy at the upper left corner 101, so that the quantized coefficient values tend to become zero at the lower right corner 103 of the block, i.e., the transform block 104, after quantization. To prevent coding and decoding of a sequence of zeros before the first non-zero coefficient 102 in the scan order 115, the first (last) non-zero or significant coefficient 102 in the (reverse) scan order 115 is signaled before processing the sub-block. Since only the sub-block 117 containing this first significant coefficient, i.e., the first non-zero 102, is known, all subsequent sub-blocks 117 in the scan order 115 are processed as shown on the right side of FIG. 1.

[0007] For example, a longer transformation with 32 coefficients in one direction requires more logic and memory in implementation. As already mentioned earlier, this has motivated the zero-out design in the current VVC draft. In this design, all transformation types may be applied to 32 coefficients in each direction, but for non-DCT-II, it is required that the last 16 coefficients in each direction be equal to 0. Figure 2 illustrates this process by applying the transformation to a 32x32 transformation block 104 where only the first 16x16 coefficients may be non-zero, thereby generating a 32x32 block of reconstructed residual samples, e.g., sample block 84. Figure 2 shows the transformation coefficient level zero-out of the 32x32 transformation block 104 before the inverse transformation 40 / 54.

[0008] Information about the selected transformation, such as the MTS index, is signaled after the transformation coefficients. As a result, the position of the first or last significance coefficient 102 is known. When this coefficient is outside the 16x16 non-zero area, i.e., outside a predetermined sub-area 106, there is no need to signal the transformation selection because in this case, the only permitted transformation is DCT-II. However, the current design cannot guarantee that all coefficients outside the 16x16 area are equal to zero. This can be seen in the example on the right in Figure 3, where the last position, i.e., the first or last coded coefficient position 102, is located inside the 16x16 non-zero area, but subsequent sub-blocks in the scan pattern 110 are outside this area. In cases where those non-zero coefficients exist, the encoder constraint must ensure that the signaled transformation is DCT-II, for example, by always signaling an MTS index equal to 0. This introduces signaling overhead because DCT-II is clearly signaled but is required to always be zero. Below, the non-zero requirement may be defined as all non-zero conversion coefficients being located inside the non-zero area, i.e., a predetermined sub-area 106, and all conversion coefficients outside the non-zero area being zero. Below, two approaches to address this aspect are described. Figure 3 shows a modified diagonal scanning 110 of the sub-block for zeroing out, according to an embodiment of the invention, on the left.

[0009] When multiple transformation selections are combined with additional transformations such as LFNST as described above, the combinations may also be constrained to reduce implementation logic. In the latest VVC draft, for example, only LFSNT can be combined with DCT-II, and the LFNST index, which indicates whether LFNST applies and, if so, to which kernel, is signaled before the MTS index. When the LFNST index indicates the use of an LFNST kernel, the MTS index is not signaled and is assumed to be equal to 0, i.e., DCT-II. A simplified syntax diagram is illustrated on the left side of Figure 13.

[0010] Therefore, it is desirable to provide a concept for more efficiently rendering picture coding and / or video coding that supports the selection of multiple predefined transformation types for blocks of pictures. In addition, or instead, it is desirable to reduce the bitstream, thereby reducing signaling costs, for example, signaling overhead.

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

[0012] Further embodiments according to the invention are defined by the subject matter of the dependent claims of this application. [Overview of the project]

[0013] In accordance with a first aspect of the present invention, the inventors of this application recognize that when attempting to enable selection of transformations for blocks of pictures, a problem arises from the fact that for some transformations, for example, for transformations in a second set of transformations such as non-DCT-II transformations, it is required that only non-zero coefficients of the transformation coefficient block be permitted / located within a predetermined sub-area of ​​the transformation coefficient block. Depending on the first coded coefficient position inside the predetermined sub-area of ​​the transformation coefficient block, i.e., the position of the first non-zero coefficient, the zero coefficients outside the predetermined sub-area can be decoded / encoded according to the coefficient scan order. The transformation coefficients may be scanned according to the coefficient scan order from the first coded coefficient position to the last scanning 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 transformation coefficient block to the first coded coefficient position, which can be understood as the last coded coefficient position in the latter case. In accordance with a first aspect of this application, the problem of decoding / encoding zero coefficients is overcome by using a different scan order for transformation coefficient blocks associated with transformations in a first set of one or more available transformations in a set of available transformations, compared to transformation coefficient blocks associated with transformation coefficient blocks associated with transformations in a first set of one or more available transformations in a set of available transformations. In the case where a transformation coefficient block is associated with transformations in a first set of one or more available transformations, the transformation coefficient block includes non-zero coefficients outside a predetermined sub-area of ​​the transformation coefficient block, and in the case where a transformation coefficient block is associated with transformations in a second set of one or more available transformations, the transformation coefficient block includes non-zero coefficients only inside a predetermined sub-area of ​​the transformation coefficient block. The inventors have found that using a different coefficient scan order depending on the underlying transformation of each transformation coefficient block is advantageous in terms of improving coding efficiency and reducing signaling overhead.This is based on the idea that a transformation can indicate whether all non-zero coefficients are located inside a predetermined sub-area of ​​the transformation coefficient block, thereby allowing for a selection of the scan order so that only non-zero transformation coefficients are decoded / encoded according to the selected scan order. If the transformations below a transformation coefficient block are in a first set of one or more available transformations, then, according to the first coefficient scan order, the transformation coefficient values ​​of transformation coefficient blocks located from the first coded coefficient position towards the last scanned position are decoded / encoded, and the decoder infers that the transformation coefficients of transformation coefficient blocks located upstream of the first coded coefficient position are zero, according to the first coefficient scan order. If the transformations below a transformation coefficient block are in a second set of one or more available transformations, then, according to the second coefficient scan order, the transformation coefficient values ​​of transformation coefficient blocks located inside a predetermined sub-area and from the first coded coefficient position towards the last scanned position are decoded / encoded, and the decoder infers that the transformation coefficients of transformation coefficient blocks located upstream of the first coded coefficient position and transformation coefficients of transformation coefficient blocks located outside the predetermined sub-area are zero, according to the first coefficient scan order. Therefore, since fewer conversion coefficients are needed for scanning, it is possible to prevent decoding / encoding zero coefficients, thereby improving coding efficiency.

[0014] Accordingly, according to a first aspect of this application, a decoder / encoder that decodes / encodes a transformed representation of a sample block from / to a data stream is configured to decode / encode coefficient position information from / to the data stream. The coefficient position information indicates the first coded coefficient position within the transformed coefficient block. The first coded coefficient position may indicate either the position of the first non-zero transformed coefficient in the coefficient scan order or the position of the last non-zero transformed coefficient in the inverse coefficient scan order. The decoder / encoder is configured to check whether the first coded coefficient position lies within a predetermined sub-area of ​​the transformed coefficient block. The predetermined sub-area may define a sub-area of ​​the transformed coefficient block, where inside the sub-area, the sub-area transformed coefficients may be non-zero, and outside the sub-area, all transformed coefficients must be zero for a particular transformed. In each embodiment, if the transformations in the lower layers of a transformation coefficient block lie within a first set of one or more available transformations in the set of available transformations, the transformation coefficient block may include non-zero transformation coefficients outside a predetermined subarea; if the transformations in the lower layers of a transformation coefficient block lie within a second set of one or more available transformations in the set of available transformations, the transformation coefficients outside the predetermined subarea are zero. The predetermined subarea may consist of 16 × 16 transformation coefficients. The predetermined subarea may be located in the upper left of the transformation coefficient block. If the initially coded coefficient position lies inside the predetermined subarea of ​​the transformation coefficient block, it is checked whether the transformations in the lower layers of the transformation coefficient block lie within a first set of one or more available transformations in the set of available transformations or within a second set of one or more available transformations in the set of available transformations. The decoder is configured to perform this check using the transformation information transmitted in the data stream.If the underlying transformations of a transformation coefficient block are within a first set of one or more available transformations, the decoder / encoder is configured to decode / encode the transformation coefficient values ​​of transformation coefficient blocks located from the first coded coefficient position toward the last scanned position according to a first coefficient scan order, and the transformation coefficients of transformation coefficient blocks located upstream of the first coded coefficient position according to the first coefficient scan order are zero. If the underlying transformations of a transformation coefficient block are within a first set of one or more available transformations, the decoder is configured to infer that the transformation coefficients of transformation coefficient blocks located upstream of the first coded coefficient position according to a first coefficient scan order are zero. If the underlying transformations of a transformation coefficient block are within a second set of one or more available transformations, the decoder / encoder is configured to decode / encode the transformation coefficient values ​​of transformation coefficient blocks located within a predetermined sub-area and located from the first coded coefficient position toward the last scanned position according to a second coefficient scan order, and the transformation coefficients of transformation coefficient blocks located upstream of the first coded coefficient position and transformation coefficient blocks located outside the predetermined sub-area according to the first coefficient scan order are zero. If the lower-level transformations of a transformation coefficient block are within a second set of one or more available transformations, the decoder is configured to infer, according to the first coefficient scan order, that the transformation coefficients of transformation coefficient blocks located upstream of the first coded coefficient position and the transformation coefficients of transformation coefficient blocks located outside a predetermined subarea are zero. The lower-level transformations of a transformation coefficient block, according to the transformation coefficient block, define the transformed representation. The second coefficient scan order scans the transformation coefficients within a predetermined subarea without scanning any transformation coefficients outside the predetermined subarea between transformation coefficients within the predetermined subarea, and the first coefficient scan order scans the transformation coefficients in such a manner that there is one or more transformation coefficients outside the predetermined subarea scanned by the first coefficient scan order between two transformation coefficients located inside the predetermined subarea.

[0015] According to the embodiment, the decoder / encoder is configured to reduce the set of available transformations to a first set of one or more available transformations by removing a second set of one or more available transformations from the set of available transformations when the first coded coefficient position is located outside a predetermined sub-area of ​​the transformation coefficient block, and to determine the lower-level transformations of the transformation coefficient block from the first set of one or more available transformations. The decoder / encoder is configured to decode / encode the transformation coefficient values ​​of transformation coefficient blocks located from the first coded coefficient position toward the last scanned position according to a first coefficient scan order, and the transformation coefficients of transformation coefficient blocks located upstream of the first coded coefficient position according to the first coefficient scan order are zero. The decoder is configured to infer that the transformation coefficients of transformation coefficient blocks located upstream of the first coded coefficient position are zero according to the first coefficient scan order. Therefore, in the case where the first coded coefficient position is located outside a predetermined sub-area of ​​the transformation coefficient block, the decoder can infer the lower-level transformations of the transformation coefficient block, and the encoder does not need to encode the transformation information related to the transformation coefficient block into the data stream, thereby reducing the bitstream and achieving high coding efficiency.

[0016] According to the embodiment, the decoder / encoder is configured to decode / encode information from / to a data stream using context-adaptive entropy decoding / coding, e.g., context-adaptive binary arithmetic coding, with a predetermined probabilistic model, e.g., an estimated probability for a particular LPS (Least Probability Symbol), or binary values ​​that are updated for a particular context. The decoder / encoder is configured to determine the predetermined probabilistic model depending on where the initially coded coefficient positions are located within the transformation coefficient block. The decoder / encoder may also be configured to determine the predetermined probabilistic model depending on where the initially coded coefficient positions are located within the transformation coefficient block, for example, by determining a continuously updated context.

[0017] According to the embodiment, the decoder / encoder is configured to determine a predetermined probabilistic model based on the location of the initially coded coefficient position within the transformation coefficient block, setting the predetermined probabilistic model to a first probabilistic model, e.g., a first context, if the initially coded coefficient position coincides with the last scanned position; setting the predetermined probabilistic model to a second probabilistic model, e.g., a second context, if the initially coded coefficient position is less than or equal to a predetermined number of transformation coefficients away from the last scanned position according to a first coefficient scan order; and setting the predetermined probabilistic model to a third probabilistic model, e.g., a third context, if the initially coded coefficient position is greater than a predetermined number of transformation coefficients away from the last scanned position according to a first coefficient scan order. The first and second coefficient scan orders coincide at the last scanned position and a predetermined number of transformation coefficients upstream of the last scanned position. In other words, both scans are identical up to a predetermined number, or to put it another way, both scans end at the last scanned position and are equal at a predetermined number of coefficients upstream of the last scanned position. In other words, both scans are identical up to a predetermined number upstream of the last scanned position. If the transformation coefficient block contains only one non-zero transformation coefficient, the predetermined probabilistic model may be set to the first probabilistic model. This single non-zero transformation coefficient is located at the coefficient position that was first coded.

[0018] In another embodiment, the decoder / encoder is configured to determine a predetermined probabilistic model based on the location of the initially coded coefficient position within the transformation coefficient block. If the initially coded coefficient position is less than or equal to a predetermined number of transformation coefficients away from the last scanned position according to a first coefficient scan order, or coincides with the last scanned position, the decoder / encoder sets the predetermined probabilistic model to a first probabilistic model. If the initially coded transformation coefficient position is greater than a predetermined number of coefficients away from the last scanned position according to a first coefficient scan order, the decoder / encoder sets the predetermined probabilistic model to a second probabilistic model. The first and second coefficient scan orders coincide at the last scanned position and a predetermined number of transformation coefficients upstream of the last scanned position.

[0019] According to the embodiment, the set of available transformations corresponds to a concatenation of primary and secondary transformations within a predetermined subarea, and comprises primary transformations outside the predetermined subarea, and includes one or more multi-stage transformations that are included in a second set of one or more available transformations. In other words, the second set of one or more available transformations of the set of available transformations includes one or more multi-stage transformations. In addition, the set of available transformations includes a set of primary-only transformations, which includes one or more first primary-only transformations from those that make up the first set of one or more available transformations, and one or more second primary-only transformations that are included in the second set of one or more available transformations. The decoder / encoder decodes / encodes a secondary transformation indicator to / from the data stream, and the secondary transformation indicator indicates whether the transformations under the transformation coefficient block are multi-stage transformations, i.e., whether they are in a second set of one or more available transformations, and which one of the one or more multi-stage transformations is a primary-only transformation, or whether the transformations under the transformation coefficient block are primary-only transformations. If the secondary transformation indicator indicates that the lower-level transformation of the transformation coefficient block is a primary-only transformation, the decoder / encoder is configured to decode / encode a transformation indicator from the data stream to, for example, a transformation indicator that identifies a primary-only transformation from a set of primary-only transformations. Since the secondary transformation indicator already indicates both primary and secondary transformations, in the case where the lower-level transformation of the transformation coefficient block is a multi-step transformation, only the secondary transformation indicator needs to be decoded / encoded from the data stream to, or to, the data stream. Therefore, high coding efficiency can be achieved because an additional transformation indicator is only needed when the lower-level transformation of the transformation coefficient block is not a multi-step transformation.

[0020] According to the embodiment, the set of available transformations corresponds to a concatenation of primary and secondary transformations within a predetermined subarea, and includes a set of one or more multi-stage transformations comprised of primary transformations outside the predetermined subarea, which are included in a second set of one or more available transformations. In addition, the set of available transformations includes a set of primary-only transformations, which includes one or more first primary-only transformations from those comprised of the first set of one or more available transformations, and one or more second primary-only transformations included in the second set of one or more available transformations. The decoder / encoder is configured to decode / encode a secondary transformation indicator to / from the data stream. The secondary transformation indicator indicates whether the transformation below the transformation coefficient block is a multi-stage transformation, and if so, whether it is a secondary transformation of the multi-stage transformation, or whether the transformation below the transformation coefficient block is a primary-only transformation. In other words, the secondary transformation indicator indicates whether the transformation below the transformation coefficient block is a multi-stage transformation or a primary-only transformation. The decoder / encoder is configured to decode / encode the primary transformation indicator to / from the data stream, in cases where the secondary transformation indicator indicates that the lower-level transformation of the transformation coefficient block is a primary-only transformation, and in cases where the secondary transformation indicator indicates that the lower-level transformation of the transformation coefficient block is a multi-level transformation, and if one or more sets of multi-level transformations contain more than one multi-level transformation that have different primary transformations from each other, it identifies the primary transformation of the multi-level transformation. Thus, high variability and flexibility in the selection of the lower-level transformations of the transformation coefficient block can be achieved, especially with respect to multi-level transformations, resulting in high coding efficiency. In cases where all multi-level transformations are associated with the same primary transformation, i.e., multi-level transformations do not have different primary transformations from each other, there is no need to decode / encode the primary transformation indicator.

[0021] According to the embodiment, the set of available transformations includes a set of multi-stage transformations, e.g., a set of two or more multi-stage transformations, each corresponding to a concatenation of primary and secondary transformations within a predetermined sub-area and consisting of primary transformations outside the predetermined sub-area, which are included in a second set of one or more available transformations. The second set of one or more available transformations may include all multi-stage transformations. In addition, the set of available transformations includes a set of primary-only transformations, comprising a first set of one or more available transformations, where the primary transformations for all of the one or more multi-stage transformations are equal, e.g., a DCT-II transformation, and a set of primary-only transformations, e.g., a set of non-DCT-II transformations, which are included in a second set of one or more available transformations. The decoder / encoder is configured to decode / encode a primary transformation indicator to / from a data stream, the primary transformation indicator indicating a first transformation from a set of primary-only transformations, e.g., a set of primary-only transformations, which includes a first primary-only transformation and one or more second primary-only transformations. If the first transformation is a first primary-only transformation, the decoder / encoder is configured to decode / encode a secondary transformation indicator into / from the data stream that identifies the lower-level transformation of the transformation coefficient block from a set including the first primary-only transformation and multi-step transformations, where the lower-level transformation of the transformation coefficient block is one second primary-only transformation if the first transformation is one of one or more second primary-only transformations. In other words, if the primary transformation indicator indicates that the first transformation is one of one or more second primary-only transformations, the lower-level transformation of the transformation coefficient block is the indicated second primary-only transformation, and if the primary transformation indicator indicates that the first transformation is a first primary-only transformation, the lower-level transformation of the transformation coefficient block is either the first primary-only transformation or a multi-step transformation corresponding to a concatenation of the first primary-only transformation and the secondary transformation, depending on the secondary transformation indicator. In the latter case, the secondary transformation indicator can directly indicate / point to the lower-level transformation of the transformation coefficient block. Thus, the lower-level transformation of the transformation coefficient block can be selected and indicated in the data stream very efficiently, resulting in high coding efficiency.

[0022] According to the embodiment, the set of available transformations includes a set of multi-stage transformations, each corresponding to a chain of primary and secondary transformations within a predetermined sub-area and consisting of primary transformations outside the predetermined sub-area, and included in a second set of one or more available transformations. In addition, the set of available transformations includes a set of primary-only transformations, which includes one or more first primary-only transformations from those that make up the first set of one or more available transformations, and one or more second primary-only transformations included in the second set of one or more available transformations. The decoder / encoder is configured to decode / encode a primary transformation indicator to / from a data stream. The primary transformation indicator indicates a first transformation from a set of primary-only transformations, for example, from a set of primary-only transformations, which includes one or more first primary-only transformations and one or more second primary-only transformations. If the first transformation is a first primary-only transformation that is equivalent to one or more primary transformations of a multi-stage transformation, the decoder / encoder decodes / encodes a secondary transformation indicator from / to the data stream that identifies the lower-level transformations of the transformation coefficient block from a set that includes the first primary-only transformation and one or more multi-stage transformations in which that primary transformation is equivalent to the first primary-only transformation. The special primary and secondary transformation indicators result in high coding efficiency and, in particular, enable good selection between different first primary-only transformations and between different multi-stage transformations by different primary transformations for the selection of the lower-level transformations of the transformation coefficient block. By enabling such selection, it is possible to achieve high compression efficiency.

[0023] According to the embodiment, the decoder / encoder is configured to perform decoding / encoding of a first-order transformation indicator to / from a data stream using context-adaptive entropy decoding with a predetermined probabilistic model. The decoder / encoder is configured to determine the predetermined probabilistic model depending on where the initially coded coefficient positions are located within the transformation coefficient block.

[0024] According to the embodiment, the decoder / encoder is configured to determine a predetermined probability model based on the location of the initially coded coefficient position within the conversion coefficient block, setting the predetermined probability model to a first probability model if the initially coded coefficient position coincides with the last scanned position; setting the predetermined probability model to a second probability model if the initially coded coefficient position is less than or equal to a predetermined number of conversion coefficients away from the last scanned position according to a first coefficient scan order; and setting the predetermined probability model to a third probability model if the initially coded coefficient position is greater than a predetermined number of conversion coefficients away from the last scanned position according to a first coefficient scan order. The first and second coefficient scan orders coincide at the last scanned position and a predetermined number of conversion coefficients upstream of the last scanned position.

[0025] According to the embodiment, the decoder / encoder is configured to determine a predetermined probability model based on the location of the initially coded coefficient position within the transformation coefficient block. If the initially coded coefficient position is less than or equal to a predetermined number of transformation coefficients away from the last scanned position according to a first coefficient scan order, or coincides with the last scanned position, the decoder / encoder sets the predetermined probability model to a first probability model. If the initially coded transformation coefficient position is greater than a predetermined number of coefficients away from the last scanned position according to a first coefficient scan order, the decoder / encoder sets the predetermined probability model to a second probability model. The first and second coefficient scan orders coincide at the last scanned position and a predetermined number of transformation coefficients upstream of the last scanned position.

[0026] According to the embodiment, a linear transformation is equal to all of one or more multi-stage transformations and also equal to one or more first linear-only transformations.

[0027] According to the embodiment, only one first-order dedicated conversion exists.

[0028] According to the embodiment, the encoder is configured to cause the sample block to undergo the transformation of the underlying layers of the transformation coefficient block in order to obtain the transformation coefficient block.

[0029] According to one embodiment, the decoder is configured to cause the conversion coefficient block to receive an inverse transform that reverses the underlying transform of the conversion coefficient block in order to acquire a sample block. According to another embodiment, the encoder includes a feedback loop configured to cause the conversion coefficient block to receive an inverse transform that reverses the underlying transform of the conversion coefficient block in order to acquire a sample block.

[0030] According to the embodiment, the encoder is configured to derive the prediction residual of the prediction signal obtained by intrapicture prediction or interpicture prediction, and to determine a sample block that represents the prediction residual, for example, including quantization.

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

[0032] In accordance with a second aspect of the present invention, the inventors of this application recognize that when attempting to enable selection of transformations for blocks of pictures, a problem arises from the fact that for certain transformations, such as non-DCT-II transformations, it is required that only non-zero coefficients of a transformation coefficient block be permitted within a predetermined sub-area of ​​the transformation coefficient block. Currently, when the transformation is also selectable for the non-zero requirement described above, a signaling overhead is incurred to indicate the transformation of the underlying layers of the transformation coefficient block. In accordance with a second aspect of this application, this problem is overcome by checking whether all transformation coefficients of a transformation coefficient block located from the first coded coefficient position to the last scanned position, according to a predetermined coefficient scan order, are zero if they are not located within a predetermined sub-area of ​​the transformation coefficient block. The inventors have found it advantageous to check whether non-zero transformation coefficients are located outside a predetermined sub-area, since even when the first coded coefficient position is located inside a predetermined sub-area, there is still a possibility that non-zero transformation coefficients may be located outside the predetermined sub-area according to a predetermined scan order. This is based on the idea that the check can automatically identify whether the underlying transformation of a transformation coefficient block is a transformation with the non-zero requirement described above. Therefore, for each transformation coefficient block, it is not necessary to select the underlying transformation of each transformation coefficient block from the set of all available transformations. Instead, this feature makes it possible to reduce the set of all available transformations to the relevant transformations, thereby achieving high coding efficiency. Furthermore, high compression can be achieved because there is no need for additional syntax elements to indicate whether the underlying transformation of a transformation coefficient block is one of the transformations with the non-zero requirement or one of the transformations without the non-zero requirement.

[0033] Accordingly, according to a second aspect of this application, a decoder / encoder that decodes / encodes a transformed representation of a sample block from / to a data stream is configured to decode / encode coefficient position information from / to the data stream. The coefficient position information indicates the first coded coefficient position within a transformed coefficient block. The first coded coefficient position may indicate either the position of the first non-zero transformed coefficient in the coefficient scan order or the position of the last non-zero transformed coefficient in the inverse coefficient scan order. Furthermore, the decoder / encoder is configured to decode / encode the values ​​of the transformed coefficients of transformed coefficient blocks located from the first coded coefficient position toward the last scanned position according to a predetermined coefficient scan order, and to infer that the transformed coefficients of transformed coefficient blocks located upstream of the first coded coefficient position are zero according to a predetermined coefficient scan order. According to a predetermined coefficient scan order, the transformed coefficients of transformed coefficient blocks located from the first coded coefficient position toward the last scanned position may include only transformed coefficients having non-zero values, or either transformed coefficients having zero values ​​and transformed coefficients having non-zero values. The decoder / encoder is configured to check whether all transformation coefficients of a transformation coefficient block located from the first coded coefficient position to the last scanned position, according to a predetermined coefficient scan order, are zero if they are not located within a predetermined sub-area of ​​the transformation coefficient block. The predetermined sub-area may define a sub-area of ​​the transformation coefficient block, within which the transformation coefficients may be non-zero, and outside the sub-area, all transformation coefficients must be zero for a particular transformation. According to an embodiment, a transformation coefficient block may include non-zero transformation coefficients outside the predetermined sub-area if the transformation of the underlying transformation of the transformation coefficient block is within a first set of one or more available transformations in the set of available transformations, and the transformation coefficients outside the predetermined sub-area are zero if the transformation of the underlying transformation of the transformation coefficient block is within a second set of one or more available transformations in the set of available transformations.A predetermined sub-area may consist of 16 × 16 transformation coefficients. The predetermined sub-area may be located in the upper left of the transformation coefficient block. If, according to a predetermined coefficient scan order, all transformation coefficients of a transformation coefficient block located from the first coded coefficient position to the last scanned position are zero if they do not lie within the predetermined sub-area of ​​the transformation coefficient block, the decoder / encoder is configured to decode / encode transformation information from the data stream and use the transformation information to identify the lower-level transformations of the transformation coefficient block from a set of available transformations, for example, from a second set of one or more available transformations in the set of available transformations. If, according to a predetermined coefficient scan order, all transformation coefficients of a transformation coefficient block located from the first coded coefficient position to the last scanned position are non-zero if they do not lie within the predetermined sub-area of ​​the transformation coefficient block, the decoder / encoder is configured to reduce the set of available transformations to a first set of one or more available transformations by removing a second set of one or more available transformations from the set of available transformations, and to determine the lower-level transformations of the transformation coefficient block from the first set of one or more available transformations. The transformations of the lower layers of the transformation coefficient block, according to the transformation coefficient block, define the transformed representation. A predetermined coefficient scan order scans the transformation coefficients in such a way that one or more transformation coefficients exist outside a predetermined subarea that has been scanned by a predetermined coefficient scan order between two transformation coefficients located inside a predetermined subarea.

[0034] According to the embodiment, the decoder / encoder is configured to check whether the first coded coefficient position is located within a predetermined sub-area of ​​the conversion coefficient block, and to check whether all conversion coefficients located outside the predetermined sub-area of ​​the conversion coefficient block and further from the first coded coefficient position to the last scanned position, according to a predetermined coefficient scan order, are zero. The latter check is performed only optionally if the first coded coefficient position is located within the predetermined sub-area of ​​the conversion coefficient block. In the case where the first coded coefficient position is located outside the predetermined sub-area of ​​the conversion coefficient block, the decoder / encoder is configured to infer that all conversion coefficients of the conversion coefficient block further from the first coded coefficient position to the last scanned position, according to a predetermined coefficient scan order, are non-zero if they are not located within the predetermined sub-area of ​​the conversion coefficient block.

[0035] In accordance with the embodiment, the decoder / encoder may include features and / or functionality as described with respect to the decoder / encoder according to the first embodiment, provided that the initially coded coefficient position is located within a predetermined sub-area of ​​the conversion coefficient block.

[0036] According to the embodiment, the decoder / encoder is configured to perform decoding / encoding of transformation information from / to a data stream using context-adaptive entropy decoding / encoding with a predetermined probabilistic model, and to determine the predetermined probabilistic model depending on where the initially coded coefficient positions are located within the transformation coefficient block.

[0037] According to the embodiment, the decoder / encoder is configured to determine a predetermined probability model based on the location of the initially coded coefficient position within the conversion coefficient block, setting the predetermined probability model to a first probability model if the initially coded coefficient position coincides with the last scanned position; setting the predetermined probability model to a second probability model if the initially coded coefficient position is less than or equal to a predetermined number of conversion coefficients away from the last scanned position according to a predetermined coefficient scan order; and setting the predetermined probability model to a third probability model if the initially coded coefficient position is greater than a predetermined number of conversion coefficients away from the last scanned position according to a predetermined coefficient scan order.

[0038] In another embodiment, the decoder / encoder is configured to determine a predetermined probability model based on where the initially coded coefficient position is located within the transformation coefficient block. If the initially coded coefficient position is less than or equal to a predetermined number of transformation coefficients away from the last scanned position according to a predetermined coefficient scan order, or coincides with the last scanned position, the decoder / encoder sets the predetermined probability model to a first probability model. If the initially coded transformation coefficient position is greater than a predetermined number of coefficients away from the last scanned position according to a predetermined coefficient scan order, the decoder / encoder sets the predetermined probability model to a second probability model.

[0039] According to the embodiment, the set of available transformations includes a set of multi-stage transformations, e.g., a set of multi-stage transformations, each corresponding to a chain of primary and secondary transformations within a predetermined sub-area and consisting of primary transformations outside the predetermined sub-area, which are included in a second set of one or more available transformations. In other words, the second set of one or more available transformations in the set of available transformations includes two or more multi-stage transformations. In addition, the set of available transformations includes a set of primary-only transformations, consisting of a first set of one or more available transformations, where the primary transformations for all of the one or more multi-stage transformations are equal, and a set of primary-only transformations, which includes one or more second primary-only transformations included in the second set of one or more available transformations. The decoder / encoder, according to a predetermined coefficient scan order, considers if all transformation coefficients of a transformation coefficient block located from the first coded coefficient position to the last scanned position are zero if they are not located within a predetermined sub-area of ​​the transformation coefficient block. Decode / encode a quadratic transformation indicator from / to the data stream, and the quadratic transformation indicator indicates whether the lower-level transformation of the transformation coefficient block is a multi-step transformation, and which of the one or more multi-step transformations is a primary-only transformation, or whether the lower-level transformation of the transformation coefficient block is a primary-only transformation, i.e., whether the same thing belongs to a set of primary-only transformations or a set of multi-step transformations. The decoder / encoder is configured to check whether the secondary transformation indicator indicates that the lower-level transformation of the transformation coefficient block is a primary-only transformation. If the secondary transformation indicator indicates that the lower-level transformation of the transformation coefficient block is a primary-only transformation, the decoder / encoder is configured to decode / encode, for example, a transformation indicator that identifies a primary-only transformation from a set of primary-only transformations into a data stream / from. If, according to a predetermined coefficient scan order, all transformation coefficients in a transformation coefficient block located from the first coded coefficient position to the last scanned position are non-zero if they are not located within a predetermined sub-area of ​​the transformation coefficient block, then the underlying transformation of the transformation coefficient block is a first-order-only transformation. In this embodiment, if a transformation coefficient block contains non-zero transformation coefficients outside a predetermined sub-area, it is possible to infer that the underlying transformation of the transformation coefficient block is a first-order-only transformation. Therefore, for such transformation coefficient blocks, the data stream does not need to include transformation information, thereby achieving high compression. Furthermore, it is possible to explicitly indicate multi-stage transformations as underlying transformations of transformation coefficient blocks using a quadratic transformation indicator, and by using a primary transformation indicator in addition to the quadratic transformation indicator, it is possible to clearly indicate a first-order-only transformation as an underlying transformation of a transformation coefficient block. Note that this special transformation selection also makes it possible to indicate a first-order-only transformation as an underlying transformation of a transformation coefficient block for blocks having all non-zero transformation coefficients inside a predetermined sub-area, thereby resulting in good transformation selection and achieving high compression.

[0040] According to the embodiment, the set of available transformations includes a set of multi-stage transformations, e.g., a set of multi-stage transformations, each corresponding to a chain of primary and secondary transformations within a predetermined sub-area and consisting of primary transformations outside the predetermined sub-area, and included in a second set of one or more available transformations. In addition, the set of available transformations includes a set of primary-only transformations, consisting of a first set of one or more available transformations, where the primary transformations for all of the one or more multi-stage transformations are equal, and a set of primary-only transformations, including one or more second primary-only transformations included in a second set of one or more available transformations. The decoder / encoder, according to a predetermined coefficient scan order, if all transformation coefficients of a transformation coefficient block located from the first coded coefficient position to the last scanned position are zero if they are not located within a predetermined sub-area of ​​the transformation coefficient block, Decode / encode a primary transformation indicator from / to a data stream, where the primary transformation indicator is a set including a first primary-only transformation and one or more second primary-only transformations, for example, indicating a first transformation from a set of primary-only transformations. If the first transformation is a first linear-only transformation, the system is configured to decode / encode a secondary transformation indicator from / to the data stream to identify the lower-level transformation of the transformation coefficient block from a set including the first linear-only transformation and multi-level transformations. In the case where the first transformation is one or more second primary-only transformations, the transformations in the lower layer of the transformation coefficient block are one second primary-only transformation. If, according to a predetermined coefficient scan order, all transformation coefficients of a transformation coefficient block located from the first coded coefficient position to the last scanned position are non-zero if they are not located in a predetermined sub-area of ​​the transformation coefficient block, then the transformation of the lower layer of the transformation coefficient block is a first-order dedicated transformation.

[0041] According to the embodiment, a linear transformation is equal to all of one or more multi-stage transformations and also equal to one or more first linear-only transformations.

[0042] According to the embodiment, only one first-order dedicated conversion exists.

[0043] According to the embodiment, the encoder is configured to cause the sample block to undergo the transformation of the underlying layers of the transformation coefficient block in order to obtain the transformation coefficient block.

[0044] According to one embodiment, the decoder is configured to cause the conversion coefficient block to receive an inverse transform that reverses the underlying transform of the conversion coefficient block in order to acquire a sample block. According to another embodiment, the encoder includes a feedback loop configured to cause the conversion coefficient block to receive an inverse transform that reverses the underlying transform of the conversion coefficient block in order to acquire a sample block.

[0045] According to the embodiment, the encoder is configured to derive the prediction residual of the prediction signal obtained by intrapicture prediction or interpicture prediction, and to determine a sample block that represents the prediction residual, for example, including quantization.

[0046] According to the embodiment, the decoder / encoder is configured to use sample blocks to correct the predicted signal obtained by intrapicture prediction or interpicture prediction. According to the embodiment, the encoder includes a feedback loop configured to use sample blocks to correct the predicted signal obtained by intrapicture prediction or interpicture prediction.

[0047] Embodiments relate to a method for decoding / encoding a transformed representation of a sample block from / to a data stream, comprising decoding / encoding coefficient position information from / to a data stream, wherein the coefficient position information indicates the first coded coefficient position within a transformed coefficient block. The method includes checking whether the first coded coefficient position is located within a predetermined sub-area of ​​the transformed coefficient block. If the first coded coefficient position is located within a predetermined sub-area of ​​the transformed coefficient block, the method includes checking whether the underlying transform of the transformed coefficient block is within a first set of one or more available transforms in a set of available transforms or a second set of one or more available transforms in a set of available transforms. The decoding method may perform the check using the transform information transmitted in the data stream. If the underlying transform of the transformed coefficient block is within a first set of one or more available transforms, the method includes decoding / encoding the values ​​of the transformed coefficients of transformed coefficient blocks located from the first coded coefficient position toward the last scanned position according to a first coefficient scan order, wherein the transformed coefficients of transformed coefficient blocks located upstream of the first coded coefficient position according to the first coefficient scan order are zero. The decoding method involves inferring that the transformation coefficients of transformation coefficient blocks located upstream of the first coded coefficient position are zero, according to a first coefficient scan order. If the transformations of the lower layers of the transformation coefficient blocks are in a second set of one or more available transformations, the method involves decoding / encoding the values ​​of the transformation coefficients of transformation coefficient blocks located within a predetermined sub-area and located toward the last scanned position from the first coded coefficient position according to a second coefficient scan order, wherein the transformation coefficients of transformation coefficient blocks located upstream of the first coded coefficient position and the transformation coefficients of transformation coefficient blocks located outside the predetermined sub-area are zero, according to the first coefficient scan order.The decoding method involves, according to a first coefficient scan sequence, inferring that the transformation coefficients of transformation coefficient blocks located upstream of the first coded coefficient position and the transformation coefficients of transformation coefficient blocks located outside a predetermined subarea are zero. The transformations of the lower layers of transformation coefficient blocks according to the transformation coefficient blocks define the transformed representation. A second coefficient scan sequence scans the transformation coefficients within a predetermined subarea without scanning any transformation coefficients outside the predetermined subarea between the transformation coefficients within the predetermined subarea, and the first coefficient scan sequence scans the transformation coefficients in such a manner that there is one or more transformation coefficients outside the predetermined subarea scanned by the first coefficient scan sequence between two transformation coefficients located inside the predetermined subarea.

[0048] Embodiments relate to a method for decoding / encoding a transformed representation of a sample block from / to a data stream, comprising decoding / encoding coefficient position information from / to a data stream, wherein the coefficient position information indicates the first coded coefficient position within a transformed coefficient block. The method includes decoding / encoding the values ​​of the transformed coefficients of transformed coefficient blocks located from the first coded coefficient position toward the last scanned position according to a predetermined coefficient scan order, where the transformed coefficients of transformed coefficient blocks located upstream of the first coded coefficient position according to the predetermined coefficient scan order are zero. The decoding method includes inferring that the transformed coefficients of transformed coefficient blocks located upstream of the first coded coefficient position according to a predetermined coefficient scan order are zero. Furthermore, the method includes checking whether all transformed coefficients of transformed coefficient blocks located from the first coded coefficient position toward the last scanned position according to a predetermined coefficient scan order are zero if they are not located within a predetermined sub-area of ​​the transformed coefficient block. If, according to a predetermined coefficient scan order, all transformation coefficients of a transformation coefficient block located from the first coded coefficient position to the last scanned position are zero if they do not lie within a predetermined sub-area of ​​the transformation coefficient block, the method includes decoding / encoding transformation information from the data stream and identifying the underlying transformations of the transformation coefficient block from the set of available transformations. The decoding method may perform the identification using the transformation information. If, according to a predetermined coefficient scan order, all transformation coefficients of a transformation coefficient block located from the first coded coefficient position to the last scanned position are non-zero if they do not lie within a predetermined sub-area of ​​the transformation coefficient block, the method includes reducing the set of available transformations to a first set of one or more available transformations by removing a second set of one or more available transformations from the set of available transformations, and determining the underlying transformations of the transformation coefficient block from the first set of one or more available transformations. The underlying transformations of the transformation coefficient block according to the transformation coefficient block define the transformed representation.A predetermined coefficient scan sequence scans transformation coefficients in such a manner that one or more transformation coefficients exist outside a predetermined sub-area that has been scanned by a predetermined coefficient scan sequence between two transformation coefficients located inside a predetermined sub-area.

[0049] The method described above is based on the same considerations as the encoder / decoder described above. Furthermore, the method can be completed using all the features and functionalities described for the encoder / decoder.

[0050] The embodiments relate to a data stream having a picture or video encoded thereto using the encoding method described herein.

[0051] The embodiments relate to computer programs having program code for performing the methods described herein when running on a computer.

[0052] The drawings are not necessarily to the same scale; instead, the overall emphasis is on illustrating the principles of the invention. Various embodiments of the invention are described below with reference to the following drawings. [Brief explanation of the drawing]

[0053] [Figure 1] This shows an example of a 32x32 transformation block subdivided into 64 4x4 subblocks. [Figure 2] This demonstrates a reconstruction of a 32x32 block where only the first 16x16 coefficients can be non-zero. [Figure 3] This shows an unmodified scan of the conversion block according to the current design, and a modified scan of the conversion block according to the embodiment. [Figure 4] This shows a device that predictively encodes pictures or videos. [Figure 5] This shows a device that predictively decodes pictures or videos. [Figure 6]This shows the relationship between the reconstructed signal, the predicted residual signal, and the combined predicted signal. [Figure 7] A decoder capable of changing the scan order, according to an embodiment, is shown. [Figure 8] This shows the selection of the lower layer of the transformation coefficient block in the case where the initially coded coefficient position is located outside a predetermined sub-area, according to the embodiment. [Figure 9] The CABAC coding of the conversion information according to the embodiment is shown. [Figure 10] A transformation coefficient block having a different number of non-zero transformation coefficients, according to the embodiment, is shown. [Figure 11a] The set of available transformations according to the first embodiment is shown below. [Figure 11b] The set of available transformations according to the second embodiment is shown. [Figure 12] A decoder is shown that checks whether the conversion coefficient outside a predetermined sub-area is zero, according to the embodiment. [Figure 13] The first simplified syntax diagram is shown below. [Figure 14] A second simplified syntax diagram is shown. [Modes for carrying out the invention]

[0054] Equal or equivalent elements, or elements with equal or equivalent functionality, are represented in the following description by equal or equivalent reference numerals, even when they appear in different figures.

[0055] In the following description, several details are given to provide a more complete description 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 carried out without those specific details. In other instances, known structures and devices are shown in the form of undetailed block diagrams to avoid obscuring embodiments of the present invention. In addition, unless otherwise specifically stated, features of different embodiments described later herein may be combined with each other.

[0056] Furthermore, it should be noted that in this specification, a non-zero conversion coefficient defines a conversion coefficient that has a non-zero value, and a zero conversion coefficient defines a conversion coefficient that has a zero value.

[0057] The following describes various embodiments that can help achieve more effective compression by using transformation type signaling for coefficient-level coding zero-out. The embodiments presented herein describe a signaling concept that restricts the area of ​​coded transformation coefficients that can be non-zero within a block, depending on the selection of a particular transformation type, with the aim of reducing signaling overhead and simplifying the coding / decoding logic for hybrid video compression applications.

[0058] To facilitate understanding of the following embodiments of this application, the description begins with a presentation of a description of a block-based predictive codec video encoder and video decoder for coding pictures of video, in order to form an example of a coding framework in which embodiments for coding and decoding transformed representations of sample blocks can be incorporated therein. The video encoder and video decoder are described with respect to Figures 4-6. The embodiments described herein may be readily incorporated into the respective video encoder and decoder of Figures 4 and 5, but the embodiments herein may also be used to form video encoders and video decoders that do not operate according to the underlying coding framework of the video encoder and video decoder of Figures 4 and 5.

[0059] Figure 4 illustrates an apparatus for predictively coding a video consisting of picture 12 or a sequence of pictures 12 into a data stream 14. Block-based predictive coding is used for this purpose. Furthermore, transform-based residual coding is used exemplary. The apparatus or encoder is indicated by reference numeral 10. Figure 5 illustrates the corresponding decoder 20, an apparatus 20 configured to predictively decode a video consisting of picture 12' or picture 12' in a picture block from a data stream 14, also using transform-based residual decoding exemplary here, and an apostrophe is used to indicate that the picture 12' reconstructed by the decoder 20 deviates from the picture 12 originally coded by the apparatus 10 with respect to coding loss introduced by quantization of the predictive residual signal. While Figures 4 and 5 exemplify transform-based predictive residual coding, embodiments of the present application are not limited to this type of predictive residual coding. This also applies to other details relating to Figures 4 and 5, as outlined below.

[0060] Encoder 10 is configured to perform a spatial-spectral transformation on the predicted residual signal and encode the resulting predicted residual signal into a data stream 14. Similarly, decoder 20 is configured to decode the predicted residual signal from the data stream 14 and perform a spectral-space transformation on the resulting predicted residual signal.

[0061] Internally, the encoder 10 may include a predictive residual signal generator 22 that generates a predictive residual 24 to measure the deviation of the predictive signal 26 from the original signal, i.e., the video or current picture 12. The predictive residual signal generator 22 may be, for example, a subtractor that subtracts the predictive signal from the original signal, i.e., the current picture 12. The encoder 10 may then further include a converter 28 that subjects the predictive residual signal 24 to a spatial-spectral transform to obtain a spectral domain predictive residual signal 24', which is then quantized by a quantizer 32 also provided by the encoder 10. Thus, the quantized predictive residual signal 24'' is coded into the bitstream 14. For this purpose, the encoder 10 may optionally include an entropicorder 34 that entropicates the predictive residual signal so that it is transformed and quantized into a datastream 14. The predicted signal 26 is decoded into the data stream 14 and generated by the prediction stage 36 of the encoder 10 based on the predicted residual signal 24'' that can be decoded from the data stream 14. For this purpose, the prediction stage 36 internally includes a dequantizer 38 that dequantizes the predicted residual signal 24'' to obtain a spectral domain predicted residual signal 24'''' corresponding to signal 24', after removing quantization losses, as shown in Figure 4, and an inverse converter 40 that subsequently subjects the latter predicted residual signal 24'''' to an inverse transformation, i.e., spectral-spatial transformation, to obtain a predicted residual signal 24'''' corresponding to the original predicted residual signal 24, after removing quantization losses. The coupler 42 of the prediction stage 36 then recombines the predicted signal 26 and the predicted residual signal 24'''' by addition or other means to obtain a reconstructed signal 46, i.e., a reconstruction of the original signal 12. The reconstructed signal 46 may correspond to signal 12'.

[0062] The prediction module 44 in prediction stage 36 then generates a prediction signal 26 based on the signal 46, for example, by using spatial prediction, i.e., intra-prediction, and / or temporal prediction, i.e., inter-prediction. Further details are described below.

[0063] Similarly, the decoder 20 may internally consist of components corresponding to the prediction stage 36 and may be interconnected in a manner corresponding to the prediction stage 36. In particular, the entropy decoder 50 of the decoder 20 is interconnected and coordinated in the manner described above with respect to the modules of the prediction stage 36, with respect to the dequantizer 52, inverse converter 54, coupler 56, and prediction module 58, which recover the reconstructed signal based on the prediction residual signal 24'', entropy decodes the quantized spectral domain prediction residual signal 24'' from the data stream, and as a result, the output of the coupler 56 yields the reconstructed signal, i.e., its video or current picture 12', as shown in Figure 5.

[0064] Although not specifically described above, it is readily apparent that the encoder 10 can set several coding parameters, including, for example, prediction modes and motion parameters, according to some optimization scheme, such as a method that optimizes coding cost and / or uses some rate control, based on some rate and distortion-related criteria. As will be described in more detail below, the encoder 10 and decoder 20 and the corresponding modules 44 and 58 each support different prediction modes, such as intra-coding modes and inter-coding modes, which form a kind of set or pool of primitive prediction modes, based on which predictions of the picture block are composed in a manner described in more detail below. The granularity that the encoder and decoder switch between between their prediction synthesis may correspond to the subdivision of picture 12 and 12' into blocks, respectively. Some of these blocks may be intra-coded blocks on their own, some blocks may be inter-coded blocks on their own, and optionally, further blocks may be blocks acquired using both intra-coding and inter-coding, details of which are shown below. According to the intracoding mode, a prediction signal for each block is obtained based on the spatially already coded / decoded adjacencies of each block. Several intracoding submodes may exist, and a selection of them may pseudo-represent certain types of intra-prediction parameters. Directional or angular intracoding submodes may exist, depending on which prediction signals for each block are filled in by extrapolating the adjacency sample values ​​to each block according to a specific direction that is specific to each directional intracoding submode.The intra-coding submode may also include one or more further submodes, such as a DC coding mode, which depends on which prediction signal for each block assigns DC values ​​to all samples within each block, and / or a planar intra-coding mode, which depends on which prediction signal for each block is approximated or determined to be the spatial variance of sample values ​​described by a two-dimensional linear function across the sample positions of each block by deriving the slope and offset of a plane defined by a two-dimensional linear function based on adjacent samples. In comparison, according to the inter-prediction mode, the prediction signal for a block may be obtained, for example, by predicting the interior of the block in time. For parameterization of the inter-prediction mode, a motion vector may be signaled in the data stream, and the motion vector indicates the spatial displacement of the portion of the picture coded before the video sampled, in order to obtain the prediction signal for each block. This means that, in addition to the residual signal coding provided by the data stream 14, such as the entropi-coded transformation coefficient level representing the quantized spectral domain predicted residual signal 24'', the data stream 14 may also encode prediction-related parameters for assigning to block prediction modes, prediction parameters for assigned prediction modes such as motion parameters for inter-prediction modes, and optionally further parameters that control the synthesis of the final predicted signal for the blocks using the assigned prediction modes and prediction parameters, as outlined in more detail below. In addition, the data stream may also include parameters that control and signal the subdivision of pictures 12 and 12' into blocks, respectively. The decoder 20 uses those parameters to subdivision the pictures in the same manner as the encoder did, assign the same prediction modes and parameters to the blocks, and perform the same predictions to produce the same predicted signals.

[0065] Figure 6 illustrates the relationship between, on the one hand, the reconstructed signal, i.e., the reconstructed picture 12', and on the other hand, the combination of the predicted residual signal 24'''' and the predicted signal 26, which are signaled in the data stream. As already shown above, the combination may also be an addition. The predicted signal 26 is illustrated in Figure 6 as a subdivision of the picture area into a variable-size block 80, but this is merely an example. The subdivision may be any subdivision, such as a normal subdivision of the picture area into rows and columns of a block, or a multi-tree subdivision of the picture 12 into variable-size leaf blocks such as a quadtree subdivision or similar, a mixture of these shown in Figure 6, where the picture area is first subdivision into rows and columns of a tree root block, and the tree root block is then further subdivision according to a recursive multi-tree subdivision to result in block 80.

[0066] The predicted residual signal 24'''' in Figure 6 is also exemplified as a subdivision of the picture area into block 84. These blocks may be referred to as conversion blocks or conversion coefficient blocks to distinguish them from those identical to the coding block 80. In effect, Figure 6 illustrates that the encoder 10 and decoder 20 may use two different subdivisions of picture 12 and picture 12' into blocks, namely one subdivision into coding block 80 and the other into block 84. Both subdivisions may be identical, i.e., each block 80 may simultaneously form a conversion block 84, or vice versa, but Figure 6 illustrates, for example, the case in which the subdivision into conversion block 84 forms an extension of the subdivision into block 80, and as a result, either boundary between the two blocks 80 coincides with the boundary between the two blocks 84, or, to put it another way, either of the blocks 80 coincides with one of the conversion blocks 84, or a cluster of conversion blocks 84. However, the subdivisions may also be determined or selected independently of each other, resulting in the transformation block 84 instead crossing the block boundaries between the blocks 80. As far as the subdivision to the transformation block 84 is considered, similar references apply to those proposed with respect to the subdivision to the block 80, namely, that block 84 may be the result of a normal subdivision of the picture area into blocks arranged in rows and columns, the result of a multi-tree subdivision of the picture area, or other classifications of their combination or division. Incidentally, it should be noted that blocks 80 and 84 are not limited to quadratic, rectangular, or any other shape. Furthermore, the subdivision of the current picture 12 into block 80 on which the prediction signal is formed, and the subdivision of the current picture 12 into block 84 on which the prediction residual is coded, may not be limited to the subdivisions used for coding / decoding.Regarding the subdivisions of the granularity from which prediction signal determination and residual coding are performed, firstly, residual coding may be performed without subdivision instead, and secondly, at a granularity different from those subdivisions, the encoder and decoder may set specific coding parameters, including some of the parameters described above, such as prediction parameters and prediction signal synthesis control signals.

[0067] Figure 6 illustrates that the combination of the prediction signal 26 and the prediction residual signal 24'''' directly results in the reconstructed signal 12'. However, it should be noted that, according to other views or alternative embodiments, such as prediction signals obtained from other coding layers coded / decoded in separate prediction loops by separate DPBs, more than one prediction signal 26 may be combined with the prediction residual signal 24'''' to produce the result in picture 12'.

[0068] In Figure 6, the transformation block 84 should have the following significance: The converter 28 and inverse converter 54 perform their transformations in units of those transformation blocks 84. For example, many codecs use some classification DST or DCT for all transformation blocks 84. Some codecs allow skipping transformations for some of the transformation blocks 84 so that the predicted residual signal is coded directly in the spatial domain. However, according to the embodiments described herein, the encoder 10 and decoder 20 are configured in such a way that they support several transformations, i.e., a set of available transformations 130, as described with respect to one or more of the following Figures 7-12.

[0069] The following describes embodiments that can thereby improve coding efficiency for conversion type signaling and / or improve compression efficiency by enabling selection among multiple conversion types. The embodiments described below mostly illustrate features and functionality with regard to the decoder. However, identical or similar features and functionality may be provided by the encoder, for example, the decoding performed by the decoder can correspond to the encoding by the encoder. Furthermore, the encoder may include a feedback loop, for example, the same features described with respect to the decoder in the prediction stage 36.

[0070] Figure 7 shows a decoder 20 that decodes the transformed representation of sample block 84 from data stream 14. According to the embodiment, the encoder is configured to cause sample block 84 to undergo the underlying transformation of transformation coefficient block 104 in order to obtain transformation coefficient block 104. Transformation coefficient block 104, following the underlying transformation 131 of transformation coefficient block 104, defines the transformed representation.

[0071] The decoder 20 shown in Figure 7 is configured to decode coefficient position information 100 from the data stream 14. The coefficient position information 100 indicates the first coded coefficient position 102 within the transformation coefficient block 104. The first coded coefficient position 102 can indicate the position of the first non-zero transformation coefficient in a scan order, for example, the first coefficient scan order 110 or the second coefficient scan order 114. In the case of an inverted / reverse scan order, the first coded coefficient position 102 can indicate the position of the last non-zero transformation coefficient according to the inverted / reverse scan order. A non-zero transformation coefficient is defined herein as a transformation coefficient having a value not equal to zero, and a zero transformation coefficient is defined as a transformation coefficient having a value equal to zero.

[0072] The decoder 20 is configured to check (107) whether the initially coded coefficient position 102 is located within a predetermined sub-area 106 of the conversion coefficient block 104.

[0073] If the initially coded coefficient position 102 is located inside a predetermined sub-area 106 of the conversion coefficient block 104, the decoder 20 is configured to use the conversion information 108 transmitted in the data stream 14 to check whether the lower-level conversion 131 of the conversion coefficient block 104 is in a first set 132 of one or more available conversions in a set of available conversions 130 or a second set 134 of one or more available conversions in a set of available conversions 130 (111). According to the embodiment, the first set 132 of one or more available conversions includes conversions for the conversion coefficient block 104 that have non-zero conversion coefficients outside the predetermined sub-area, such as conversion coefficient 118. According to the embodiment, the second set 134 of one or more available conversions includes conversions for the conversion coefficient block 104 that do not have any non-zero conversion coefficients outside the predetermined sub-area 106. In other words, one or more transformations from the second set 134 of one or more available transformations may have the requirement that all transformation coefficients outside a predetermined subarea are equal to zero, and that non-zero transformation coefficients are located only inside the predetermined subarea 106, i.e., the non-zero requirement. Transformations from the first set 132 of one or more available transformations may not have to satisfy this non-zero requirement.

[0074] If the lower-level transformation 131 of the transformation coefficient block 104 is within a first set 132 of one or more available transformations, the decoder 20 is configured to decode the values ​​of the transformation coefficients of the transformation coefficient block 104 according to a first coefficient scan order 110, located from the first coded coefficient position 102 to the last scanned position 101 (109), and to infer that the transformation coefficients 112 of the transformation coefficient block 104 according to the first coefficient scan order 110, located upstream of the first coded coefficient position 102, are zero. As shown in Figure 7, for this first condition, the decoder 20 may be configured to infer that all transformation coefficients 112 within the shaded area of ​​the transformation coefficient block 104 are zero. The first coefficient scan order 110 scans the transformation coefficients of the transformation coefficient block 104 in such a manner that there is one or more transformation coefficients 118 outside the predetermined sub-area 106 scanned by the first coefficient scan order 110 between two transformation coefficients 120 located inside the predetermined sub-area 106. As illustrated in the embodiment of Figure 7, the conversion coefficients 1181 to 1183 outside the predetermined sub-area 106 are scanned by a first coefficient scan sequence 110 between two conversion coefficients 1201 and 1202 located inside the predetermined sub-area 106, and the conversion coefficient 1184 outside the predetermined sub-area 106 is scanned by a first coefficient scan sequence 110 between two conversion coefficients 1203 and 1204 located inside the predetermined sub-area 106.

[0075] If the lower-level transformation 131 of the transformation coefficient block 104 is in a second set 134 of one or more available transformations, the decoder 20 is configured to decode (113) the transformation coefficient values ​​of the transformation coefficient block 104 located within a predetermined sub-area 106 and in the direction from the first coded coefficient position 102 to the last scanned position 101 according to a second coefficient scan order 114, and to infer that the transformation coefficient 116 of the transformation coefficient block 104 located upstream of the first coded coefficient position 102 and the transformation coefficient 118 of the transformation coefficient block 104 located outside the predetermined sub-area 106 are zero according to a first coefficient scan order 110. The second coefficient scan order 114 scans the transformation coefficients 120 within the predetermined sub-area 106 without scanning any of the transformation coefficients 118 outside the predetermined sub-area 106 among the transformation coefficients 120 within the predetermined sub-area 106.

[0076] In accordance with the embodiment, the check 107 for whether the initially coded coefficient position 102 is located within a predetermined sub-area 106 of the conversion coefficient block 104 may result in the realization that the initially coded coefficient position 102 is not located within the predetermined sub-area 106. Such a negative case 210 is shown in Figure 8. A positive case 200, in which the initially coded coefficient position 102 is located within the predetermined sub-area 106, is shown in Figure 8 by only three dots, since the positive case has already been described with respect to Figure 7.

[0077] If the initially coded coefficient position 102 is located outside a predetermined sub-area 106 of the conversion coefficient block 104, the decoder 20 is configured to reduce the set of available transformations 130 to a first set of one or more available transformations 132 by removing a second set 134 of one or more available transformations from the set of available transformations 130 (220), and to determine the lower-level transformation 131 of the conversion coefficient block 104 from the first set 132 of one or more available transformations. This determination may be performed either by using the transformation information 108 transmitted in the data stream 14, or by inferring that the lower-level transformation 131 of the conversion coefficient block 104 is one transformation if the first set 132 of one or more available transformations consists of only one transformation. In addition, the decoder 20 is configured to decode the values ​​of the conversion coefficients of conversion coefficient blocks 104 located from the first coded coefficient position 102 toward the last scanned position 101 according to a first coefficient scan order 110 (109), and to infer that the conversion coefficients 112 of conversion coefficient blocks 104 located upstream of the first coded coefficient position 102 according to the first coefficient scan order 110 are zero. As shown in Figure 8, the decoder 20 may be configured to infer that all conversion coefficients 112 within the shaded area of ​​conversion coefficient block 104 are zero.

[0078] The features and / or functionalities described with respect to Figure 8 are optional for the decoder 20 in Figure 7.

[0079] In accordance with the embodiment, the decoder 20 shown in Figure 7 is configured to decode transformation information 108 from the data stream 14 using context-adaptive entropy decoding 230, for example, context-adaptive binary arithmetic coding, as shown in Figure 9. The decoder 20 may use a predetermined probabilistic model 232, for example, an estimated probability for a particular binary value that is updated for a particular context. The decoder may also be configured to determine the predetermined probabilistic model 232 (234) depending on where the initially coded coefficient position 102 is located within the transformation coefficient block 104, refer to Figures 9 and 10 for their respective descriptions.

[0080] In one embodiment, for example, according to the first embodiment shown in Figure 9, the decoder 20 is configured to determine a predetermined probability model 232 based on the location of the initially coded coefficient position 102 within the conversion coefficient block 104 (234). If the initially coded coefficient position 102 coincides with the last scanned position 101, the decoder 20 sets the predetermined probability model 232 to the first probability model 2361. If the initially coded coefficient position 102 is less than or equal to a predetermined number 240 conversion coefficient, away from the last scanned position 101 according to the first coefficient scan order 110, the decoder 20 sets the predetermined probability model 232 to the second probability model 2362. If the initially coded coefficient position 102 is greater than a predetermined number 240 conversion coefficient, away from the last scanned position 101 according to the first coefficient scan order 110, the decoder 20 sets the predetermined probability model 232 to the third probability model 2363. In this embodiment, the predetermined number 240 may be set to 10 conversion coefficients, and the least likely conversion coefficient that is less than or equal to the predetermined number 240, away from the last scanned position 101, according to the first coefficient scan order 110, is indicated by reference numeral 240. However, it is also clear that different predetermined number 240 conversion coefficients may be selected.

[0081] In an alternative embodiment, for example, according to the embodiment shown in Figure 9, the decoder 20 is configured to determine a predetermined probability model 232 depending on where the initially coded coefficient position 102 is located within the conversion coefficient block 104 (234). If the initially coded coefficient position 102 is less than or equal to a predetermined number 240 conversion coefficient, away from the last scanned position 101 according to the first coefficient scan order 110, or coincides with the last scanned position 101, then the predetermined probability model 232 is set to the first probability model 2381. If the initially coded conversion coefficient position 102 is greater than a predetermined number 240 coefficient, away from the last scanned position 101 according to the first coefficient scan order 110, then the predetermined probability model 232 is set to the second probability model 2382. In this embodiment, the predetermined number 240 may be set to a conversion coefficient of 8, and according to the first coefficient scan order 110, the least likely conversion coefficient that is less than or equal to the predetermined number 240 away from the last scanned position 101 is indicated by reference numeral 240. However, as already described above, it is also clear that different predetermined number 240 conversion coefficients may be selected.

[0082] In both of the embodiments described above, the first coefficient scan sequence 110 and the second coefficient scan sequence 114 coincide at the last scanned position 101 and a predetermined number of 240 conversion coefficients upstream of the last scanned position 101. In the case of superimposing the first coefficient scan sequence 110 and the second coefficient scan sequence 114 shown in Figure 7 (see decoding 109 for the first coefficient scan sequence 110 and decoding 113 for the second coefficient scan sequence 114), there are conversion coefficients until both scans are identical upstream of the last scanned position 101. In the case of the conversion coefficient block 104 shown in Figure 7, there are 10 conversion coefficients until both scans are identical upstream of the last scanned position 101. The predetermined number of 240 conversion coefficients may be set to a number within the range of 3 conversion coefficients, up to the maximum number of conversion coefficients until the first coefficient scan sequence 110 and the second coefficient scan sequence 114 coincide upstream of the last scanned position 101. The predetermined number 240 conversion coefficients may be set to numbers within the range of conversion coefficients from 3 to 10 or from 3 to 9, such as a conversion coefficient of 8.

[0083] It should be noted that the first probability model 2361 and the second probability model 2362 of the first embodiment described above may differ from the first probability model 2381 and the second probability model 2382 of the second embodiment described above.

[0084] Figure 10, on the left, shows a conversion coefficient block 104 with a predetermined number of 240 conversion coefficients set to 8, where the first coded conversion coefficient position 102 of the conversion coefficient block 104 is equal to 8. In addition, on the right, Figure 10 shows a conversion coefficient block 104 with the first coded conversion coefficient position 102 equal to the last scanned position 101 described above.

[0085] In accordance with the embodiments shown in Figures 11a and 11b, the set of available transformations 130 shown and described with respect to Figure 7 corresponds to a concatenation of a primary transformation 136a and a secondary transformation 136b within a predetermined sub-area 106, and includes one or more multi-stage transformations 136 consisting of a primary transformation 136a outside the predetermined sub-area 106. In other words, as shown in the upper right of Figure 11a, for example, in a forward transformation performed by an encoder, a primary transformation 136a is applied to the entire sample block 84, i.e., within and outside the predetermined sub-area 106, in order to determine the processed coefficient block 84', and a secondary transformation is applied only to the predetermined sub-area 10 of the processed coefficient block 84' in order to determine the transformed coefficient block 104. For example, in the inverse transform performed by the decoder, the inverse of the quadratic transform 136b is applied to a predetermined sub-area 106 of the transform coefficient block 104 to determine the processed coefficient block 84', and the inverse of the linear 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 both the linear and quadratic transforms in a single transform step, where only the quadratic transform 136b is applied within the predetermined sub-area 106, and the linear transform 136a is applied within the predetermined sub-area 106 but outside of it. One or more multi-stage transforms 136 are included in a second set 134 of one or more available transforms.

[0086] In addition, the set of available transformations 130 includes a set of primary-only transformations 138, which includes one or more first primary-only transformations from a first set of one or more available transformations 132, and one or more second primary-only transformations included in a second set of one or more available transformations 134. Figure 11a shows the first set of one or more available transformations 132, which consists of one first primary-only transformation T0, and Figure 11b shows the first primary-only transformations T1~T of N1. N1The first set 132 of available transformations consisting of T1…T is shown. One or more second primary-only transformations in Figure 11a are T1…T N1 The reference numerals indicate that one or more second primary-only transformations in Figure 11b are T N1+1 ...T N2 A reference number is assigned to it.

[0087] The following embodiments will be described with reference to Figure 11b, but it will also be apparent that the signaling with the introduction of the lower-level transformation 131 of the transformation coefficient block 104 can be used for the set 130 as shown in Figure 11a.

[0088] According to the embodiment shown in Figure 11b, the decoder is configured to decode a secondary transformation indicator 124 from the data stream. The secondary transformation indicator 124 indicates whether the transformation 131 below the transformation coefficient block 104 is a multi-step transformation, i.e., one transformation from one or more multi-step transformations 136, or whether the transformation 131 below the transformation coefficient block 104 is a primary-only transformation, i.e., a transformation from set 138. If the secondary transformation indicator 124 indicates that the transformation 131 below the transformation coefficient block 104 is a primary-only transformation, the decoder is configured to decode a transformation indicator 126, e.g., a primary transformation indicator, from the data stream that identifies a primary-only transformation from set 138 of primary-only transformations.

[0089] According to an additional or alternative embodiment shown in Figure 11b, the decoder is configured to decode a secondary transformation indicator 124 from the data stream, the secondary transformation indicator 124 indicating whether the lower transformation 131 of the transformation coefficient block 104 is a multi-step transformation 136, and if so, the secondary transformation 136b of the multi-step transformation of the lower transformation 131 of the transformation coefficient block 104, i.e., T (s)indicates that, or indicates whether the lower-layer transformation 131 of the transformation coefficient block 104 is a primary dedicated transformation, i.e., a transformation within the set 138. In addition, the decoder decodes the primary transformation indicator 126 from the data stream, and the primary transformation indicator 126, in the case where the secondary transformation indicator 124 indicates that the lower-layer transformation 131 of the transformation coefficient block 104 is a primary dedicated transformation, identifies a primary dedicated transformation from the set 138 of primary dedicated transformations, i.e., one of the set 138, and in the case where the secondary transformation indicator 124 indicates that the lower-layer transformation 131 of the transformation coefficient block 104 is a multi-stage transformation, i.e., a transformation within the set 136, and the set 136 of one or more multi-stage transformations includes more multi-stage transformations than one having mutually different primary transformations 136a, identifies the primary transformation 136a of the multi-stage transformation. Thus, in this case, the primary transformation indicator 126 is configured to indicate a primary dedicated transformation from the set 138 of primary dedicated transformations and indicate the primary transformation 136a for the multi-stage transformation according to what the secondary transformation indicator 124 indicates.

[0090] According to an additional or alternative embodiment shown in FIG. 11b, the decoder is configured to decode the primary transformation indicator 126 from the data stream. The primary transformation indicator 126 indicates a first transformation from the set 138 of primary dedicated transformations, including one or more first primary dedicated transformations T1…T N1 , i.e., the primary transformation of the first set 132 of transformations, and one or more second primary dedicated transformations T N1+1 …T N2 , i.e., the primary transformation of the second set 134 of transformations. When the first transformation is one of the first primary dedicated transformations T1…T N1 , the decoder is configured to decode the secondary transformation indicator 124 from the data stream, and the secondary transformation indicator 124 indicates the lower-layer transformation 131 of the transformation coefficient block 104 from the set including one or more first primary dedicated transformations T1…T N1 , and the multi-stage transformation 136, e.g., one or more second primary dedicated transformations T N1+1 …T N2Identify one from the set of available transformations 130 that does not have the first transformation. Instead, the first transformation is the first primary-only transformation T1…T N1 In one such case, the transformation 131 of the lower layer of the transformation coefficient block 104 is one or more first linear-only transformations T1…T in which some transformations among the set can be equal to each other. N1 and one or more primary transformations T1 of the multi-stage transformation 136 (p) ~T N3 (p) It may be identified from a set that includes the following. The lower layer transformation 131 of the transformation coefficient block 104 is a single multi-step transformation in the case where the first transformation is a single linear transformation of a multi-step transformation. The first transformation is one or more second linear-only transformations T N1+1 ...T N2 In the case where one of these is true, one second primary-only transformation is indicated by the primary transformation indicator 126. Thus, if the first transformation is one or more first primary-only transformations T1…T N1 In one of these cases, the secondary transformation indicator 124 indicates the transformation 131 of the lower layer of the transformation coefficient block 104, and the first transformation is one or more second primary-only transformations T N1+1 ...T N2 In one of these cases, the primary transformation indicator 126 shows the lower-level transformation 131 of the transformation coefficient block 104.

[0091] According to an additional or alternative embodiment shown in Figure 11b, the decoder is configured to decode a primary transformation indicator 126 from the data stream. The primary transformation indicator 126 is one or more first primary-only transformations T1…T N1 and one or more second primary dedicated transformers T N1+1 ...T N2 This shows the first transformation from a set that includes the following: The first transformation is one or more linear transformations T1 of the multi-step transformation 136. (p) ~T N3 (p) The first primary-only conversion T1…T is equivalent to N1If so, the decoder is configured to decode a secondary transformation indicator 124 from the data stream, the secondary transformation indicator 124 identifying a lower-level transformation 131 of a transformation coefficient block 104 from a set that includes a first primary-only transformation and one or more multi-stage transformations in which the primary transformation is equal to the first primary-only transformation, for example, the first primary-only transformation indicated by the primary transformation indicator 126.

[0092] According to the embodiment, the decoder 20 is configured to decode a linear transformation indicator 126 from the data stream using context-adaptive entropy decoding with a predetermined probabilistic model, and to determine the predetermined probabilistic model depending on where the initially coded coefficient position 102 is located within the transformation coefficient block 104.

[0093] According to the embodiment, when the decoder 20 determines a predetermined probabilistic model based on the location where the initially coded coefficient position 102 is located within the transformation coefficient block 104, If the first coded coefficient position 102 coincides with the last scanned position 101, then a predetermined probability model is set as the first probability model. If the first coded coefficient position 102 is less than or equal to a predetermined number 240 transformation coefficient 120, and is farther from the last scanned position 101 according to the first coefficient scan order 110, then the predetermined probability model is set to the second probability model. The system is configured such that if the first coded coefficient position 102 is greater than a predetermined number of transformation coefficients (240) and is farther from the last scanned position 101 according to the first coefficient scan order 110, the predetermined probability model is set to a third probability model.

[0094] The first coefficient scan sequence 110 and the second coefficient scan sequence 114 coincide at the last scanned position 101 and a predetermined number of 240 conversion coefficients 120 upstream of the last scanned position 101.

[0095] According to an alternative embodiment, when the decoder 20 determines a predetermined probabilistic model depending on where the initially coded coefficient position 102 is located within the transformation coefficient block 104, If the first coded coefficient position 102 is less than or equal to a predetermined number of transformation coefficients 240, away from the last scanned position 101 according to the first coefficient scan order 110, or if it coincides with the last scanned position 101, then the predetermined probability model is set to the first probability model. The system is configured such that if the first coded conversion coefficient position 102 is greater than a predetermined number of coefficients (240) and is farther from the last scanned position 101 according to the first coefficient scan order 110, then a predetermined probability model is set to a second probability model.

[0096] The first coefficient scan sequence 110 and the second coefficient scan sequence 114 coincide at the last scanned position 101 and a predetermined number of 240 transformation coefficients upstream of the last scanned position 101.

[0097] The above-described setting of a predetermined probabilistic model for context-adaptive entropy decoding of the primary transformation indicator 126 from the data stream may include features and / or functionality similar to those described for the setting of a predetermined probabilistic model 232 for context-adaptive entropy decoding of the transformation information 108 from the data stream 14, as shown in Figure 9. The first, second, and optional third probabilistic models for context-adaptive entropy decoding of the primary transformation indicator 126 may differ from the first, second, and optional third probabilistic models for context-adaptive entropy decoding of the transformation information 108.

[0098] According to the embodiment, the first-order conversion is equal for all of one or more multi-stage conversions 136, and also for one or more first first-order dedicated conversions T0 or T1~T N1 It is equivalent to one of the following.

[0099] According to the embodiment, there is only one first-order dedicated transformer T0, as shown in Figure 11a.

[0100] According to the embodiment, the decoder 20 is configured to cause the conversion coefficient block 104 to undergo an inverting transform, for example, an inverse transform, which inverts the lower layer of the transformation 131 of the conversion coefficient block 104 in order to obtain the sample block 84.

[0101] According to the embodiment, the decoder 20 uses the sample block 84 to correct the predicted signal obtained by intrapicture prediction or interpicture prediction.

[0102] Figure 12 shows a decoder 20 that decodes the transformed representation of sample block 84 from data stream 14. Decoder 20 is configured to decode coefficient position information 150 from data stream 14. Coefficient position information 150 indicates the first coded coefficient position 102 in the transformed coefficient block 104. Coefficient position information 150 may have the same characteristics and / or functionality as described with respect to coefficient position information 100 of the decoder shown in Figure 7.

[0103] The decoder 20 is configured to decode the value of the conversion coefficient 120 of the conversion coefficient block 104 located from the first coded coefficient position 102 to the last scanned position 101, according to a predetermined coefficient scan order 110, and to infer that the conversion coefficient 112 of the conversion coefficient block 104 located upstream of the first coded coefficient position 102 is zero, according to the predetermined coefficient scan order 110. As shown in Figure 12, the conversion coefficient 112 within the shaded area of ​​the conversion coefficient block 104 is inferred to be zero.

[0104] The decoder is configured to check (152) whether all conversion coefficients 118 of the conversion coefficient block 104 located from the first coded coefficient position 102 to the last scanned position 101, i.e., the conversion coefficients indicated by x in Figure 12, are zero if they are not located within a predetermined sub-area 106 of the conversion coefficient block 104, according to a predetermined coefficient scan order 110. This check is performed in embodiments described later, for example, in a manner in which the coefficients are individually checked for their zero degrees based on corresponding importance flags. However, alternatives exist. For example, this check 152 may be performed in a sub-block manner, where the predetermined sub-area 106 encloses all sub-blocks except for the nxm sub-block in the upper left corner of block 104, which contains some of the lowest component sub-blocks, e.g., the DC sub-block containing the DC coefficients along with the sub-block containing the last scanned position 101. n may be equal to m, for example, n may be 4, for example, m may be 4. More precisely, the transformation coefficient block may be subdivided into subblocks, each subblock having, for example, a size of 4 × 4 transformation coefficients, and as a result, the top-left subblock is the subblock of the lowest spectral component. Each subblock may be indicated by an index or coordinate, for example, xS and yS, which define the position of each subblock within the transformation coefficient block 104, starting from zero by indexing, xS indicates the subblock column of each subblock, and yS indicates the subblock row of each subblock, i.e., subblock (xS, yS) = (0, 0) is the DC subblock. A predetermined coefficient scan order 110 may traverse the coefficients of block 104 in a subblock manner, i.e., all coefficients within a subblock are traversed before moving to the next subblock. The subblocks are traversed in a manner similar to the scan within each subblock, i.e., diagonally.For each subblock except the subblock containing the lowest spectral component and the last scanned position 101, a subblock flag may be transmitted in the data stream, i.e., it may be decoded by the decoder or encoded by the encoder, and for each subblock, it indicates whether any significance coefficients are contained within that subblock. Based on these subblock flags, the decoder may check whether significance values ​​exist in any subblock outside a predetermined area, i.e., in any subblock between the n×n lowest spectral component and the subblock containing the last coded coefficient. This measurement tests whether all the transformation coefficients 118 of the transformation coefficient block 104, located from the first coded coefficient position 102 to the last scanned position 101 according to a predetermined coefficient scan order 110, are zero if they are not located within a predetermined sub-area 106 of the transformation coefficient block 104, i.e., all coded subblock flags for the subblocks between the n×n subblock and the subblock containing the last coded coefficient are zero. For example, in the case where a predetermined area has a size of 16 × 16 transformation coefficients, i.e., 4 subblocks in width and 4 subblocks in height, it is checked whether the subblocks outside the predetermined sub-area 106, for example, the subblocks indicated by coordinates xS>3 or yS>3, contain one or more significant transformation coefficients (152). Let's resume the explanation.

[0105] If, according to a predetermined coefficient scan order 110, all transformation coefficients 118 of a transformation coefficient block 104 located from the first coded coefficient position 102 to the last scanned position 101 are zero if they are not located within a predetermined sub-area 106 of the transformation coefficient block 104, the decoder 20 is configured to decode transformation information 154 from the data stream 14 (153), and use the transformation information 154 to identify the lower-level transformation 131 of the transformation coefficient block 104 from a set of available transformations 130, for example, from a second set 134 of one or more available transformations from the set of available transformations 130 (155).

[0106] If, according to a predetermined coefficient scan order 110, all transformation coefficients 118 of a transformation coefficient block 104 located from the first coded coefficient position 102 toward the last scanned position 101 are non-zero and not located within a predetermined sub-area 106 of the transformation coefficient block 104, the decoder reduces the set of available transformations 130 to a first set of one or more available transformations 132 by removing a second set 134 of one or more available transformations from the set of available transformations 130, and then determines the lower-level transformations 131 of the transformation coefficient block 104 from the first set of one or more available transformations 132. This is also explained in the following scheme: If a sub-block is located outside a predetermined area, for example, the upper left 16x16 coefficients, and it is significant, i.e., each sub-block contains at least one non-zero coefficient, then it follows that only a limited set of transformations, for example, only the transformations of the first set 132 of one or more available transformations, can be utilized. If this set 132 contains only one transformation, for example, only DCT-II, then the value of mts_idx may be inferred to be 0.

[0107] According to the embodiment, the set of available transformations 130 includes, for example, one or more first primary-only transformations T1…T, which are provided in a first set 132 of available transformations, as shown in Figure 11a or 11b.N1 , and, for example, one or more second primary-only transforms T provided in a second set 134 of one or more available transforms N1+1 ...T N2 It may also be a set of primary-only conversions 138, including the following. Preferably, the set of available conversions 130 is, for example, as shown in Figure 11a, one first primary-only conversion T0 and one or more second primary-only conversions T1...T N It consists of the following. Therefore, in the second case, as shown by x in Figure 12, where all the transformation coefficients 118 of the transformation coefficient block 104 outside the predetermined sub-area 106 of the transformation coefficient block 104 are not zero, the decoder may determine one first primary dedicated transformation T0 as the lower transformation 131 of the transformation coefficient block 104. In the other case, as shown by x in Figure 12, where all the transformation coefficients 118 of the transformation coefficient block 104 outside the predetermined sub-area 106 of the transformation coefficient block 104 are zero, the decoder may determine the lower transformation 131 of the transformation coefficient block 104 from the set 130 by the index transmitted to the block 104 in the data stream, i.e., in this other case, decoded from the data stream by the decoder and encoded therein by the encoder. The set 130 of available transformations may include five different options, and one of the transformations T0 may be a DCT-II-DCT-II transformation. The latter example may be combined with the above example, for example, the inspection of zero degrees outside a predetermined area subblock scheme. In addition, in this embodiment, the existence of coding options for block 104 may be optional, as the lower-level transformation 131 of block 104 is a combination of a quadratic transformation and a linear transformation determined as outlined. For example, it may be that if the position of the last coded transformation coefficient satisfies certain conditions, the further index selects a quadratic transformation from a set of quadratic transformations. This set may include, as one option, non-quadratic transformations, i.e., discriminative transformations that effectively deviate from linear transformations as linear-only transformations. If certain conditions are not met, no quadratic transformations are used either.

[0108] The transformation 131 below the transformation coefficient block 104, according to the transformation coefficient block 104, defines the transformed representation, and the predetermined coefficient scan order 110 scans the transformation coefficients 120 in such a manner that there are one or more transformation coefficients 118, i.e., two transformation coefficients 120 located inside the predetermined sub-area 106, and a transformation coefficient outside the predetermined sub-area 106 that has been scanned by the predetermined coefficient scan order 110.

[0109] In one embodiment, the decoder is configured to check whether the first coded coefficient position 102 is located within a predetermined sub-area 106 of the conversion coefficient block 104, and to check whether all conversion coefficients 118 located outside the predetermined sub-area 106 of the conversion coefficient block 104 and located toward the last scanned position 101 from the first coded coefficient position 102 according to a predetermined coefficient scan order 110 are zero (152). Optionally, check 152 is performed simply if the first coded coefficient position 102 is located within the predetermined sub-area 106 of the conversion coefficient block 104. This is due to the fact that in the case where the first coded coefficient position 102 is located outside the predetermined sub-area 106 of the conversion coefficient block 104, the conversion coefficients outside the predetermined sub-area 106 should not be zero.

[0110] In accordance with the embodiment, the decoder 20 is configured to perform decoding 153 of the transformed information 154 from the data stream 14 using context-adaptive entropy decoding with a predetermined probabilistic model, and to determine the predetermined probabilistic model in accordance with whether the initially coded coefficient position 102 is located within the transformed coefficient block 104. Optionally, the predetermined probabilistic model for context-adaptive entropy decoding of the transformed information 154 from the data stream 14 may be set as described with respect to the predetermined probabilistic model 232 for context-adaptive entropy decoding 230 of the transformed information 108 from the data stream, as shown in Figure 9. However, it is evident that the first, second, and optionally third probabilistic models for context-adaptive entropy decoding of the transformed information 154 may differ from the first, second, and optionally third probabilistic models for context-adaptive entropy decoding of the transformed information 108.

[0111] According to the embodiment, the set of available transformations 130, as shown in Figure 11a, each of them is a primary transformation T1 within a predetermined sub-area 106. (p) ~T N2 (p) and secondary transformation T1 (s) ~T N2 (s) In response to the connection, the primary transformation T1 outside the predetermined sub-area 106 (p) ~T N2 (p) It includes a multi-stage transformation 136 composed of the following. The multi-stage transformation 136 is encompassed in a second set 134 of one or more available transformations. The set 138 of primary-only transformations is then comprised of a first set 132 of one or more available transformations, and the primary transformation T1 for all of the one or more multi-stage transformations 136. (p) ~T N2 (p) A first primary-only transform T0 that is equal to it, and one or more second primary-only transforms T1~T that are included in a second set 134 of one or more available transforms. N1 Includes.

[0112] In accordance with the embodiment, the set of available transformations 130 described above and shown in Figure 11a is used. The decoder 20 is configured to decode a secondary transformation indicator 156 from the data stream 14 if, according to a predetermined coefficient scan order 110, all transformation coefficients 118 of a transformation coefficient block 104 located from the first coded coefficient position 102 to the last scanned position 101 are zero if they are not located within a predetermined sub-area 106 of the transformation coefficient block 104, the secondary transformation indicator 156 indicates whether the lower transformation 131 of the transformation coefficient block 104 is a multi-step transformation 136, and indicates any one of one or more multi-step transformations 136, or whether the lower transformation 131 of the transformation coefficient block 104 is a primary-only transformation 138. In other words, the secondary transformation indicator 156 indicates whether the lower-level transformation 131 of the transformation coefficient block 104 belongs to a multi-stage transformation 136 or a primary-only transformation 138. If the transformation 131 belongs to a multi-stage transformation 136, the lower-level transformation 131 of the transformation coefficient block 104 is directly indicated by the secondary transformation indicator 156. In addition, in this first case 157, it is checked whether the secondary transformation indicator 156 indicates that the lower-level transformation 131 of the transformation coefficient block 104 is a primary-only transformation 138. If the secondary transformation indicator 156 indicates that the lower-level transformation 131 of the transformation coefficient block 104 is a primary-only transformation 138, the decoder 20 is configured to decode a transformation indicator 160, for example, a primary transformation indicator, from the data stream 14, which identifies a primary-only transformation from the set of primary-only transformations 138. In the second case 159, if, according to a predetermined coefficient scan order 110, all transformation coefficients 118 of a transformation coefficient block 104 located from the first coded coefficient position 102 to the last scanned position 101 are not zero if they are not located within a predetermined sub-area 106 of the transformation coefficient block 104, then the transformation of the lower layer of the transformation coefficient block is the first primary dedicated transformation T0.

[0113] In accordance with the embodiment, the set of available transformations 130 described above and shown in Figure 11a is used. The decoder 20 is configured to decode a primary transformation indicator 160 from the data stream 14 if, according to a predetermined coefficient scan order 110, all transformation coefficients 118 of a transformation coefficient block 104 located from the first coded coefficient position 102 to the last scanned position 101 are zero if they are not located within a predetermined sub-area 106 of the transformation coefficient block 104, and the primary transformation indicator 160 is a first primary-only transformation T0 and one or more second primary-only transformations T1-T N1 The first transformation is shown from a set including the following. If the first transformation is a first primary-only transformation T0, the decoder 20 decodes a secondary transformation indicator 156 from the data stream 14 that identifies the lower-level transformation 131 of the transformation coefficient block 104 from a set including the first primary-only transformation T0 and the multi-stage transformation 136. If the first transformation is one or more second primary-only transformations T1~T N1 If it is one of the above, the lower-level transformation 131 of the transformation coefficient block 104 is a second primary-only transformation, i.e., a second primary-only transformation indicated by the primary transformation indicator 160. If all the transformation coefficients 118 of the transformation coefficient block 104 located from the first coded coefficient position 102 to the last scanned position 101 according to a predetermined coefficient scan order 110 are not zero if they are not located within a predetermined sub-area 106 of the transformation coefficient block 104, then the lower-level transformation 131 of the transformation coefficient block 104 is a first primary-only transformation T0.

[0114] According to the embodiment, the first-order transformation T1 (p) ~T N2 (p) This is equal to all of the one or more multi-stage transformations 136, and also equal to one or more first-order-only transformations, for example, equal to T0 in Figure 11a, or T1~T in Figure 11b. N1 It is equivalent to one of the following.

[0115] According to the embodiment, as shown in Figure 11a, there is only one first primary dedicated converter T0.

[0116] According to the embodiment, the decoder 20 is configured to cause the conversion coefficient block 104 to undergo an inverse transformation, which inverts the lower-level transformation 131 of the conversion coefficient block 104 in order to obtain the sample block 84.

[0117] According to the embodiment, the decoder 20 is configured to use the sample block 84 to correct the predicted signal obtained by intrapicture prediction or interpicture prediction.

[0118] According to the embodiment, an encoder having features and / or functionality in parallel with one of the decoders described above with respect to one of Figures 7-12 is configured to cause a sample block 84 to undergo the underlying transformation 131 of the transformation coefficient block 104 in order to obtain the transformation coefficient block 104.

[0119] According to the embodiment, an encoder having features and / or functionality in parallel with one of the decoders described above with respect to one of Figures 7-12 is configured to derive the prediction residual of the prediction signal obtained by intrapicture prediction or interpicture prediction, and to determine, for example, a sample block 84 including quantization to represent the prediction residual.

[0120] The following explanation, in other words, describes the two modes described above for improving coding efficiency regarding conversion type signaling.

[0121] 1. Preservation of signaling transformation type after coefficient level within subblock When the first (last) significance coefficient position 102 within the current transformation block 104 lies inside an area where all coefficients are required to be equal to zero for a particular subset of permitted transformations, i.e., when the first (last) significance coefficient position 102 lies outside a predetermined sub-area 106 (for example, outside the 16x16 area for the non-DCT-II transformations described above), only a subset of permitted transformations that do not have a non-zero requirement, such as the transformations of the first set 132 of the available transformations in the set of available transformations 130, may be signaled. In cases where the subset contains only one transformation, signaling is not required and the transformation is inferred (for example, the MTS index is not signaled and is instead inferred to be equal to zero, as illustrated in both simplified syntax diagrams of Figure 13).

[0122] Figure 13 shows a simplified syntax diagram based on unmodified subblock (SB) scanning according to the transformation selection by mts_idx.

[0123] When the first (last) significance coefficient position 102 in the current transformation block 104 is located outside the area where all coefficients are required to be equal to zero for a particular subset of permitted transformations, i.e., when the first (last) significance coefficient position 102 is located inside a predetermined sub-area 106 (for example, inside a 16x16 area for the non-DCT-II transformations described above), the position of each subsequently scanned coefficient is checked (152), as shown in Figure 12. If at least one coefficient 118 is located outside the non-zero area, i.e., outside the predetermined sub-area 106, only a subset of permitted transformations that do not have a non-zero requirement, for example, the transformations of the first set 132 of the available transformations in the set of available transformations 130, may be signaled. In the case where the subset contains only one transformation, signaling is not required and the transformation is inferred (for example, the MTS index is not signaled and is instead inferred to be equal to zero). This condition is illustrated in the simplified syntax diagram in the upper right of Figure 13 (see the condition for AllLumaCoeffOutside16x16AreZero).

[0124] In cases where an additional transformation, such as LFNST, can be applied, its selection is signaled before the transformation type (156), indicating that the additional transformation will be applied, and only a subset of transformations permitted to be combined with the additional transformation may be signaled. In cases where the subset contains only one transformation, signaling is not required, and the transformation is inferred (for example, if the LFNST index is greater than 0, signaling that LFNST will be applied, the MTS index is not signaled, but instead inferred to be equal to 0, which corresponds to DCT-II, as illustrated in both simplified syntax diagrams of Figure 13).

[0125] In cases where an additional transformation (e.g., LFNST) can be applied, its selection is signaled after the transformation type (156), and the transformation type indicates a transformation that is not allowed to be combined with the additional transformation; the selection of the additional transformation is not signaled but is presumed to be disabled (for example, if the MTS index that signals that a non-DCT-II transformation is applied is greater than 0, the LFNST index is not signaled and is instead presumed to be equal to 0, which corresponds to disabling LFNST).

[0126] 2. Signal transformation type after the first (last) significance coefficient position within a subblock, and before the coefficient level. After the first (last) significance coefficient position 102 in the current transformation block 104 is signaled (100) and located inside an area where all coefficients are required to be equal to 0 for a particular subset of permitted transformations, i.e., after the first (last) significance coefficient position 102 is located outside a predetermined sub-area 106 (e.g., outside the 16×16 area for the non-DCT-II transformations described above), only a subset of permitted transformations that do not have a non-zero requirement, such as the transformations of the first set 132 of the available transformations in the set of available transformations 130, as shown in Figure 8, may be signaled. In cases where the subset contains only one transformation, signaling is not required and the transformation is inferred (e.g., the MTS index is not signaled and is instead inferred to be equal to 0). This condition is illustrated in both simplified syntax diagrams in Figure 14 (see the condition for LastCoeffPosY in 16×16).

[0127] Figure 14 shows a simplified intax diagram obtained by corrected subblock (SB) scanning according to the conversion selection by mtx_idx.

[0128] When a transformation is signaled that requires all coefficients outside a specific area, i.e., a predetermined sub-area 106, to be equal to zero, the scanning order is changed in such a way that only the subblocks and coefficients inside this area, i.e., the predetermined sub-area 106, are within the scanning path 114, as shown on the left side of Figure 3 and in Figure 7. This condition is also illustrated in both simplified syntax diagrams in Figure 14 (see the condition for mtx_idx>0).

[0129] In cases where an additional transformation, such as LFNST, can be applied, the selection 124 is signaled after the transformation type, and the transformation type indicates a transformation that is not permitted to be combined with an additional transformation, such as a second primary dedicated transformation, and the selection of the additional transformation is not signaled but is presumed to be disabled (for example, if the MTS index is greater than 0, the LFNST index is not signaled for which signals the non-DCT-II transformation applies to, and is instead presumed to be equal to 0, which corresponds to disabling LFNST, as illustrated in the simplified syntax diagram on the left side of Figure 14).

[0130] In addition to the previous case, signaling of the transformation type is performed using context-adaptive entropic coding 230, e.g., context-adaptive binary arithmetic coding (CABAC), as shown in Figure 9. In this case, context selection depends on whether or not to allow the application of an additional transformation (e.g., LFNST). This may be a number of non-zero coefficients in the current block, i.e., the current transformation coefficient block 104, inferred from the first (last) significance coefficient position 102. If applying the additional transformation to the DC coefficient, i.e., the last scanned position 101, i.e., the upper-left (0,0) zero frequency position, results in the same DC coefficient, then it does not make sense to apply and signal such an additional transformation if only one DC coefficient exists in the current transformation block, i.e., the case where the first coded coefficient position 102 coincides with the last scanned position 101. Therefore, if the last (first) significant position points to the DC position, which is also the first and last position in the scan order, no additional transformation needs to be signaled, and a specific context A, e.g., a first probabilistic model, is selected for the MTS index. This case is illustrated on the right side of Figure 10. Furthermore, to reduce complexity with respect to the number of multiplications, a specific maximum number of coefficients (e.g., 8) from the first (last) significant position 102 to DC, i.e., the last scanned position 101, may be allowed for the additional transformation in scan order 110. This case is illustrated on the left side of Figure 10. In all other cases where additional transformations can be applied and / or indications are signaled, a different context B, e.g., a second probabilistic model, is selected. In short, the conditions for context selection based on the previous embodiment are: If the current transform block 104 has more non-zero coefficients than DC, and there are 8 or fewer coefficients in the scan order 110 from the last significant position to DC, then select context A, for example, the second probability model 2362. Otherwise, select context B.

[0131] Another embodiment has more than two contexts depending on the conditions, If the current transformation block 104 has non-zero coefficients less than or equal to DC, then context A, i.e., the first probabilistic model 2361, is selected. Otherwise, if there are coefficients of 8 or less in the scan order from the last significant position to DC, select context B, i.e., the second probability model 2362. Otherwise, select context C, i.e., the third probability model 2363.

[0132] The condition may also apply to multiple transformation blocks, for example, to a luma block and two chroma blocks, or to more than one luma block if the luma transformation block is divided into multiple (e.g., four) transformation blocks, there must be more coefficients than DC.

[0133] Figure 10 shows an 8x8 block (left) with four 4x4 subblocks and eight maximum non-zero coefficients in the scan order, or an 8x8 block (right) with only one non-zero coefficient at the DC position.

[0134] In cases where an additional transformation (e.g., LFNST) can be applied, the selection is signaled before the transformation type, and the transformation type indicates that the additional transformation is applied, and only a subset of transformations that are permitted to be combined with the additional transformation may be signaled. In cases where the subset contains only one transformation, no signaling is required, and the transformation is inferred (for example, if the LFNST index is greater than 0, signaling that LFNST is applied, the MTS index is not signaled and is instead inferred to be equal to 0, which corresponds to DCT-II, as illustrated in the simplified syntax diagram on the upper right of Figure 14).

[0135] 3. Examples of Implementation Modes The linear transformation T shown in Figures 11a and 11b i and T i(p) teeth, • DCT-II (or DCT-III), where DCT stands for Discrete Cosine Transform. • DST-IV, where DST stands for Discrete Sine Transform · DCT-IV · DST-VII Identity transformation It may include one or more of the following.

[0136] Linear transformation T i and T i (p) This could also be a separable transformation.

[0137] Secondary transformation T i (Multiple options are possible) In the encoder, in the forward direction, to obtain the coefficient of the last conversion coefficient block 104, the T of the linear transformation in subarea 106 i (p) The transform applied to the coefficients may be an inseparable transform, and the decoder performs an inverse transform T on the transform coefficient block 104 to obtain sample block 84. -1 By applying this, the resulting multi-step transformation T i (s) ·T i (p) Reverse it.

[0138] The following reference should be made: Sequences 114 and 110 are not limited to the shown embodiments of diagonal scanning (horizontal and vertical) from the highest frequency coefficient (which may be the DC coefficient, located in the opposite corner of block 104 relative to the last scanned position 101), and it is not necessary to scan the coefficients according to a sub-block scanning process that first scans all coefficients in a sub-block before moving on to another sub-block. Furthermore, subarray 106 is not limited to having a size of 16 × 16 coefficients, and may be any rectangular subarray of coefficients extending from the last scanning position 101 to the opposite corner in block 104.

[0139] Furthermore, Figure 11a is merely illustrative. More than one linear-only transformation may be included in set 132. This is shown in Figure 11b. (Linear transformation T1 of multi-stage transformations) (p) ~T N3 (p) They may or may not be equal to each other, but one or more of them may belong to a linear-only transformation of set 132, and they may or may not be different numbers in set 136.

[0140] Furthermore, as illustrated in Figure 11a, T1 (p) =…=T N2 (p) Indicator 124 can be considered to indicate that a multi-step transformation is selected in cases where a linear-only transformation is not shown, simply because of the constellation = T0, or to indicate that a quadratic transformation is selected in cases where a linear-only transformation is not shown. Alternatively, indicator 124 may be interpreted as indicating whether a quadratic transformation is still available.

[0141] While some embodiments have been described in the context of the apparatus, it is evident that these embodiments also represent descriptions of the corresponding methods, where a block or device corresponds to a method step or a feature of a method step. Similarly, embodiments described in the context of a method step also represent descriptions of the corresponding blocks, items, or features of the corresponding apparatus. Some or all of the method steps may be performed by (or using) hardware devices such as a microprocessor, a programmable computer, or an electronic circuit. In some embodiments, one or more of the most important method steps may be performed by such devices.

[0142] The encoded signals of the invention, such as video signals, may be stored in a digital storage medium, or they may be transmitted over a transmission medium such as a wireless transmission medium like the Internet or a wired transmission medium.

[0143] Depending on the requirements of a particular embodiment, embodiments of the invention may be implemented in hardware or software. Embodiments may be implemented using, for example, a digital storage medium, floppy disk, DVD, Blu-ray, CD, ROM, PROM, EPROM, EEPROM, or flash memory having electronically readable control signals stored therein, which cooperates (or can cooperate) with a programmable computer system so that each method is performed. Thus, the digital storage medium may be computer-readable.

[0144] Some embodiments of the invention include a data carrier having an electronically readable control signal, which is capable of cooperating with a programmable computer system so that one of the methods described herein is performed.

[0145] In general, embodiments of the present invention may be implemented as a computer program product having program code, the program code operable to perform one of the methods when the computer program product runs on a computer. The program code may be stored, for example, in a machine-readable carrier.

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

[0147] In other words, an embodiment of the method of the invention is a computer program having program code for performing one of the methods described herein when the computer program is running on a computer.

[0148] Further embodiments of the method of the invention are, therefore, data carriers (or digital storage media or computer-readable media) containing computer programs recorded thereon for performing one of the methods described herein. The data carriers, digital storage media, or recorded media are typically tangible and / or non-temporary.

[0149] Further embodiments of the method of the invention are, therefore, data streams or sequences of signals representing a computer program for performing one of the methods described herein. The data streams or sequences of signals may be configured to be transmitted over a data communication connection, for example, over the Internet.

[0150] Further embodiments include processing means, such as a computer or a programmable logic device, configured or adapted to perform one of the methods described herein.

[0151] Further embodiments include a computer on which a computer program for performing one of the methods described herein is installed.

[0152] Further embodiments of the invention include an apparatus or system configured (e.g., electronically or optically) to transfer a computer program to a receiver for performing one of the methods described herein. The receiver may be a computer, a mobile device, or a memory device, etc. The apparatus or system may include, for example, a file server for transferring the computer program to the receiver.

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

[0154] The apparatus described herein may be implemented using hardware devices, or using a computer, or using a combination of hardware devices and a computer.

[0155] The apparatus described herein, or components of the apparatus described herein, may be implemented at least partially in hardware and / or software.

[0156] The methods described herein may be performed using hardware devices, or using a computer, or using a combination of hardware devices and a computer.

[0157] The methods or components of the apparatus described herein may be implemented at least partially in hardware and / or software.

[0158] The embodiments described above are merely illustrative of the principles of the present invention. Modifications and variations of the arrangement and details described herein will be obvious to those skilled in the art. Therefore, it is intended that the invention is limited only by the pending claims and not by any specific details presented in the description and explanation of the embodiments herein.

Claims

1. A decoder (20) that decodes a converted representation of a block (84) from a data stream (14), Decoding coefficient position information (100) from the data stream (14) to indicate the first coded coefficient position (102) within the conversion coefficient block (104), Decoding the transformation information relating to the transformation applied to the transformation coefficient block (104) from the data stream (14), When the conversion information indicates a conversion that requires that the conversion coefficients located outside the predetermined sub-area (106) of the conversion coefficient block (104) be zero, the values ​​of the conversion coefficients located within the predetermined sub-area (106) are decoded from the first coded coefficient position (102) indicated by the coefficient position information (100) according to the second coefficient scan order (114), and the conversion coefficients located upstream of the first coded coefficient position (102) and the conversion coefficients located outside the predetermined sub-area (106) are inferred to be zero according to the first coefficient scan order (110), If the conversion information does not indicate the conversion that meets the requirements, the value of the conversion coefficient is decoded from the first coded coefficient position (102) indicated by the coefficient position information (100) according to the first coefficient scan order (110), and the conversion coefficient located upstream of the first coded coefficient position (102) according to the first coefficient scan order (110) is inferred to be zero. A decoder (20) configured to perform the following actions.

2. The decoder (20) according to claim 1, wherein the predetermined sub-area (106) is composed of 16 × 16 conversion coefficients and is located in the upper left of the conversion coefficient block (104).

3. The decoder (20) according to claim 1 or 2, wherein the second coefficient scan sequence (114) scans the conversion coefficients within the predetermined sub-area (106) without scanning any conversion coefficients outside the predetermined sub-area (106) between the conversion coefficients within the predetermined sub-area (106).

4. The decoder (20) according to claim 1, wherein the first coefficient scan sequence (110) scans the conversion coefficients in such a manner that one or more conversion coefficients located outside the predetermined sub-area (106) are between two conversion coefficients located inside the predetermined sub-area (106).

5. The decoder (20) according to claim 1, wherein the first coded coefficient position (102) indicated by the coefficient position information (100) is either the position of the first non-zero conversion coefficient in the coefficient scan order, or the position of the last non-zero conversion coefficient in the inverse coefficient scan order.

6. The aforementioned conversion information includes a secondary conversion indicator, The decoder (20) according to claim 1, wherein the secondary conversion indicator indicates whether the conversion applied to the conversion coefficient block (104) is a multi-stage conversion or a primary-only conversion.

7. The decoder (20) according to claim 6, wherein when the secondary conversion indicator indicates the primary-only conversion, the decoder (20) decodes from the data stream (14) a primary conversion indicator that identifies a primary-only conversion from a set of primary-only conversions.

8. The decoder (20) according to claim 6 or 7, wherein if the secondary conversion indicator indicates the multi-stage conversion and all multi-stage conversions are associated with the same primary conversion, the decoder (20) does not decode the primary conversion indicator.

9. The decoder (20) according to claim 1, wherein the first coefficient scan sequence (110) and the second coefficient scan sequence (114) coincide in the last scanned position in each coefficient scan sequence and a predetermined number of conversion coefficients upstream of said position.

10. The decoder (20) according to claim 9, wherein the predetermined number is a number within the range of 3 to 10.

11. The decoder (20) according to claim 9, wherein the predetermined number is 8.

12. An encoder (10) that encodes a converted representation of a block (84) from a data stream (14), From the data stream (14), coefficient position information (100) indicating the first coded coefficient position (102) within the conversion coefficient block (104) is encoded, The data stream (14) is used to encode transformation information relating to the transformation applied to the transformation coefficient block (104), When the conversion information indicates a conversion that requires that the conversion coefficients located outside the predetermined sub-area (106) of the conversion coefficient block (104) be zero, the values ​​of the conversion coefficients located within the predetermined sub-area (106) are encoded from the first coded coefficient position (102) indicated by the coefficient position information (100) according to the second coefficient scan order (114), and the conversion coefficients located upstream of the first coded coefficient position (102) and the conversion coefficients located outside the predetermined sub-area (106) are inferred to be zero according to the first coefficient scan order (110), If the conversion information does not indicate the conversion that is the requirement, the value of the conversion coefficient is encoded from the first coded coefficient position (102) indicated by the coefficient position information (100) according to the first coefficient scan order (110), and it is inferred that the conversion coefficient located upstream of the first coded coefficient position (102) according to the first coefficient scan order (110) is zero. An encoder (10) is configured to perform the following actions.

13. A method for decoding a converted representation of a block (84) from a data stream (14), Decoding coefficient position information (100) from the data stream (14) to indicate the first coded coefficient position (102) within the conversion coefficient block (104), Decoding the transformation information relating to the transformation applied to the transformation coefficient block (104) from the data stream (14), When the conversion information indicates a conversion that requires that the conversion coefficients located outside the predetermined sub-area (106) of the conversion coefficient block (104) be zero, the values ​​of the conversion coefficients located within the predetermined sub-area (106) are decoded from the first coded coefficient position (102) indicated by the coefficient position information (100) according to the second coefficient scan order (114), and the conversion coefficients located upstream of the first coded coefficient position (102) and the conversion coefficients located outside the predetermined sub-area (106) are inferred to be zero according to the first coefficient scan order (110), If the conversion information does not indicate the conversion that meets the requirements, the value of the conversion coefficient is decoded from the first coded coefficient position (102) indicated by the coefficient position information (100) according to the first coefficient scan order (110), and the conversion coefficient located upstream of the first coded coefficient position (102) according to the first coefficient scan order (110) is inferred to be zero. A method that includes [a certain feature].

14. A method for encoding a converted representation of a block (84) from a data stream (14), From the data stream (14), coefficient position information (100) indicating the first coded coefficient position (102) within the conversion coefficient block (104) is encoded, The data stream (14) is used to encode transformation information relating to the transformation applied to the transformation coefficient block (104), When the conversion information indicates a conversion that requires that the conversion coefficients located outside the predetermined sub-area (106) of the conversion coefficient block (104) be zero, the values ​​of the conversion coefficients located within the predetermined sub-area (106) are encoded from the first coded coefficient position (102) indicated by the coefficient position information (100) according to the second coefficient scan order (114), and the conversion coefficients located upstream of the first coded coefficient position (102) and the conversion coefficients located outside the predetermined sub-area (106) are inferred to be zero according to the first coefficient scan order (110), If the conversion information does not indicate the conversion that is the requirement, the value of the conversion coefficient is encoded from the first coded coefficient position (102) indicated by the coefficient position information (100) according to the first coefficient scan order (110), and it is inferred that the conversion coefficient located upstream of the first coded coefficient position (102) according to the first coefficient scan order (110) is zero. A method that includes [a certain feature].

15. A computer program having program code for performing the method described in claim 13 or 14 when running on a computer.