Partition-based intra-encoding concept with high implementation efficiency

The intra-coding concept in video codecs optimizes partitioning and prediction methods to address signaling overhead and accuracy issues, enhancing coding efficiency and implementation efficiency in video codecs.

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

Patent Information

Application Number
JP2025068141
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2019-03-12
Filing Date
2025-04-17
Publication Date
2025-07-15
Estimated Expiration
2040-03-11

AI Technical Summary

Technical Problem

Existing intra-coding methods in video codecs like HEVC face challenges in achieving high coding efficiency while managing signaling overhead and prediction accuracy, particularly with sub-partitioning in the Versatile Video Coding (VVC) standard, which requires improvements in implementation efficiency.

Method used

The proposed intra-coding concept involves partitioning a block into transform partitions based on prediction residual transformation, allowing for parallel encoding and decoding of sub-partitions, and selecting between global, sequential, or grouped intra-prediction methods to optimize partition size and reduce signaling overhead.

Benefits of technology

This approach enhances coding efficiency by reducing signaling overhead and maintaining prediction accuracy, enabling efficient intra-coding with improved implementation efficiency in video codecs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025106574000001_ABST
    Figure 2025106574000001_ABST
Patent Text Reader

Abstract

To provide a decoder for achieving more efficient intra-encoding concept.SOLUTION: A decoder decodes an intra-encoding mode and a partition dimension flag about a predetermined block of a picture, partitions the predetermined block into a conversion partition 300 with the same width as the predetermined block 80 perpendicular to a predetermined dimension along with the predetermined dimension, decodes conversion of a predicted residual for each conversion partition, intra-predicts the predetermined block dependent on one or a plurality of already reconstructed samples adjacent to the predetermined block by a method dependent on the intra-encoding mode, obtains a predictor about the predetermined block, and reconstructs the predetermined block by correcting a predictor in each conversion partition using conversion of decoded prediction residual about each conversion partition.SELECTED DRAWING: Figure 19b
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to an intra coding concept for use in block-based coders such as, for example, hybrid video coders.

Background Art

[0002] When a particular block is given, intra prediction in HEVC is performed by extrapolating the decoded boundary samples of adjacent 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. Despite the existence of codecs that support many intra prediction modes (IPMs), finding a good intra predictor that provides high coding efficiency for the intra prediction achieved thereby remains an area of development. This is relevant not only to HEVC but also to other block-based codecs that use intra prediction. To find a set of intra prediction modes suitable for efficiently coding the inside of a block, a more accurate predictor reduces the prediction residual, thereby reducing the signaling overhead associated with the coding of the prediction residual. Therefore, it is necessary to consider the overhead for signaling the intra prediction mode with respect to the signaling overhead and the quality as a result of the predictors obtained by these intra prediction modes. To keep the signaling overhead associated with the intra prediction mode low, the intra-predicted block must be large, that is, the granularity at which the intra prediction mode is signaled must be kept coarse. On the other hand, the spatial prediction of a larger block has lower accuracy because the average sample distance of the samples is long with respect to the already decoded / encoded samples adjacent to this block, that is, the reference samples, inside the intra-predicted block, that is, the block to be predicted. HEVC alleviates this dilemma to some extent by allowing the leaf blocks, which the coding unit is sub-divided into by multi-tree sub-division, to inherit the intra prediction mode of the corresponding coding unit for the formation of the transform residual blocks. However, this still requires a signaling overhead for signaling the sub-partitioning of each intra-coded coding unit to the transform block from the encoder to the decoder.

Summary of the Invention

Problems to be Solved by the Invention

[0003] The newly developed intra coding concept is presented by the intra sub-partition (ISP) coding mode in the newly developed Versatile Video Coding (VVC) standard, but here an improvement in implementation efficiency is required.

[0004] Therefore, it is preferable to obtain a concept that further improves the implementation efficiency of intra coding with equivalent coding efficiency.

[0005] Therefore, an object of the present invention is to provide a more efficient intra coding concept.

Means for Solving the Problems

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

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

[0008] According to a first aspect of the present invention, one problem encountered when using sub-partitioning in relation to intra-coding is that the number of sub-partitions per block for which prediction is made individually should be limited in view of the resulting sub-partition size, e.g., a desired minimum throughput of 16 samples per cycle, and / or a minimum width of coding advance per coding cycle such as a wide area advance of at least 4 samples per prediction. The inventors of the present application have recognized that these considerations lead to the idea of interpreting flag control intra-prediction mode / determination for an intra-coded (predetermined) block that leads to the partitioning of this predetermined block from the perspective of prediction residual transformation and further to sub-partitioning from the perspective of intra-prediction, i.e., whether a predetermined block is intra-predicted (at once) in an integrated manner, or whether the transform partitions have a correction of the intra-predicted sub-partitions that uses the same for intermediate use of the prediction residual and also for intra-prediction of the next sub-partition, and are used in a sequential, partition-by-partition intra-prediction, or, for example, to avoid intra-prediction that results in too few samples per intra-prediction executed or too small a width advance of intra-prediction, whether the group of transform partitions for the prediction sub-partitions can be freely implemented as needed depending on the block size. Encoding and decoding of the transform partitions may be performed independently between the transform partitions, i.e., they may be encoded / decoded in parallel, and it should be noted that this does not cause a problem of minimum samples per cycle or width advance per cycle. Thereby, since a plurality of partitions can be intra-predicted and reconstructed in the same cycle, it becomes possible to partition an intra-predicted block into partitions having, for example, less than 16 samples. It is advantageous if all sub-partitions encoded or decoded in the same cycle together contain at least 16 samples.Here too, according to the variant forms described in this specification, the encoded code supports a number of block sizes and, depending on the size of a given intra-predicted block and / or on its width and / or height, the decoder and encoder set a partition for prediction, resulting in one of the following options.

[0009] 1) Intra-predict the block globally, i.e., all at once (in one go) or as a whole (in other words, for example, predict an entire given block all at once, or, put yet another way, predict all samples within a given block based exclusively on adjacent samples located outside that given block and process the transform partition of the given block independently (i.e., the transform is carried out region by region within each transform partition)). And / or, 2) Sequential intra-prediction in units of transform partitions that also function as prediction sub-partitions (in other words, for example, predict a transform partition, encode / decode the prediction residual for that transform partition by obtaining the reconstructed samples within that transform partition, then predict the next transform partition within the given block using the reconstructed samples obtained for the previous transform partition and encode / decode the prediction residual for the next transform partition, etc.) And / or, 3) Sequential intra prediction in units of groups of transform partitions (each transform partition strictly belongs to exactly one partition group) (in other words, for example, based on adjacent samples that are exclusively located outside the prediction sub - partition, predict the group of transform partitions, i.e., the prediction sub - partition, obtain the reconstructed samples within that prediction sub - partition in units of transform partitions within that prediction sub - partition, encode / decode the prediction residual for that prediction sub - partition (i.e., the transformation is performed region - by - region within each transform partition), then use the reconstructed samples that include the samples obtained for the previous prediction sub - partition but exclude the samples located within the next prediction sub - partition to predict the next group of transform partitions within a predetermined block, i.e., the next prediction sub - partition, and encode / decode the prediction residual for the next prediction sub - partition in units of transform partitions, etc.).

[0010] Accordingly, according to the first aspect of the present application, a decoder for block-based decoding of pictures from a data stream is configured to decode an intra coding mode for a predetermined block of a picture from the data stream. The decoder is configured to decode a partition size flag for a predetermined block of a picture from the data stream and set a partition size depending on the partition size flag horizontally or vertically. In other words, the partition size flag indicates whether the partition size is horizontal or vertical. The decoder is configured to partition a predetermined block into conversion partitions of the same width as a predetermined block perpendicular to the predetermined dimension along the predetermined dimension (i.e., along the partition size). When the partition size is vertical, the conversion partitions are associated with horizontally stacked horizontal blocks, and when the partition size is horizontal, the conversion partitions may be associated with vertically arranged vertical blocks arranged side by side. The decoder is configured to decode a conversion of a prediction residual from the data stream for each conversion partition. Further, the decoder intra-predicts a predetermined block depending on one or more already reconstructed samples adjacent to the predetermined block in a manner depending on the intra coding mode to obtain a predictor for the predetermined block, and corrects the predictor within each conversion partition using the decoded conversion of the prediction residual for each conversion partition, thereby reconstructing the predetermined block.

[0011] According to a first option, the decoder is configured to sequentially intra-predict predictors one by one for any conversion partition and reconstruct the conversion partition by correcting the predictor within each conversion partition using the decoded conversion of the prediction residual for each conversion partition.

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

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

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

[0015] According to one embodiment, the decoder is configured to split a predetermined block that depends on the block size into sub-partitions and sets a minimum prediction width of 4 to reduce the complexity of the hardware implementation. The present invention is not limited by the following examples regarding various partitionings performed by the decoder. It is obvious that other sub-partitions and / or transform partitions can also be realized by the decoder.

[0016] · 4×4 block (Example 1) · Horizontal split (Hor.Split): one 4×4 PU (prediction unit) and four independent 4×1 TUs (transform units). · Vertical split (Ver.Split): one 4×4 PU and four independent 1×4 TUs. In other words, the entire 4×4 block is predicted at once and then divided into four transform partitions and processed independently.

[0017] · 8×4 block (Example 2) · Horizontal split (Hor.Split): two 8×2 PUs and four 8×1 TUs. The second PU is predicted using the reconstructed samples of the second TU. · Vertical split (Ver.Split): two 4×4 PUs and four 2×4 TUs. The second PU is predicted using the reconstructed samples of the second TU. In other words, the 8×4 block is divided into two sub - partitions (i.e., PUs), and each sub - partition is divided into two transform partitions that are processed independently.

[0018] · 4×8 block (Example 3) · Horizontal split (Hor.Split): two 4×4 PUs and four 4×2 TUs. The second PU is predicted using the reconstructed samples of the second TU. · Vertical split (Ver.Split): one 4×8 PU and four independent 1×8 TUs. In other words, in the horizontal split, the 4x8 block is divided into two sub - partitions (i.e., PUs), and each sub - partition is divided into two transform partitions that are processed independently. In the vertical split, the entire 4x8 block is predicted at once and then divided into four transform partitions that are processed independently.

[0019] · 4×8 block (Example 3’, alternative to Example 3) · Horizontal split (Hor.Split) (no change compared to the processing of sub - partitions for both prediction and transform residual encoding / decoding): two 4×4 PUs that form two 4×4 TUs simultaneously are used. The second PU is predicted using the reconstructed samples of the first PU. · Vertical split (Ver.Split) (modified): one 4×8 PU and two independent 2×8 TUs. In other words, in horizontal splitting, a 4x8 block is split into two sub-partitions (i.e., PUs), and each sub-partition ends in one transformation partition, while in vertical splitting, the entire 4x8 block is predicted at once and then split into two transformation 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 transformation partitions that are processed independently.

[0021] · 4×M block (Example 4’ where M>8) · Horizontal split (Hor.Split) (no change compared to sub-partition processing for both prediction and transform residual encoding / decoding): The 4xM block is predicted with four PUs of 4x(M / 4), each of which is simultaneously one of four transformation partitions · Vertical split (Ver.Split): The entire 4xM block is predicted at once and then split into four 1xM transformation partitions that are processed independently.

[0022] · 8×N block (Example 5) The 8xN block is split into two 4xN sub-partitions and can be further split into four 1xN transformation partitions.

[0023] · 8×N block (Example 5’ where N>4) · Horizontal split (Hor.Split) (no modification compared to sub-partition processing for both prediction and transform residual encoding / decoding): The 8xN block is split into four 8x(N / 4) sub-partitions (for prediction and transform residual encoding / decoding). · Vertical split (Ver.Split): The 8xN block is split into two 4xN sub-partitions that can be further split into two 2xN transformation partitions (for prediction).

[0024] The examples outlined above can be applied individually or in their entirety to the codec by the corresponding embodiments (i.e., each of the decoder and encoder) for different block sizes, or combinations of two or more of those examples can be applied to the codec. As can be understood, according to one embodiment, for at least one predetermined block size (e.g., Comparative Examples 3 to 5), depending on the splitting direction, there may be a difference in the decision on how to select among the aforementioned options 1 to 3 (between two of 1 to 3). In the case of horizontal splitting such as Option 2, one option is selected, and each TU is also a PU. Thus, the number of PUs and the number of TUs are the same. On the other hand, in the case of vertical splitting such as Option 1, different options may be selected. The entire block functions as a PU but is split into several TUs. Thus, the number of PUs and the number of TUs are different. Or in Option 3, a predetermined block is split into PUs, and each of them is further split into TUs. Thus, 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 ultimately result in the same option regardless of the splitting direction. Therefore, the above-described dependency of the selection among options with respect to the splitting direction may be added to the block size direction already described, but of course, it may also be applied without the latter.

[0025] One embodiment according to the present invention relates to an encoder for block-based encoding from a picture to a data stream configured to encode an intra coding mode into the data stream for a predetermined block of the picture. The encoder is configured to encode a partition size flag into the data stream for a predetermined block of the picture, and the partition size flag signals that the partition size is set horizontally or vertically. In other words, the partition size flag indicates whether the partition size is horizontal or vertical. The encoder is configured to divide a predetermined block into transform partitions along a predetermined dimension (i.e., along the partition size), and the transform partitions have the same width as a predetermined block perpendicular to the predetermined dimension. When the partition size is vertical, the transform partitions are associated with horizontally stacked horizontal blocks, and when the partition size is horizontal, the transform partitions can be associated with vertically arranged vertical blocks arranged side by side. Further, the encoder is configured to intra-predict a predetermined block that depends on one or more already reconstructed samples adjacent to the predetermined block in a manner that depends on the intra coding mode in order to obtain a predictor for the predetermined block. For each transform partition, the encoder is configured to encode the transform of the prediction residual into the data stream, such that the predetermined block can be reconstructed by correcting the predictor within each transform partition using the transform of the prediction residual encoded for each transform partition.

[0026] The above-described encoder, as well as the methods performed by the encoders and decoders described herein, and the data streams generated by the methods performed by any of the encoders described herein, are based on the same considerations as the above-described decoder. Incidentally, the method can be completed with all the features and functions described for the decoder and / or encoder as well.

[0027] Preferred embodiments of the present application will be described below with reference to the drawings.

Brief Description of the Drawings

[0028]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12-1

Figure 12-2

Figure 13

Figure 14-1

Figure 14-2

Figure 15a

Figure 15b

Figure 15c

Figure 15d

Figure 16a

Figure 16b

Figure 16c

Figure 16d

Figure 17

Figure 18

Figure 19a

Figure 19b

Embodiments for Carrying Out the Invention

[0029] The drawings are not necessarily to scale; instead, emphasis is placed on explaining the principles of the present invention as a whole.

[0030] The following description of the figures begins with a presentation that describes an encoder and a decoder of a block-based prediction codec that encodes a video picture to form an example of an encoding framework in which embodiments of an intra prediction codec may be incorporated. The former encoder and decoder will be described with reference to FIGS. 1 to 3. In the following, the description of the variant forms of the ISP concept will be presented together with the description of how the concept can be incorporated into the encoders and decoders of FIGS. 1 and 2. However, the concepts described in FIGS. 4 and below may also be used to form encoders and decoders that do not operate according to the encoding framework underlying the encoders and decoders of FIGS. 1 and 2. Later, embodiments that utilize ISP but are improved in terms of implementation efficiency will be described. Also, embodiments that utilize variant forms of partition-based intra coding will be described.

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

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

[0033] Internally, the encoder 10 may include a prediction residual signal former 22 that generates a prediction residual 24 to measure the deviation of the original signal, i.e., the prediction signal 26 from the picture 12. The prediction residual signal former 22 may be, for example, a subtractor that subtracts the prediction signal from the original signal, i.e., the picture 12. Next, the encoder 10 further includes a converter 28 that converts the prediction residual signal 24 from spatial to spectral to obtain a spectral domain prediction residual signal 24', and the prediction residual signal 24' is also quantized by a quantizer 32 provided in the encoder 10. The prediction residual signal 24'' quantized in this way is encoded into the bitstream 14. For this purpose, the encoder 10 may optionally include an entropy encoder 34 that entropy-encodes the converted and quantized prediction residual signal into the data stream 14. The prediction residual 24 is decoded from the data stream 14 and is generated by the prediction stage 36 of the encoder 10 based on the prediction residual signal 24'' that can be decoded from the data stream 14. For this purpose, as shown in FIG. 1, the prediction stage 36 may internally include an inverse quantizer 38 that inverse-quantizes the prediction residual signal 24'' to obtain a spectral domain prediction residual signal 24''' corresponding to the signal 24' other than the quantization loss, and an inverse converter 40 that inverse-converts, i.e., converts 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 other than the quantization loss. Next, the combiner 42 of the prediction stage 36 recombines the prediction signal 26 and the prediction residual signal 24'''' by addition or the like to obtain a reconstructed signal 46, i.e., the reconstruction of the original signal 12. The reconstructed signal 46 may correspond to the signal 12'. Next, the prediction module 44 of the prediction stage 36 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 composed of components corresponding to the prediction stage 36 and interconnected in a manner corresponding to the prediction stage. In particular, the entropy decoder 50 of the decoder 20 may entropy-decode the quantized spectral region prediction residual signal 24'' from the data stream. At this time, the inverse quantizer 52, the inverse transformer 54, the combiner 56, and the prediction module 58, which are interconnected and cooperate in the manner described above with respect to the modules of the prediction stage 36, recover the signal reconstructed based on the prediction residual signal 24''. As a result, as shown in FIG. 2, the output of the combiner 56 yields the reconstructed signal, that is, the picture 12'.

[0035] Although not specifically described above, it is readily apparent that the encoder 10 can set some encoding parameters, such as prediction mode, motion parameters, etc., according to some optimization methods, such as some rate and distortion related criteria, i.e., methods for optimizing the encoding cost. For example, the encoder 10, the decoder 20, and the corresponding modules 44, 58 can each support various prediction modes, such as intra encoding mode and inter encoding mode. The granularity at which the encoder and decoder switch between these prediction mode types can correspond to the sub-division of each of the pictures 12 and 12' into encoding segments or encoding blocks. In units of these encoding segments, for example, a picture can be sub-divided into intra-encoded blocks and inter-encoded blocks. Intra-encoded blocks are predicted based on the spatial already encoded / decoded neighborhood of each block, as will be outlined in more detail below. For each intra-encoded segment, including the directional intra-encoding mode or angular intra-encoding mode, where each segment is filled by extrapolating sample values along a specific direction unique to each directional intra-encoding mode to the respective intra-encoded segment, several intra-encoding modes exist and can be selected. As an example, the intra-encoding mode can include one or more additional modes, such as the DC encoding mode where the prediction of each intra-encoded block assigns a DC value to all samples within each intra-encoded segment, and / or the plane intra-encoding mode where the prediction of each block is approximated or determined to be the spatial distribution of sample values described by a two-dimensional linear function over the sample positions of each intra-encoded block having a driving slope and the offset of the plane defined by the two-dimensional linear function based on adjacent samples. In contrast, inter-encoded blocks can be predicted, for example, temporally.In the case of an inter-coded block, motion vectors may be signaled within the data stream, where the motion vectors indicate the spatial displacement of a portion of a previously coded picture of the video to which picture 12 belongs, where the previously coded / decoded pictures are sampled to obtain the prediction signal for each inter-coded block. In addition to the residual signal coding included in the data stream 14, such as entropy-coded transform coefficient levels representing the quantized spectral region prediction residual signal 24'', coding mode parameters for assigning coding modes to various blocks, some prediction parameters of the block such as motion parameters of the inter-coded segments, and optional further parameters such as parameters for controlling and signaling the sub-division of the segments of pictures 12 and 12' respectively, the data stream 14 may be encoded with these parameters, which means that. The decoder 20 uses these parameters to sub-divide the picture in the same way as the encoder did, assign the same prediction modes to the segments, and perform the same prediction to yield the same prediction signal.

[0036] Figure 3 shows the relationship between, on the one hand, the reconstructed signal, i.e., the reconstructed picture 12’, and, on the other hand, the combination of the predicted residual signal 24’’’’ signaled within the data stream and the predicted signal 26. As already described above, the combination may be an addition. In Figure 3, the predicted signal 26 is shown as a sub-division of the picture area into an intra-coded block, exemplarily shown using hatching, and an inter-coded block, exemplarily shown without using hatching. The sub-division may be any sub-division, such as a regular sub-division of the picture area into rows and columns of one or more blocks, or a quadtree sub-division into blocks, or a multi-tree sub-division of picture 12 into leaf blocks of various sizes, and a mixture thereof is shown in Figure 3, where the picture area is first sub-divided into rows and columns of the tree root block and then further sub-divided according to a recursive multi-tree sub-division. Here too, the data stream 14 may have an intra-coded mode coded for the intra-coded blocks 80 and assign one of several supported intra-coded modes to each of the intra-coded blocks 80. Further details will be described below. In the case of the inter-coded blocks 82, the data stream 14 may have one or more motion parameters coded therein. Generally speaking, the inter-coded blocks 82 are not limited to being temporally coded. Alternatively, the inter-coded blocks 82 may be any block predicted from a previously coded portion beyond the current picture 12 itself, such as a previously coded picture of the video to which picture 12 belongs, or, if the encoder and decoder are respectively scalable encoders and decoders, a picture of another view or a hierarchically lower layer. The predicted residual signal 24’’’’ in Figure 3 is also shown as a sub-division into blocks 84 of the picture area. These blocks may sometimes be called transform blocks to distinguish them from the coded blocks 80 and 82.In practice, FIG. 3 shows that the encoder 10 and the decoder 20 may each use two different sub-divisions of the pictures 12 and 12' into blocks, i.e., one is sub-divided into the coding blocks 80 and 82 respectively, and the other is sub-divided into the block 84. Both sub-divisions may be the same, i.e., each coding block 80 and 82 may simultaneously form the transform block 84. However, FIG. 3 shows a case where, for example, the sub-division into the transform block 84 forms an extension of the sub-division into the coding blocks 80 / 82, so that any boundary between the two blocks 80 and 82 covers the boundary between the two blocks 84. Alternatively stated, it shows the case where each block 80 / 82 coincides with one of the transform blocks 84 or coincides with a cluster of the transform blocks 84. However, the sub-divisions may also be determined or selected independently of each other so that the transform block 84 can alternatively cross the block boundary between the blocks 80 / 82. Therefore, as far as the sub-division into the transform block 84 is concerned, the same description as presented for the sub-division into the blocks 80 / 82 applies, i.e., the block 84 may be the result of a regular sub-division of the picture area into one or more blocks arranged in rows and columns, or the result of a recursive multi-tree sub-division of the picture area, or a combination thereof, or any other kind of blocking. Incidentally, it should be noted that the blocks 80, 82, and 84 are not limited to quadratic, rectangular, or any other shape.

[0037] FIG. 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 an alternative embodiment, a plurality of prediction signals 26 may be combined with the prediction residual signal 24'''' to form the picture 12'.

[0038] In FIG. 3, the conversion segment 84 shall have the following importance. The converter 28 and the inverse converter 54 perform the conversion in units of these conversion segments 84. For example, many codecs use some kind of DST or DCT for all the conversion blocks 84. Some codecs can skip the conversion so that the prediction residual signal is directly encoded in the spatial domain for some of the conversion segments 84. However, according to the embodiments described later, the encoder 10 and the decoder 20 are configured in such a way as to support some conversions. For example, the conversions supported by the encoder 10 and the decoder 20 may include the following · DCT-II (or DCT-III), where DCT is the abbreviation of Discrete Cosine Transform. · DST-IV, where DST is the abbreviation of Discrete Sine Transform. · DCT-IV · DST-VII · Identity transform (IT)

[0039] Of course, the converter 28 supports all the forward conversion versions of these conversions, while the decoder 20 or the inverse converter 54 supports the following corresponding reverse or inverse versions. · Inverse DCT-II (or Inverse DCT-III) · Inverse DST-IV · Inverse DCT-IV · Inverse DST-VII · Identity transform (IT)

[0040] The following description provides further details regarding that the conversion can be supported by the encoder 10 and the decoder 20. In any case, it should be noted that the set of supported conversions may include only conversions such as a conversion from one spectrum to space or a conversion from space to spectrum.

[0041] As previously described, FIGS. 1-3 are presented as examples where the intra prediction concepts further described below can be implemented. To that extent, the encoders and decoders of FIGS. 1 and 2 each represent possible implementations of the encoders and decoders described later in this specification. As will be outlined in detail below, when incorporating the embodiments for intra prediction according to the present application into the encoders and decoders of FIGS. 1 and 2, the encoder of FIG. 1 and the decoder of FIG. 2 support, as at least one option, processing the intra-predicted block 80 in the manner outlined in detail below. Accordingly, the embodiments described below refer to an encoder equivalent to the encoder 10 of FIG. 1 that processes the intra-coded block 80 in the manner outlined in detail below, and the same applies to the decoder of FIG. 2, and thus represents an example of a decoder according to an embodiment in which the intra-coded block is processed in the manner outlined in detail below. However, FIGS. 1 and 2 are merely specific examples. However, the encoder according to the embodiments of the present application may perform block-based encoding of picture 12 using the concepts outlined in detail below. For example, the encoder may differ from the encoder of FIG. 1 in that the encoder is not a video encoder, the encoder does not support inter prediction, or the sub-division into block 80 is performed in a manner different from that illustrated in FIG. 3. Alternatively, depending on the embodiment, this encoder may not use transform prediction residual coding, for example, and instead may directly code the prediction residual in the spatial domain. Similarly, the decoder according to the embodiments of the present application may perform block-based decoding of picture 12' from data stream 14 using the intra prediction coding concepts further outlined below. However, the decoder may differ from the decoder 20 of FIG. 2, for example, in that the decoder is a still image decoder rather than a video decoder, the decoder does not support intra prediction, or the decoder sub-divides picture 12' into blocks in a manner different from that 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 in the transform domain.

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

[0043] As shown in FIG. 4, another coding option indicated by reference numeral 110 corresponds to dividing block 80 into vertical partitions 1121, 1122,... 1128. That is, according to option 110, block 80 is partitioned into partitions 112 i along the horizontal axis, that is, along the horizontal partition dimension 104. In the case of option 100, each partition 102 i has the same width as block 80, that is, has the width W of the block, but partition 112 i adopts the height H of block 80, that is, has the height H. In summary, in a manner similar to the description of option 100, vertical division 110 can divide block 80 into W number of partitions 112 i where W represents the horizontal width of block 80 measured within sample 108, and as a result, each partition 112 i is one sample width in the horizontal direction. However, the partitioning according to option 110 may be performed in another way agreed upon between the encoder and the decoder.

[0044] Therefore, according to FIG. 4, the encoder partitions block 80 into H Wx1 partitions 102 i according to the horizontal division option 100, or into W 1xH partitions 112 iIt can be freely partitioned, and the split option selected by the encoder of block 80 can be signaled within data stream 14 for block 80, for example, by a corresponding partition dimension flag 114 within data stream 14. However, it is clear that embodiments of the present application also target encoders and decoders that, by default, use only one of options 100 and 110 without requiring flag 114 within the data stream. Further, flag 114 may be transmitted within data stream 80 in other examples, depending on the intra coding mode 116 signaled from the encoder to the decoder within data stream 14 for block 80. The intra coding mode can indicate, as described above, for example, an angular mode and, optionally, one of one or more non-angular modes such as a DC mode or a planar mode, from a set of available and supported intra coding modes. That is, flag 114 may be conditionally transmitted within data stream 14 in a manner that depends on intra coding mode 116 according to alternative embodiments not further described herein. According to the embodiments described below, flag 114 exists within data stream 14 for block 80 independently of the intra coding mode 116 signaled for block 80. However, a dependency may exist for flag switching between the partitioning process of the intra coded block 80 described above and different ways of processing the intra coding of block 80 as outlined below.

[0045] According to the ISP, each of the partitions 102 / 112 is processed sequentially in this way, and is predicted, transformed, quantized, and encoded individually. Thus, the reconstructed samples of a particular partition can be used to predict subsequent partitions 102 / 112 in partition order among the partitions into which block 80 is partitioned. In this way, the process of intra prediction circulates through the partitions 102 / 112 into which block 80 is partitioned. FIG. 5 exemplarily shows an intra-predicted block 80 divided according to option 100. Each partition 1021-1024 of block 80 is subject to prediction, i.e., derivation of the predictor for each partition 102 i and prediction residual related tasks, i.e., correction of the predictor using the prediction residual. The latter task may be performed by combining the prediction residual and the predictor. This is done at the decoder for reconstruction. The encoder performs, as prediction residual related tasks, determination of the prediction residual including, for example, transformation and quantization, and correction of the predictor using the prediction residual, i.e., continues to synchronize the prediction loop with the decoder by filling the decoded picture buffer in the encoder with picture reconstruction. The above-described tasks, i.e., prediction and residual processing, are performed individually and sequentially among partitions 1021-1024. After these two steps for the currently processed partition, the next partition 102 i in partition order is processed in the same way. The partition order is exemplarily shown in FIG. 5 using three arrows 126.

[0046] FIG. 5 shows that the partition containing the top left pixel of block 80 is processed first before proceeding to the adjacent partition 1022 below, etc., corresponding to the assignment of indices to partitions 1021-1024 in FIG. 5. However, this order is merely an example, and as will become apparent in the following description, 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 dependency will be described below.

[0047] In the example described further below, for partition type 100, partition order 126 varies simply between those traversing partition 102 / 112 such that for split type 100, the subsequent partitions are directly adjacent to each other with the partition order going from top to bottom or bottom to top, and for partitioning type 110, from left to right or right to left. However, it should be noted that other examples are also possible. For example, in the first pass, the partition order can be selected such that in two passes of processing every second partition from top to bottom, bottom to top, left to right, or right to left, the partitions are scanned in an adjacent order that just outlines the contour, and then, whatever is applied, the remaining partitions between them are processed in the same order direction or the opposite direction.

[0048] In any case, Figure 5 shows the first partition 1021 that is processed first and is the currently processed partition. For the first partition, here exemplified by 1021, the set of adjacent samples 1181 used to form the predictor for partition 1021 need only be selected based on samples outside the boundary of block 80 when processing the first partition of block 80, and the samples of block 80 have not yet been processed, that is, have not been reconstructed or encoded. That is, the samples within set 1181 have already been reconstructed within the encoder using any prediction and correction of the corresponding predictor using the prediction residuals transmitted in the data stream. They belong to previously encoded / decoded picture blocks and may be inter-coded or intra-coded or any other coded block. The same holds for the number and exact positions of the samples of the set of adjacent samples 1181 used to form the predictor for the first partition 1021, depending on the intra-coding mode assigned to block 80. This intra-coding mode is used equally, or together, for the processing of all partitions of block 80, as will be explained below. This predictor for partition 1021, derived in the decoder and encoder by filling this partition 1021 depending on one or more already reconstructed / encoded samples within set 1181, in order to end the processing of the first partition 1021, as far as the encoder is concerned, that is, by transformation and quantization as outlined above, its prediction residual is determined, and then this prediction residual, in the version transmitted within the data stream, that is, including the quantization loss, is used to correct the predictor using the prediction residuals within data stream 14 and is used for the reconstruction of this partition 1021. For example, Figure 5 exemplarily shows the prediction residual for partition 1021 at 1201. That is, 1201 contains the transform coefficients corresponding to the transform of the prediction residual for partition 1021, and the description of data 1201 will be explained in more detail below.

[0049] Next, focus on the next partition in partition order, i.e., partition 1022 in the example of FIG. 5. The set of adjacent already reconstructed / encoded samples used to derive the predictor for partition 1022 consists of samples located outside block 80 and / or samples located within block 80, i.e., samples located in any already processed partition, here the samples located in the current partition 1021 in the example of FIG. 5, insofar as the situation has changed and for these samples the prediction residuals have already been determined and are already available in data stream 14. That is, the encoder and decoder derive the predictor for this partition 1022, and then the prediction residual determination in the encoder and the use of the prediction residuals for the correction of the predictor in the encoder and decoder respectively continue. The process then continues with the next partition in the column, i.e., the next partition in partition order, thereby sequentially processing all partitions of block 80.

[0050] As already mentioned above, the partition order 126 is selected in another way across the partitions, and as a result, immediately consecutive partitions may be next to each other in the partition. That is, the partition order can jump from any partition to the next partition. This is done by filling each partition 102 i with the set 118 of adjacent samples used to derive each predictor imeans that, as shown in FIG. 5, it is not limited to the immediately adjacent samples of each partition. This is also relevant to the selection of the start of partition order 126. For example, assume that partition 1024 is the first partition in partition order. Next, the predictor can be derived by filling the same, depending on a set of adjacent samples 1184 (not shown in FIG. 5) that collects samples located to the left and above block 80 along the outer perimeter of block 80. Some of the samples in set 1184 are not immediately adjacent to partition 1024. Incidentally, this corresponds to the situation where the last sample row in the normal intra prediction filling of block 80 is filled in a batch. The possibilities described above also apply to any subsequent partition to be processed, i.e., the second partition and further partitions in partition order. That is, those adjacent sample sets 118 i may also include samples that are not directly adjacent to each partition 102 i . Further, if the partition order across partitions is not restricted in such a way that consecutive partitions are directly adjacent to each other, then subsequently, for any second or subsequent partition 102 i the set 118 of reference samples i may not only collect samples to the left and above each partition 102 i but also 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. That is, set 180 i may include samples located on three or more sides of partition 102 i .

[0051] Briefly summarized, FIG. 5 here exemplarily shows the sequential processing of partitions 102 / 112 of block 80 with respect to horizontal partitions, but the same explanation also applies to vertical mode 110 with respect to vertical partitions 112 i . Each partition 102i Regarding this, the corresponding prediction residual 102 i is included in the data stream 14. Both the data 1201 to 1204 together form a prediction residual, namely 120, for the block 80. According to an alternative embodiment of the present application, transform residual coding may not be used. That is, it should be recalled that the prediction residual 120 of the block 80 may be directly signaled in the data stream 14, for example, in the spatial domain. In this case, the data 1201 to 1204 of the various partitions 1021 to 1024 may not include a partition separation field within the data stream 14, and each data portion 120 i represents the signaling of a specific transformation of each partition 102 i . Rather, the prediction residual 120 of the block 80 may, in that case, form one field of the data 14. When processing a specific partition 102 i , in this alternative embodiment, the decoder collects information regarding the prediction residual of this partition 102 i from the field 120. This procedure can also be applied when using a strictly reversible version of the transformation so that quantization can be performed in the spatial domain.

[0052] Therefore, FIG. 5 shows that there are two tasks performed for each partition 102 i in the encoder and decoder, namely: 1) a prediction or predictor derivation task 122 that generates a predicted sample value for each sample of each partition 1021, that is, each partition 102 i , and 2) a prediction residual related task that is then executed, namely, a prediction residual derivation in the encoder that includes quantization of the prediction residual for input to the data stream 14, and for each partition 102 i by combining or correcting the prediction residual and the predictor to obtain the reconstructed sample of this partition 102 iis the reconstruction of the sample. The latter reconstructed sample is, for the prediction derivation task, according to partition order 126, the subsequent processed partition 102 j of the adjacent sample set 118 j can function as a reservoir of.

[0053] Before proceeding to a further explanation of the details of the ISP concept's possibilities, Figure 6 shows the process of prediction derivation 122 by filling the currently processed partition 102 i It should be recalled that the description of the horizontal partition 102 is merely selected illustratively, and the same description is also relevant to the vertical partition 112. Figure 6 shows the currently processed partition 102 i and its corresponding set of already reconstructed / encoded adjacent samples 118 i As already described above with respect to Figure 5, the set 118 i is not limited to being directly adjacent to the partition 102 i or adjacent samples 128. However, due to the partitioning, the average distance 130 between the samples of the partition 102 i and the samples 128 of the set 118 i is small when averaged over all the samples of the block 80, for example, as known from H.264 or HEVC, compared to performing intra prediction of the block 80. As described with respect to Figure 5, the predictor derivation or filling 122 is performed for each partition 102 i using the intra prediction mode associated with the block 80, and this mode indicates one of the set of available intra prediction modes. This set can include different angular or direction modes at the angle or direction 132 where the sample content of the adjacent sample set 118 i is copied to the samples 134 of the partition 102 i To perform this copy, for the partition 102 iThe prediction for each sample 134 is derived based on the number of adjacent samples 134 in the set 118 positioned with respect to the sample 134 in a direction facing opposite to the direction 132. This number is defined, for example, by the kernel of an interpolation filter used to derive the inter-pixel positions between the samples 128 of the sample set 118. i Figure 6 shows, for example, that three of the samples 128 in the set 118 are used to calculate the prediction for one of the samples 134 in the currently processed partition 102. Since the average distance 130 is relatively small, the number of reference samples 134 per sample 134 in the partition 102 can be kept low. Further details are presented below. However, for completeness, the set of available intra prediction modes also includes a DC mode in which one DC value is assigned to all samples 134 in the partition 102, and it should be noted that this DC value is derived by performing an averaging of the set 118 of adjacent samples. i In addition, there may be a plane mode in which the predicted value of the sample 134 is defined by a linear function with respect to the sample positions within the partition 102, and the gradient and offset of this linear function are derived based on the adjacent samples 118. i Note also that the adjacent set 118 may vary depending on the intra prediction mode selected for the block 80, for example, it may vary particularly between the angular mode and the non-angular mode DC / plane. i The prediction for each sample 134 can be derived based on the number of adjacent samples 134 in the set 118 that is positioned with respect to the sample 134 in a direction opposite to the direction 132. This number is defined, for example, by the kernel of an interpolation filter used to derive the inter-pixel positions between the samples 128 of the sample set 118. i For example, Figure 6 shows that three of the samples 128 in the set 118 are used to calculate the prediction for one of the samples 134 in the currently processed partition 102. Since the average distance 130 is relatively small, the number of reference samples 134 per sample 134 in the partition 102 can be kept low. Further details will be presented below. However, for completeness, the set of available intra prediction modes also includes a DC mode in which one DC value is assigned to all samples 134 in the partition 102, and it should be noted that this DC value is derived by performing an averaging of the set 118 of adjacent samples. i In addition, there may be a plane mode in which the predicted value of the sample 134 is defined by a linear function with respect to the sample positions within the partition 102, and the gradient and offset of this linear function are derived based on the adjacent samples 118. i Note also that the adjacent set 118 may vary depending on the intra prediction mode selected for the block 80, for example, it may vary particularly between the angular mode and the non-angular mode DC / plane. i The prediction for each sample 134 can be derived based on the number of adjacent samples 134 in the set 118 that is positioned with respect to the sample 134 in a direction opposite to the direction 132. This number is defined, for example, by the kernel of an interpolation filter used to derive the inter-pixel positions between the samples 128 of the sample set 118. i For example, Figure 6 shows that three of the samples 128 in the set 118 are used to calculate the prediction for one of the samples 134 in the currently processed partition 102. Since the average distance 130 is relatively small, the number of reference samples 134 per sample 134 in the partition 102 can be kept low. Further details will be presented below. However, for completeness, the set of available intra prediction modes also includes a DC mode in which one DC value is assigned to all samples 134 in the partition 102, and it should be noted that this DC value is derived by performing an averaging of the set 118 of adjacent samples. i In addition, there may be a plane mode in which the predicted value of the sample 134 is defined by a linear function with respect to the sample positions within the partition 102, and the gradient and offset of this linear function are derived based on the adjacent samples 118. Note also that the adjacent set 118 may vary depending on the intra prediction mode selected for the block 80, for example, it may vary particularly between the angular mode and the 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 2 are DC and planar model-free textures. Block 80 is partitioned / divided into partitions along dimension 104, and the resulting partitions are 1D partitioning modes (simply called 1D partition modes) that extend across the full width of the block in the lateral direction with a 1-sample width or a 2-sample width or more along direction 104, i.e., the predictor derivation 122 performed on partitions 102 / 112 outlined above and below can be combined with any of those partitions or, in other words, can be implemented using any of those partitions. As already explained with respect to FIG. 5, all partitions 102 / 112 of one block 80, such as the coding unit CU, use the same associated intra prediction mode for block 80, whereby the intra prediction mode 116 only needs to be transmitted once in the data stream 14 for block 80, thus avoiding excessive overhead in signaling.

[0055] That is, prediction 122 may be performed in the same way as in the two-dimensional case outlined by the JEM decoder. However, compared to JEM, only one line is calculated, regardless of whether it is horizontal or vertical, for the currently processed partition 102 / 112 so that the prediction process 122 is adjusted accordingly. When selecting the partition order for traversing the partitions in such a way that consecutive 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 neighborhood. In some cases, both HEVC and JEM allow the use of specific filters applied to the reference sample 128 or the resulting predictor. This is useful for the two-dimensional case of predicting samples within the prediction block 80 that are far from the reference sample 128 well in order to reduce boundary discontinuities. However, by using partitioning into partitions 102 / 112, it is possible to utilize the high correlation between neighboring pixels, and that should be the purpose.

[0056] That is, the reduced average distance 130 should be utilized. Excessive smoothing degrades this quality. Thus, if the encoder or decoder can perform both types of intra prediction, i.e., with respect to FIGS. 4 to 6, and intra prediction using partitioning as outlined below, the intra filter, i.e., the filter involved in predictor derivation 122, is disabled, or the intra prediction of the block 80 is performed for the block or according to HEVC, i.e., at least in the two-dimensional case where the block 80 is decomposed into leaf blocks that hierarchically quad-tree sub-divide the rectangular block, the number of contributing samples 134 per partition sample 134 is reduced with respect to the number of samples contributing to one sample.

[0057] As is apparent from the above description, to execute the prediction residual related task 124, the decoder decodes, for example, the transformation of each prediction residual of the currently processed partition from the data stream 14, and performs an inverse transformation such as a spectrum-to-space transformation on this transformation to generate a prediction residual, which is then used to correct the predictor obtained at 122 by combination / addition. The same is done in the encoder to keep the prediction loop synchronized with the decoder. In addition, the encoder performs the transformation of the prediction error of the predictor determined using 122 for the currently processed partition, which undergoes a transformation such as a space-to-spectrum transformation, followed by quantization of the transformation coefficients, and then encodes the transformation into the data stream 14 for the currently processed partition 102 i corresponding data 120 i to generate. With respect to the transformation, all partitions 102 / 112 within block 80 can be processed using this same transformation. This may be DCT-II, for example, except in the case of a planar mode where DST-VII may be used. For this reason, all tools related to the transformation and inverse transformation that the encoder and decoder may use for other blocks such as transformation skip, i.e., encoding in the spatial domain, EMT (EMT = explicit multiple core transformation), NSST (NSST = mode-dependent inseparable secondary transformation), etc., may be disabled when block 80 is encoded using the intra prediction mode with the partitioning method outlined so far with respect to FIGS. 4-7 and further outlined below. Alternatively, the transformation may be a selected type of linear transformation based on one or more of the intra prediction mode, dedicated syntax elements, and a predetermined partition order.

[0058] For the partition order 126 in which the partitions 102 / 112 of the currently processed block 80 are processed sequentially, several terms have already been used. It should be 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. FIG. 7 shows the possible partition / processing order indicated by the arrow 126 in FIG. 5 with inscribed numbers. Here, this order follows the ascending inscribed numbers. FIG. 5 shows an example in which the order 126 starts with the partition containing the upper left pixel / sample 140 of the block 80 and reaches the lowest partition downward. Similarly, when the split type is vertical, the processing order starts from the leftmost partition that again includes the upper left pixel / sample having the head in the right direction. However, this is not optimal for all existing intra prediction modes. This is illustrated in FIG. 7 showing the vertical and horizontal partitions of the block 80 also for the diagonal mode, that is, the copy angle / direction 132 points 45° from the lower left to the upper right, and 34, that is, the copy angle / direction 132 points -45° from the upper left to the lower right. In the former case, when the split is horizontal, the partitions are generated starting from the upper left corner of the block 80, and the reconstructed samples thereof do not affect the prediction of subsequent partitions. As a result, it is more reasonable to start at the lower 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, in the case of vertical splitting, as can be observed in the aforementioned figure, this is not necessary. On the other hand, in mode 34, since the samples appear from both sides in both horizontal and vertical splits, these problems do not occur. Therefore, the normal processing order can be adopted in both splits.

[0059] Table 1 shows a complete list of the processing order according to the intra prediction mode and the split type. [Table 1] Table 1: Processing order by intramode and split type. HOR_DIR and VER_DIR are the horizontal mode and the vertical mode, respectively, and VDIA_DIR is the vertical diagonal mode

[0060] While summarizing the ISP concept described so far regarding the overhead of signal transmission, refer to FIG. 8. FIG. 8 shows what is transmitted for block 80 according to one embodiment of the present application. In particular, there is intra prediction mode signaling 116 regarding which intra prediction mode should be applied to block 80. Thus, signaling 116 indicates one of the angular modes, for example, the angular mode, and one of the available modes including non-angular modes such as DC and planar. In addition to this signaling 116, there is a partition flag 160 that is encoded into the data stream 14 by the encoder and decoded for block 80 by the decoder, which indicates whether the partitioning process according to FIGS. 4 to 7 is applied to block 80, or whether the partitioning process is "normally" processed together, integrally, or two-dimensionally, etc., that is, only the samples outside block 80 are used to form the reference sample reservoir 118 and whether to predict each sample within block 80. Alternatively, flag 160 can switch between the partitioning process described with respect to FIGS. 4 to 7 and the decomposition of block 80 using quadtree sub-division into transform blocks, but then the transform blocks are sequentially processed with the drawback that they must signal the decomposition within the data stream 14. When partition flag 160 indicates the partitioning according to FIG. 4, data stream 14 includes a partition dimension flag 114 that switches between partition types 100 and 110 described with respect to FIG. 4 for block 80. And when partition flag 160 indicates this partitioning option, for each partition of block 80 where block 80 is sub-divided / partitioned, data stream 14 includes signaling / data 1201 having the prediction residual of each partition encoded, such as within the transform region, as described above.

[0061] Regarding FIG. 8, it should be noted that the prediction residual data 1201, 1202... can be encoded into the data stream 14 in the order corresponding to the partition / encoding order 126. The latter can be uniquely determined by the intra prediction mode indicated by the signal transmission 116 as described above. However, an alternative is that the partition order 126 is at least partially determined based on an arbitrarily selected additional signal transmission within the data stream 14.

[0062] A further alternative of the description presented herein is the fact that the signal transmission 116 can alternatively be used to indicate whether a partitioning option is used. In other words, one syntax element may be commonly responsible for the signal transmissions of 116 and 160. Such a syntax element is assumed to be one of the ranges of values corresponding to each of the combination of the intra prediction mode and the indication of whether a 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 can also be conditionally transmitted within the data stream 14 only when the intra prediction mode indicated by the signal transmission 116 assumes a specific subset of the available intra prediction modes.

[0063] FIG. 9 illustratively shows how the data 120 i having the prediction residuals of a specific partition 102 / 112 i looks like. According to FIG. 9, the prediction residuals are encoded into the data stream 14 in the transform domain. That is, the encoder generates the transform 182 of the prediction residuals by the transform 180 using a decoder that derives the prediction residuals and the spatial domain by the inverse transform 184. FIG. 9 shows, for example, the transform coefficients 186 of the transform 182 corresponding to different spectral frequencies f. The data 120 i may include an encoded block flag CBF, and the data 120 imay include an encoded block flag CBF188 indicating whether transform 182 includes a significant transform coefficient 186, i.e., whether transform 182 is exactly zero. When CBF188 is set, transform 182 is not zero and data 120 i may include a final position (LP) syntax element 190 indicating the final position 192 along the increasing spectral frequency (refer to axis 194) of significant transform coefficients, i.e., non-zero transform coefficients 186 starting from the minimum or DC coefficient 196. Next, data 120 i comprises signaling 198 for signaling transform coefficients from 196 to 192.

[0064] That is, FIG. 9 shows each partition 102 i / 112 iIt is shown that it may have its prediction residual encoded in data stream 14 by CBF188, LP190, and transform coefficient data 198. That is, for block 80 having n partitions 102 / 112, there are n CBF188s, one LP190 for each partition having a non-zero CBF188, and transform coefficient data 198 only for those partitions having associated non-zero CBF188s. If the partition is 1 sample wide (otherwise, two coordinates are required as usual), i.e., x is the horizontal split 100 and y is the vertical split 110, each LP190, except for the exception of requiring only one coordinate, is intra-predicted in the same way as for a block 80 where the partition flag 160 indicates a non-partitioned option, and the coefficient data 198 can be encoded. However, in the case of a two-dimensional partition, the LP190 indicates the final position along the scan direction or path using a rank display or using the x and y coordinates. The context of each CBF188 can be selected to be the value of the previously encoded CBF, i.e., the CBF of the partition before the partition in partition order 126. Further, due to partitioning, the transform coefficient data 198 is related to different shapes. That is, the transform 182 also has different shapes. 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 split type 100 or 110.

[0065] Regarding flag 160 and 114 in FIG. 8 and their encoding, the following is noted. Flag 160 indicating whether block 80 should be partitioned into partitions 102 / 112 defines the condition for which flag 114 should be checked for whether it is transmitted within data stream 14 for block 80. In particular, when flag 160 indicates partitioning into partitions 102 / 112, flag 114 is present within data stream 14 and is transmitted to the decoder to signal which type of partitioning 100 / 110, i.e., either horizontal or vertical, should be performed. Similar to flag CBF, flag 114 can also be encoded using context-dependent entropy encoding / decoding. The context of flag 114 can have three possibilities according to the intra prediction mode of block 80, which are 0 for non-angular mode, 1 for horizontal mode, and 2 for vertical mode.

[0066] FIG. 9 shows that CBF 188 can exist once for each partition i of current block 80, and additionally or alternatively, the transform 182 of partition 120i of the current block is divided into one or more sub-blocks each having an encoded sub-block flag signaled for each sub-block within data 120i indicating whether all transform coefficients 186 within that sub-block are zero or at least one of its coefficients is non-zero. Thus, only the coefficients 186 within the sub-block where the encoded sub-block flag signals the presence of non-zero coefficients are encoded, and the other coefficients within the sub-block where the encoded sub-block flag signals the absence of non-zero coefficients are presumed to be zero at the decoder side. Since each partition 120i is transformed separately, it should be noted that the sub-blocks belonging to one partition have different spectral components of the transform 182 of that partition and different transform coefficients 186 of which the sub-blocks are composed. For example, each partition 102 i / 112 ihas dimensions of x (partition width) and y (partition height), and as long as both of them are four or more samples 140, as a result, each partition 102 i / 112 iThe 180-degree transform has dimensions in x and y, and as long as both of those dimensions are four or more coefficients 186, the sub-blocks can be set to be 4x4 coefficient blocks. In the case of a 4×N partition, the sub-blocks form a column of m 4×4 sub-blocks where m*4 = N and m is an integer. In the case of an N×4 partition, the sub-blocks form a row of m 4×4 sub-blocks where m*4 = N and m is an integer. In the case of a wide partition, an array of 4×4 sub-blocks arranged in rows and columns can result. However, depending on the embedding, such partitions, i.e., partitions wider than four samples and / or as wide as four samples, may not occur. Whether or not they occur, in the case of a narrow partition, i.e., a partition where one of its dimensions is less than four samples, i.e., less than four sample widths, in at least one of dimensions x or y, sub-block partitioning the 180-degree transform into different groups of its coefficients can be done so that the sub-blocks have the minimum number M of coefficients in all possible cases for the current block size. That is, the partition can be set to the same size as the block width N along one dimension, and the partitioning can be done along the other dimension 104. Thus, the 180-degree transform for each partition can be of size 1×N, 2×N, N×1, or N×2. In fact, the 180-degree transform for a particular partition can 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 can form a column of m 1×M sub-blocks where m*M = N and m is an integer. In the case of an N×1 partition, the sub-blocks form a row of m M×1 sub-blocks where m*M = N and m is an integer. In the case of a 2×N partition / transform, the sub-blocks can form a column of m 2x(M / 2) sub-blocks where m*(M / 2) = N and m is an integer. In the case of an N×2 partition, the sub-blocks can form a row of m (M / 2)x2 sub-blocks where m*(M / 2) = N and m is an integer. This is illustratively shown in Table 2 for the exemplary case of M = 16 for the minimum number of coefficients.

[0067] Table 2: Entropy Encoding Coefficient Group Size

Table 2

[0068] Figure 9 shows that CBF188 can exist once for each partition i of the current block 80. However, for the current block 80, it can be agreed between the decoder and the encoder that at least one of the n partitions in the partition has a non-zero CBF188. Therefore, if n is the number of sub-partitions and the first n - 1 sub-partitions in the encoding order generate zero CBFs, the CBF of the nth partition is presumed to be 1. Therefore, there is no need to decode it and it is not encoded. Therefore, the CBF of data 120n is missing, which is the CBF of data 1201 to 120 n-1 that are signaled as zero, and the decoder infers this CBF and signals that there is at least one non-zero coefficient in the transformation of that partition.

[0069] As far as the intra-coding mode signal transmission 116 is concerned, the following may hold. The coding mode signal transmission 116 is transmitted as a pointer or index indicating one of the lists of the most probable modes (MPMs). The latter MPM list can be determined in the same way by the encoder and the encoder based on the intra-prediction modes used for previously coded / decoded, intra-predicted blocks, such as spatially and / or temporally adjacent intra-prediction modes. Thus, the MPM list may represent an appropriate 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 described above, in addition to the conventional intra-predicted ones, i.e., collectively, or in units of transform blocks where the intra-predicted blocks are partitioned using recursive quad-tree partitioning, there may be blocks intra-predicted using the LIP or ISP method 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 later normal / conventional intra-predicted blocks, an MPM flag may be signaled in the data stream, the decoder decodes this, the encoder encodes this, indicating whether the mode of that block is selected from the MPM list, in which case a pointer / index to this MPM list is transmitted, the decoder decodes this, the encoder encodes this, and the MPM flag is inferred to signal the MPM list restriction in the case of intra-predicted blocks using the LIP or ISP method such as block 80. When the MPM flag signals that none of the MPM modes are used for a particular normal / conventional intra-predicted block, there is no index / pointer in the data stream for that block, and an alternative pointer / index to the remaining list of intra-prediction modes is transmitted in the data stream for that block instead.The residual list may also be an appropriate subset of the set of available / supported intra prediction modes, and in particular, may be a complementary set of the MPM list compared to the set of available / supported intra prediction modes, i.e., all elements of the set of available / supported intra prediction modes are elements of either the MPM list or the residual set. The pointer / index to the MPM list may be VLC encoded, and the pointer / index to the residual set may be encoded using a fixed-length code. Of course, even for intra-predicted blocks in the LIP or ISP mode, the MPM flag may be transmitted, and further, the encoder may set the MPM flag depending on which of the MPM list or the residual set is thinner for the selected mode, and freely select any mode from the set of available / supported intra prediction modes.

[0070] The MPM lists may be the same, i.e., for normal / conventional intra-predicted blocks and ISP / LIP intra-predicted blocks, they may be determined in the same way by the encoder and the encoder. However, regardless of whether restrictions on the MPM list for signaling the use of the MPM list for ISP / LIP intra-predicted blocks and the inference of the MPM flag are applied, alternatively, to adapt to the statistics of the ISP / LIP mode, for ISP / LIP intra-predicted blocks, the MPM list may be determined in a different way. For example, it may be changed to exclude the DC intra-mode from the MP list and prioritize the horizontal intra-mode for ISP horizontal splitting, i.e., horizontal direction 104, and the vertical intra-mode for vertical splitting, i.e., vertical direction 104. That is, for normal / conventional intra-predicted blocks, the MPM list may form an appropriate subset of the set of available / supported intra-prediction modes, and the modes are selected and ordered according to specific concepts. For ISP / LIP intra-predicted blocks 80, depending on the partition direction 104 signaled by the flag 114 and / or a proper subset of the set of available / supported intra-prediction modes that is less than the DC mode, or less than the DC and planar modes, i.e., an appropriate subset of the angular modes in the set of available / supported intra-prediction modes, the MPM list, the MPM index may point to. The construction of the MPM list based on the intra-prediction mode previously used in previous encoding / decoding may prefer the angular mode in the angular intra-prediction direction close to the horizontal dimension in the case of the flag 114 indicating that the partition direction 104 is horizontal, and may prefer the angular mode in the angular intra-prediction direction close to the vertical dimension in the case of the flag 114 indicating that the partition direction 104 is vertical.

[0071] Regarding the previous description, it should be noted again that, as outlined in this specification, juxtaposition between the normally processed intra prediction mode and the intra prediction mode processed using partitioning is unnecessary. That is, the encoder and decoder can necessarily process the intra-predicted block 80 using the partitioning presented in this specification, and accordingly, for example, the partition flag 160 becomes obsolete. However, if the partition options signaled by the flag 160 are available as a decision for the encoder, the following description reveals the possibilities regarding how the encoder executes the decision, or finds out whether the partition mode should be used for a particular block 80 and which split type, i.e., horizontal or vertical, is the best. To do this, the encoder needs to test both options of different intra prediction modes for each block. The encoder becomes slower because it needs to test many options compared to the case where the encoder has only one option such as the normal option. To reduce this impact, the partition mode signaled by the flag 160 can be tested by encoding according to the following strategy, where FIGS. 10 and 11 are referred to.

[0072] 1) The 1D partition mode is the last intra mode to be tested. 2) Let C be the minimum cost so far at the time when the 1D partition mode is tested. min be that. 3) Select a combination of the 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, its sub-cost J i is calculated. Therefore, the sum of all sub-costs available after partition i is encoded, that is, [Table 3] can be known. This procedure is shown in FIG. 10, and thus shows the accumulation of the 1D partition sub-costs for obtaining the final cost of the entire block. 6) After all partitions are processed, the expression Si < C min is evaluated. If this is true, continue to encode the partition until the end. Otherwise, since it is guaranteed that this test mode does not result in a lower RD cost than C, min the process is interrupted and proceeds to the next combination of intra mode and split type. 7) If all 1D partitions are encoded, the test mode is the best mode and C min is updated accordingly.

[0073] The advantage of this procedure is that since it is already known that the 1D partition mode does not result in a better cost than the existing minimum cost, it is to avoid processing unnecessary 1D partitions. Furthermore, there are no drawbacks in terms of RD loss. The entire process is shown as the flowchart in FIG. 11.

[0074] Note again that all of the above ISP examples showing partitioning as being done within one sample-width stripe crossing direction 104 can alternatively be done in such a way that the partitions become wider, thereby resulting in two-dimensional partitions. Further alternatives regarding partitioning are shown below.

[0075]

[0076] ​1) Assume W and H are powers of 2. The W×H block 80 can be divided horizontally or vertically (e.g., as indicated by the syntax element 114 sent to the decoder) into partitions 102 / 112 equal to K with dimensions w×h, and the values are listed in Table 3. According to Table 3, a block with W = 16 and H = 8 that is predicted using the non-angular intra mode and is targeted for vertical division (i.e., when direction 104 is vertical) is divided into 4 partitions 102, all of which have dimensions w = 16 and h = 2. If the same block 80 is predicted using the angular intra mode, it is divided into 8 partitions 102, each with dimensions w = 16 and h = 1.

[0077]

Table 4

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

[0079]

Table 5

[0080] Alternatively, the width of the partition along dimension 104 can be signaled directly for block 80.

[0081] 3) The W×H block 80 (assuming W and H are powers of 2) can alternatively be w i ×hi K partitions (where K depends on W and H) having dimensions (where i = 1, 2, …, K) can be divided horizontally or vertically (e.g., as indicated by syntax element 114 sent to the decoder). When the division is horizontal, S = H and s i = h i and when it is vertical, S = W and s i = w i .) The various options for the value of s i are listed in Table 5 for different values of S that measure the width of block 80 along dimension 104, and s i measures the width of partition i along dimension 104.

[0082]

Table 6

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

[0084] 4) The W×H block 80 (assuming W and H are powers of 2) can alternatively be divided into K partitions (where i = 1, 2, …, K) having dimensions w i × h i horizontally or vertically (e.g., as indicated by syntax element 114 sent to the decoder). When the division is horizontal, S = H and s i = h i and when it is vertical, S = W and s i = w i .) The value of s i is determined by a syntax element indicating which of the three options presented in example 3) is used to divide the block into sub - partitions.

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

[0086] As far as residual symbolization is concerned, as described above, the same can be done using transform coding. In the data stream, 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 sent to the decoder. Thus, in the case of a block 80 such as a CU having K sub - partitions 102 / 112, for each partition 102 / 112 having a non - zero CBF, there are K CBFs 188 and one LP 190. The context used to code each CBF 188 may depend, for example, along order 126, on the value of the CBFs of previously coded sub - partitions within the same block. Further, to indicate whether the ISP concept is used in all blocks, or within 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 herein is used in all intra - predicted blocks 80 within that range, or whether a part is signaled and treated as a single entity, i.e., split into just one partition, additional syntax elements not yet mentioned may be sent to the decoder within the data stream.

[0087] Similarly, each sub - partition is separately transformed using one transformation, thereby yielding one transformation for each partition 102 / 112 that is not all - zero quantized. As the transformation of a particular partition 102 / 112, a 2D transformation can be used, except when one of the dimensions of that partition 102 / 112 is 1, in which case a 1D transformation is applied. The transform core can be DCT - II or any other transformation determined by existing parameters on the decoder side when the sub - partition is to be decoded. For example, the transformation can be selected according to a combination of intra - mode, sub - partition index, and sub - partition dimensions, or some subset of the latter parameters. It can also be signaled directly to the decoder, or, in other words, signaled in the form of additional syntax elements sent separately, for example, for all partitions within block 80, or for each partition 102 / 112 of one block 80.

[0088] Also, as already described in one aspect, after quantization in a spatial or some intermediate transform domain reached by separately transforming the prediction residual of each partition, the residual of partition 102 / 112 of block 80 can be a transform coefficient to be quantized, or can be the subject of a further lossless or reversible transform. Thus, the decoder can obtain the transform coefficient level of the transformation for the entire block 80, inverse - transform it, and obtain the prediction residual for each partition 102 / 112 in the spatial domain, or the intermediate transform domain from the prediction residual in the spatial domain can be obtained by re - transformation for each partition 102 / 112.

[0089] Furthermore, it has already been described above that the prediction residuals of the various partitions of block 80 are quantized and encoded into the data stream sequentially for each partition, alternately for the individual intra-predictions of these partitions. This has been described with respect to FIG. 5, as well as with respect to FIGS. 10 and 11. However, the decoder does not need to perform decoding by alternately performing residual decoding on the one hand and reconstruction of the various partitions by combining intra-predictions on the other hand and prediction residuals on the other hand. That is, when decoding a particular block 80, the decoder can decouple the decoding of the prediction residuals 120 of the various partitions from the actual reconstruction procedure that includes the individual intra-predictions of the various partitions. Referring to FIG. 5, the decoder decodes the prediction residuals 120 of all partitions, i.e., for block 80, prediction residuals 1201 to 1204, from the data stream 14 according to one processing task, and the decoder, according to another task, uses the prediction residuals 120 i of partition 102 i to reconstruct the interior of block 80 for each partition according to the partition order 126. For this purpose, in a second task, the decoder uses the intra-prediction mode of block 80 to perform an intra-prediction for each partition 120 i , then adds the prediction residual 120 i obtained from the first task, and then steps to the next partition 120 i+1 in the partition order 126 to continue the reconstruction of block 80, and subsequently reconstructs using the prediction residual of that partition to correct the intra-prediction result. The decoder can fully execute the first task of deriving the prediction residuals 120 from the data stream 14 before starting the second task of performing prediction and prediction correction using the prediction residuals, or the decoder can use the prediction residuals 120 of a particular partition 102 i when needed, i.e., when that partition 102 i is, when necessary, i.e., when that partition 102 iWhen the prediction result of i is obtained using the intra prediction mode of the block and needs to be corrected, two tasks can be executed in parallel to ensure that it is prepared. In particular, during the first task or phase, the decoder can perform all inverse transforms in parallel for all non-zero partitions, that is, all partitions 102 signaled to have a non-zero prediction residual 120

[0090] Incidentally, it should be noted that when the residuals 120 i of partition i are quantized in the transform domain, the reconstructed samples of these partitions may deviate from, that is, exceed or fall short of a specific allowable sample value range. As described above, they can function as elements of the reference sample 118j for the subsequent partition j in order 126. According to a variant of the ISP, these samples are left as they are for the purpose of predicting the subsequent partition j in order 126, and clipping of these samples of block 80 is performed as the final clipping step of the entire block 80, thereby enhancing, for example, the convenience of the decoder-side implementation form. Therefore, when deriving the predictor of partition 102 i one or more already reconstructed samples 118 i that function as a reference for the current partition, among which, according to the partition order 126 of this partition 102 iThe reconstructed samples of the partitions preceding [[ID=]] can be used in an unclipped state, where clipping the reconstructed samples from an unclipped state to a clipped state within the allowable sample value range is done finally after performing sequential reconstruction to finally reconstruct a predetermined block. On the encoder side, clipping is only performed to obtain a reconstructed version of such samples that function as a prediction reference for the block to be encoded subsequently in order to maintain reference synchronization with the decoder. However, this type of clipping for the final cleanup is just an example, and clipping can alternatively be performed immediately, i.e., before the reconstructed samples of partition i function as the reference sample 118j of the subsequently processed partition j.

[0091] An example of an ISP is specifically shown below. In particular, according to this example, the data stream 14 is signaled to the intra-coded block 80 coded by the split mode flag 160 regardless of whether it is coded using the ISP method. The corresponding syntax element in the data stream 14 can be named intra_subpartitions_mode_flag. For example, when this flag is 1, the intra-coded block 80 can be coded using the LIP or ISP method, and if not, the block 80 is coded using normal intra prediction. The LIP or ISP method may be available for the current intra-coded block 80 only when, for example, one or more specific conditions are met. The one or more conditions may include, for example, that the intra-coded block 80 needs to exceed a certain minimum size with respect to, for example, the number of samples of the block 80, and / or that the intra-coded block 80 is not allowed to exceed a specific dimension in at least both the horizontal and vertical directions in order not to result in a too large transform size. Exactly, the LSP or ISP mode is available only when the block 80 is below the above-mentioned maximum transform-related size in at least one direction, i.e., the horizontal or vertical direction. Therefore, the intra_subpartitions_mode_flag may exist in the data stream only when the block 80 meets the above conditions. Otherwise, the decoder may presume that the intra-coded block 80 is coded using normal intra coding. In the case of the split mode flag, intra_subpartitions_mode_flag, indicating that the intra-coded block 80 is an LSP or ISP coded block, the partition size flag 114 may be further signaled to the intra-coded block 80. However, this intra_subpartitions_mode_flag is not necessarily explicitly signaled and may be presumed to indicate a specific partition size 104 in certain situations.For example, in the case of an intra-coded block 80 having a width that exceeds the aforementioned maximum transformation size (but having a height that does not exceed it), the partition dimension 104 may be forced to be horizontal, and in the case where the height of the block 80 exceeds the aforementioned maximum transformation size (but the width does not exceed this), the dimension 104 may be forced to be vertical. In either case, the intra_subpartitions_split_flag is not explicitly signaled within the data stream but is inferred as such by the decoder. The intra coding mode 116 may be signaled within the data stream by using the list of the most likely intra prediction modes constructed on both the encoder and decoder sides, as outlined above. For an LIP or ISP intra-coded block 80, the data stream 14 may signal the intra coding mode by means of an MPM list pointer, for example called intra_luma_mpm_IDX, which necessarily points to a list of possible intra prediction modes, but this pointer may be preceded by an MPM flag within the data stream 14 if the intra-coded block is not coded in the ISP manner. For example, if the MPM flag, called intra_luma_mpm_flag, has a specific flag state, instead of a pointer to the most likely intra prediction mode list, a pointer to the reminder list of intra prediction modes is signaled within the data stream. However, as described above, this is merely an example, and the set of signable intra prediction modes may be the same, that is, it may target all supported intra prediction modes for both normal coded intra prediction blocks and ISP intra prediction blocks. For example, the intra_luma_mpm_flag may be sent for both types of intra-coded blocks. Alternatively, the pointers sent for both types of intra-predicted blocks may directly point to the complete list of supported intra prediction modes without an MPM flag for both types of intra-coded blocks.When the intra-encoded block 80 is encoded using the ISP method, the number of partitions 102 / 112 can be defined as follows. In particular, the encoder and decoder can determine the number of partitions depending on the size of the block 80. The signal is not consumed within the data stream. For a small block size, the number can be 2, but otherwise the number of partitions 102 / 112 is 4. The order of the partitions for intra prediction and encoding of the prediction residual within the data stream can proceed sequentially from the leftmost partition along the partition direction 104 in the case of the horizontal direction n14, and from the uppermost partition in the case of the vertical partition direction, to the farthest partition. No signaling is also consumed for this. The residual transformation can be performed for each partition 102 / 112 as described above. That is, each partition can be transformed separately. In comparison with this, in the case of a normal intra-encoded block 80, the number of transformations can depend on the size of the intra-encoded block 80 as follows. When the intra-encoded block is smaller than the aforementioned maximum transformation size in the horizontal and vertical directions, the residual of the intra-encoded block 80 is encoded using one transformation, that is, the residual of the block 80 is entirely the target of one transformation. When the maximum transformation size is exceeded in the horizontal direction, the intra-encoded block 80 is divided horizontally into two halves or the corresponding number so that the transformation block satisfies the maximum transformation size and the residual of the block 80 is the target of one transformation for each half / transformation block. The same applies when the block 80 exceeds the maximum transformation size in the vertical direction. When the maximum transformation size is exceeded in both the vertical and horizontal directions, four or the corresponding number of transformations are used to transform the residual of the block 80 within the four quadrants of this block 80, or the regular two-dimensional sub-division of the block 80, into the corresponding number of transformation blocks. Furthermore, the processing of the normal intra-encoded block 80 can deviate from the processing of the LIP or ISP-encoded intra-encoded block 80 in that the normal intra-encoded block is intra-predicted together.That is, it is not sub-partitioned. A further difference may relate to the coding of the transform for coding the prediction residual of block 80. For each transform, an encoded block flag 188 such as tu_cbf_luma may be transmitted, but for a normal intra-coded block 80, this flag may necessarily be coded for each transform within block 80, and this flag may be presumed to be the flag for the last transform of that block 80 if block 80 is ISB-coded and all previous CBFs for previous transforms are zero. Further, 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. The details are as described above. However, alternatively, the sub-division into sub-blocks of transform 182 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. Then, the sub-block dimensions can be determined as follows.

Table 7

[0092] The above pseudo-code results in sub-blocks of the sizes shown in Table 2. Due to the inherent minimum size of the intra-coded block 80 and the non-sub-division of the normal intra-coded block, only sub-blocks of 4×4 coefficients can occur for the normal intra-coded block 80. Finally, the above example may result in ISP intra-predicted blocks of various sizes that are partitioned only into two partitions 102 / 112, but note that there may be ISP intra-predicted blocks partitioned into a number of partitions greater than two, whether or not such ISP intra-predicted blocks exist.

[0093] This is the starting point for the description of the improved implementation embodiments presented below. The description is presented as an alternative way of processing large ISP blocks as described above while processing ISP blocks of specific sizes such as 4x4, 8x4, 4x8 blocks, but it should be noted that further alternative embodiments can be achieved by transferring the following partition-based intra-coding concept to a block-based codec without the ISP processing of the blocks outlined so far.

[0094] FIG. 12 shows a decoder 20 for block-based decoding of pictures from a data stream 14 according to one embodiment. Thus, a predetermined block 80 can be decoded, whereby the predetermined block can be partitioned into sub-blocks, which can be understood as transformation partitions 300. The data stream 14 can comprise an encoded intra-coding mode 116, an encoded partition dimension flag 114, and some encoded transforms 120 of prediction residuals. The intra-coding mode 116 and the partition dimension flag 114 are signaled, for example, for a predetermined block 80. In contrast, the transform 120 of the prediction residuals is signaled, for example, for individual transform partitions of a predetermined block 80.

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

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

[0097] When partition dimension 1041 is horizontal, a predetermined block 80 is partitioned or divided, for example, into vertical conversion partitions 300 that span the entire vertical height of a predetermined block 801 1b ~300 6b Or, when partition dimension 1042 is vertical, a predetermined block 80 is partitioned or divided, for example, into horizontal conversion partitions 300 that span the entire horizontal width of a predetermined block 802 1a ~300 4a In other words, the decoder is configured to partition a predetermined block 80 into conversion partitions 300 having the same width 1031 or 1032 as a predetermined block 80 perpendicular to a predetermined dimension 1041 or 1042 along the predetermined dimension 1041 or 1042. The predetermined dimension is, for example, partition dimension 104.

[0098] The number of conversion partitions 300 is, for example, more than two, and / or the conversion partitions 300 are one sample width 1011 or 1012 along a predetermined dimension 1041 or 1042. Alternatively, the conversion partitions 300 may be two or more sample widths along 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 a predetermined dimension 104 depending on the size 101a of a predetermined block 80, and / or depending on the intra coding mode 116 of the predetermined block 80, and / or depending on whether the intra coding mode 116 of the predetermined block 80 is an angular mode, along the predetermined dimension 104.

[0100] A predetermined block 80 having a width W and a height H, i.e., W×H dimensions, according to one embodiment, is horizontally or vertically divided into K transform partitions of equal size having, for example, 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 predetermined block 80 based on the intra coding mode 116 based on already reconstructed samples 118 adjacent to the predetermined block 80, and based on the transform 120 of the prediction residual.

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

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

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

[0105] According to one embodiment, the decoder 20 uses context-dependent entropy decoding that uses a context that depends on the encoded conversion partition flag 1881 decoded for the preceding conversion partition, e.g., the first conversion partition 300 1a or 300 1b preceding each respective conversion partition in a predetermined conversion partition order 210, to decode the encoded conversion partition flag 1882 from the data stream 14 for each respective conversion partition, e.g., the second conversion partition 300 2a or 300 2b is configured to be decoded.

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

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

[0108] According to the first option, the conversion partition 300 is sequentially reconstructed by decoder 20. Thus, the decoder intra predicts 1221 a predictor for the first conversion partition 300 1a or 300 1b and corrects this predictor using the conversion 1201 of the prediction residual decoded for the first conversion partition 300 1a or 300 1b and then intra predicts 1222 a predictor for the second conversion partition 300 2a or 300 2b and corrects this predictor using the conversion 1202 of the prediction residual decoded for the second conversion partition 300 2a or 300 2b According to the partitioned predetermined blocks 801 and 802 shown in FIG. 12, for block 802, subsequent conversion partitions 300 3a and 300 4a and for block 801, subsequent conversion partitions 300 3b , 300 4b , 300 5b and 300 6b are intra predicted and corrected accordingly.

[0109] According to the second option, the conversion partition 300 is reconstructed in one step. Thus, the decoder 20 is configured to decode the conversion 120 of the prediction residual from the data stream 14 for each conversion partition 300 and to perform intra prediction 122 of the predictor for each conversion partition 300. The decoding of the conversion 120 is performed, for example, independently of the intra prediction. According to one embodiment, in the reconstruction 123 of a predetermined block 80, all conversions 120 of the prediction residual are decoded by the decoder 20 and all predictors are intra predicted by the decoder 20. In other words, in the reconstruction 123 of a predetermined block 80, for each conversion partition 300, there is the conversion 120 of the prediction residual decoded for each respective conversion partition 300 and the predictor associated with each respective available conversion partition 300.

[0110] According to one embodiment, the decoder 20 is configured to re-convert the conversion 120 into the spatial domain for use in correcting the predictors within each respective conversion partition 300. In other words, an inverse transform can be applied to the transform coefficients of the conversion 120 of the prediction residual to obtain the prediction residual in the spatial domain.

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

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

[0113] FIG. 13 shows an embodiment for decoding transform 120 of the prediction residual of transform partition 300 that can be performed by the decoder shown in FIG. 12 from data stream 14. According to the embodiment, decoder 20 is for a predetermined transform partition 300 3a or 300 3b (The embodiment is shown for a predetermined block 802 partitioned along vertical partition dimension 1042 and for a predetermined block 801 partitioned along horizontal partition dimension 1041) for transform coefficients 120 of one-dimensional transform 1203 31 ~120 36 (associated with transform partition 300 3a ) or 120 31 ~120 34 (associated with transform partition 3003b By decoding a final position indication 1903 that forms a data stream 14 indicating a final transform coefficient position 191 of a transform 1203 along a predetermined scan order 193 (associated with), a predetermined transform partition 300 3a or 300 3b is configured to decode a transform 1203 of a prediction residual of from the data stream 14. Further, the decoder 20, for a predetermined transform partition 300 3a or 300 3b with respect to, transform coefficients 120 of the transform 120 up to the final transform coefficient position 191 along a predetermined scan order 193 31 ~120 33 (associated with the transform partition 300 3a ) or 120 31 ~120 33 (associated with the transform partition 300 3b ) are decoded from the data stream 14, and by presuming that transform coefficients 120 of the transform 120 beyond the final transform coefficient position 191 along a predetermined scan order 193 34 ~120 36 (associated with the transform partition 300 3a ) or 120 34 (associated with the transform partition 300 3b ) are zero, a transform 1203 of a prediction residual of a predetermined transform partition 300 3a or 300 3b is configured to decode from the data stream 14.

[0114] According to an embodiment, the final position indication 190 can be encoded within the data stream 14 in addition to an encoded transform partition flag 188, as described, for example, with respect to FIG. 9. Alternatively, only the final position indication 190 is encoded within the data stream 14 and the encoded transform partition flag 188 is not encoded.

[0115] According to one embodiment, the conversion partition 300 has a width of one sample along a predetermined dimension 104, and the conversion 120 is a one-dimensional conversion.

[0116] FIG. 14 shows an embodiment of an encoder 10 that encodes a picture into a data stream 14 in a block-based manner. The encoder is configured to encode a partition dimension flag 114 into the data stream 14 for a predetermined block 80 of the picture. The partition dimension flag 114 signals that the partition dimension 104 should be set to horizontal 1041 or vertical 1042. The determination 200 by the encoder 10 as to whether a predetermined block 80 should be partitioned and, if so, which partition dimension 104 should be selected depends, for example, on the block size of the predetermined block 80 and / or on one or more partition decisions 200 of the encoder regarding one or more previously encoded blocks of the picture.

[0117] The encoder 10 is configured to partition 105 a predetermined block 80 along a predetermined dimension 104 into conversion partitions 300 that have the same width 103 as the predetermined 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 split when the partition dimension 1041 is horizontal and a horizontal split when the partition dimension 1042 is vertical. The partitioning is optionally performed in the context of the decoder as described in FIGS. 12 and 13 and / or as described with respect to FIGS. 15 to 18.

[0118] Encoder 10 is configured to intra-predict a predetermined block 80 that depends on one or more already reconstructed samples 118 adjacent to the predetermined block 80 in a manner that depends on the intra coding mode 116, to obtain a predictor for the predetermined block 80. This is performed, for example, by the prediction module 44 of the prediction stage 36 that generates the prediction signal 26 by using the intra prediction mode 116. According to one embodiment, the encoder 10 is configured to perform intra prediction individually for each conversion partition 300 of a predetermined block. The conversion partition 300 is, for example, sequentially intra-predicted, converted 28, quantized 32, and encoded 34 to become the data stream 14.

[0119] According to one embodiment, the encoder 10 is configured to encode the intra coding mode 116 into the data stream 14 for a predetermined block 80 of a picture. The encoder 10 is configured to obtain, for example, the prediction residual 24 of each conversion partition of the predetermined block 80 by using the same intra coding mode 116 for the entire predetermined block 80, which can be converted 28, quantized 32, and encoded 34 to become the data stream 14.

[0120] The encoder 10 is configured to encode the conversion 120 of the prediction residual into the data stream 14 for each conversion partition 300. As a result, the predetermined block 80 can be reconstructed by correcting the predictor within each conversion partition 300 by using the encoded conversion 120 of the prediction residual for each conversion partition 300. In other words, the encoder 10 is configured to convert 28, for example, the prediction residual 24 within each partition 300 into a spectral region for use in correcting the predictor within each respective conversion partition 300.

[0121] According to one embodiment, the number of conversion partitions is greater than 2 and / or the conversion partitions are 1 sample width along a predetermined dimension.

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

[0123] According to one embodiment, if none of all preceding encoded transform partition flags, for example, all preceding encoded transform partition flags 1881 to 1887 for vertical partitioning or all preceding encoded transform partition flags 1881 to 1883 for horizontal partitioning are set and it is speculated that they will be set later, in the transform partition order 210, for the final transform partition, for example, the transform partition 300 for vertical partitioning 8b or the transform partition 300 for horizontal partitioning 4b excluding the encoded transform partition flag, for example, the encoded transform partition flag 1888 for vertical partitioning or the encoded transform partition flag 1884 for horizontal partitioning, encoder 10 is configured to sequentially encode the encoded transform partition flag 188 for transform partition 300 into data stream 14.

[0124] According to one embodiment, the encoder 10 uses context-dependent entropy encoding that uses a context that depends on an encoded transform partition flag 188 encoded for a preceding transform partition 300 preceding each transform partition 300 in a predetermined transform partition order 210, to encode the encoded transform partition flag 188 into the data stream 14 for each transform partition 300.

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

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

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

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

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

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

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

[0132] The following describes the extension of the Intra Sub-Partition (ISP) coding mode to 4×4, as well as the change in the number of sub-partitions for 4×8 and 8×4 blocks, and the extension is motivated. There are sub-partitions that are independent of each other to maintain the worst-case scenario throughput of 16 samples / cycle. The experimental results show gains of 0, 1%, and 0.47% for CTC and class F respectively for the AI configuration, and gains of 0, 01%, and 0.25% for CTC and class F respectively in the case of RA. The impact on the encoding runtime is 102% for the AI case and 100% for the RA case.

[0133] Additional test results are provided regarding the impact of extending the ISP concept to all ISP blocks that generate sub-partitions with a width smaller than four. The 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) in the case of RA. On the other hand, the impact of completely removing sub-partitions with a width smaller than four in the current ISP design is being tested. This additional information shows losses of 0.14% and 0.31% for CTC and class F respectively for the AI configuration, and losses of 0.04% and 0.23% for CTC and class F respectively in the case of RA.

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

[0135] Table 6: Number of sub-partitions created by ISP according to CU size in the current VVC draft

Table 8

[0136] Each sub - partition is predicted, transformed, quantized, and the entropy - coded coefficients are sent to the decoder. Next, the reconstructed samples of the sub - partition are used to generate the prediction of the next sub - partition, and the intra - modes used are shared among all sub - partitions.

[0137] Since this process is on the intra - prediction critical path (in the general case, a sub - partition cannot be decoded until the reconstructed samples of the previous sub - partition are obtained), it is necessary to perform at least 16 samples per sub - partition, thereby guaranteeing a worst - case scenario throughput of 16 samples / cycle. This is the reason why 4×8 and 8×4 blocks actually have two sub - partitions (instead of four) and 4×4 blocks cannot be sub - divided.

[0138] The following description presents an extension of the ISP that enables its use with 4×4 blocks while maintaining a 16 - samples / cycle throughput constraint and changing the number of sub - partitions in the case of 4×8 and 8×4 blocks. This goal can be achieved by generating sub - partitions that are independent of each other, that is, by not using the reconstructed samples of a sub - partition to predict the next one.

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

[0140] Note that the subsequent presentation of specific modifications in the ISP represents only the presentation of possible embodiments, and its variations are readily available. For example, less complex or straightforward forward variations are described in Section 6 below.

[0141] 2 ISP Extension to New Block Sizes The ISP changes introduced in this contribution affect 4×4, 8×4, and 4×8 blocks.

[0142] 2.1 4×4 Blocks According to the embodiments shown in FIGS. 15 and 16, a given block 80 is divided into four 4×1 (horizontal split: hor.split) or 1×4 (vertical split: ver.split) partitions. However, each of their prediction signals 122 is generated using the adjacent sample 118 at the CU boundary as a reference sample. Thus, each sub - partition (i.e., transform partition 300) is independent of each other and all of them can be processed in parallel in a single step. In other words, re - using the terms applied above, the block 80 is not partitioned or left as one partition 112, and all the reference samples 118 used for intra - prediction or prediction derivation are outside the block 80. Partitioning is rather applied to transform - based residual coding as outlined below. Here, one partition 112, i.e., the block, is partitioned into transform partitions 300, and each of the transform partitions is transformed separately, resulting in respective transforms 182 encoded in the manner described above with respect to the data structure 120.

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

[0144] Note that the prediction samples for all the transform partitions 300 are the same as those generated for the blocks that do not use the ISP (excluding the reference samples and the PDPC filtering operations that are disabled for all ISP blocks). The difference between the 4×4 blocks that use the ISP and those that do not lies in the transform (there are four 1D transforms in the case of the ISP and a single 4×4 transform in the non-ISP case) and the entropy coding of the coefficients.

[0145] 2.2 8×4 and 4×8 Blocks According to the embodiments shown in FIG. 17 or FIG. 18, the ISP design is modified such that the number of transform partitions 300 becomes 4 and the number of sub-partitions 1121 and 1122 becomes 2. Each of the sub-partitions 1121 and 1122 is further sub-divided into two transform partitions 300. As shown in the embodiments 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 of transform partition 1, and similarly, transform partition 4 is independent of 3. Thus, an 8×4 or 4×8 block can be processed in two cycles, which corresponds to a total of 16 samples / cycle. The figure shows this for both horizontal and vertical partitioning.

[0146] FIG. 17 shows an embodiment of the vertical splitting of a given block 80. The given block 80 is, 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. The reconstructed samples from transform partition 2 can be used to predict transform partition 3, but the reconstructed samples from transform partitions 1 and 3 cannot be used to predict 2 and 4, respectively. The vertical splitting corresponds to the partitioning along the horizontal partition dimension.

[0147] FIG. 18 shows an embodiment of a horizontal division of a predetermined block 80. The predetermined block 80 is, for example, an M×4 block divided into four M×1 transformation blocks where M≧8, an N×8 block divided into four N×2 transformation partitions 300 where N≧4, or an O×16 block divided into four O×4 transformation partitions 300 where O≧4. The reconstructed samples from transformation partition 2 can be used to predict transformation partition 3, but the reconstructed samples from transformation partitions 1 and 3 cannot be used to predict 2 and 4, respectively. The horizontal division corresponds to a partitioning along the vertical partition dimension.

[0148] As shown in FIGS. 17 and 18, the decoder according to the present specification performs intra prediction 122 on a predetermined block 80 that depends on one or more already reconstructed samples 1181 adjacent to the predetermined block 80 in a way that depends on the intra coding mode to obtain a predictor for the predetermined block 80, and for the current sub - partition, for example, sub - partition 1121 shown in FIG. 17 or sub - partition 1021 shown in FIG. 18, before proceeding to the next sub - partition, for example, sub - partition 1122 shown in FIG. 17 or sub - partition 1022 shown in FIG. 18, according to a predetermined sub - partition order 126 that sequentially traverses the sub - partitions 102 / 112 along a predetermined dimension 104, the conversion partitions 300 of the predetermined block 80 are grouped such that the conversion partitions 300 form sub - partitions, for example, 1121 and 1122 shown in FIG. 17, or 1021 and 1022 shown in FIG. 18, and the decoder is configured to reconstruct the predetermined block 80 by sequentially reconstructing groups of the conversion partitions 300 and using the conversion of the decoded prediction residuals for each conversion partition 300 to correct the predictor within each conversion partition 300. The decoder is configured to derive 122 the predictor of the current sub - partition by filling the current sub - partition that depends on one or more already reconstructed samples 1181 adjacent to the current sub - partition in a way that depends on the intra coding mode. Further, the decoder is configured to reconstruct the current sub - partition by using the conversion of each conversion partition 300 to correct the predictor within each conversion partition 300 included in the group of conversion partitions that form the current sub - partition.

[0149] As shown in FIGS. 17 and 18, the encoder described herein is similar to the decoder and performs intra prediction 122 on a predetermined block 80 that depends on one or more already reconstructed samples 1181 adjacent to the predetermined block 80 in a way that depends on the intra coding mode to obtain a predictor for the predetermined block 80, and fills the current sub - partition that depends on one or more already reconstructed samples 1181 adjacent to the current sub - partition in a way that depends on the intra coding mode. By doing so, for example, to derive a predictor for the current sub - partition, such as sub - partition 1121 shown in FIG. 17 or sub - partition 1021 shown in FIG. 18, the conversion partition 300 of the predetermined block 80 sequentially traverses the sub - partitions 102 / 112 along a predetermined dimension 104. According to a predetermined sub - partition order 126, for each group of conversion partitions, sub - partitions, such as 1121 and 1122 shown in FIG. 17 or 1021 and 1022 shown in FIG. 18, are grouped to form a group of conversion partitions 300, and the group of conversion partitions 300 is sequentially predicted. And before proceeding to the next sub - partition, such as sub - partition 1122 shown in FIG. 17 or sub - partition 1022 shown in FIG. 18, by correcting the predictor within each conversion partition 300 composed of the group of conversion partitions that form the current sub - partition 102 / 112 to be useful for reconstructing the current sub - partition, and by determining the conversion of the prediction residual within each conversion partition 300 composed of the group of conversion partitions that form the current sub - partition 102 / 112, the prediction residual of the predetermined block 80 for correcting the predictor within each conversion partition 300 using the conversion of the prediction residual to be encoded for each conversion partition 300 is determined and is configured to perform.

[0150] According to FIGS. 17 and 18, the decoder and / or encoder is configured to use already reconstructed samples 1181 adjacent to a predetermined block 80 to perform a prediction 122 of predictors of first and second transform partitions 300 grouped together to form, for example, a first sub-partition, such as sub-partition 1121 shown in FIG. 17 or sub-partition 1021 shown in FIG. 18. The decoder uses, for example, already reconstructed samples 1182 adjacent to the predetermined block 80 and / or already reconstructed samples 1182 of a second transform partition 300 adjacent to the third transform partition 300 to perform a prediction 122 of predictors of third and fourth transform partitions 300 grouped together to form a second sub-partition, such as sub-partition 1122 shown in FIG. 17, or sub-partition 1022 shown in FIG. 18. In other words, the decoder is configured to use, for example, already reconstructed samples 1182 adjacent to the second sub-partition 1122 / 1022 to perform a prediction 122 of predictors of the transform partitions 300 of the second sub-partition 1122 / 1022, and at least a portion of the already reconstructed samples may be associated with already reconstructed samples of a preceding sub-partition, such as sub-partition 1121 shown in FIG. 17, or sub-partition 1021 shown in FIG. 18.

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

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

[0153] According to one embodiment, the decoder and / or encoder are configured such that the number of conversion partitions 300 per sub - partition 102 / 112 is 1 when the dimensions of the given block 80 exceed a given threshold, and is greater than 1 when the dimensions of the given block 80 do not exceed the given threshold. When the given block exceeds a certain dimension, it is advantageous to refrain from further dividing the sub - partition in order to further enhance the decode runtime or encode runtime. The given threshold is, for example, a block dimension of 64×64 samples. In other words, the use of the ISP is limited to the dimensions of the given block 80 that do not exceed the given threshold.

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

[0155] According to one embodiment, the decoder and / or encoder is configured such that the number of sub-partitions 102 / 112 within a given block 80 is 1 when the dimension of the given block 80 is below a further given threshold, and greater than 1 when the dimension of the given block 80 is not below the further given threshold. The further given threshold is determined such that, for example, the given block 80 includes at least 16 samples. The further given 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, as shown in FIGS. 15 or 16, the given block 80 comprises, for example, one sub-partition having four 1×4 transform partitions or four 4×1 transform partitions. In the case of 2×8 samples, the given block 80 comprises, for example, one sub-partition having two 1×8 transform partitions, and in the case of 8×2 samples, the given block 80 comprises, for example, one sub-partition having two 8×1 transform partitions. For a given block dimension of 1x16 or 16x1 samples, the entire block is simultaneously a sub-partition and a transform partition. When the given block 80 comprises only one sub-partition, this sub-partition is, for example, equal to the entire given block 80. Alternatively, as shown in FIGS. 17 and 18, a greater dimension of the given block 80 can result in two or more sub-partitions comprising two or more transform partitions.

[0156] According to one embodiment, the number of sub - partitions within 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 a second number, which 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. The decoder and / or encoder are configured such that the number of sub - partitions within a given block depends on the dimensions of the given block. As shown in FIGS. 15 - 18, for blocks having equal width and height, the number of sub - partitions is different compared to blocks having the same width but different heights. A given block 80 having a 4×4 dimension, for example, is not divided, i.e., the entire block represents one partition (i.e., sub - partition) having four transform partitions. Conversely, a given block having a 4×8 dimension or an 8×4 dimension is divided into two sub - partitions. This can also be applied to larger blocks. For example, a given block 80 having a 128x128 dimension is not divided, but a given block 80 having a 128x64 dimension can be divided vertically (along the horizontal partition dimension) into four sub - partitions.

[0157] 3 Experimental Results According to general test conditions [2], the proposed method is evaluated for intra - only (AI), random access (RA), and low - delay b (LDB) configurations using the VTM - 4.0.1 software. The corresponding simulations were run on an Intel Xeon cluster (E5 - 2697A v4, AVX2 on, turbo boost off) with a Linux® OS and GCC 7.2.1 compiler.

[0158] Table 7: Results of AI Configuration

Table 9

[0159] Table 8: Results of RA Configuration

Table 10

[0160] Table 9: Results of LDB configuration

Table 11

[0161] 4 Additional information 4.1 Use of sub - partitions with widths smaller than four Samples are typically assigned in a raster scan pattern, and the use of sub - partitions with widths smaller than four has been mentioned in the JVET reflector as a potential concern for hardware since certain embodiments write the output of a 4×1 group of reconstructed samples. Thus, for example, 1xN or 2xN sub - partitions can pose problems. Prediction from 1×N sub - partitions is not a major problem; writing 1×N sub - partition data is a problem because data is typically written horizontally with four or eight samples per cycle. To make this work, a 4×N intermediate buffer (register) has to be held to store this data and then, for example, write four samples to memory at a time (e.g., for non - blocking). The same problem occurs when reading the 1xN inverse transform output for reconstruction. This increases latency and may also require double buffering. Therefore, additional information is provided below to evaluate the impact of the use of these sub - partitions.

[0162] 4.1.1 Removal of sub - partitions with widths smaller than four This change affects the vertical splitting of 4×N and 8×N blocks as follows. · 4×N: There is no longer a vertical split, i.e., it follows the horizontal partition dimension. Therefore, whenever the ISP is used in one of these blocks, the decoder or encoder assumes that a horizontal split is used and thus does not need to analyze the split flag syntax element. Therefore, for example, instead of a 1xN transform partition, a 4x1 transform partition is used. · 8×N: The vertical split generates two sub-partitions instead of four. Therefore, a given block 80 is split into 4×N sub-partitions instead of, for example, 1×N or 2×N sub-partitions.

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

[0164] Table 10: Results without sub-partitions having a width smaller than four for the AI configuration

Table 12

[0165] Table 11: Results without sub-partitions having a width smaller than four for the RA configuration

Table 13

[0166] Table 12: Results without sub-partitions having a width smaller than four for the LDB configuration

Table 14

[0167] 4.1.2 Extension of ISP Using an Independent Sub-Partition Approach to Sub-Partitions with a Width Smaller Than Four In this case, sub - partitions having 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. Two different cases are distinguished as follows. · The vertical splitting of a 4×N block is processed in the same way as the vertical splitting of the 4×4 block described in Section 2.1. For example, a 4×32 block can be vertically split into four independent 1×32 transform partitions 300 that form one partition 112. · The vertical splitting of an 8×N block is processed in the same way as the vertical splitting of the 8×4 block described in Section 2.2. For example, an 8×16 block can be split 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] This method enables writing the reconstructed samples in groups of at least 4×4 samples for all cases of vertical splitting (for horizontal splitting, the minimum remains 16×1). The results of this approach (using independent transform partitions of 4×4, 4×8, 8×4, and vertical splitting of 4×N and 8×N blocks) added to VTM - 4.0.1 are shown in Tables 13, 14, and 15.

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

[0170] Table 13: Results of using independent sub - partitions of 4×4, 4×8, 8×4, and vertical splitting of 4×N and 8×N blocks for AI configuration

Table 15

[0171] Table 14: Results of using independent sub - partitions of 4×4, 4×8, 8×4, and vertical partitioning of 4×N and 8×N blocks for the RA configuration

Table 16

[0172] Table 15: Results of using independent sub - partitions of 4×4, 4×8, 8×4, and vertical partitioning of 4×N and 8×N blocks for the LDB configuration

Table 17

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

[0174] Regarding the additional information presented, the experimental results show that the removal of sub - partitions with widths smaller than 4 results in significant losses in Classes C and E in AI and in Class F for all configurations. Furthermore, this loss decreases slightly in the encoding runtime. On the other hand, considering that the extension of the new ISP design to blocks that generate sub - partitions with widths smaller than 4 does not generate losses and generates significant gains in Class F with a very small impact on the encoding runtime, it has better performance regarding the BD - rate gain than the complete removal of these sub - partitions.

[0175] 6 Aspects of Reducing the Complexity of the ISP Partition Structure As already described above, there are variant forms of the above concepts, and there is one here. As outlined above, in a normal decoder hardware implementation form, one of the most important aspects that affects the top-level system pipeline is processing dependency. In the case of ISP, since the minimum luma block of VVC has a size of 4×4, that is, 16 samples, the minimum 16-sample constraint ensures that the loop-in dependencies present in intra prediction do not pose a problem with respect to throughput.

[0176] However, ISP introduces new and extremely narrow shapes into the VVC design, namely 1xN, 2xN, Mx2, and Mx1. Considering that pixels are usually allocated in the internal line buffer memory in a raster scan manner to access samples within a group of 4×1, in the case of 1×N and 2×N sub-partitions, processing dependency may become a problem. Therefore, filling this buffer is inefficient for all sub-partitions having a width of less than 4. The impact of this problem can be reduced by different hardware implementation forms (such as changing the pixel allocation method or using transposed memory), but it still means an increase in the complexity of the hardware implementation form.

[0177] FIG. 19a and FIG. 19b show examples of different sub-partitions 112 / P and transform partitions 300 / T for different block sizes of a predetermined block 80. 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 predetermined block 80 on the right side of FIG. 19a can be performed in the same manner as FIGS. 15a to 15d or as described, and the decoding and / or encoding of the predetermined block 80 on the right side of FIG. 19b can be performed in the same manner as FIG. 17 or as described.

[0178] To reduce the complexity of the hardware implementation form, four minimum prediction widths (while the transform size remains unchanged) are established. This affects the vertical partitioning of 4xM (where M>4) and 8xN (where N>4) blocks as follows. ·4xM: As shown in Figure 1a, the entire block is predicted at once as if it were a non-ISP block, and a 4xM residual signal is calculated. The residual is then divided into four 1xM (or two 2x8 when M = 8) transform sub-partitions that are processed independently. ·8xN: As shown in Figure 1b, the block is divided into two 4xN prediction sub-partitions P1 and P2. After calculating the prediction for P1, a 4xN residual signal is generated and divided into two 2xN transform sub-partitions T1 and T2 that are processed independently. Then, the same process is repeated for P2, T3, and T4. However, in this case, the prediction signal may use the reconstructed samples of the P1 area.

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

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

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

[0182] Depending on the particular implementation, embodiments of the present invention may be implemented in hardware or software. The implementation may be carried out using a digital storage medium, such as a floppy disk, a DVD, a Blu-Ray, a CD, a ROM, a PROM, an EPROM, an EEPROM, or a flash memory, which stores electronically readable control signals thereon and which cooperate (or are capable of cooperating) with a programmable computer system so that respective methods are executed. Thus, the digital storage medium may be computer-readable.

[0183] Some embodiments according to the present invention include a data carrier having electronically readable control signals that cooperate with a programmable computer system so that one of the methods described herein is executed.

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

[0185] Another embodiment comprises a computer program for executing one of the methods described herein, stored on a machine-readable carrier. Thus, in other words, in one embodiment of the method of the present invention, when the computer program is executed on a computer, the computer program has program code for executing one of the methods described herein.

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

[0187] Thus, a further embodiment of the method of the present invention is a data stream or sequence of signals representing a computer program for executing one of the methods described herein. The data stream or sequence of signals can be configured to be transferred, for example, via a data communication connection, such as via the Internet.

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

[0189] A further embodiment according to the present invention comprises an apparatus or system configured to transfer (e.g., electronically or optically) a computer program for executing one of the methods described herein to a receiver. The receiver can be, for example, a computer, a mobile device, a memory device, etc. The apparatus or system can comprise, for example, 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. Generally, the methods are preferably performed by any hardware device.

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

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

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

[0194] The methods described herein, or any component of the apparatus described herein, may be performed at least partially by hardware and / or software.

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

Claims

【Claim 1】 A decoder for block-based decoding of a picture (12) from a data stream (14), decoding an intra coding mode (116) for a predetermined block (80) of the picture from the data stream (14); decoding a partition dimension flag (114) for the predetermined block of the picture from the data stream and setting a partition dimension (104) depending on the partition dimension flag horizontally or vertically; partitioning the predetermined block (80) into a transform partition (300) having the same width as the predetermined block perpendicular to the predetermined dimension along the predetermined dimension (104); decoding a transform (182) of a prediction residual for each transform partition from the data stream; intra predicting the predetermined block depending on one or more already reconstructed samples adjacent to the predetermined block in a manner depending on the intra coding mode to obtain a predictor for the predetermined block; reconstructing the predetermined block by correcting (122) the predictor within each transform partition using the transform of the prediction residual decoded for each respective transform partition; A decoder configured to perform the above.

Citation Information

Patent Citations

  • Partition-based intra coding concept

    WO2019154936A1

  • Intra sub-partitions in video coding

    WO2020185910A1