An implementation-efficient partition-based intra coding concept

By introducing the internal subpartition (ISP) encoding mode, the problems of internal code signals overload and low prediction accuracy in the prior art are solved, and a more efficient encoding process and better encoding quality are achieved.

JP7670913B2Active Publication Date: 2025-04-30FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024104082
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-03-12
Filing Date
2024-06-27
Publication Date
2025-04-30
Estimated Expiration
2040-03-11

AI Technical Summary

Technical Problem

When implementing efficient intra-coding, the prior art has problems of signal overload and low prediction accuracy, especially in block segmentation encoding, which increases the encoding complexity.

Method used

By introducing an internal subpartition (ISP) encoding mode, allowing flexible partitioning and prediction within the block, using predicted residual transformations to optimize the encoding process, and independently process transformed subpartitions in encoding and decoding to reduce signal overload.

Benefits of technology

It improves the implementation efficiency of internal code, reduces signal overload, and enhances the accuracy of intra-block prediction, thereby improving coding quality and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007670913000022
    Figure 0007670913000022
  • Figure 0007670913000023
    Figure 0007670913000023
  • Figure 0007670913000024
    Figure 0007670913000024
Patent Text Reader

Abstract

To provide a concept for intra-coding which is more efficient.SOLUTION: A decoder 20 is configured to: decode an intra-coding mode and a partition dimension flag for a predetermined block 80 of a picture from a data stream and sets a partition dimension depending on the partition dimension flag to be horizontal 1041 or vertical 1042; partition 105 the predetermined block, along a predetermined dimension, into transform partitions 300 which are as wide 1031 or 1032 as the predetermined block perpendicular to the predetermined dimension; for each of the transform partitions, decode transform of a prediction residual; and intra-predict 122 the predetermined block depending on one or more already reconstructed samples 118 neighboring the predetermined block in a manner depending on the intra-coding mode to reconstruct 123 the predetermined block.SELECTED DRAWING: Figure 12-2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] This application relates to an intra-coding concept for use in block-based codecs, such as hybrid video codecs. [Background technology]

[0002] Given a particular block, intra prediction is performed in HEVC by extrapolating the decoded boundary samples of neighboring blocks according to a particular pattern, namely 33 angular modes and DC and planar modes [1]. Then, one intra prediction mode that minimizes the rate-distortion cost is signaled to the decoder. Even though codecs are known that support many intra prediction modes (IPM), for the intra prediction achieved thereby, finding good intra predictors that result in high coding efficiency is still a subject of development. This is not only relevant for HEVC, but also for other block-based codecs that use intra prediction. To find a suitable set of intra prediction modes to efficiently code the inside of a block, it is necessary to consider the overhead for signaling intra prediction modes in terms of signaling overhead, and the resulting quality of the predictors obtained by these intra prediction modes, since a more accurate predictor reduces the prediction residual, thereby reducing the signaling overhead associated with coding the prediction residual. In order to keep the signaling overhead associated with intra prediction modes low, intra predicted blocks must be large, i.e. the granularity at which intra prediction modes are signaled must be kept coarse, while spatial prediction of larger blocks tends to be less accurate due to the large average sample distance of samples inside the intra predicted block, i.e. the predicted block, to already decoded / encoded samples, i.e. reference samples, adjacent to this block. HEVC somewhat mitigates this dilemma by allowing transform residual blocks to inherit the intra prediction mode of the corresponding coding unit, whereas the transform residual blocks form leaf blocks into which the coding units are sub-partitioned by multi-tree sub-partitioning. However, this still requires signaling overhead to signal the sub-partitioning of each intra-coded coding unit into transform blocks from the encoder to the decoder. Summary of the Invention [Problem to be solved by the invention]

[0003] A newly developing intra-coding concept, represented by the Intra Sub-Partition (ISP) coding mode in the newly developing Versatile Video Coding (VVC) standard, requires improved implementation efficiency.

[0004] It would therefore be desirable to have a concept at hand that would further increase the implementation efficiency of intra coding with comparable coding efficiency.

[0005] It is therefore an object of the present invention to provide a more efficient intra-coding concept. [Means for solving the problem]

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

[0007] Advantageous aspects of the invention are the subject matter of the dependent claims.

[0008] In accordance with a first aspect of the present invention, the inventors of the present application have recognised that one problem encountered when using sub-partitioning in connection with intra-coding is that the number of sub-partitions per block for which prediction is performed independently should be limited taking into account the resulting sub-partition size, e.g. a desired minimum throughput of 16 samples per cycle and / or a minimum width of the coding advance per coding cycle, such as a minimum of 4 sample wide advance per prediction. These thoughts led to the idea of ​​interpreting the flag-controlled intra-prediction mode / decision for an intra-coded (predetermined) block, which leads to the partitioning of this given block from the perspective of prediction residual transformation, and further to sub-partitioning from the perspective of intra-prediction, i.e., whether a given block is intra-predicted in a joint manner (at once), or whether a transform partition is used for a partition-wise intra-prediction in a sequential manner with intermediate use of the prediction residual and correction of the very intra-predicted sub-partition, which also uses the same for the intra-prediction of the next sub-partition, or whether a group of transform partitions for a prediction sub-partition can be freely implemented as needed, such as rendering the latter selection dependent on the block size, for example, in order to avoid intra-prediction resulting in too few samples per intra-prediction performed or too small width advance of intra-prediction. It should be noted that the encoding and decoding of transform partitions may be performed independently between transform partitions, i.e., they may be encoded / decoded in parallel, thereby not creating the problem of minimum samples per cycle or width advance per cycle. This allows for partitioning of intra-predicted blocks into partitions having, for example, less than 16 samples, since multiple partitions may be intra-predicted and reconstructed in the same cycle. It is advantageous if all sub-partitions encoded or decoded in the same cycle together contain at least 16 samples.Again, according to the variants described in this specification, the encoded code supports many block sizes, and depending on the size of a given intra-predicted block and / or its width and / or height, the decoder and encoder set the partitions with respect to the prediction to result in one of the following options:

[0009] 1) predicting intra-predicted blocks globally, i.e., all at once or as a whole (in other words, predicting, for example, the entire block at once, or in further words, predicting all samples in a given block based on neighboring samples located exclusively outside the given block, and processing the transform partitions of the given block independently (i.e., the transform is performed region-by-region within each transform partition); and / or 2) Sequential intra prediction on the basis of the transform partitions that then also serve as prediction sub-partitions (in other words, for example, predicting a transform partition and encoding / decoding a prediction residual for that transform partition by obtaining reconstructed samples within that transform partition, and then predicting the next transform partition in a given block using the reconstructed samples obtained for the previous transform partition and encoding / decoding a prediction residual for the next transform partition, etc.); and / or 3) Sequential intra prediction in units of groups of transform partitions (each transform partition belongs to exactly one partition group) (in other words, for example, predict a group of transform partitions, i.e., a predictive subpartition, based on adjacent samples located exclusively outside that predictive subpartition, obtain reconstructed samples in that predictive subpartition in units of transform partitions within that predictive subpartition, and encode / decode the prediction residual for that predictive subpartition (i.e., the transform is performed region-by-region within each transform partition), and then predict the next group of transform partitions in a given block, i.e., the next predictive subpartition, using the reconstructed samples including samples obtained for the previous predictive subpartition but excluding samples located in the next predictive subpartition, and encode / decode the prediction residual for the next predictive subpartition in units of transform partitions, etc.).

[0010] Thus, according to a first aspect of the present application, a decoder for block-based decoding of a picture from a data stream is configured to decode, for a given block of the picture, an intra-coding mode from the data stream. The decoder is configured to decode, for a given block of the picture from the data stream, a partition dimension flag and set a partition dimension dependent on the partition dimension flag to horizontal or vertical. In other words, the partition dimension flag indicates whether the partition dimension is horizontal or vertical. The decoder is configured to partition the given block along the given dimension (i.e. along the partition dimension) into transform partitions of the same width as the given block perpendicular to the given dimension. If the partition dimension is vertical, the transform partitions may be associated with horizontal blocks stacked vertically, and if the partition dimension is horizontal, the transform partitions may be associated with vertical blocks arranged side by side horizontally. The decoder is configured to decode, for each transform partition, a transform of a prediction residual from the data stream. Further, the decoder is configured to reconstruct the given block by intra-predicting the given block depending on one or more already reconstructed samples neighboring the given block in a manner that depends on the intra-coding mode to obtain a predictor for the given block, and correcting the predictor in each transform partition using a transform of the decoded prediction residual for the respective transform partition.

[0011] According to a first option, the decoder is configured to reconstruct the transform partitions by sequentially intra predicting the predictors, one after the other, for any transform partition, and correcting the predictor in each transform partition using a transform of the decoded prediction residual for the respective transform partition.

[0012] According to a second alternative, the decoder is configured to intra-predict a predictor for each transform partition, and decode a transform of a prediction residual for each transform partition from a data stream.The decoder is then configured to reconstruct a given block by correcting a predictor using the transform of the prediction residual decoded for each transform partition.Thus, first, all predictors are intra-predicted, all transforms of the prediction residual are decoded, and then all transform partitions are reconstructed by correcting a predictor in each transform partition using the transform of the prediction residual decoded for each transform partition.Thus, for example, all predictors are corrected in one step.

[0013] In contrast, according to the first option, any transform partition is reconstructed one after another. In other words, according to the first option, for a current transform partition, a predictor is intra predicted and corrected, and then for a subsequent transform partition, a new predictor is intra predicted and corrected.

[0014] According to a third alternative, the decoder is configured to intra-predict the entire given block in one step to obtain a prediction signal (i.e., a predictor) and to divide this prediction signal into predictors, for example, for transform partitions of the given block. According to one embodiment, each predictor is associated with a different transform partition. The transform partitions are, for example, processed independently by the decoder. Thus, for example, the decoder is configured to reconstruct the given block by decoding, for each transform partition, a transformation of the prediction residual from the data stream and correcting the predictor using the transformation of the decoded prediction residual for the respective transform partition. Alternatively, this is not performed at once for the whole block, but for sub-partitions of the given block, which may be further divided into transform partitions. In this case, for example, the decoder is configured to intra-predict a sub-partition of the given block in one step to obtain a prediction signal (i.e., a predictor) and to divide this prediction signal into predictors, for example, for transform partitions of the sub-partitions of the given block.

[0015] According to one embodiment, the decoder is configured to divide a given block depending on the block size into sub-partitions, setting a minimum prediction width of 4 to reduce the complexity of the hardware implementation. The invention is not limited by the following examples of different partitionings performed by the decoder. It is clear that other sub-partitions and / or transform partitions can also be realized by the decoder.

[0016] 4x4 block (Example 1) Horizontal split (Hor.Split): one 4x4 PU (Prediction Unit) and four independent 4x1 TUs (Transform Units). Vertical Split (Ver.Split): One 4x4 PU and four independent 1x4 TUs. In other words, the entire 4x4 block is predicted at once and then split into four transform partitions to be processed independently.

[0017] 8x4 blocks (Example 2) Horizontal split (Hor.Split): 2 8x2 PUs and 4 8x1 TUs. The second PU is predicted using the reconstructed samples of the second TU. Vertical split (Ver.Split): 2 4x4 PUs and 4 2x4 TUs. The second PU is predicted using the reconstructed samples of the second TU. In other words, an 8x4 block is divided into two subpartitions (i.e., PUs), and each subpartition is divided into two transform partitions that are processed independently.

[0018] 4x8 blocks (Example 3) Horizontal split (Hor.Split): 2 4x4 PUs and 4 4x2 TUs. The second PU is predicted using the reconstructed samples of the second TU. Vertical split (Ver.Split): One 4x8 PU and four independent 1x8 TUs. In other words, in horizontal partitioning, a 4x8 block is divided into two subpartitions (i.e., PUs), and each subpartition is divided into two transform partitions that are processed independently, while in vertical partitioning, the entire 4x8 block is predicted at once and then divided into four transform partitions that are processed independently.

[0019] 4x8 blocks (Example 3', alternative to Example 3) Horizontal split (Hor.Split) (no change compared to the subpartition processing for both prediction and transform residual coding / decoding): Two 4x4 PUs are used which jointly form two 4x4 TUs. The second PU is predicted using the reconstructed samples of the first PU. Vertical Split (Ver.Split) (Fixed): One 4x8 PU and two independent 2x8 TUs. In other words, in horizontal partitioning, a 4x8 block is divided into two subpartitions (i.e., PUs), with each subpartition resulting in one transform partition, while in vertical partitioning, the entire 4x8 block is predicted at once and then divided into two transform partitions that are processed independently.

[0020] 4×M block (Example 4) The entire 4xM block is predicted at once and then split into four 1xM transform partitions that are processed independently.

[0021] 4×M blocks (Example 4′ where M>8) Horizontal split (Hor.Split) (no change compared to subpartition processing for both prediction and transform residual coding / decoding): A 4xM block is predicted by 4 PUs of 4x(M / 4), each of which is simultaneously one of the 4 transform partitions. Vertical Split (Ver.Split): The entire 4xM block is predicted at once and then split into four 1xM transform partitions that are processed independently.

[0022] 8×N blocks (Example 5) An 8xN block may be divided into two 4xN subpartitions and further divided into four 1xN transform partitions.

[0023] 8×N blocks (Example 5' where N>4) Horizontal split (Hor.Split) (no modifications compared to sub-partition processing for both prediction and transform residual coding / decoding): an 8xN block is split into four 8x(N / 4) sub-partitions (for prediction and transform residual coding / decoding). Vertical Split (Ver.Split): An 8xN block is split into two 4xN subpartitions which can be further split into two 2xN transform partitions (for prediction).

[0024] The examples outlined above may be applied individually, in their entirety, or a combination of two or more of them may be applied to the codec according to the corresponding embodiment (i.e., the decoder and the encoder, respectively) for different block sizes. As can be understood, according to one embodiment, for at least one given block size (e.g., Comparative Examples 3-5), depending on the splitting direction, the decision on how to choose between the aforementioned options 1-3 (between two of 1-3) may differ, in the case of horizontal splitting such as option 2, one option is selected, each TU is also a PU, and therefore the number of PUs and the number of TUs are the same, while in the case of vertical splitting such as option 1, a different option may be selected, the whole block acts as a PU, but is split into several Tus, and therefore the number of PUs and the number of TUs are different, or in option 3, a given block is split into PUs, each of which is further split into TUs, and therefore the number of PUs and the number of TUs are different. Additionally or alternatively, in the case of another block size (Comparative Example 2), this decision may end up being the same option, regardless of the splitting direction. Thus, the above-mentioned dependencies of choice between the alternatives on the split direction may be in addition to the block size direction already mentioned, but may of course also apply without the latter.

[0025] An embodiment according to the invention relates to a picture-to-data stream block-based encoding encoder configured to encode an intra-coding mode into a data stream for a given block of a picture. The encoder is configured to encode a partition dimension flag into the data stream for a given block of a picture, the partition dimension flag signaling that the partition dimension is set to horizontal or vertical. In other words, the partition dimension flag indicates whether the partition dimension is horizontal or vertical. The encoder is configured to divide the given block along the given dimension (i.e. along the partition dimension) into transform partitions, the transform partitions being as wide as the given block perpendicular to the given dimension. If the partition dimension is vertical, the transform partitions may be associated with horizontal blocks stacked vertically, and if the partition dimension is horizontal, the transform partitions may be associated with vertical blocks arranged side-by-side horizontally. Furthermore, the encoder is configured to intra-predict the given block depending on one or more already reconstructed samples adjacent to the given block in a manner that depends on the intra-coding mode to obtain a predictor for the given block. For each transform partition, the encoder is configured to encode a transformation of the prediction residual into a data stream, such that a given block can be reconstructed by correcting the predictor in each transform partition using the transform of the prediction residual encoded for the respective transform partition.

[0026] The data streams generated by the above-mentioned encoders and methods performed by the encoders and decoders described herein, and by any of the encoders described herein, are based on the same considerations as the above-mentioned decoders, whereby the methods may be completed with all the features and functionality also described with respect to the decoders and / or encoders.

[0027] Preferred embodiments of the present application are described below with reference to the drawings. [Brief description of the drawings]

[0028] [Figure 1] 1 is a block diagram of an apparatus for predictively encoding pictures, as an example of an encoder in which the ISP concept can be implemented. [Diagram 2] FIG. 2 is a block diagram of an apparatus for predictively decoding pictures, compatible with the apparatus of FIG. 1, as an example of a decoder in which the ISP concept can be implemented. [Diagram 3] FIG. 1 is a schematic diagram showing an example of the relationship between a prediction residual signal, a prediction signal and a reconstructed signal to illustrate the possibilities of sub-partitioning settings for coding mode selection, transform selection and transform performance, respectively; [Figure 4] FIG. 1 is a schematic diagram illustrating partitioning of an intra-coded block according to an ISP variant allowing a choice between different partition dimensions, i.e. horizontal and vertical partitioning. [Diagram 5] FIG. 1 is a schematic diagram illustrating sequential processing of partitions of an ISP coding block. [Figure 6] FIG. 13 is a schematic diagram illustrating the predicted derivation of the partition filling process. [Figure 7] A diagram showing an example of an ISP block partitioned according to horizontal and vertical partition modes and having two different intra prediction modes associated with each, to illustrate the possibility of rendering-dependent decision of partition order on the intra prediction mode associated with an intra predicted block. [Figure 8] FIG. 1 is a schematic diagram illustrating possible signaling for an intra-predicted block 80 that is processed using partition options. [Figure 9] FIG. 2 is a schematic diagram illustrating a possible method for transmitting prediction residuals for a partition; [Figure 10]FIG. 1 is a schematic diagram illustrating a partial sum determination of the coding cost associated with a partition of intra-prediction modes, so that testing can be stopped if it is clear that it will not be better than any of the regular intra-prediction modes. [Figure 11] 1 is a flow chart diagram of the modes or operations of the encoder to perform a partition mode test. [Figure 12-1] FIG. 2 is a schematic diagram illustrating a decoder for block-based decoding of pictures, in which the inventive ISP concept is implemented. [Figure 12-2] FIG. 2 is a schematic diagram illustrating a decoder for block-based decoding of pictures, in which the inventive ISP concept is implemented. [Figure 13] FIG. 13 is a schematic diagram illustrating the use of the final position syntax element. [Figure 14-1] 1 is a schematic diagram illustrating an encoder for block-based decoding of pictures in which the inventive ISP concept is implemented; [Figure 14-2] 1 is a schematic diagram illustrating an encoder for block-based decoding of pictures in which the inventive ISP concept is implemented; [Figure 15a] FIG. 1 is a schematic diagram illustrating intra prediction of individual transform partitions of a vertically divided 4×4 block. [Figure 15b] FIG. 1 is a schematic diagram illustrating intra prediction of individual transform partitions of a vertically divided 4×4 block. [Figure 15c] FIG. 1 is a schematic diagram illustrating intra prediction of individual transform partitions of a vertically divided 4×4 block. [Figure 15d] FIG. 1 is a schematic diagram illustrating intra prediction of individual transform partitions of a vertically divided 4×4 block. [Figure 16a] FIG. 1 is a schematic diagram illustrating intra prediction of individual transform partitions of a horizontally divided 4×4 block. [Figure 16b] FIG. 1 is a schematic diagram illustrating intra prediction of individual transform partitions of a horizontally divided 4×4 block. [Figure 16c] FIG. 1 is a schematic diagram illustrating intra prediction of individual transform partitions of a horizontally divided 4×4 block. [Figure 16d] FIG. 1 is a schematic diagram illustrating intra prediction of individual transform partitions of a horizontally divided 4×4 block. [Figure 17] 1 is a schematic diagram illustrating intra prediction of individual transform partitions of a vertically divided 4x8 block. [Figure 18] FIG. 1 is a schematic diagram illustrating intra prediction of individual transform partitions of a horizontally divided 8x4 block. [Figure 19a] 14. Vertical partitioning of 4×M blocks (M>8) of the ISP design in VVC Draft 5 (left) and the proposed version (right). [Figure 19b] 1. Vertical partitioning of an 8×N block (N>4) of the ISP design in VVC Draft 5 (left) and the proposed version (right). DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0029] The drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention.

[0030] The following description of the figures begins with a presentation of an encoder and decoder of a block-based predictive codec for encoding pictures of a video, to form an example of a coding framework in which an embodiment of an intra-predictive codec may be incorporated. The former encoder and decoder are described with reference to Figs. 1 to 3. In the following, a description of a variant of the ISP concept is presented together with a description of how the concept may be incorporated in the encoder and decoder of Figs. 1 and 2, although the concepts in the following Fig. 4 and described below may also be used to form encoders and decoders that do not operate according to the coding framework underlying the encoder and decoder of Figs. 1 and 2. Later, an embodiment utilizing an ISP but improved in terms of implementation efficiency is described. Also, an embodiment utilizing a variant of partition-based intra coding is described.

[0031] FIG. 1 shows an apparatus for predictively encoding a picture 12 into a data stream 14, exemplarily using transform-based residual coding. The apparatus or encoder is indicated using the reference number 10. FIG. 2 shows a corresponding decoder 20, i.e. an apparatus 20 configured to predictively decode a picture 12' from the data stream 14, further using transform-based residual decoding, where an apostrophe is used to indicate that the picture 12' reconstructed by the decoder 20 deviates from the picture 12 originally encoded by the apparatus 10 in terms of coding loss introduced by quantization of the predictive residual signal. Although FIG. 1 and FIG. 2 exemplarily use transform-based predictive residual coding, the embodiments of the present application are not limited to this type of predictive residual coding. This also applies to other details described with respect to FIG. 1 and FIG. 2, as outlined below.

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

[0033] Internally, the encoder 10 may comprise a prediction residual signal former 22 which generates a prediction residual 24 in order to measure the deviation of a prediction signal 26 from an original signal, i.e. the picture 12. The prediction residual signal former 22 may for example be a subtractor which subtracts the prediction signal from the original signal, i.e. the picture 12. The encoder 10 then further comprises a converter 28 which transforms the prediction residual signal 24 from spatial to spectral to obtain a spectral domain prediction residual signal 24', which is also quantized by a quantizer 32 which is also comprised in the encoder 10. The prediction residual signal 24'' thus quantized is coded into the bitstream 14. For this purpose, the encoder 10 may optionally comprise an entropy coder 34 which entropy codes the transformed and quantized prediction residual signal into the data stream 14. The prediction residual 24 is generated by a prediction stage 36 of the encoder 10 on the basis of a prediction residual signal 24'' which is decoded into and decodable from the data stream 14. For this purpose, the prediction stage 36 may internally comprise an inverse quantizer 38 for inverse quantizing the prediction residual signal 24″ to obtain a spectral domain prediction residual signal 24′″ corresponding to the signal 24′ but without the quantization losses, as shown in FIG. 1, and an inverse transformer 40 for inverse transforming, i.e. from spectral to spatial, the latter prediction residual signal 24′″ to obtain a prediction residual signal 24″″ corresponding to the original prediction residual signal 24 but without the quantization losses. A combiner 42 of the prediction stage 36 then recombines the prediction signal 26 and the prediction residual signal 24″″, for example by addition, to obtain a reconstructed signal 46, i.e. a reconstruction of the original signal 12. The reconstructed signal 46 may correspond to the signal 12′. A prediction module 44 of the 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.

[0034] Similarly, the decoder 20 may be internally constructed from components corresponding to the prediction stage 36, interconnected in a manner corresponding to the prediction stage. In particular, an entropy decoder 50 of the decoder 20 may entropy decode a quantized spectral domain prediction residual signal 24″ from the data stream, whereby an inverse quantizer 52, an inverse transformer 54, a combiner 56 and a prediction module 58, interconnected and cooperating in the manner described above with respect to the modules of the prediction stage 36, recover a reconstructed signal based on the prediction residual signal 24″, such that an output of the combiner 56 provides a reconstructed signal, i.e., picture 12′, as shown in FIG. 2.

[0035] Although not specifically described above, it is readily apparent that the encoder 10 may set some coding parameters, including, for example, prediction modes, motion parameters, etc., according to some optimization schemes, such as, for example, some rate- and distortion-related criteria, i.e., a method for optimizing coding cost. For example, the encoder 10 and the decoder 20 and the corresponding modules 44, 58 may each support various prediction modes, such as intra-coding and inter-coding modes. The granularity at which the encoder and the decoder switch between these prediction mode types may correspond to a subdivision of the pictures 12 and 12′, respectively, into coding segments or coding blocks. In units of these coding segments, for example, the picture may be sub-divided into intra-coded and inter-coded blocks. The intra-coded blocks are predicted based on the spatial already coded / decoded neighborhood of the respective blocks, as outlined in more detail below. There may be several intra-coding modes selected for each intra-coding segment, including a directional intra-coding mode or an angular intra-coding mode, in which the respective segments are filled by extrapolating to the respective intra-coding segment sample values ​​of neighborhoods along a particular direction specific to the respective directional intra-coding mode. By way of example, the intra-coding modes may include one or more further modes, such as a DC coding mode in which the prediction of each intra-coded block assigns a DC value to all samples in the respective intra-coded segment, and / or a planar intra-coding mode in which the prediction of each block is approximated or determined to be a spatial distribution of sample values ​​described by a two-dimensional linear function over the sample positions of the respective intra-coded block with a driving gradient and a planar offset defined by the two-dimensional linear function based on neighboring samples. In comparison, inter-coded blocks may, for example, be predicted temporally.In the case of inter-coded blocks, motion vectors may be signaled in the data stream, indicating the spatial displacement of parts of previously coded pictures of the video to which the picture 12 belongs, where the previously coded / decoded pictures are sampled to obtain a prediction signal for the respective inter-coded block. This means that in addition to the residual signal coding contained in the data stream 14, such as the entropy coded transform coefficient levels representing the quantized spectral domain prediction residual signal 24'', the data stream 14 may be encoded with optional further parameters, such as coding mode parameters for assigning coding modes to the various blocks, some prediction parameters of the blocks, such as motion parameters of the inter-coded segments, as well as parameters controlling and signaling the subdivision into segments of each of the pictures 12 and 12'. The decoder 20 uses these parameters to subdivide the picture in the same way as the encoder did, to assign the same prediction modes to the segments, and to perform the same predictions resulting in the same prediction signals.

[0036] Fig. 3 shows the relationship between the reconstructed signal, i.e. the reconstructed picture 12', on the one hand, and the combination of the prediction residual signal 24'''' and the prediction signal 26 signaled in the data stream on the other hand. As already mentioned above, the combination may be additive. In Fig. 3, the prediction signal 26 is shown as a subdivision of the picture area into intra-coded blocks, exemplarily shown using hatching, and into inter-coded blocks, exemplarily shown without hatching. The subdivision may be any subdivision, such as a regular subdivision of the picture area into rows and columns of one or more blocks, or a multi-tree subdivision of the picture 12 into leaf blocks of various sizes, such as a quad-tree subdivision into blocks, a mixture of which is shown in Fig. 3, where the picture area is first subdivided into rows and columns of tree root blocks and then further subdivided according to a recursive multi-tree subdivision. Again, data stream 14 may have intra-coding modes coded for intra-coded blocks 80, assigning one of several supported intra-coding modes to each intra-coded block 80. Further details are provided below. For inter-coded blocks 82, data stream 14 may have one or more motion parameters coded therein. Generally speaking, inter-coded blocks 82 are not limited to being temporally coded. Alternatively, inter-coded blocks 82 may be any blocks predicted from previously coded portions beyond current picture 12 itself, such as previously coded pictures of the video to which picture 12 belongs, or pictures of another view or hierarchically lower layer, if the encoder and decoder are scalable encoder and decoder, respectively. Prediction residual signal 24'''' in FIG. 3 is also shown as a subdivision of the picture area into blocks 84. These blocks may be referred to as transform blocks to distinguish them from coding blocks 80 and 82.In fact, Fig. 3 shows that the encoder 10 and the decoder 20 may use two different subdivisions of the picture 12 and the picture 12' into blocks, respectively, namely one into coding blocks 80 and 82, and the other into blocks 84. Although both subdivisions may be the same, i.e. each coding block 80 and 82 may simultaneously form a transform block 84, Fig. 3 shows the case where, for example, the subdivision into transform blocks 84 forms an extension of the subdivision into coding blocks 80 / 82, so that any boundary between the two blocks 80 and 82 covers the boundary between the two blocks 84, i.e. alternatively, each block 80 / 82 coincides with one of the transform blocks 84 or coincides with a cluster of transform blocks 84. However, the subdivisions may also be determined or selected independently of each other, such that the transform block 84 may alternatively cross the block boundary between the blocks 80 / 82. Thus, as far as the subdivision into transformation blocks 84 is concerned, similar statements apply as those presented with regard to the subdivision into blocks 80 / 82, i.e. blocks 84 may be the result of a regular subdivision of the picture area into one or more blocks arranged in rows and columns, or a recursive multi-tree subdivision of the picture area, or a combination thereof, or any other kind of blocking. As an aside, it is to be noted that blocks 80, 82 and 84 are not limited to being quadratic, rectangular, or any other shape.

[0037] 3 shows 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 alternative embodiments, multiple prediction signals 26 may be combined with the prediction residual signal 24'''' into the picture 12'.

[0038] In Fig. 3, the transform segments 84 have the following importance: The transformer 28 and the inverse transformer 54 perform the transform in units of these transform segments 84. For example, many codecs use some kind of DST or DCT for all transform blocks 84. Some codecs can skip the transform for some of the transform segments 84, so that the prediction residual signal is directly coded in the spatial domain. However, according to the embodiments described below, the encoder 10 and the decoder 20 are configured in such a way that they support several transforms. For example, the transforms supported by the encoder 10 and the decoder 20 may include: 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)

[0039] Of course, the transformer 28 supports all of the forward transform versions of these transforms, while the decoder 20 or inverse transformer 54 supports the corresponding backward or inverse versions of the following: Inverse DCT-II (or Inverse DCT-III) Inverse DST-IV Inverse DCT-IV Inverse DST-VII Identity Transformation (IT)

[0040] The following description provides further details regarding which transforms may be supported by the encoder 10 and the decoder 20. Note that in any case, the set of supported transforms may include only one transform, such as a spectral-to-spatial or spatial-to-spectral transform.

[0041] As already mentioned above, figures 1-3 are presented as examples in which the intra prediction concept further described below can be implemented. To that extent, the encoder and decoder of figures 1 and 2 respectively represent possible implementations of the encoder and decoder described below in this specification. As outlined in detail below, when the embodiments described below for intra prediction according to the present application are incorporated in the encoders and decoders of figures 1 and 2, the encoder of figure 1 and the decoder of figure 2 support, as at least one option, processing intra predicted blocks 80 in the manner outlined in detail below. The embodiment described below therefore refers to an encoder equivalent to the encoder 10 of figure 1 which processes intra coded blocks 80 in the manner outlined in detail below, the same applies with respect to the decoder of figure 2, thus representing an example of a decoder according to the embodiment in which intra coded blocks are processed in the manner outlined in detail below. However, figures 1 and 2 are only specific examples. However, an encoder according to an embodiment of the present application may perform a block-based encoding of picture 12 using concepts outlined in detail below, and may differ from the encoder of FIG. 1, for example in that the encoder is not a video encoder, in that the encoder does not support inter prediction, or in that the subdivision into blocks 80 is performed in a different way than illustrated in FIG. 3, or, depending on the embodiment, the encoder may not use a transform prediction residual code, for example instead coding the prediction residual directly in the spatial domain. Similarly, a decoder according to an embodiment of the present application may perform a block-based decoding of picture 12′ from data stream 14 using intra prediction coding concepts outlined further below, but may differ from decoder 20 of FIG. 2, for example in that the decoder is a still image decoder rather than a video decoder, in that the decoder does not support intra prediction, or in that the decoder subdivisions picture 12′ into blocks in a different way than described with respect to FIG. 3, and / or in that the decoder derives the prediction residual from data stream 14 in the spatial domain rather than the transform domain.

[0042] As mentioned above, the following description focuses first on the description of ISP-based intra prediction. According to ISP intra prediction, an intra predicted block, such as block 80 in FIG. 4, may be divided into one-dimensional horizontal or one-dimensional vertical partitions. The availability of processing the block in that manner may be provided for intra predicted blocks 80 of any size, or may be limited to blocks 80 within a predefined range of block sizes, such as blocks larger than a certain size. "One-dimensional" refers to the fact that if the associated partition is the result of partitioning, the partition is only one sample wide along the partition dimension. However, the one-dimensionality of the partition modes described herein refers to the fact that the partition is performed along a certain dimension, and the resulting partition is like a stripe that extends completely across the block in a direction transverse to the partition direction. See, for example, FIG. 4. FIG. 4 shows an intra predicted block 80, i.e., a block to be decoded or encoded, on the left. It has dimensions W×H. That is, it is a W×H dimension block, where H is the height of the block 80 measured in samples, and W is the width of the block 80 measured in samples. According to Fig. 4 there are two division or partitioning options available, namely a horizontal division 100 in which the block 80 is divided or partitioned into several partitions 1021, 1022, 1023 and 1024 along a vertical axis, i.e. a partition dimension 104. According to the example of Fig. 4, which is the example applied in the following description, each partition 1021-1024 is one sample wide, as indicated by the double-headed arrow 106, such that the number of partitions 1021-1024 arising from the block 80 is equal to the height H of the block 80 in units of samples 108, but it is clear that the partitioning can also be performed by the encoder and the decoder according to a different method agreed between them, e.g. a partitioning of the block 80 along the dimension 104 into a predetermined number of partitions 1021, 1022, 1023 and 1024 along a vertical axis, i.e. a partition dimension 104. iwhere the predetermined number is, for example, greater than 2 or a mixture thereof, to evenly distribute the size of the block 80 along the partition dimension among the predetermined number of partitions.

[0043] 4 and denoted by reference numeral 110 corresponds to dividing the block 80 into vertical partitions 1121, 1122, ... 1128. That is, according to option 110, the block 80 is divided into partitions 112 along the horizontal axis, i.e. the horizontal partition dimension 104. i For option 100, each partition 102 i is the same width as block 80, i.e. has the width W of the block, but partition 112 i adopts the height H of block 80, i.e. has height H. In summary, in a manner similar to the description of option 100, vertical split 110 divides block 80 into partitions 112 i , where W denotes the horizontal width of the block 80 measured in samples 108, such that each partition 112 i is one sample wide in the horizontal direction, however the partitioning according to option 110 may be performed in another way agreed between the encoder and decoder.

[0044] Thus, according to FIG. 4, the encoder divides block 80 into H W x 1 partitions 102 according to horizontal partitioning option 100. i , or W 1xH partition 112 according to vertical partition option 110 iand the partitioning option selected by the encoder of block 80 may be signaled in data stream 14 for block 80, for example by a corresponding partition dimension flag 114 in data stream 14. However, it is clear that embodiments of the present application also cover encoders and decoders that use only one of options 100 and 110 by default without needing flag 114 in the data stream. Furthermore, flag 114 may be signaled in data stream 80 in other examples depending on an intra-coding mode 116 signaled in data stream 14 from encoder to decoder for block 80. The intra-coding mode may indicate one of a set of available and supported intra-coding modes, including, as mentioned above, for example an angular mode and, optionally, one or more non-angular modes, such as DC mode or planar mode. That is, flag 114 may be signaled in data stream 14 in a manner that is conditionally dependent on intra-coding mode 116, according to alternative embodiments not further described below. According to the embodiments described below, flag 114 is present in data stream 14 for block 80 independent of the intra-coding mode 116 signaled in data stream 14 for block 80. However, dependencies may exist for the flag to switch between the partitioning process for intra-coded block 80 described above and different methods of handling the intra-coding of block 80 as outlined below.

[0045] According to the ISP, each of the partitions 102 / 112 is predicted, transformed, quantized, and coded individually, processing the partitions sequentially in this manner. Thus, the reconstructed samples of a particular partition may be used to predict the subsequent partitions 102 / 112 in partition order among the partitions into which the block 80 is partitioned, and in this manner, the process of intra prediction cycles through the partitions 102 / 112 into which the block 80 is partitioned. FIG. 5 exemplarily shows an intra predicted block 80 divided according to the option 100. Each partition 1021-1024 of the block 80 is predicted, i.e., the respective partition 102. i The first partition 1021-1024 is subjected to the prediction and residual related tasks, i.e., the derivation of a predictor for the partition 1021-1024, and the prediction residual related tasks, i.e., the correction of the predictor using the prediction residual. The latter task may be performed by combining the prediction residual with the predictor. This is done in the decoder for reconstruction. The encoder performs prediction residual related tasks, e.g., the determination of the prediction residual, including transformation and quantization, as well as the correction of the predictor using the prediction residual, i.e., keeping the prediction loop synchronized with the decoder by filling the decoded picture buffer in the encoder with the reconstruction of the picture. The above mentioned tasks, i.e., the prediction and residual processing, are performed separately and sequentially among the partitions 1021-1024. After these two steps for the currently processed partition, the next partition 102 according to the partition order is processed. i are treated in the same manner. The partition order is exemplarily shown in FIG.

[0046] Although Figure 5 shows that the partition containing the top left most pixel of block 80 is processed first before proceeding to the immediately lower adjacent partition 1022, etc., corresponding to the assignment of indices to partitions 1021-1024 in Figure 5, this order is merely an example and, as the following description will make clear, this partition order may be selected in a manner that depends on other settings such as the intra-coding mode and / or the size of block 80, the former dependencies being described below.

[0047] In an example described further below, the partition order 126 simply varies between traversing partitions 102 / 112 in such a way that immediately following partitions are immediately adjacent to each other, such that in the case of split type 100, the partition order goes from top to bottom or bottom to top, and in the case of partitioning type 110, it goes from left to right or right to left. However, it should be noted that other examples are also possible. For example, the partition order can be selected in such a way that in a first scan, the partitions are scanned in the adjacent order just outlined, with two scans processing each second partition from top to bottom, bottom to top, left to right, or right to left, whatever is applied, and then processing the remaining partitions between them in the same or opposite order direction.

[0048] In any case, Fig. 5 shows the first partition 1021, which is the first and currently processed partition. For the first partition, here exemplarily 1021, the set of neighboring samples 1181 used to form the predictor of the partition 1021 may only be selected based on samples outside the boundary of the block 80 during the processing of the first partition of the block 80, the samples of the block 80 not yet processed, i.e. not reconstructed or encoded. That is to say, the samples in the set 1181 are already reconstructed in the encoder using any prediction and correction of the corresponding predictor using the prediction residual transmitted in the data stream. They belong to previously coded / decoded picture blocks, which may be inter-coded or intra-coded or any other coded block. With regard to the number and exact position of the samples of the set of neighboring samples 1181 used to form the predictor of the first partition 1021, the same depends on the intra-coding mode assigned to the block 80. This intra-coding mode is used jointly or equally for the processing of all partitions of the block 80, as will be explained below. A predictor of this partition 1021 derived in the decoder and encoder by filling this partition 1021, depending on one or more already reconstructed / encoded samples in the set 1181, determines its prediction residual as far as the encoder is concerned, i.e. by transformation and quantization as outlined above, to finish the processing of the first partition 1021, which prediction residual is then used for the reconstruction of this partition 1021 in the version transmitted in the data stream, i.e. by correcting the predictor using the prediction residual in the data stream 14, including the quantization loss. For example, FIG. 5 exemplarily shows the prediction residual of the partition 1021 in 1201, i.e. 1201 comprises transform coefficients corresponding to the transformation of the prediction residual of the partition 1021, the description of the data 1201 being given in more detail below.

[0049] Now, attention is focused on the next partition in the partition order, i.e. partition 1022 in the example of Fig. 5. The situation has changed insofar as the set of adjacent already reconstructed / encoded samples used to derive the predictor of partition 1022 may consist of samples located outside block 80 and / or samples located within block 80, i.e. samples located in any already processed partition, here currently partition 1021 in the example of Fig. 5, for which the prediction residual has already been determined and is already available in the data stream 14. That is, the encoder and decoder derive a predictor for this partition 1022, followed by the prediction residual determination in the encoder and the use of the prediction residual for correction of the predictor in the encoder and decoder, respectively. This process is then continued with the next partition in the column, i.e. the next partition in the partition order, thereby sequentially processing all partitions of block 80.

[0050] As already mentioned above, the partition order 126 may be selected in a different way to traverse the partitions, so that immediately consecutive partitions may be immediately adjacent to a partition. That is, the partition order may jump from any partition to the next partition. This is because each partition 102 i The set of adjacent samples used to derive each predictor is determined by filling i5, is not limited to the immediate sample neighbors of the respective partition. This also relates to the choice of the start of the partition order 126. For example, suppose partition 1024 was the first partition in the partition order. Then, its predictor can be derived by filling the same, relying on a set of neighboring samples 1184, not shown in FIG. 5, which collects samples located to the left and above block 80 along the periphery of block 80. Some of the samples in the set 1184 are not immediately neighbors of partition 1024. Incidentally, this corresponds to the situation of filling the last sample row together in a normal intra-prediction filling of block 80. The above mentioned possibility also applies with respect to any subsequently processed partitions, i.e. the second partition and further partitions in the partition order. That is, their neighboring sample set 1184 may be used as the starting point for the partition order. i Also, each partition 102 i Furthermore, if we do not restrict the partition order across partitions in such a way that successive partitions are immediately adjacent to each other, then any second or subsequently processed partition 102 may include samples that are not immediately adjacent to each other. i A set of 118 reference samples i partition 102 i In addition to collecting samples to the left and above of set 180, it may also be samples below each partition 1021 depending on whether any partition of block 80 has been processed earlier than partition 1021 according to the partition order. i partition 102 i The sample may include samples located on three or more sides of the sample.

[0051] To briefly summarize, while FIG. 5 illustrates the sequential processing of partitions 102 / 112 of block 80 with respect to the horizontal partitions, here for illustrative purposes, the same explanation would be applicable to the vertical partitions 112. i This also applies to the vertical mode 110 with respect to each partition 102.i For each, the corresponding prediction residual is 102 i are included in the data stream 14. The data 1201-1204 together form the prediction residual, i.e. 120, for the block 80. It should be recalled that according to an alternative embodiment of the present application, transform residual coding may not be used, i.e. the prediction residual 120 for the block 80 may be directly signaled in the data stream 14, for example in the spatial domain. In this case, the data 1201-1204 for the various partitions 1021-1024 may not include a partition separation field in the data stream 14, as shown in FIG. 5, and each data portion 120 i partition 102 i Rather, the prediction residuals 120 of the block 80 may then form one field of data 14. The decoder may then signal a particular partition 102. i In this alternative embodiment, when processing the partition 102 from the field 120, i This procedure may also be applied when using a strictly reversible version of the transform, such that quantization can be done in the spatial domain.

[0052] Thus, FIG. 5 shows that in the encoder and decoder, each partition 102 i There are two tasks that are performed for each partition 1021, namely, 1) prediction or predictor for each partition 102 i 1) a prediction derivation task 122 that generates a predicted sample value for each sample of partition 102; and 2) a prediction residual related task that is subsequently performed, i.e., prediction residual derivation at the encoder, which includes quantization of the prediction residual for input to data stream 14, and i 102 by combining or correcting the prediction residuals and the predictors to obtain reconstructed samples of iThe latter reconstructed samples are then passed to the subsequent processed partitions 102 according to the partition order 126 for the prediction derivation task. j 118 adjacent sample sets of j It can function as a reservoir for the

[0053] Before proceeding further with a detailed description of the possible aspects of the ISP concept, FIG. 6 illustrates a partition 102 currently being processed. i 6 illustrates the process of deriving a prediction 122 by filling the currently processed partition 102, recalling that the description regarding the horizontal partition 102 is chosen merely for illustrative purposes, and the same description also pertains to the vertical partition 112. i and 118 adjacent samples already reconstructed / encoded i As already mentioned above with respect to FIG. i partition 102 i However, due to the partitioning, the partition 102 may not be limited to samples 128 that are directly adjacent or adjacent to the partition 102. i Samples and set 118 i The average distance 130 between the samples 128 of the block 80, when averaged over all samples of the block 80, is small compared to performing intra prediction of the block 80, as known for example from H.264 or HEVC. As explained with respect to FIG. 5, the predictor derivation or filling 122 uses the intra prediction mode associated with the block 80 to determine the partition 102. i The mode is performed for each sample set 118, and indicates one of a set of available intra-prediction modes. i Sample contents of partition 102 i In order to perform this copying, the partition 102 may include different angles or orientations 132 that are copied to the sample 134 of the partition 102. iThe prediction for each sample 134 in the set 118 is located relative to the sample 134 in a direction facing opposite the direction 132. i This number may be derived based on the number of adjacent samples 134 in the sample set 118, for example. i 6 shows, for example, a set 118 of samples 128. i Three samples out of 128 are in the currently processed partition 102. i 102. Since the average distance 130 is relatively small, the partition 102 i In this case, the number of reference samples 134 per sample 134 of the partition 102 may be kept low. Further details are provided below. However, for completeness, the set of available intra-prediction modes may also be determined by the partition 102. i a DC mode in which all samples 134 of a set of adjacent samples 118 are assigned a single DC value, i Note that the prediction is derived by performing an averaging of the sample 134. i is defined by a linear function of the sample position in the i There may be a planar mode that derives the slope and offset of this linear function based on the neighbor set 118. i Note that σ may vary depending on the intra prediction mode selected for block 80, for example, specifically between angular and non-angular mode DC / plane.

[0054] For example, in a state-of-the-art JEM decoder, 67 intra prediction modes are available, 65 of which are angular modes, and the remaining two are DC and planar model omnidirectional texture. A 1D partitioning mode (simply called 1D partition mode) in which the block 80 is partitioned / divided into partitions along the dimension 104, and the resulting partitions are one or more samples wide along the direction 104 and extend across the full width of the block transversely to the dimension 104, i.e., the predictor derivation 122 performed for the partitions 102 / 112 as outlined above and below can be combined with, or stated differently, performed using, any of the partitions. As already explained with respect to FIG. 5, all partitions 102 / 112 of one block 80, such as a coding unit CU, use the same associated intra prediction mode of the block 80, thereby avoiding excessive overhead in signaling, since the intra prediction mode 116 only needs to be transmitted in the data stream 14 once for the block 80.

[0055] That is, the prediction 122 may be performed in the same way as in the two-dimensional case outlined in the JEM decoder. However, compared to JEM, only one line is calculated, whether horizontal or vertical, for the currently processed partition 102 / 112, so that the prediction process 122 is adjusted accordingly. If the partition order for traversing the partitions is chosen in such a way that successive partitions are immediately adjacent to each other, the prediction process 122 may correspond to the two-dimensional case of JEM, but only with respect to the first line, i.e., the one closest to the already reconstructed / encoded neighbor. In some cases, both HEVC and JEM allow the use of a specific filter applied to the reference sample 128 or the resulting predictor. This is useful in the two-dimensional case to better predict samples in the prediction block 80 that are far away from the reference sample 128 in order to reduce boundary discontinuities. However, by using partitioning into partitions 102 / 112, it is possible, and should be the aim, to take advantage of the high correlation between nearby pixels.

[0056] That is, a reduced average distance 130 should be utilized. Excessive smoothing reduces this quality. Thus, if an encoder or decoder may perform both types of intra prediction, i.e. intra prediction using partitioning as outlined below with respect to Figs. 4-6, the intra filter, i.e. the filter involved in predictor derivation 122, is disabled, or at least the number of contributing samples 134 per partition sample 134 is reduced relative to the number of samples contributing to one sample, in the case where intra prediction of block 80 is performed on a block or according to HEVC, i.e. two dimensions decomposed into leaf blocks that hierarchical quadtree subpartition block 80 into rectangular blocks.

[0057] As is evident from the above description, to perform the prediction residual related tasks 124, the decoder for example decodes from the data stream 14 a transform of the respective prediction residual of the currently processed partition and performs an inverse transform, such as a spectral to spatial transform, on this transform to generate a prediction residual, which is then used to correct the predictor obtained at 122 by combining / adding. The same is done in the encoder to keep the prediction loop synchronized with the decoder. In addition, the encoder performs a transform of the prediction error of the predictor determined using 122 for the currently processed partition, which undergoes a transform, such as a spatial to spectral transform, followed by quantization of the transform coefficients, and then encodes the transform into the data stream 14 to correct the prediction residual of the currently processed partition 102. i The corresponding data of 120 i Regarding the transform, all partitions 102 / 112 in the block 80 may be processed using this same transform, which may be DCT-II, except for the planar mode, where DST-VII may be used, for example. For this reason, all tools related to transform and inverse transform that the encoder and decoder may use for other blocks, such as transform skipping, i.e., coding in the spatial domain, EMT (EMT=Explicit Multiple Core Transform), NSST (NSST=Mode Dependent Non-Separable Quadratic Transform), etc., may be disabled when the block 80 is coded using an intra-prediction mode with the partitioning method outlined above and further below with respect to Figs. 4-7, in order to avoid unnecessary overhead bits. Further alternatively, the transform may be a linear transform of a type selected based on one or more of the intra-prediction mode, the dedicated syntax elements, and the predefined partition order.

[0058] Some terminology has already been used for the partition order 126 in which the partitions 102 / 112 of the currently processed block 80 are processed sequentially. It is emphasized that this embodiment is merely an example and the partition order may be static according to alternative embodiments or may be changed in different ways according to the examples shown below. Figure 7 shows a possible partition / processing order with inscribed numbers, indicated using the arrow 126 of Figure 5, where the order follows an ascending inscribed number order. Figure 5 shows an example in which the order 126 starts with the partition containing the top-left pixel / sample 140 of the block 80 and goes downwards to the lowest partition. Similarly, if the partition type was vertical, the processing order would start with the leftmost partition again containing the top-left pixel / sample with a beginning in the right direction. However, this is not the optimal case for all existing intra prediction modes. This is illustrated in FIG. 7, which shows vertical and horizontal partitions of block 80 for diagonal mode as well, i.e. copy angle / direction 132 points 45° from bottom left to top right, and for diagonal mode 34, i.e. copy angle / direction 132 points -45° from top left to bottom right. In the former case, if the partition is horizontal, one would start at the top left corner of block 80 to generate partitions whose reconstructed samples do not affect the prediction of subsequent partitions. As a result, it is more reasonable to start at the bottom left corner of the block, so that the reconstructed samples of each partition can be used to predict the next partition in the partition order. Nevertheless, for vertical partitioning, this is not necessary, as can be observed in the previous figures. Mode 34, on the other hand, does not encounter these problems, since samples appear from both sides in both horizontal and vertical partitions. Thus, the normal processing order can be adopted for both partitions.

[0059] Table 1 shows a complete list of processing orders by intra prediction modes and partition types. [Table 1] Table 1: Processing order by intra mode and division type. HOR_DIR and VER_DIR are horizontal and vertical modes respectively, and VDIA_DIR is vertical diagonal mode.

[0060] While summarizing the ISP concept described so far with respect to signaling overhead, reference is made to FIG. 8. FIG. 8 shows what is transmitted for block 80 according to one embodiment of the present application. In particular, there is an intra-prediction mode signaling 116 signaling regarding which intra-prediction mode should be applied to block 80. Thus, the signaling 116 indicates one of the available modes, including one of the angular modes, for example, angular modes, and non-angular modes such as DC and planar. In addition to this signaling 116, there is a partition flag 160, which is encoded by the encoder into the data stream 14 and decoded therefrom by the decoder for block 80, indicating whether the partitioning process according to FIG. 4-FIG. 7 is applied to block 80, or whether the partitioning process is processed "normally", such as collectively, or integrally, or bi-dimensionally, i.e., only samples outside block 80 are used to form a reference sample reservoir 118 to predict each sample within block 80. Alternatively, flag 160 may switch between the partitioning process described with respect to Figures 4-7 on the one hand and decomposition of block 80 using quadtree subdivision into transform blocks, which are then processed sequentially with the drawback of having to signal the decomposition in data stream 14. If partition flag 160 indicates partitioning according to Figure 4, data stream 14 includes, for block 80, a partition dimension flag 114 which switches between partitioning types 100 and 110 as described with respect to Figure 4. And, if partition flag 160 indicates this partitioning option, then for each partition of block 80 into which block 80 is subdivided / partitioned, data stream 14 includes signaling / data 1201 with the prediction residual of the respective partition encoded, such as in the transform domain, as described above.

[0061] 8, it should be noted that the prediction residual data 1201, 1202... may be coded into the data stream 14 in an order corresponding to the partition / coding order 126. The latter may be uniquely determined by the intra-prediction mode indicated by the signaling 116, as discussed above. However, an alternative is that the partition order 126 is determined, at least in part, based on optional additional signaling in the data stream 14.

[0062] A further alternative to the description presented herein is the fact that the signaling 116 may alternatively be used to indicate whether or not the partitioning option is used. In other words, one syntax element may be commonly responsible for the signaling of 116 and 160. Such a syntax element assumes one of a range of values, each corresponding to a combination of an intra-prediction mode and an indication of whether or not the block partition is used. In such a case, it is also possible to simply provide partitioning options for a subset of the intra-prediction modes. Finally, it should be noted that the partition flag 160 may also be conditionally conveyed in the data stream 14 only if the intra-prediction mode indicated by the signaling 116 assumes a particular subset of the available intra-prediction modes.

[0063] Figure 9 shows the specific partition 102 / 112 i Data with prediction residuals of 120 i 9 exemplarily illustrates how the prediction residual may look like. According to Fig. 9, the prediction residual is coded into the data stream 14 in the transform domain. That is, the encoder generates a transform 182 of the prediction residual by a transform 180, with the decoder deriving the prediction residual and the spatial domain by an inverse transform 184. Fig. 9 shows, for example, transform coefficients 186 of the transform 182, which correspond to different spectral frequencies f. i may include coded block flags CBF, and data 120 iThe data 120 may include a coded block flag CBF 188 that indicates whether the transform 182 contains significant transform coefficients 186, i.e., whether the transform 182 is entirely zero. If the CBF 188 is set, the transform 182 is non-zero and the data 120 i may include a last position (LP) syntax element 190 that indicates a last position 192 along increasing spectral frequency (see axis 194) of a significant transform coefficient, i.e., a non-zero transform coefficient 186 starting from a minimum or DC coefficient 196. i comprises signaling 198 for signaling the conversion coefficients from 196 to 192.

[0064] That is, FIG. 9 shows each partition 102 i / 112 i100 and y is a vertical partition 110. In the example shown in FIG. 100, a block 80 may have its prediction residuals coded into the data stream 14 by CBFs 188, LPs 190, and transform coefficient data 198. That is, for a block 80 with n partitions 102 / 112, there are n CBFs 188, one LP 190 for each partition with a non-zero CBF 188, and simply the transform coefficient data 198 for those partitions with associated non-zero CBFs 188. If the partitions are one sample wide (otherwise requiring two coordinates as usual), i.e., x for horizontal partition 100 and y for vertical partition 110, then the coefficient data 198 may be coded in the same manner as is done for normally processed intra predicted blocks, i.e., blocks 80 whose partition flag 160 indicates a non-partitioning option, with the exception that each LP 190 only requires one coordinate. However, for two-dimensional partitions, the LP 190 indicates the final position along the scan direction or path using a rank indication, or using x and y coordinates. The context of each CBF 188 may be selected to be the value of a previously coded CBF, i.e., the CBF of a previous partition in the partition order 126. Furthermore, due to the partitioning, the transform coefficient data 198 is associated with different shapes, i.e., the transform 182 also has a different shape. The transform 182 is a one-dimensional transform when the partition is a one-dimensional partition, as described with respect to FIG. 4. That is, the transform 182 may be a W / H length vector of transform coefficients 186 depending on the partition type 100 or 110.

[0065] Regarding the flags 160 and 114 in FIG. 8 and their coding, the following is noted: The flag 160, which indicates whether the block 80 should be divided into partitions 102 / 112, defines the condition to be checked whether the flag 114 is conveyed in the data stream 14 for the block 80. In particular, if the flag 160 indicates partitioning into partitions 102 / 112, the flag 114 is present in the data stream 14 and is transmitted to the decoder to signal which type of division 100 / 110 should be performed, either horizontal or vertical. Similar to the flag CBF, the flag 114 may also be coded using context-dependent entropy coding / decoding. The context of the flag 114 may have three possibilities according to the intra-prediction mode of the block 80: 0 for non-angular mode, 1 for horizontal mode, and 2 for vertical mode.

[0066] FIG. 9 shows that the CBF 188 may exist once for each partition i of the current block 80, and additionally or alternatively, the transform 182 of the partition 120i of the current block may be divided into one or more sub-blocks, each with a coded sub-block flag signaled for each sub-block in the data 120i indicating whether the transform coefficients 186 in that sub-block are all zero or at least one coefficient is non-zero. Thus, only the coefficients 186 in the sub-blocks whose coded sub-block flag signals the presence of a non-zero coefficient are coded, and other coefficients in the sub-blocks whose coded sub-block flag signals the absence of a non-zero coefficient are inferred to be zero at the decoder side. Note that since each partition 120i is transformed separately, the sub-blocks belonging to one partition have different spectral content of the transform 182 of that partition and different transform coefficients 186 that the sub-blocks are composed of. For example, each partition 102 i / 112 ihas dimensions x (partition width) and y (partition height) and both are four or more samples 140, so that each partition 102 i / 112 iAs long as the transform 180 of has dimensions x and y, both of which are four or more coefficients 186, the sub-blocks may be set to be 4x4 coefficient blocks. For a 4xN partition, the sub-blocks form columns of m 4x4 sub-blocks, where m*4=N, where m is an integer. For an Nx4 partition, the sub-blocks form rows of m 4x4 sub-blocks, where m*4=N, where m is an integer. For wide partitions, an array of 4x4 sub-blocks arranged in rows and columns may result. However, depending on the embedding, such partitions, i.e., partitions wider than and / or as wide as four samples, may not occur. In the case of a narrow partition, whether it occurs or not, i.e. a partition with one of its dimensions being less than four samples, i.e. less than four samples wide, in at least one of the dimensions x or y, the sub-block partitioning of the transform 180 into sub-blocks each collecting a different group of coefficients of the transform 180 may be performed such that the sub-blocks have a minimum number M of coefficients in all possible cases for the size of the current block. That is, the partitions are set as large as the block width N along one dimension, and the partitioning may be performed along the other dimension 104. Thus, the transform 180 of each partition may be of size 1×N, 2×N, N×1 or N×2. In fact, the transform 180 of a particular partition may have a number of coefficients equal to the number of samples in this partition. In the case of a 1×N partition / transform, the sub-blocks may form a sequence of m 1×M sub-blocks, where m*M=N, where m is an integer. For an N×1 partition, the sub-blocks form rows of m M×1 sub-blocks, where m*M=N, m being an integer. For a 2×N partition / transform, the sub-blocks may form columns of m 2×(M / 2) sub-blocks, where m*(M / 2)=N, m being an integer. For an N×2 partition, the sub-blocks may form rows of m (M / 2)×2 sub-blocks, where m*(M / 2)=N, m being an integer. This is exemplarily shown in Table 2 for the exemplary case of M=16 for the minimum number of coefficients.

[0067] Table 2: Entropy coding coefficient group sizes [Table 2]

[0068] While FIG. 9 shows that for each partition i of the current block 80, there may be one CBF 188, it may be agreed between the decoder and the encoder that for the current block 80, at least one of the n partitions in the partition has a non-zero CBF 188. Thus, if n is the number of subpartitions and the first n-1 subpartitions in the coding order produced zero CBFs, then the CBF of the nth partition is inferred to be one. Thus, there is no need to decode it, and it is not encoded. Thus, the missing CBF for data 120n is due to the absence of data 1201-120 signaled with zeros. n-1 , and the decoder infers this CBF to signal the presence of at least one nonzero coefficient in the transform of that partition.

[0069] As far as the intra coding mode signaling 116 is concerned, the following may hold: The coding mode signaling 116 is transmitted as a pointer or index to one of a list of most probable modes (MPM). The latter MPM list may be determined in the same way by the encoder and the encoder based on the intra prediction modes used for the previously coded / decoded intra predicted blocks, such as spatially and / or temporally neighboring intra prediction modes. Thus, the MPM list may represent a proper subset of the available / supported intra prediction modes, i.e. one or more of the aforementioned angular modes and / or DC and planar modes. As mentioned above, besides the traditional intra predicted ones, i.e. intra predicted en bloc or at the unit of transform blocks where the intra predicted blocks are partitioned using recursive quadtree partitioning, there may be blocks intra predicted using the LIP or ISP scheme, such as block 80 in the figure. Both types of intra predicted blocks may support the same set of available / supported intra prediction modes. For subsequent normal / conventional intra-predicted blocks, an MPM flag may be signaled in the data stream, which the decoder decodes and the encoder encodes, to indicate whether the mode for that block is selected from an MPM list, and if so, a pointer / index to this MPM list is sent, which the decoder decodes and the encoder encodes, and the MPM flag is inferred to signal the MPM list restriction in the case of intra-predicted blocks using the LIP or ISP schemes, such as block 80. If the MPM flag signals that none of the MPM modes are used for a particular normal / conventional intra-predicted block, then there is no index / pointer for that block in the data stream and an alternative pointer / index to the residual list of intra-prediction modes is sent in the data stream for that block instead.The residual list may also be a suitable subset of the set of available / supported intra-prediction modes, in particular a complementary set of the MPM list compared to the set of available / supported intra-prediction modes, i.e., every element of the set of available / supported intra-prediction modes is either an element of the MPM list or the residual set. The pointer / index to the MPM list may be VLC coded, and the pointer / index to the residual set may be coded using a fixed-length code. Of course, the MPM flag may be transmitted even for LIP or ISP intra-predicted blocks, and furthermore, the encoder may be free to select any mode from the set of available / supported intra-prediction modes, setting the MPM flag depending on whether the selected mode is thin in the MPM list or the residual set.

[0070] The MPM list may be the same, i.e., determined in the same way by the encoder and the encoder for normal / conventional intra-predicted blocks and ISP / LIP intra-predicted blocks. However, regardless of whether the restriction on the MPM list and the inference of the MPM flag for signaling the MPM list usage of ISP / LIP intra-predicted blocks are applied, the MPM list may alternatively be determined in a different way for ISP / LIP intra-predicted blocks to adapt to the statistics of the ISP / LIP modes. For example, it may be modified to exclude DC intra-mode from the MP list and to prefer the horizontal intra-mode for ISP horizontal splitting, i.e., horizontal 104, and the vertical intra-mode for vertical splitting, i.e., vertical 104. That is, for normal / conventional intra-predicted blocks, the MPM list may form a proper subset of the set of available / supported intra-prediction modes, where the modes are selected and ordered according to a certain concept. For an ISP / LIP intra predicted block 80, the MPM index may point to an MPM list that depends on the partition orientation 104 signaled by the flag 114 and / or forms a proper subset of the set of available / supported intra prediction modes, i.e., a proper subset of the angle modes in the set of available / supported intra prediction modes, that is, less than the DC mode or less than the DC and planar modes. The MPM list construction based on the intra prediction modes previously used in the previous encoding / decoding may be such that, for the flag 114 indicating that the partition orientation 104 is horizontal, an angle mode with an angle intra prediction direction close to the horizontal dimension is preferred, and for the flag 114 indicating that the partition orientation 104 is vertical, an angle mode with an angle intra prediction direction close to the vertical dimension is preferred.

[0071] With regard to the immediately preceding description, it should be noted again that the juxtaposition between the intra-prediction modes processed normally and the intra-prediction modes processed using partitioning is not necessary as outlined herein. That is, the encoder and decoder may necessarily use the partitioning presented herein to process the intra-predicted block 80, and accordingly, for example, the partition flag 160 becomes obsolete. However, if the partition option signaled by the flag 160 is available as a decision for the encoder, the following description will clarify the possibilities of how the encoder executes the decision or finds out whether a partition mode should be used for a particular block 80 and which partition type, i.e., horizontal or vertical, is the best one. To do this, the encoder needs to test both options of different intra-prediction modes for each block. The encoder will be slower because it needs to test many options compared to when the encoder has only one option, such as a normal option. To reduce this effect, the partition mode signaled by the flag 160 may be tested by encoding according to the following strategy, which is now referred to in FIG. 10 and FIG. 11.

[0072] 1) The 1D partition mode is the last intra mode tested. 2) Let C be the minimum cost so far when the 1D partition mode is tested. min Let us assume that. 3) Select the combination of intra mode and split type to be tested. 4) The block is divided into N 1D partitions and the index of each of these partitions is i, where i=[1,N]. 5) After all partitions are encoded, their subcosts J i Therefore, the sum of all sub-costs available after partition i is encoded, i.e. [Table 3] This procedure is illustrated in FIG. 10, which shows the accumulation of 1D partition sub-costs to obtain the final cost of the entire block. 6) After all partitions have been processed, the formula Si <C min is evaluated. If it is true, continue to encode the partition until the end. Otherwise, if this test mode is C min Since it is guaranteed that it does not result in a lower RD cost, the process is aborted and proceeds to the next combination of intra mode and split type. 7) If all 1D partitions are coded, the test mode is the best mode, and C min will be updated accordingly.

[0073] The advantage of this procedure is that it avoids processing 1D partitions that are not necessary because it is already known that the 1D partition mode does not yield a better cost than the existing minimum cost. Furthermore, there is no drawback in terms of RD loss. The whole process is shown as a flow chart in Figure 11.

[0074] Note again that all of the above ISP examples that show partitioning as being done in one sample width stripes across direction 104 could alternatively be done in such a way that the partitions are wider, thereby resulting in two dimensional partitions. Further alternatives regarding partitioning are given below.

[0075] In a particular ISP example, the width along the split direction 104 is defined based on 1) whether the intra prediction mode is an angular mode or a non-angular mode, and 2) the width of the intra predicted block along that direction 104.

[0076] 1) A W×H (assuming W and H are powers of 2) block 80 may be divided horizontally or vertically (e.g., as indicated by syntax element 114 transmitted to the decoder) into K partitions 102 / 112 with dimensions w×h, the values ​​of which are listed in Table 3. According to Table 3, a block with W=16 and H=8 predicted using a non-angular intra mode and subject to vertical partitioning (i.e., when the direction 104 is vertical) would be divided into four partitions 102, all of which have dimensions w=16 and h=2. If the same block 80 were predicted using an angular intra mode, it would be divided into eight partitions 102, each with dimensions w=16 and h=1.

[0077] [Table 4] Table 3: Values ​​of w, h and K for additional layout example 1

[0078] 2) A W×H (assuming W and H are powers of 2) block 80 may alternatively be divided horizontally or vertically (e.g., as indicated by syntax element 114 transmitted to the decoder) into K partitions having dimensions w×h, where the value of K is not fixed (hence it is transmitted to the decoder with the syntax element) and may range from any power of 2 between 2 and S, where S is the value of the dimension being divided (the width of the vertical division and the height of the horizontal division). The values ​​of w and h are obtained as described in Table 4.

[0079] [Table 5] Table 4: w and h values ​​for additional layout example 2

[0080] Instead, the width of the partition along dimension 104 may be signaled directly to block 80 .

[0081] 3) W×H (assuming W and H are powers of 2) Block 80 can alternatively be i ×hi The image may be divided horizontally or vertically (e.g., as indicated by syntax element 114 transmitted to the decoder) into K partitions (where i=1, 2, ..., K) having dimensions S, where K depends on W and H. If the division is horizontal, then S=H, and s i =h i and if vertical, S=W, s i =w i s i Various choices for the value of s are listed in Table 5 for different values ​​of S, which measures the width of block 80 along dimension 104, i measures the width of partition i along dimension 104.

[0082] [Table 6] Table 5: Different partition layouts i Value of

[0083] The choice used by the decoder may be fixed or may be implicitly determined according to the values ​​of existing parameters on the decoder side.

[0084] 4) W×H (assuming W and H are powers of 2) Block 80 can alternatively be i ×h i The image may be divided horizontally or vertically (e.g., as indicated by syntax element 114 transmitted to the decoder) into K partitions (where i=1, 2, ..., K) having dimensions S, where K depends on W and H. If the division is horizontal, then S=H, and s i =h i and if vertical, S=W, s i =w i s i The value of is determined by a syntax element that indicates which of the three options presented in example 3) is used to divide the block into subpartitions.

[0085] Thus, as illustrated in examples 1-4 above, the partitioning may be done along one dimension 104 such that the partitions are the same width as a given block perpendicular to the given dimension, and the width of the partitions measured along the given dimension 104 is selected from at least two different width settings or choices. Explicit or implicit signaling concepts may be used to maintain the synchronization of the selection between the encoder and the decoder. This selection thus allows the partitioning to vary between blocks of the same size and shape while the overhead associated with this variation is kept reasonably low. The selection may be made depending on the intra-coding mode of the given block, for example depending on whether the intra-coding mode of the given block is an angular mode or not. The selection may also be made depending on an index in the data stream for a given block indexing of at least two different width settings, as shown in example number 4. The partitions may be one or more samples wide along the partition dimension. Within one block, the partitioning / partition width along a given direction may vary. Some may be one sample wide, i.e. a one dimensional stripe, others may be a number of samples wide greater than one, i.e. a two dimensional field of samples.

[0086] As far as residual coding is concerned, the same can be done using transform coding, as mentioned above. Each sub-partition 102 / 112 may have its own coded block flag (CBF) 188, last position (LP) syntax element 190, and transform coefficients 198 that are transmitted to the decoder in the data stream. Thus, for a block 80, such as a CU with K sub-partitions 102 / 112, there are K CBFs 188 and one LP 190 for each partition 102 / 112 with a non-zero CBF. The context used to code each CBF 188 may depend on the value of the CBF of a previously coded sub-partition in the same block, for example along the order 126. Additionally, further syntax elements not yet mentioned may be transmitted to the decoder in the data stream to indicate whether the ISP concept is used for all blocks, or in a range corresponding to the entire data stream or a particular picture or a slice of a particular picture, for example, whether the partitioned intra prediction concept described in this specification is used for all intra predicted blocks 80 within that range, or whether some are signaled and treated as a whole, i.e., divided into only one partition.

[0087] Similarly, it has been mentioned above that each subpartition may be transformed separately using one transform, thereby resulting in one transform for each partition 102 / 112 that is not quantized to all zeros. As the transform for a particular partition 102 / 112, a 2D transform may be used, except when one of the dimensions of that partition 102 / 112 is 1, in which case a 1D transform is applied. The transform core may be a DCT-II or any other transform determined by existing parameters on the decoder side at the time the subpartition is to be decoded. For example, the transform may be selected according to a combination of intra mode, subpartition index and subpartition dimension, or some subset of the latter parameters. It may also be signaled directly to the decoder, or in other words in the form of an additional syntax element transmitted separately, for example for all partitions in a block 80, or for each partition 102 / 112 of one block 80.

[0088] Also, an aspect already mentioned above is the fact that after quantization in the spatial or some intermediate transform domain, reached by transforming the prediction residual of each partition separately, the residuals of the partitions 102 / 112 of the block 80 may be transform coefficients that are quantized or may be subject to a further transform, lossless or reversible. Thus, the decoder can obtain the transform coefficient levels of the transform of the entire block 80 and inversely transform it to obtain a prediction residual for each partition 102 / 112 in the spatial domain, or an intermediate transform domain from the prediction residual in the spatial domain is obtained by re-transforming each partition 102 / 112.

[0089] Moreover, it has already been mentioned above that the prediction residuals of the various partitions of the block 80 are quantized and coded into the data stream sequentially partition by partition, alternating with respect to the individual intra predictions of these partitions. This has been explained with respect to Fig. 5 and with respect to Figs. 10 and 11. However, the decoder does not have to perform the decoding by alternating between residual decoding on the one hand and reconstruction of the various partitions by combining intra prediction on the one hand and prediction residuals on the other hand. That is to say, when decoding a particular block 80, the decoder may decouple the decoding of the prediction residuals 120 of the various partitions from the actual reconstruction procedure, which includes the individual intra predictions of the various partitions. With reference to Fig. 5, the decoder decodes the prediction residuals 120 of all partitions from the data stream 14, i.e. the prediction residuals 1201-1204 for the block 80, according to one processing task, and the decoder decodes the prediction residuals 120 of the partitions 102-104 according to another task. i Prediction residual of 120 i To this end, in a second task, the decoder may reconstruct the interior of block 80 for each partition 120 using the intra-prediction mode of block 80 according to partition order 126. i Then, the prediction residual 120 obtained from the first task is i and then select the next partition 120 in partition order 126 to perform spatial prediction. i+1 , and then reconstructing the block 80 using the prediction residual of that partition to correct the intra prediction results. The decoder may either completely perform the first task of deriving the prediction residual 120 from the data stream 14 before beginning the second task of performing prediction and prediction correction using the prediction residual, or the decoder may perform the first task of deriving the prediction residual 120 from the data stream 14 using the prediction residual of a particular partition 102. i Prediction residual of 120 i But when necessary, i.e. partition 102 iIn particular, during the first task or phase, the decoder may perform two tasks in parallel: first, by extracting all non-zero partitions, i.e., prediction residuals 120, from the prediction result of the block obtained using the intra prediction mode, and then by providing a means to ensure that the prediction result of the block is ready when it needs to be corrected. i For all partitions 102 for which u is signaled as non-zero, the inverse transform may all be performed in parallel.

[0090] As an aside, the residual for partition i is 120 i It should be noted that when is quantized in the transform domain, it may happen that the reconstructed samples of these partitions leave, i.e. exceed or pass a certain allowed sample value range. As mentioned above, they may serve as elements of the reference samples 118j for the partition j following the sequence 126. According to a variant of the ISP, these samples are left intact for the purpose of predicting the partition j following the sequence 126, and the clipping of these samples of the block 80 is performed as the final clipping step of the whole block 80, thereby increasing the convenience of the implementation on the decoder side, for example. Thus, the partitions 102 i In deriving the predictor for the current partition, one or more already reconstructed samples 118 are used to serve as a reference for the current partition. i In this partition, partition 102 is ordered as 126. iThe reconstructed samples of the partition preceding partition i may be used in an unclipped state, where clipping the reconstructed samples from an unclipped state to a clipped state to an allowed sample value range is performed to finally reconstruct a given block after performing sequential reconstruction. On the encoder side, clipping is only performed to obtain a reconstructed version of such sample to serve as a prediction reference for a subsequently encoded block in order to maintain reference synchronization with the decoder. However, this final clean-up type of clipping is only an example, and clipping may alternatively be performed immediately, i.e., before the reconstructed samples of partition i serve as reference samples 118j of the subsequently processed partition j.

[0091] An example of one ISP is concretely given below. In particular, according to this example, the data stream 14 signals to the intra-coded block 80 by the partition mode flag 160 whether it is coded using an ISP scheme or not. The corresponding syntax element in the data stream 14 can be named intra_subpartitions_mode_flag. For example, if this flag is 1, the intra-coded block 80 can be coded using the LIP or ISP scheme, otherwise the block 80 is coded using normal intra prediction. The LIP or ISP scheme can be available for the current intra-coded block 80, for example, only if one or more specific conditions are met. The one or more conditions can include, for example, that the intra-coded block 80 must exceed a certain minimum size, for example, in terms of the number of samples of the block 80, and / or that the intra-coded block 80 cannot be allowed to exceed a certain dimension, at least both horizontally and vertically, for example, to avoid resulting in a transform size that is too large. To be precise, the LSP or ISP mode is only available if the block 80 is less than or equal to the above-mentioned maximum transform-related size in at least one direction, i.e., horizontal or vertical. Thus, the intra_subpartitions_mode_flag may be present in the data stream only if the block 80 satisfies the above-mentioned condition. Otherwise, the decoder may infer that the intra-coded block 80 is normal intra-coded. In case of a partition mode flag, intra_subpartitions_mode_flag, indicating that the intra-coded block 80 is an LSP or ISP coded block, a partition dimension flag 114 may be further signaled to the intra-coded block 80. However, this intra_subpartitions_mode_flag is not necessarily explicitly signaled, but may be inferred to indicate a particular partition dimension 104 in case of certain circumstances.For example, for an intra-coded block 80 having a width (but not a height) that exceeds the aforementioned maximum transform size, the partition dimension 104 may be forced to be horizontal, and if the height of the block 80 (but not the width) exceeds the aforementioned maximum transform size, the dimension 104 may be forced to be vertical. In either case, the intra_subpartitions_split_flag is not explicitly signaled in the data stream, but is inferred as such by the decoder. The intra-coding mode 116 may be signaled in the data stream as outlined above, i.e., by using a list of most likely intra-prediction modes built at the encoder and decoder side. For LIP or ISP intra-coded blocks 80, data stream 14 may signal the intra-coding mode by an MPM list pointer, for example called intra_luma_mpm_IDX, which points to a list of possible intra-prediction modes, but this pointer may be preceded in data stream 14 by an MPM flag if the intra-coded block is not ISP coded. For example, if that MPM flag, called intra_luma_mpm_flag, has a certain flag state, instead of a pointer to the most probable intra-prediction mode list, a pointer to a remainder list of intra-prediction modes is signaled in the data stream. However, as mentioned above, this is only an example and the signalable set of intra-prediction modes may be the same, i.e., covering all supported intra-prediction modes for both normal coded intra-prediction blocks and ISP intra-prediction blocks. For example, intra_luma_mpm_flag may be transmitted for both types of intra-coded blocks. Alternatively, the pointers transmitted for both types of intra-predicted blocks may point directly to the complete list of supported intra-prediction modes, without the MPM flag, for both types of intra-coded blocks.If the intra-coded block 80 is coded using the ISP scheme, the number of partitions 102 / 112 may be defined as follows: In particular, the encoder and decoder may determine the number of partitions depending on the size of the block 80. No signaling is consumed in the data stream. For small block sizes, the number may be 2, otherwise the number of partitions 102 / 112 is 4. The partition order in which the intra prediction of the partitions and the coding of the prediction residuals in the data stream are performed may proceed from the leftmost partition along the partition direction 104 in the case of the horizontal direction n14 and from the topmost partition in the case of the vertical partition direction, sequentially to the furthest partition. Again, no signaling is consumed. The residual transformation may be performed for each partition 102 / 112 as described above, i.e., each partition may be transformed separately. In comparison, for a normal intra-coded block 80, the number of transforms may depend on the size of the intra-coded block 80 as follows: if the intra-coded block is smaller than the aforementioned maximum transform size in the horizontal and vertical directions, the residual of the intra-coded block 80 is coded using one transform, i.e., the residual of the block 80 is completely subject to one transform. If the maximum transform size is exceeded in the horizontal direction, the intra-coded block 80 is divided horizontally into two halves or a corresponding number of transform blocks, such that the halves or transform blocks meet the maximum transform size and the residual of the block 80 is subject to one transform per half / transform block. The same applies if the block 80 exceeds the maximum transform size in the vertical direction. If the maximum transform size is exceeded both vertically and horizontally, four or a corresponding number of transforms are used to transform the residual of the block 80 within the four quadrants of this block 80, or a regular two-dimensional subdivision of the block 80, into a corresponding number of transform blocks. Furthermore, the processing of conventional intra-coded blocks 80 may deviate from the processing of LIP or ISP coded intra-coded blocks 80 in that conventional intra-coded blocks are collectively intra-predicted.That is, it is not subpartitioned. A further difference may be related to the coding of the transforms for coding the prediction residuals of the block 80. For each transform, a coded block flag 188 such as tu_cbf_luma may be transmitted, but for a normal intra-coded block 80, this flag may be coded necessarily for each transform in the block 80, and this flag may be inferred to be the flag for the last transform of the block 80 if the block 80 is ISB coded and all previous CBFs for previous transforms are zero. Furthermore, the choice of the dimensions of the sub-blocks within each transform may differ between a normal intra-coded block 80 on the one hand and an ISP-coded block 80 on the other hand. Details are given above. However, alternatively, the subdivision of the transform 182 into sub-blocks may be done equally for normal intra-coded blocks and ISP-coded blocks. For example, let log2SbW and log2SbH be the duals of the logarithms of the width and height of the sub-blocks, and log2TbWidth and log2TbHeight be the width and height of the transform, respectively. The sub-block dimensions can then be determined as follows: [Table 7]

[0092] The above pseudocode results in sub-blocks of the sizes shown in Table 2. Due to the inherent minimum size of intra-coded block 80 and the non-subdivision of regular intra-coded blocks, only sub-blocks of 4×4 coefficients can result for regular intra-coded block 80. Finally, while the above example may result in ISP intra-predicted blocks of various sizes, including those partitioned into only two partitions 102 / 112, it should be noted that whether or not such ISP intra-predicted blocks exist, there may be ISP intra-predicted blocks partitioned into more than two partitions.

[0093] This is the starting point for the description of an improved implementation efficiency embodiment presented below. Note that although the description is presented as an alternative way of processing large ISP blocks as described above while processing ISP blocks of a particular size such as 4x4, 8x4, 4x8 blocks, a further alternative embodiment can be achieved by transferring the following partition-based intra-coding concept to a block-based codec without the ISP processing of blocks as outlined above.

[0094] 12 illustrates the decoder 20 for block-based decoding of a picture from a data stream 14, according to one embodiment. Thus, a given block 80 may be decoded, whereby the given block may be partitioned into sub-blocks, which may be understood as transform partitions 300. The data stream 14 may comprise an encoded intra-coding mode 116, an encoded partition dimension flag 114, and several encoded transforms 120 of the prediction residuals. The intra-coding mode 116 and the partition dimension flag 114 are, for example, signaled for the given block 80. Conversely, the transforms 120 of the prediction residuals are, for example, signaled for individual transform partitions of the given block 80.

[0095] The decoder 20 is configured to decode, for a given block 80 of a picture, a partition dimension flag 114 from the data stream 14, and to set the partition dimension 104 depending on the partition dimension flag 114 to horizontal 1041 or vertical 1042. The partition dimension 104 indicates, for example, the direction 105 in which the given block 80 is to be partitioned by the decoder 20.

[0096] According to one embodiment, the decoder 20 is configured to decode the partition dimension flag 114 by using context-dependent entropy decoding that uses a context that depends on the intra-coding mode 116. According to one embodiment, the decoder 20 is configured to decode the partition dimension flag 114 by using context-dependent entropy decoding that uses one of three contexts including an intra-coding mode signaling a non-angular mode, an intra-coding mode signaling a horizontal mode, and an intra-coding mode signaling a vertical mode.

[0097] If the partition dimension 1041 is horizontal, then a given block 801 may have, for example, a vertical translation partition 300 that spans the entire vertical height of the given block 801. 1b ~300 6b Alternatively, if the partition dimension 1042 is vertical, then the given block 802 may be partitioned or divided into, for example, a horizontally transformed partition 300 that spans the entire horizontal width of the given block 802. 1a ~300 4a In other words, the decoder is configured to partition a given block 80 along a given dimension 1041 or 1042 into transform partitions 300 of the same width 1031 or 1032 as the given block 80 perpendicular to the given dimension 1041 or 1042. The given dimension is, for example, the partition dimension 104.

[0098] The number of transform partitions 300 may be, for example, greater than two, and / or the transform partitions 300 may be one sample wide 1011 or 1012 along a given dimension 1041 or 1042. Alternatively, the transform partitions 300 may be two or more samples wide along the partition dimension 1041 or 1042.

[0099] According to one embodiment, the decoder 20 is configured to set the width 101 of the transform partition 300 measured along the predetermined dimension 104 depending on the size 101a of the given block 80 along the predetermined dimension 104 and / or depending on the intra-coding mode 116 of the given block 80 and / or depending on whether the intra-coding mode 116 of the given block 80 is an angular mode.

[0100] In one embodiment, a given block 80 having width W and height H, i.e., dimensions W×H, is divided horizontally or vertically into K equally sized transformed partitions, for example having dimensions W×H / K for horizontal division (along the vertical division dimension), or dimensions W / K×H for vertical division (along the horizontal division dimension).

[0101] The decoder 20 is configured to reconstruct 123 a given block 80 based on the intra-coding mode 116 based on already reconstructed samples 118 neighboring the given block 80, and based on a transformation 120 of the prediction residual.

[0102] Thus, the decoder is configured to decode the transform 120 of the prediction residual from the data stream for each transform partition. According to one embodiment, the decoder 20 is configured to decode the transform 120 from the data stream for each partition by decoding the coded transform partition flag 188 from the data stream. If the coded transform partition flag 188 is not set, the decoder 20 is configured to set the prediction residual to zero for the respective transform partition 300, and if the coded transform partition flag is set, the decoder 20 is configured to decode the transform coefficients of the transform 120 of the prediction residual for the respective transform partition from the data stream. For example, if the coded transform partition flag 188 is zero, the coded transform partition flag 188 is not set.

[0103] According to the embodiment shown in Figure 12, for each transform partition 300, a coded transform partition flag 188 is optionally encoded in the data stream 14, based on which the decoder 20 is configured to either decode, for the transform partition 300, the transform 120 of the prediction residual, or to infer that the prediction residual is zero and that the transform 120 does not need to be decoded by the decoder 20 for this transform partition. Alternatively, the coded transform partition flag 188 is not decoded by the decoder, and instead the decoder is configured to either directly decode, for each transform partition 300, the transform 120 of the prediction residual, or to decode one transform for the entire given block 80.

[0104] According to one embodiment, the decoder 20 sequentially decodes the coded transform partition flags 188 for the transform partitions 300 from the data stream 14 and, if all preceding coded transform partition flags 188 are not set, decodes the last transform partition in the transform partition order 210, e.g., transform partition 300. 4a Or conversion partition 300 6b , the encoded transform partition flag 188 is configured to infer that it is set.

[0105] According to one embodiment, the decoder 20 selects a preceding transform partition, e.g., the first transform partition 300, that precedes each transform partition in the predetermined transform partition order 210. 1a or 300 1b For each transform partition, for example the second transform partition 300, by using context-dependent entropy decoding that uses a context that depends on the coded transform partition flag 1881 that has been decoded for 2a or 300 2b , the encoded transform partition flag 1882 is configured to be decoded from the data stream 14.

[0106] Additionally, the decoder 20 is configured to decode, for a given block 80 of a picture, an intra-coding mode 116 from the data stream 14 .

[0107] The decoder 20 is configured to intra predict 122 a given block 80 depending on one or more already reconstructed samples 118 neighboring the given block 80, in a manner that depends on the intra coding mode 116, to obtain a predictor for the given block 80. According to one embodiment, the decoder 20 is configured to intra predict 122 a predictor for each transform partition 300.

[0108] According to a first option, the transform partitions 300 are reconstructed sequentially by the decoder 20. Thus, the decoder receives the first transform partition 300 1a or 300 1b For the first transform partition 300, the predictor is intra-predicted 1221. 1a or 300 1b 1201 of the decoded prediction residuals for 2a or 300 2b For the second transform partition 300, the predictor is intra-predicted 1222. 2a or 300 2b 12, the predictor is adapted to correct this predictor using a transform 1202 of the decoded prediction residual for the block 802. For a given partitioned block 801 and 802 shown in FIG. 3a and 300 4a , and the subsequent transformation partition 300 for block 801 3b , 300 4b , 300 5b and 300 6b is intra predicted and corrected accordingly.

[0109] According to a second option, the transform partitions 300 are reconstructed in one step. The decoder 20 is therefore configured to decode, for each transform partition 300, the transform 120 of the prediction residual from the data stream 14 and to intra predict 122 the predictor for each transform partition 300. The decoding of the transform 120 is for example performed independently of the intra prediction. According to an embodiment, in the reconstruction 123 of a given block 80, all the transforms 120 of the prediction residual are decoded by the decoder 20 and all the predictors are intra predicted by the decoder 20. In other words, in the reconstruction 123 of a given block 80, for each transform partition 300, the transforms 120 of the prediction residual are decoded for each transform partition 300 and the predictors associated to each available transform partition 300.

[0110] According to one embodiment, the decoder 20 is configured, for each transform partition 300, to retransform the transform 120 to the spatial domain for use in correcting the predictor in the respective transform partition 300. In other words, an inverse transform may be applied to the transform coefficients of the transform 120 of the prediction residual to obtain a prediction residual in the spatial domain.

[0111] According to one embodiment, the transform 120 is a DCT transform when the intra prediction mode (i.e., the intra coding mode 116) is not a planar mode and a DST transform when the intra prediction mode is a planar mode, or the transform is a linear transform whose type is selected based on the intra prediction mode, the block size of the given block 80, and / or a dedicated syntax element. Thus, the decoder is configured to determine the transform type of the transform 120 of the prediction residual based on, for example, the intra coding mode. For the above retransformation, the decoder uses, for example, an inverse transform type.

[0112] According to one embodiment, the decoder 20 is configured to decode a partition mode flag 160 from the data stream 14 for a given block 80 of a picture. If the partition mode flag 160 indicates a first partition mode, the decoder 20 is configured to perform the decoding of the partition dimension flag 114, the partitioning 105, and the decoding of the transform 120 per transform partition 300. If the partition mode flag 160 indicates a second partition mode, instead of the decoding of the partition dimension flag 114, the partitioning 105, and the decoding of the transform 120 per transform partition 300, the decoder 20 is configured to decode one transform 120 of the prediction residual within the given block 80. In other words, the first partition mode indicates the decoding of the given block 80 based on the transform partitions, and the second partition mode indicates the decoding of the entire given block 80 without the partitioning 105. Thus, in the second partitioning mode, the transform partitions are not used by the decoder 20, e.g., the partition dimension flag 114, the coded transform partition flag 188, and the individual transforms 120 of the prediction residuals associated with the transform partitions are not encoded in the data stream 14 for a given block 80.

[0113] 13 shows an embodiment for decoding the transform 120 of the prediction residuals of a given transform partition 300 from the data stream 14, which may be performed by the decoder shown in FIG. 3a or 300 3b (An embodiment is shown for a given block 802 partitioned along a vertical partition dimension 1042, and for a given block 801 partitioned along a horizontal partition dimension 1041), 31 ~120 36 (Conversion partition 300 3a (related to) or 120 31 ~120 34 (Conversion partition 3003b 1203 (associated with the transform 1203) along a predetermined scan order 193 that scans the transform 1203, and decodes a final position indication 1903 that forms a data stream 14 indicating a final transform coefficient position 191 of the transform 1203. 3a or 300 3b The decoder 20 is configured to decode a transform 1203 of the prediction residual of a given transform partition 300 from the data stream 14. 3a or 300 3b 120 of the transform 1203 along a predetermined scan order 193 up to the final transform coefficient position 191 31 ~120 33 (Conversion partition 300 3a (related to) or 120 31 ~120 33 (Conversion partition 300 3b 19) from the data stream 14 and along a predetermined scan order 193, transform coefficients 120 of the transform 120 beyond the final transform coefficient position 191 are 34 ~120 36 (Conversion partition 300 3a (related to) or 120 34 (Conversion partition 300 3b ) is zero for a given transformation partition 300 3a or 300 3b 12. The system is configured to decode a transform 1203 of the prediction residual from the data stream 14 .

[0114] According to an embodiment, the final position indication 190 may be encoded in the data stream 14 in addition to the encoded transform partition flag 188, e.g., as described with respect to Figure 9. Alternatively, only the final position indication 190 is encoded in the data stream 14, and not the encoded transform partition flag 188.

[0115] According to one embodiment, the transform partition 300 is one sample wide along the given dimension 104, and the transform 120 is a one-dimensional transform.

[0116] 14 shows an embodiment of an encoder 10 for block-based encoding from a picture to a data stream 14, configured to encode, for a given block 80 of a picture, a partition dimension flag 114 into the data stream 14 that signals that the partition dimension 104 should be set to horizontal 1041 or vertical 1042. A decision 200 by the encoder 10 of whether or not a given block 80 should be partitioned, and if so, which partition dimension 104 should be selected, depends, for example, on the block size of the given block 80 and / or on one or more partition decisions 200 of the encoder for one or more previously encoded blocks of the picture.

[0117] The encoder 10 is configured to partition 105 a given block 80 along a predetermined dimension 104 into transformation partitions 300 that are the same width 103 as the given block 80 perpendicular to the predetermined dimension. The predetermined dimension is, for example, the partition dimension 104. Thus, the encoder 10 is configured to perform a vertical partition if the partition dimension 1041 is horizontal, and a horizontal partition if the partition dimension 1042 is vertical. The partitioning is optionally performed as described in Figures 12 and 13 in the context of a decoder and / or as described with respect to Figures 15 to 18.

[0118] The encoder 10 is configured to intra predict the given block 80 depending on one or more already reconstructed samples 118 neighboring the given block 80 in a manner that depends on the intra coding mode 116 to obtain a predictor for the given block 80. This is performed, for example, by a prediction module 44 of a prediction stage 36, which generates a prediction signal 26 by using the intra prediction mode 116. According to one embodiment, the encoder 10 is configured to perform intra prediction separately for each transform partition 300 of the given block. The transform partitions 300 are, for example, successively intra predicted, transformed 28, quantized 32 and encoded 34 into the data stream 14.

[0119] According to one embodiment, the encoder 10 is configured to encode, for a given block 80 of a picture, an intra coding mode 116 into the data stream 14. For example, for a complete given block 80, the encoder 10 is configured to obtain, using the same intra coding mode 116, prediction residuals 24 for each transform partition of the given block 80, which may be transformed 28, quantized 32, and encoded 34 into the data stream 14.

[0120] The encoder 10 is configured to encode, for each transform partition 300, a transform 120 of the prediction residual into the data stream 14 such that a given block 80 can be reconstructed by correcting the predictor in each transform partition 300 using the transform 120 of the prediction residual encoded for the respective transform partition 300. In other words, the encoder 10 is configured, for example, for each transform partition 300 to transform 28 the prediction residual 24 in the respective partition 300 into the spectral domain for use in correcting the predictor in the respective transform partition 300.

[0121] According to one embodiment, the number of transform partitions is greater than two and / or the transform partitions are one sample wide along the given dimension.

[0122] According to one embodiment, the encoder 10 is configured to encode the transform 120 into the data stream 14 by encoding, for each partition 300, a coded transform partition flag 188 into the data stream 14. If the coded transform partition flag 188 is not set, the coded transform partition flag 188 signals that, for the respective transform partition 300, the prediction residual 24 is zero, and if the coded transform partition flag 188 is set, the encoder is configured to encode the transform coefficients of the transform 120 of the prediction residual 24 of the respective transform partition 300 into the data stream 14. For example, if the coded transform partition flag 188 is zero, the coded transform partition flag 188 is not set.

[0123] According to one embodiment, if all preceding coded transform partition flags, e.g., all preceding coded transform partition flags 1881-1887 for a vertical partition or all preceding coded transform partition flags 1881-1883 for a horizontal partition, are not set and are expected to be set later, the last transform partition, e.g., transform partition 300 for a vertical partition, is selected in the transform partition order 210. 8b Or a conversion partition 300 for horizontal division 4b With the exception of the coded transform partition flags, e.g., coded transform partition flags 1888 for vertical partitioning or coded transform partition flags 1884 for horizontal partitioning, the encoder 10 is configured to sequentially encode the coded transform partition flags 188 for the transform partitions 300 into the data stream 14.

[0124] According to one embodiment, the encoder 10 is configured to encode the coded transform partition flag 188 for each transform partition 300 into the data stream 14 by using context-dependent entropy coding that uses a context that depends on the coded transform partition flag 188 coded for the preceding transform partition 300 that precedes the respective transform partition 300 in a given transform partition order 210.

[0125] According to one embodiment, the encoder 10 is configured to encode the transform 120 of the prediction residual of a given partition 300 into the data stream 14 by encoding a final position indication 190 into the data stream 14 indicating, for a given transform partition 300, a final transform coefficient position of the transform along a predetermined scan order scan transform coefficients of a one-dimensional transform. The encoder is further configured to encode the transform 120 of the prediction residual of a given partition 300 into the data stream 14 by encoding, for a given transform partition 300, transform coefficients of the transform up to a final transform coefficient position along a predetermined scan order into the data stream, where transform coefficients of the transform beyond the final transform coefficient position along the predetermined scan order are zero and are assumed to be zero. This may be performed in a similar manner to the decoder as described in FIG. 13.

[0126] The transform partition is, for example, one sample wide along the given dimension 104, and the transform is a one-dimensional transform.

[0127] The transform may be, for example, a DCT transform if the intra-prediction mode 116 is not a planar mode, a DST transform if the intra-prediction mode 116 is a planar mode, or a linear transform whose type is selected based on the intra-prediction mode 116, the block size of a given block 80, and / or dedicated syntax elements.

[0128] According to one embodiment, the encoder 10 is configured to encode a partition mode flag 160 into the data stream 14 for a given block 80 of a picture. If the partition mode flag indicates a first partition mode, the encoder is configured to perform the encoding of the partition dimension flag 114, the partitioning and encoding of the transform 120 for each transform partition 300. If the partition mode flag indicates a second partition mode, instead of the encoding of the partition dimension flag 114, the partitioning and encoding of the transform 120 for each transform partition 300, the encoder is configured to encode one transform 120 of the prediction residual within the given block.

[0129] According to one embodiment, the encoder is configured to encode the partition dimension flag 114 by using context-dependent entropy coding, which uses a context that depends on the intra-coding mode.

[0130] According to one embodiment, the encoder is configured to encode the partition dimension flag 114 by using context-dependent entropy encoding using one of three contexts including an intra-coding mode 116 signaling a non-angular mode, an intra-coding mode 116 signaling a horizontal mode, and an intra-coding mode 116 signaling a vertical mode.

[0131] According to one embodiment, the encoder is configured to set the width 101 of the transform partition 300 measured along the predetermined dimension 104 depending on the size of the given block 80 along the predetermined dimension 104 and / or depending on the intra coding mode 116 of the given block 80 and / or depending on whether the intra coding mode 116 of the given block 80 is an angular mode or not.

[0132] In the following, the extension of the intra subpartition (ISP) coding mode to 4x4 and the change in the number of subpartitions for 4x8 and 8x4 blocks are described and motivated. The subpartitions are independent of each other to maintain a worst-scenario throughput of 16 samples / cycle. Experimental results show gains of 0, 1% and 0.47% for CTC and class F, respectively, for the AI ​​configuration, and 0, 01% and 0.25% for CTC and class F, respectively, for the RA case. The impact on encoding runtime is 102% for the AI ​​case and 100% for the RA case.

[0133] We provide additional test results on the impact of extending the ISP concept to all ISP blocks generating subpartitions with widths smaller than 4. Experimental results show gains of 0.05% and 0.44% for CTC and class F, respectively, for the AI ​​configuration, and a gain of 0.24% for class F (no change in CTC) for the RA case. Meanwhile, we have tested the impact of completely removing subpartitions with widths smaller than four in the current ISP design. This additional information shows losses of 0.14% and 0.31% for CTC and class F, respectively, for the AI ​​configuration, and 0.04% and 0.23% for CTC and class F, respectively, for the RA case.

[0134] 1 Introduction As shown in [1], the Intra Sub-Partition (ISP) coding mode divides a luma intra prediction block vertically or horizontally into two or four equally sized sub-partitions according to the CU dimension. Table 6 shows the different possibilities.

[0135] Table 6: Number of subpartitions created by ISP according to CU dimensions in the current VVC draft [Table 8]

[0136] Each subpartition is predicted, transformed, quantized, and the entropy coded coefficients are transmitted to the decoder. The reconstructed samples of a subpartition are then used to generate a prediction for the next subpartition, but the intra mode used is shared among all subpartitions.

[0137] Since this process is in the intra-prediction critical path (in the general case, a subpartition cannot be decoded until the reconstructed samples of the previous subpartition are available), a minimum of 16 samples must be performed for each subpartition, which guarantees a worst-case throughput of 16 samples / cycle. This is why, in practice, 4×8 and 8×4 blocks have two subpartitions (instead of four) and 4×4 blocks cannot be subdivided.

[0138] The following description presents an extension of ISP that allows its use with 4×4 blocks and modifies the number of subpartitions for 4×8 and 8×4 blocks while maintaining the 16 samples / cycle throughput constraint. This goal can be achieved by generating subpartitions that are independent of each other, i.e., by not using the reconstructed samples of a subpartition to predict the next one.

[0139] For example, for 4x8 and 8x4 blocks, the partitioning and reconstruction of a given block 80 as described below with respect to Figures 15-18 may be performed by a decoder as described with respect to Figures 12 and 13, or by an encoder as described with respect to Figure 14.

[0140] It should be noted that the subsequent presentation of specific modifications in the ISP represents only a presentation of possible embodiments, and that variations thereof are readily available, for example less complex or straightforward forward variations as described in Section 6 below.

[0141] 2 ISP expansion to new block sizes The ISP changes introduced in this contribution affect 4x4, 8x4 and 4x8 blocks.

[0142] 2.1 4x4 blocks According to the embodiment shown in Fig. 15 and Fig. 16, a given block 80 is divided into four 4x1 (horizontal split: hor.split) or 1x4 (vertical split: ver.split) partitions. However, their respective prediction signals 122 are generated using the neighboring samples 118 of the CU boundary as reference samples. Thus, each sub-partition (i.e., transform partitions 300) is independent of the other and all of them may be processed in parallel in a single step. In other words, reusing the terminology applied above, the block 80 is not partitioned or is left as one partition 112, and the reference samples 118 used for intra prediction or prediction derivation are all outside the block 80. The partitioning is rather applied to the transform-based residual coding, as outlined below. Here, one partition 112, i.e. the block, is partitioned into transform partitions 300, each of which is transformed separately and results in a respective transform 182 coded in the manner described above with respect to the data structure 120.

[0143] Figures 15a-d show one embodiment of a vertical division of a 4x4 block, i.e., partitioning along the horizontal partition dimension. The reference samples 118 used to generate each 1x4 prediction are the CU boundary samples only. Note that the prediction is the same as in the non-ISP case.

[0144] Note that the predicted samples of all transform partitions 300 are the same as those generated for blocks that do not use ISP (except for the reference samples and the PDPC filtering operation, which are disabled for all ISP blocks). The difference between a 4x4 block that uses ISP and one that does not is in the transformation (there are four 1D transforms in the ISP case and a single 4x4 transform in the non-ISP case) and the entropy coding of the coefficients.

[0145] 2.2 8x4 and 4x8 blocks According to the embodiment shown in FIG. 17 or FIG. 18, the ISP design is modified so that the number of transform partitions 300 becomes four and the number of sub-partitions 1121 and 1122 becomes two. Each sub-partition 1121 and 1122 is sub-divided into two transform partitions 300. As shown in the embodiment of FIG. 17 or FIG. 18, the prediction signals 122 of transform partitions 2 and 4 cannot be generated using the reconstructed samples of transform partitions 1 and 3, respectively. Thus, transform partition 2 is independent from transform partition 1, and similarly, transform partition 4 is independent from 3. Thus, a 4×8 or 8×4 block can be processed in two cycles, which corresponds to a total of 16 samples / cycle. The figures show this for horizontal and vertical partitioning.

[0146] 17 illustrates one embodiment of a vertical partitioning of a given block 80. The given block 80 may be, for example, a 4×M block divided into four 1×M transform partitions 300, where M≧8, an 8×N block divided into four 2×N transform partitions 300, where N≧4, or a 16×O block divided into four 4×O transform partitions 300, where O≧1. Reconstructed samples from transform partition 2 may be used to predict transform partition 3, but reconstructed samples from transform partitions 1 and 3 may not be used to predict 2 and 4, respectively. The vertical partitioning corresponds to a partitioning along the horizontal partition dimension.

[0147] 18 illustrates one embodiment of a horizontal partitioning of a given block 80. The given block 80 may be, for example, an Mx4 block partitioned into four Mx1 transform blocks, where M>8, an Nx8 block partitioned into four Nx2 transform partitions 300, where N>4, or an Ox16 block partitioned into four Ox4 transform partitions 300, where O>4. Reconstructed samples from transform partition 2 may be used to predict transform partition 3, but reconstructed samples from transform partitions 1 and 3 may not be used to predict 2 and 4, respectively. The horizontal partitioning corresponds to a partitioning along the vertical partition dimension.

[0148] As shown in Figures 17 and 18, the decoder described herein performs the steps of: intra predicting 122 a given block 80 dependent on one or more already reconstructed samples 1181 neighboring the given block 80 in a manner that depends on the intra coding mode to obtain a predictor for the given block 80; and reconstructing the subpartition along a predetermined dimension 104 for a current subpartition, e.g., subpartition 1121 shown in Figure 17 or subpartition 1021 shown in Figure 18, before proceeding to the next subpartition, e.g., subpartition 1122 shown in Figure 17 or subpartition 1022 shown in Figure 18. 17, or 1021 and 1022 shown in FIG. 18. The decoder is configured to: reconstruct a given block 80 by sequentially reconstructing the group of transform partitions 300, where the transform partitions 300 of the given block 80 are grouped to form subpartitions, e.g., 1121 and 1122 shown in FIG. 17, or 1021 and 1022 shown in FIG. 18, for each group of transform partitions 300 according to a predetermined subpartition order 126 that sequentially traverses the partitions 102 / 112; and reconstructing the given block 80 by correcting a predictor in each transform partition 300 using a transform of a decoded prediction residual for each transform partition 300. The decoder is configured to derive 122 a predictor for the current subpartition by filling the current subpartition depending on one or more already reconstructed samples 1181 adjacent to the current subpartition in a manner that depends on the intra-coding mode. Furthermore, the decoder is configured to reconstruct the current subpartition by correcting a predictor in each transform partition 300 included in the group of transform partitions that form the current subpartition, using the transform of the respective transform partition 300.

[0149] 17 and 18, the encoder described herein is similar to a decoder and performs intra prediction 122 of a given block 80 dependent on one or more already reconstructed samples 1181 adjacent to the given block 80 in a manner dependent on the intra coding mode to obtain a predictor for the given block 80, and fills a current subpartition dependent on one or more already reconstructed samples 1181 adjacent to the current subpartition in a manner dependent on the intra coding mode, for each group of transform partitions, subpartitions, e.g., 1121 and 1122 shown in FIG. 17 or 1021 shown in FIG. 18, according to a predetermined subpartition order 126 that sequentially traverses the subpartitions 102 / 112 along the predetermined dimension 104, to derive a predictor for a current subpartition, e.g., subpartitions 1121 and 1122 shown in FIG. 17 or 1021 shown in FIG. 18, according to a predetermined subpartition order 126 that sequentially traverses the subpartitions 102 / 112 along the predetermined dimension 104. 17. The method according to claim 15, further comprising: determining a prediction residual of a given block 80 for correcting a predictor in each transform partition 300 using a transformation of the prediction residual to be encoded for each transform partition 300 by sequentially predicting a group of transform partitions 300 grouped to form 1021 and 1022 shown in FIG. 18; and determining a transformation of the prediction residual in each transform partition 300 constituted by the group of transform partitions forming the current subpartition 102 / 112 to aid in reconstruction of the current subpartition by correcting a predictor in each transform partition 300 constituted by the group of transform partitions forming the current subpartition 102 / 112 using the transformation of the respective transform partition before proceeding to the next subpartition, for example subpartition 1122 shown in FIG. 17 or subpartition 1022 shown in FIG. 18.

[0150] According to Figures 17 and 18, the decoder and / or encoder is configured to use already reconstructed samples 1181 adjacent to the given block 80, for example to perform prediction 122 of the predictor of the first and second transform partitions 300, which are grouped together to form a first sub-partition, for example the sub-partition 1121 shown in Figure 17 or the sub-partition 1021 shown in Figure 18. To predict 122 of the predictor of the third and fourth transform partitions 300, which are grouped together to form a second sub-partition, for example the sub-partition 1122 shown in Figure 17 or the sub-partition 1022 shown in Figure 18, the decoder uses, for example, already reconstructed samples 1182 adjacent to the given block 80 and / or already reconstructed samples 1182 of the second transform partition 300 adjacent to the third transform partition 300. In other words, to predict 122 the predictor of the transform partition 300 of the second subpartition 1122 / 1022, the decoder is configured, for example, to use already reconstructed samples 1182 adjacent to the second subpartition 1122 / 1022, where at least some of the already reconstructed samples may be associated with already reconstructed samples of a preceding subpartition, for example, subpartition 1121 shown in FIG. 17 or subpartition 1021 shown in FIG. 18.

[0151] According to one embodiment, the subpartitions of a given block 80 are reconstructed or encoded sequentially. In other words, a first subpartition, for example, subpartition 1121 according to FIG. 17 or subpartition 1021 according to FIG. 18, is reconstructed or encoded in a first cycle, and then a second subpartition, for example, subpartition 1122 according to FIG. 17 or subpartition 1022 according to FIG. 18, is reconstructed or encoded in a second cycle. Thus, all transform partitions of the same subpartition are reconstructed or encoded in the same cycle. In other words, transform partitions associated with the same subpartition may be reconstructed or encoded in parallel. Thus, according to one embodiment, the complete given block 80 of FIG. 15 or FIG. 16 may be understood as one partition (i.e., subpartition), since all transform partitions 300 are reconstructed in parallel.

[0152] According to one embodiment, the decoder and / or encoder is configured such that the number of transform partitions 300 per sub-partition 102 / 112 depends on the size of a given block 80 .

[0153] According to one embodiment, the decoder and / or encoder is configured such that the number of transform partitions 300 per sub-partition 102 / 112 is 1 if the dimension of the given block 80 exceeds a predefined threshold, and is greater than 1 if the dimension of the given block 80 does not exceed a predefined threshold. If the given block exceeds a certain dimension, it is advantageous to refrain from further splitting the sub-partitions in order to further enhance the decoding or encoding runtime. The predefined threshold is, for example, a block dimension of 64x64 samples. In other words, the use of the ISP is limited to the dimensions of the given block 80 that do not exceed a predefined threshold.

[0154] According to one embodiment, the decoder and / or encoder is configured such that the number of sub-partitions 102 / 112 in a given block depends on the size of the given block and / or on the given dimensions.

[0155] According to an embodiment, the decoder and / or encoder is configured such that the number of sub-partitions 102 / 112 in the given block 80 is 1 if the dimension of the given block 80 is below a further predefined threshold and is greater than 1 if the dimension of the given block 80 is not below a further predefined threshold. The further predefined threshold is determined, for example, such that the given block 80 comprises at least 16 samples. The further predefined threshold is, for example, a dimension of the given block 80 that is greater than 4×4 samples, 8×2 samples, 2×8 samples, 1×16 or 16×1 samples. In the case of 4×4 samples, the given block 80 comprises, for example, one sub-partition with four 1×4 transform partitions or four 4×1 transform partitions, as shown in FIG. 15 or FIG. 16. In the case of 2×8 samples, the given block 80 comprises, for example, one sub-partition with two 1×8 transform partitions and in the case of 8×2 samples, the given block 80 comprises, for example, one sub-partition with two 8×1 transform partitions. For a given block dimension of 1x16 or 16x1 samples, the entire block is simultaneously a subpartition and a transform partition. If a given block 80 comprises only one subpartition, this subpartition is, for example, equal to the entire given block 80. Alternatively, as shown in Figures 17 and 18, a larger dimension of a given block 80 may result in two or more subpartitions comprising two or more transform partitions.

[0156] According to one embodiment, the decoder and / or encoder are configured such that the number of sub-partitions in a given block depends on the dimensions of the given block, in that the number of sub-partitions in a given block is equal to a first number when the dimensions of the given block assume a first width and a first height, and the second number is different from the first when the dimensions of the given block assume a second width equal to the first height, and a second height equal to the first width. As shown in Figures 15 to 18, for blocks having equal widths and heights, the number of sub-partitions is different compared to blocks having the same width but different heights. A given block 80 having 4x4 dimensions, for example, is not divided, i.e. the whole block represents one partition (i.e. sub-partition) with four transform partitions. Conversely, a given block having 4x8 or 8x4 dimensions is divided into two sub-partitions. This may also be applied to larger blocks. For example, a given block 80 having dimensions of 128x128 would not be partitioned, but a given block 80 having dimensions of 128x64 may be partitioned vertically (along the horizontal partition dimension) into four subpartitions.

[0157] 3. Experimental results According to the general test conditions [2], the proposed method is evaluated for Intra-Only (AI), Random Access (RA), and Low-Latency (LDB) configurations using VTM-4.0.1 software. The corresponding simulations were performed on an Intel Xeon cluster (E5-2697A v4, AVX2 on, Turbo Boost off) with Linux OS and GCC 7.2.1 compiler.

[0158] Table 7: AI configuration results [Table 9]

[0159] Table 8: RA configuration results [Table 10]

[0160] Table 9: LDB configuration results [Table 11]

[0161] 4. Additional Information 4.1 Using Subpartitions with Width Less than Four The use of subpartitions with a width smaller than four is mentioned in the JVET reflector as a potential hardware concern, since samples are typically allocated in a raster-scan manner and certain implementations write the output of reconstructed samples in 4x1 groups. Thus, for example, 1xN or 2xN subpartitions may pose a problem. Prediction from 1xN subpartitions is not a big problem, writing out 1xN subpartition data is a problem, since data is typically written horizontally at 4 or 8 samples per cycle. To make this work, it is necessary to keep a 4xN intermediate buffer (register) to store this data and then write, for example, 4 samples at a time to memory (e.g., for deblocking). The same problem occurs when reading 1xN inverse transform output for reconstruction. This increases the delay and may also require double buffering. For this reason, the following provides additional information to evaluate the impact of using these subpartitions.

[0162] 4.1.1 Eliminating Subpartitions with Width Less than Four This change affects the vertical division of 4xN and 8xN blocks as follows: 4xN: There is no longer a vertical partition, i.e. along the horizontal partition dimension. Therefore, whenever an ISP is used in one of these blocks, the decoder or encoder infers that a horizontal partition is used and therefore does not need to parse the partition flag syntax element. So, for example, instead of a 1xN transform partition, a 4x1 transform partition is used. 8×N: The vertical partition produces 2 sub-partitions instead of 4. Thus, a given block 80 is divided into, for example, 4×N sub-partitions instead of 1×N or 2×N sub-partitions.

[0163] Note that this modified ISP approach was proposed in [1] as Test 1.1.2 at CE3 in Marrakech in January 2019. The results of this approach added to VTM-4.0.1 are shown in Tables 10, 11 and 12.

[0164] Table 10: Results for AI configurations with no subpartitions with width less than four [Table 12]

[0165] Table 11: Results for RA configurations with no subpartitions with width less than 4 [Table 13]

[0166] Table 12: Results for LDB configurations with no subpartitions with width less than 4 [Table 14]

[0167] 4.1.2 Extending ISP using the independent subpartition approach to subpartitions with widths smaller than four In this case, subpartitions with a width smaller than four are not removed from the ISP structure. Instead, the same designs introduced in Section 2 for 4×4, 8×4 and 4×8 are applied to them. We distinguish two different cases as follows: Vertical partitioning of a 4×N block is handled in the same way as the 4×4 vertical partitioning described in section 2.1. For example, a 4×32 block may be vertically partitioned into four independent 1×32 transform partitions 300 that form one partition 112. The vertical partitioning of an 8×N block is handled in the same way as the vertical partitioning of an 8×4 block described in section 2.2. For example, an 8×16 block may be partitioned into four 2×16 transform partitions 300, where transform partitions 1 and 2 form partition 1121, transform partitions 3 and 4 form partition 1122, and transform partitions 2 and 4 may not use the reconstructed samples of transform partitions 1 and 3, respectively, to generate their corresponding prediction signals.

[0168] The method allows writing reconstructed samples in groups of at least 4x4 samples for all vertical partitions (for horizontal partitions the minimum remains 16x1). The results of this approach on VTM-4.0.1 (using independent transform partitions of 4x4, 4x8, 8x4, and vertical partitions of 4xN and 8xN blocks) are shown in Tables 13, 14 and 15.

[0169] Thus, according to one embodiment, the decoder is configured to divide a given block into 16×M sub-blocks, where M≧1, or into 4×N or N×4 sub-blocks, where N≧4. The sub-blocks are optionally partitioned into two or more smaller transform partitions, as described above.

[0170] Table 13: Results of using independent subpartitions of 4x4, 4x8, 8x4, and vertical partitions of 4xN and 8xN blocks for AI configurations. [Table 15]

[0171] Table 14: Results of using independent subpartitions of 4x4, 4x8, 8x4, and vertical partitions of 4xN and 8xN blocks for RA configurations. [Table 16]

[0172] Table 15: Results of using independent subpartitions of 4x4, 4x8, 8x4, and vertical partitions of 4xN and 8xN blocks for LDB configurations. [Table 17]

[0173] 5 Conclusion The reported results show gains in CTC and class F with very little (AI) or no impact (RA and LDB) on encoding runtime.

[0174] With regard to the additional information presented, experimental results show that for classes C and E in AI and class F in all configurations, the removal of subpartitions with widths smaller than four results in significant losses. Moreover, this loss is slightly reduced in encoding runtime. On the other hand, the extension of the novel ISP design to blocks that generate subpartitions with widths smaller than four performs better in terms of BD rate gain than the complete removal of these subpartitions, given that it produces no losses and produces significant gains in class F with negligible impact on encoding runtime.

[0175] 6. Reduction in Complexity of ISP Partition Structure As already mentioned above, there are variations of the above concept, and here is one.As outlined above, in a typical decoder hardware implementation, one of the most important aspects that affects the top-level system pipeline is processing dependency.In the case of ISP, since the smallest luma block of VVC has 4x4 dimensions, i.e. 16 samples, the minimum 16 sample constraint ensures that the intra-loop dependency that exists in intra prediction is not a problem in terms of throughput.

[0176] However, ISP introduces new extremely narrow geometries to the VVC design, namely 1xN, 2xN, Mx2 and Mx1. Given that pixels are typically allocated in an internal line buffer memory in a raster-scan manner accessing samples in groups of 4x1, processing dependencies can become an issue for 1xN and 2xN subpartitions. Thus, filling this buffer is inefficient for all subpartitions with a width less than four. The impact of this issue can be reduced by different hardware implementations (such as changing the way pixels are allocated or using a transpose memory), but it still implies increased complexity in the hardware implementation.

[0177] Figures 19a and 19b show examples of different sub-partitions 112 / P and transformation partitions 300 / T for different block sizes of a given block 80, where the left example shows a conventional partition and the right example shows a proposed partition according to the invention described herein. The decoding and / or encoding of the given block 80 on the right side of Figure 19a may be performed similarly or as described in Figures 15a-15d, and the decoding and / or encoding of the given block 80 on the right side of Figure 19b may be performed similarly or as described in Figure 17.

[0178] To reduce the complexity of the hardware implementation, a minimum prediction width of 4 (transform size remains unchanged) is established, which affects the vertical division of 4xM (where M>4) and 8xN (where N>4) blocks as follows: 4xM: As shown in Fig. 1a, the whole block is predicted at once like a non-ISP block and a 4xM residual signal is calculated. The residual is then split into four 1xM (or two 2x8 for M=8) transform subpartitions that are processed independently. 8xN: As shown in Fig. 1b, the block is divided into two 4xN prediction subpartitions P1 and P2. After calculating the prediction of P1, a 4xN residual signal is generated and divided into two 2xN transform subpartitions T1 and T2 that are processed independently. The same process is then repeated for P2, T3 and T4 as well. However, in this case the prediction signal may use the reconstructed samples of the P1 area.

[0179] 7 References [1] S. De-Luxan-Hernandez, V. George, J. Ma, T. Nguyen, H. Schwarz, D. Marpe, T. Wiegand et al., "CE3: Intra Sub-Partitions Coding Mode (Tests 1.1.1 and 1.1.2)," JVET-M0102, Marrakech, Morocco, 2019. [2] F. Bossen, J. Boyce, X. Li, V. Seregin, K. Suhring et al., "JVET common test conditions and software reference configurations for SDR video," JVET-M1010, Marrakech, Morocco, 2019.

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

[0181] The data stream of the present invention may be stored on a digital storage medium or may be transmitted over a transmission medium, such as a wireless transmission medium, or a wired transmission medium, such as the Internet.

[0182] Depending on the particular implementation, the embodiments of the present invention may be implemented in hardware or software. The implementation may be performed using a digital storage medium, such as a floppy disk, DVD, Blu-Ray, CD, ROM, PROM, EPROM, EEPROM or flash memory, having electronically readable control signals stored thereon, which cooperates (or may cooperate) with a programmable computer system to perform the respective method. Thus, the digital storage medium may be computer readable.

[0183] Some embodiments according to the invention include a data carrier having electronically readable control signals that can cooperate with a programmable computer system to cause one of the methods described herein to be performed.

[0184] In general, embodiments of the present invention may be implemented as a computer program product having program code which operates to perform one of the methods when the computer program product is run on a computer. The program code may, for example, be stored on a machine readable carrier.

[0185] Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier. In other words, therefore, an embodiment of the inventive method is a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.

[0186] A further embodiment of the inventive method is therefore a data carrier (or digital storage medium, or computer readable medium) comprising recorded thereon a computer program for performing one of the methods described herein. The data carrier, digital storage medium, or recorded medium is typically tangible and / or non-transitory.

[0187] A further embodiment of the inventive method is therefore a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or the sequence of signals can for example be adapted to be transferred via a data communication connection, for example via the Internet.

[0188] A further embodiment comprises a processing means, for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein. A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.

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

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

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

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

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

[0194] Any of the methods described herein, or components of the apparatus described herein, may be at least partially implemented by hardware and / or software.

[0195] The above-described embodiments are merely illustrative of the principles of the present invention. It is understood that modifications and variations of the configurations and details described herein will be apparent to others skilled in the art. It is therefore intended to be limited only by the scope of the following claims and not by the specific details presented as descriptions and explanations of the embodiments herein.

Claims

1. A method for decoding a block (80) of a picture, comprising the steps of: decoding an intra-coding mode (116) of the block (80) from a data stream, the block (80) being partitioned into four equally sized transform partitions (300) based on a partition dimension flag (114) and a size of the block; determining a number of prediction partitions into which the block (80) is divided based on a size of the block (80), each of the plurality of prediction partitions including two of the four transform partitions (300); deriving a predictor for a prediction partition (102, 112) of the plurality of prediction partitions using the intra-coding mode (116) and one or more previously reconstructed samples adjacent to the prediction partition (102, 112); deriving a prediction residual (130) for each of the two transform partitions (300) included in the prediction partition after deriving a predictor for the prediction partition; combining the prediction residuals (130) of each of the two transform partitions (300) included in the prediction partition (102, 112) with the predictor of the prediction partition (102, 112) to reconstruct the prediction partition; The method according to claim 1,

2. 2. The method of claim 1, further comprising: reconstructing the block (80) using the reconstructed prediction partition, prediction residuals (130) of each of the four transform partitions (300), and a predictor for each additional prediction partition (102, 112) of the plurality of transform partitions.

3. decoding, from the data stream, the partition dimension flags (114) indicating a division direction in which the block (80) is divided; determining that the block (80) is to be divided into four equally sized transformed partitions (300) along the division direction indicated by the partition dimension flag (114), each of the transformed partitions (300) spanning the vertical height of the block (80) when the division direction is horizontal, or the horizontal width of the block (80) when the division direction is vertical; The method of claim 1 further comprising:

4. 4. The method of claim 3, wherein a first dimension of each of the transformation partitions (300) and a first dimension of the block (80) are identical, but a second dimension of the transformation partitions (300) and a second dimension of the block (80) are different.

5. 2. The method of claim 1, wherein when the size of the block (80) is 8x4 or 4x8, the method includes determining that the block (80) is divided into two equally sized transform partitions (300).

6. The method includes decoding, from the data stream, the partition dimension flag (114) indicating a division direction in which the block (80) is divided; When the partition size flag (114) indicates that the block division direction is horizontal, the method further comprises the steps of: [0010] determining that the term is defined as When the partition size flag (114) indicates that the block division direction is vertical, the method further comprises: [0025] determining that the term is defined as The method of claim 1 , wherein W is the width of the block, H is the height of the block, and K is four.

7. the intra-coding mode (116) is one from a set of supported intra-coding modes including an angular mode and at least one non-angular mode; the prediction partition (102, 112) comprises at least 16 samples; Each of the four transformation partitions (300) is of a first size; The method of claim 1 , wherein the predicted partition (102, 112) is a second size different than the first size.

8. Deriving a prediction residual (130) for each of the four transformed partitions (300) comprises: Decoding the transform (120) of the prediction residual from the data stream; or estimating values ​​of said prediction residuals; The method of claim 1 , comprising:

9. The method of claim 1 , wherein the plurality of prediction partitions is two.

10. 2. The method of claim 1, further comprising deriving (122) a predictor for each additional prediction partition (102, 112) of the plurality of prediction partitions using the intra-coding mode (116) and at least one already reconstructed sample.

11. 11. The method of claim 10, wherein at least one already reconstructed sample used to predict each additional prediction partition (102, 112) is outside and adjacent to the block (80) or outside and adjacent to each of the additional prediction partitions.

12. a reconstructed sample at a position corresponding to one of the four transform partitions (300) included in the reconstructed prediction partition (102, 112) is not used to derive a predictor corresponding to another prediction partition (102, 112) of the plurality of prediction partitions; 2. The method of claim 1, wherein reconstructed samples at positions corresponding to other ones of the four transform partitions (300) included in the reconstructed prediction partition (102, 112) are utilized to derive predictors corresponding to other prediction partitions (102, 112) of the plurality of prediction partitions.

13. The method of claim 1 , wherein the prediction residual for each of the four transform partitions is derived after a predictor for the prediction partition (102, 112) is derived.

14. 1. A decoder for decoding a block (80) of a picture, the decoder comprising: decoding an intra-coding mode (116) of the block (80) from a data stream, the block (80) being partitioned into four equally sized transform partitions (300) based on a partition dimension flag (114) and a size of the block; determining a number of prediction partitions (102, 112) into which the block (80) is divided based on a size of the block (80), each of the number of prediction partitions including two of the four transform partitions (300); deriving a predictor for a prediction partition (102, 112) of the plurality of prediction partitions using the intra-coding mode (116) and at least one previously reconstructed sample adjacent to the prediction partition (102, 112); deriving a prediction residual (130) for each of the two transform partitions (300) included in the prediction partition after deriving a predictor for the prediction partition; combining the prediction residuals (130) of each of the two transform partitions (300) included in the prediction partition (102, 112) with the predictor of the prediction partition (102, 112) to reconstruct the prediction partition; A decoder configured to perform the following:

15. 15. The decoder of claim 14, further configured to reconstruct the block (80) using the reconstructed prediction partition, a prediction residual (130) for each additional transform partition of the four transform partitions (300), and a predictor for each additional prediction partition (102, 112) of the plurality of transform partitions.

16. decoding, from the data stream, the partition dimension flags (114) indicating a division direction in which the block (80) is divided; determining that the block (80) is to be divided into four equally sized transformed partitions (300) along the division direction indicated by the partition dimension flag (114), each of the transformed partitions (300) spanning the vertical height of the block (80) when the division direction is horizontal, or the horizontal width of the block (80) when the division direction is vertical; 15. The decoder of claim 14 further configured to:

17. 17. The decoder of claim 16, wherein a first dimension of each of the transform partitions (300) and a first dimension of the blocks (80) are identical, but a second dimension of the transform partitions (300) and a second dimension of the blocks (80) are different.

18. 15. The decoder of claim 14, wherein when the size of the block (80) is 8x4 or 4x8, the decoder is configured to determine that the block (80) is divided into two equally sized transform partitions (300).

19. the decoder is further configured to decode from the data stream the partition size flag (114) indicating a division direction in which the block (80) is divided; When the partition size flag (114) indicates that the block division direction is horizontal, the decoder determines that the size of each of the transform partitions (300) is [0030] is configured to determine that the When the partition size flag (114) indicates that the block division direction is vertical, the decoder determines that the size of the transformation partition (300) is [0045] is configured to determine that the 15. The decoder of claim 14, wherein W is the width of the block, H is the height of the block, and K is four.

20. the intra-coding mode (116) is one from a set of supported intra-coding modes including an angular mode and at least one non-angular mode; the prediction partition (102, 112) comprises at least 16 samples; Each of the four transformation partitions (300) is of a first size; The decoder of claim 14, wherein the prediction partition (102, 112) is of a second size different from the first size.

21. To derive a prediction residual (130) for each of the four transform partitions (300), the decoder Decoding the transform (120) of the prediction residual from the data stream; or estimating values ​​of said prediction residuals; 15. A decoder according to claim 14, configured to execute:

22. The decoder of claim 14 , wherein the plurality of prediction partitions is two.

23. 15. The decoder of claim 14, further configured to derive (122) a predictor for each additional prediction partition (102, 112) of the plurality of prediction partitions using the intra-coding mode (116) and at least one already reconstructed sample.

24. 24. The decoder of claim 23, wherein at least one already reconstructed sample used to predict each additional prediction partition (102, 112) is outside and adjacent to the block (80) or outside and adjacent to each of the additional prediction partitions.

25. a reconstructed sample at a position corresponding to one of the four transform partitions (300) included in the reconstructed prediction partition (102, 112) is not used to derive a predictor corresponding to another prediction partition (102, 112) of the plurality of prediction partitions; 15. The decoder of claim 14, wherein reconstructed samples at positions corresponding to other ones of the four transform partitions (300) included in the reconstructed prediction partition (102, 112) are utilized to derive predictors corresponding to other prediction partitions (102, 112) of the plurality of prediction partitions.

26. The decoder of claim 14 , wherein the prediction residual for each of the four transform partitions is derived after a predictor for the prediction partition (102, 112) is derived.

27. A non-transitory computer-readable medium comprising instructions for decoding a block (80) of a picture, the instructions, when executed, causing at least one processor to: decoding an intra-coding mode (116) of the block (80) from a data stream, the block (80) being partitioned into four equally sized transform partitions (300) based on a partition dimension flag (114) and a size of the block; determining a number of prediction partitions into which the block (80) is divided based on a size of the block (80), each of the plurality of prediction partitions including two of the four transform partitions (300); deriving a predictor for a prediction partition (102, 112) of the plurality of prediction partitions using the intra-coding mode (116) and one or more previously reconstructed samples adjacent to the prediction partition (102, 112); deriving a prediction residual (130) for each of the two transform partitions (300) included in the prediction partition after deriving a predictor for the prediction partition; combining the prediction residuals (130) of each of the two transform partitions (300) included in the prediction partition (102, 112) with the predictor of the prediction partition (102, 112) to reconstruct the prediction partition; A non-transitory computer-readable medium for causing the computer to execute

28. A method for encoding a block (80) of a picture, comprising the steps of: encoding an intra-coding mode (116) of said block (80) into a data stream, said block (80) being partitioned into four equally sized transform partitions (300) according to a partition dimension flag (114) and a size of said block; determining a number of prediction partitions (102, 112) into which the block (80) is divided based on a size of the block (80), each of the number of prediction partitions including two of the four transform partitions (300); deriving a predictor for a prediction partition (102, 112) of the plurality of prediction partitions using the intra-coding mode (116) and at least one previously reconstructed sample adjacent to the prediction partition (102, 112); deriving a prediction residual (130) for each of the two transform partitions (300) included in the prediction partition after deriving a predictor for the prediction partition; encoding the prediction residuals (130) for each of the two transform partitions (300) included in the prediction partition (102, 112) and the predictor for the prediction partition (102, 112) into the data stream; The method according to claim 1,

29. An encoder for encoding a block (80) of a picture, comprising: encoding an intra-coding mode (116) of said block (80) into a data stream, said block (80) being partitioned into four equally sized transform partitions (300) according to a partition dimension flag (114) and a size of said block; determining a number of prediction partitions (102, 112) into which the block (80) is divided based on a size of the block (80), each of the number of prediction partitions including two of the four transform partitions (300); deriving a predictor for a prediction partition (102, 112) of the plurality of prediction partitions using the intra-coding mode (116) and at least one previously reconstructed sample adjacent to the prediction partition (102, 112); deriving a prediction residual (130) for each of the two transform partitions (300) included in the prediction partition after deriving a predictor for the prediction partition; encoding the prediction residuals (130) for each of the two transform partitions (300) included in the prediction partition (102, 112) and the predictor for the prediction partition (102, 112) into the data stream; An encoder configured to:

30. A non-transitory computer-readable medium comprising instructions for encoding a block (80) of a picture, the instructions, when executed, causing at least one processor to: encoding an intra-coding mode (116) of said block (80) into a data stream, said block (80) being partitioned into four equally sized transform partitions (300) according to a partition dimension flag (114) and a size of said block; determining a number of prediction partitions (102, 112) into which the block (80) is divided based on a size of the block (80), each of the number of prediction partitions including two of the four transform partitions (300); deriving a predictor for a prediction partition (102, 112) of the plurality of prediction partitions using the intra-coding mode (116) and at least one previously reconstructed sample adjacent to the prediction partition (102, 112); deriving a prediction residual (130) for each of the two transform partitions (300) included in the prediction partition after deriving a predictor for the prediction partition; encoding the prediction residuals (130) for each of the two transform partitions (300) included in the prediction partition (102, 112) and the predictor for the prediction partition (102, 112) into the data stream; A non-transitory computer-readable medium for causing the computer to execute

Citation Information

Patent Citations

  • Partition-based intra coding concept

    WO2019154936A1

  • Intra sub-partitions in video coding

    WO2020185910A1