An implementation-efficient partition-based intra coding concept
The ISP coding mode addresses inefficiencies in block-based codecs by limiting sub-partitions and optimizing intra-prediction, improving efficiency and accuracy in intra-coding processes.
Patent Information
- Application Number
- JP2025068141
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-03-12
- Filing Date
- 2025-04-17
- Publication Date
- 2026-01-20
- Estimated Expiration
- 2040-03-11
AI Technical Summary
Existing block-based codecs face inefficiencies in intra-coding due to high signaling overhead and reduced prediction accuracy for larger blocks, necessitating improved implementation efficiency without compromising coding efficiency.
The Intra Sub-Partition (ISP) coding mode limits the number of sub-partitions per block, allowing independent prediction and transform processing, with options for global, sequential, or grouped intra-prediction based on block size and shape, ensuring a minimum sample width and throughput.
This approach enhances implementation efficiency by reducing signaling overhead and maintaining coding efficiency through optimized partitioning and prediction strategies.
Smart Images

Figure 0007802990000022 
Figure 0007802990000023 
Figure 0007802990000024
Abstract
Description
[Technical Field]
[0001] This application relates to an intra-coding concept for use in block-based codecs, such as hybrid video codecs. [Background technology]
[0002] Given a particular block, intra prediction is performed in HEVC by extrapolating the decoded boundary samples of neighboring blocks according to a specific pattern: 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. Although codecs supporting many intra prediction modes (IPM) are known, finding good intra predictors that result in high coding efficiency for the intra predictions achieved thereby remains a subject of development. This applies not only to HEVC but also to other block-based codecs that use intra prediction. To find a suitable set of intra prediction modes for efficiently coding the inside of a block, it is necessary to consider the overhead of signaling intra prediction modes in terms of signaling overhead, and the resulting quality of the predictors obtained by these intra prediction modes, since more accurate predictors reduce the prediction residual, thereby reducing the signaling overhead associated with coding the prediction residual. To keep the signaling overhead associated with intra-prediction modes low, intra-predicted blocks must be large, i.e., the granularity at which intra-prediction modes are signaled must be kept coarse. On the other hand, spatial prediction of larger blocks tends to be less accurate due to the long average sample distance of samples inside the intra-predicted block, i.e., the predicted block, to already decoded / encoded samples, i.e., reference samples, that neighbor the block. HEVC somewhat alleviates this dilemma by allowing transform residual blocks to inherit the intra-prediction mode of the corresponding coding unit, where the transform residual blocks form leaf blocks into which the coding unit is subdivided by multi-tree subpartitioning. However, this still requires signaling overhead for signaling the subpartitioning of each intra-coded coding unit into transform blocks from the encoder to the decoder. Summary of the Invention [Problem to be solved by the invention]
[0003] An emerging intra-coding concept, represented by the Intra Sub-Partition (ISP) coding mode in the emerging Versatile Video Coding (VVC) standard, requires improved implementation efficiency.
[0004] Therefore, it would be desirable to have a concept that would further increase the implementation efficiency of intra coding with comparable coding efficiency.
[0005] It is therefore an object of the present invention to provide a more efficient intra-coding concept. [Means for solving the problem]
[0006] This object is achieved by the subject matter of the independent claims of the present application.
[0007] Advantageous aspects of the invention are the subject matter of the dependent claims.
[0008] In accordance with a first aspect of the present invention, the inventors of the present application have recognised that one problem encountered when using sub-partitioning in connection with intra-coding is that the number of sub-partitions per block for which predictions are made independently should be limited taking into account the resulting sub-partition size, e.g. a desired minimum throughput of 16 samples per cycle and / or a minimum width of the coding advance per coding cycle, such as a minimum 4 sample wide advance per prediction. These considerations led to the idea of interpreting the flag-controlled intra-prediction mode / decision for an intra-coded (predetermined) block, which leads to the partitioning of this predetermined block from the perspective of prediction residual transform, and further to sub-partitioning from the perspective of intra-prediction, i.e., whether a predetermined block is intra-predicted in a joint manner (at once), or whether transform partitions are used for sequential, partition-wise intra-prediction with intermediate use of the prediction residual and correction of the just intra-predicted sub-partition, which also uses the same for the intra-prediction of the next sub-partition, or whether a group of transform partitions for a prediction sub-partition can be freely implemented as needed, such as rendering the latter selection dependent on the block size, for example, in order to avoid intra-prediction that results in too few samples per intra-prediction performed or too small a width advance of the intra-prediction. It should be noted that the encoding and decoding of transform partitions may be performed independently between transform partitions, i.e., they may be encoded / decoded in parallel, thereby not causing the issue of minimum samples per cycle or width advance per cycle. This allows for partitioning of intra-predicted blocks into partitions with, for example, fewer than 16 samples, since multiple partitions may be intra-predicted and reconstructed in the same cycle. It is advantageous if all sub-partitions encoded or decoded in the same cycle together contain at least 16 samples.Again, according to the variants described in this specification, the encoded code supports many block sizes, and depending on the size of a given intra-predicted block and / or its width and / or height, the decoder and encoder set the partitions for prediction to result in one of the following options:
[0009] 1) globally, i.e., all at once, or as a whole, predicting intra-predicted blocks (i.e., predicting the entire block at once, or, in other words, predicting all samples in a block based on neighboring samples located exclusively outside the block, and processing the transform partitions of the block independently (i.e., the transform is performed region-by-region within each transform partition)); and / or 2) sequential intra prediction in units of transform partitions that then also serve as prediction sub-partitions (i.e., predicting a transform partition, obtaining reconstructed samples within that transform partition, and encoding / decoding a prediction residual for that transform partition, and then predicting the next transform partition within a given block using the reconstructed samples obtained for the previous transform partition, and encoding / decoding a prediction residual for the next transform partition, etc.); and / or 3) Sequential intra prediction in units of groups of transform partitions (each transform partition belongs to exactly one partition group) (in other words, for example, predict a group of transform partitions, i.e., a prediction subpartition, based on adjacent samples located exclusively outside that prediction subpartition, obtain reconstructed samples in that prediction subpartition in units of transform partitions within that prediction subpartition, and encode / decode prediction residuals for that prediction subpartition (i.e., the transform is performed region by region within each transform partition), and then predict the next group of transform partitions in a given block, i.e., the next prediction subpartition, using the reconstructed samples including the samples obtained for the previous prediction subpartition but excluding the samples located in the next prediction subpartition, and encode / decode prediction residuals for the next prediction subpartition in units of transform partitions, etc.).
[0010] Therefore, according to a first aspect of the present application, a decoder for block-based decoding of a picture from a data stream is configured to decode, for a given block of the picture, an intra-coding mode from the data stream. The decoder is configured to decode, for the given block of the picture from the data stream, a partition dimension flag and set a partition dimension depending on the partition dimension flag to horizontal or vertical. In other words, the partition dimension flag indicates whether the partition dimension is horizontal or vertical. The decoder is configured to partition the given block along the given dimension (i.e., along the partition dimension) into transform partitions of the same width as the given block perpendicular to the given dimension. If the partition dimension is vertical, the transform partitions may be associated with vertical blocks stacked vertically, and if the partition dimension is horizontal, the transform partitions may be associated with vertical blocks arranged side by side horizontally. The decoder is configured to decode, for each transform partition, a transform of a prediction residual from the data stream. Furthermore, the decoder is configured to reconstruct the given block by intra-predicting the given block depending on one or more already reconstructed samples neighboring the given block in a manner that depends on the intra-coding mode to obtain a predictor for the given block, and correcting the predictor in each transform partition using a transform of the decoded prediction residual for the respective transform partition.
[0011] According to a first option, the decoder is configured to reconstruct the transform partitions by sequentially intra-predicting the predictors for any transform partition, one after the other, and correcting the predictors in each transform partition using the transform of the decoded prediction residual for the respective transform partition.
[0012] According to a second alternative, the decoder is configured to intra-predict a predictor for each transform partition, and decode the transformation of a prediction residual for each transform partition from the data stream.The decoder is then configured to reconstruct a given block by correcting the predictor using the transformation of the prediction residual decoded for each transform partition.Therefore, first, all predictors are intra-predicted, and all transformations of the prediction residual are decoded.Then, all transform partitions are reconstructed by correcting the predictor in each transform partition using the transformation of the prediction residual decoded for each transform partition.Therefore, for example, all predictors are corrected in one step.
[0013] In contrast, according to the first option, any transform partition is reconstructed one after another. In other words, according to the first option, for a current transform partition, a predictor is intra predicted and corrected, and then for a subsequent transform partition, a new predictor is intra predicted and corrected.
[0014] According to a third alternative, the decoder is configured to intra-predict the entire predetermined block in one step to obtain a prediction signal (i.e., a predictor) and divide this prediction signal into predictors, for example, for transform partitions of the predetermined block. According to one embodiment, each predictor is associated with a different transform partition. The transform partitions are, for example, processed independently by the decoder. Thus, for example, the decoder is configured to reconstruct the predetermined block by decoding, for each transform partition, the transformation of the prediction residual from the data stream and correcting the predictor using the transformation of the decoded prediction residual for each transform partition. Alternatively, this is not performed for the entire block at once, but for sub-partitions of the predetermined block, which may be further divided into transform partitions. In this case, for example, the decoder is configured to intra-predict sub-partitions of the predetermined block in one step to obtain a prediction signal (i.e., a predictor) and divide this prediction signal into, for example, predictors for the transform partitions of the sub-partitions of the predetermined block.
[0015] According to one embodiment, the decoder is configured to divide a given block into sub-partitions depending on the block size, 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 of various partitionings performed by the decoder. It is clear that other sub-partitions and / or transform partitions can also be realized by the decoder.
[0016] 4x4 blocks (Example 1) Horizontal Split (Hor.Split): One 4x4 PU (Prediction Unit) and four independent 4x1 TUs (Transform Units). Vertical Split (Ver. Split): One 4x4 PU and four independent 1x4 TUs. In other words, the entire 4x4 block is predicted at once, and then divided into four transform partitions to be processed independently.
[0017] 8x4 blocks (Example 2) Horizontal split (Hor.Split): two 8x2 PUs and four 8x1 TUs. The second PU is predicted using the reconstructed samples of the second TU. Vertical split (Ver.Split): two 4x4 PUs and four 2x4 TUs. The second PU is predicted using the reconstructed samples of the second TU. In other words, an 8x4 block is divided into two subpartitions (i.e., PUs), and each subpartition is divided into two transform partitions that are processed independently.
[0018] 4x8 blocks (Example 3) Horizontal split (Hor.Split): two 4x4 PUs and four 4x2 TUs. The second PU is predicted using the reconstructed samples of the second TU. Vertical Split (Ver. Split): One 4x8 PU and four independent 1x8 TUs. In other words, in horizontal partitioning, a 4x8 block is divided into two subpartitions (i.e., PUs), and each subpartition is divided into two transform partitions that are processed independently, while in vertical partitioning, the entire 4x8 block is predicted at once and then divided into four transform partitions that are processed independently.
[0019] 4x8 blocks (Example 3', alternative to Example 3) Horizontal Split (Hor.Split) (no change compared to the subpartition process for both prediction and transform residual coding / decoding): Two 4x4 PUs are used, which simultaneously form two 4x4 TUs. The second PU is predicted using the reconstructed samples of the first PU. Vertical Split (Ver.Split) (Modified): One 4x8 PU and two independent 2x8 TUs. In other words, in horizontal partitioning, a 4x8 block is divided into two subpartitions (i.e., PUs), with each subpartition resulting in one transform partition, while in vertical partitioning, the entire 4x8 block is predicted at once and then divided into two transform partitions that are processed independently.
[0020] 4×M Block (Example 4) The entire 4xM block is predicted at once and then divided into four 1xM transform partitions that are processed independently.
[0021] 4×M blocks (Example 4' where M>8) Horizontal Split (Hor.Split) (no change compared to sub-partition processing for both prediction and transform residual coding / decoding): A 4xM block is predicted by 4 PUs of 4x(M / 4), each of which is simultaneously one of the four transform partitions. Vertical Split (Ver.Split): The entire 4xM block is predicted at once and then split into four 1xM transform partitions that are processed independently.
[0022] 8 x N blocks (Example 5) An 8xN block may be divided into two 4xN subpartitions, which may be further divided into four 1xN transform partitions.
[0023] 8 × N blocks (Example 5' where N>4) Horizontal Split (Hor.Split) (no modifications compared to sub-partition processing for both prediction and transform residual coding / decoding): An 8xN block is split into four 8x(N / 4) sub-partitions (for prediction and transform residual coding / decoding). Vertical Split (Ver.Split): An 8xN block is split into two 4xN subpartitions which can be further split into two 2xN transform partitions (for prediction).
[0024] The examples outlined above may be applied individually or as a whole to a codec according to a corresponding embodiment (i.e., each of the decoder and the encoder) for different block sizes, or a combination of two or more of these examples may 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-5), depending on the division direction, the decision on how to select between the aforementioned options 1-3 (between two of 1-3) may differ: in the case of horizontal division such as option 2, one option is selected, and each TU is also a PU, and therefore the number of PUs and the number of TUs are the same; whereas in the case of vertical division such as option 1, a different option may be selected, and the entire block functions as a PU but is divided into several TUs, and therefore the number of PUs and the number of TUs are different; or in option 3, a predetermined block is divided into PUs, each of which is further divided into TUs, and therefore the number of PUs and the number of TUs are different. Additionally or alternatively, for another block size (Comparative Example 2), this decision may ultimately result in the same option regardless of the division direction. Therefore, the above-mentioned dependency of the choice between the alternatives on the splitting direction may be in addition to the already mentioned block size direction, but may of course also be applied without the latter.
[0025] One embodiment according to the present invention relates to a block-based picture-to-data stream encoding encoder configured to encode an intra-coding mode for a given block of a picture into a data stream. The encoder is configured to encode a partition dimension flag for the given block of a picture into the data stream, the partition dimension flag signaling whether the partition dimension is set to horizontal or vertical. In other words, the partition dimension flag indicates whether the partition dimension is horizontal or vertical. The encoder is configured to divide the given block along the given dimension (i.e., along the partition dimension) into transform partitions, each of which has the same width as the given block perpendicular to the given dimension. If the partition dimension is vertical, the transform partition may be associated with vertical blocks stacked vertically, and if the partition dimension is horizontal, the transform partition may be associated with vertical blocks arranged side by side horizontally. Furthermore, the encoder is configured to intra-predict the given block depending on one or more already reconstructed samples neighboring the given block in a manner dependent on the intra-coding mode to obtain a predictor for the given block. For each transform partition, the encoder is configured to encode a transformation of the prediction residual into a data stream, so that a given block can be reconstructed by correcting the predictor in each transform partition using the transform of the prediction residual encoded for the respective transform partition.
[0026] The data streams generated by the encoders described above, and the methods performed by the encoders and decoders described herein, and by any of the encoders described herein, are based on the same considerations as the decoders described above, whereby the methods may be completed with all the features and functionality also described with respect to the decoders and / or encoders.
[0027] Preferred embodiments of the present application are described below with reference to the drawings. [Brief explanation of the drawings]
[0028] [Figure 1] 1 is a block diagram of an apparatus for predictively encoding pictures, as an example of an encoder in which the ISP concept may be implemented. [Figure 2] 2 is a block diagram of an apparatus for predictively decoding pictures, compatible with the apparatus of FIG. 1, as an example of a decoder in which the ISP concept can be implemented. [Figure 3] 1 is a schematic diagram showing an example of the relationship between a prediction residual signal, a prediction signal and a reconstructed signal to illustrate the possibilities of subdivision settings for coding mode selection, transform selection and transform performance, respectively; [Figure 4] FIG. 1 is a schematic diagram illustrating partitioning of intra-coded blocks according to an ISP variant that allows choosing between different partition dimensions, i.e., horizontal and vertical partitioning. [Figure 5] FIG. 1 is a schematic diagram illustrating sequential processing of partitions of an ISP coding block. [Figure 6] FIG. 1 is a schematic diagram illustrating the predicted derivation of the partition filling process. [Figure 7] A diagram showing an example of an ISP block partitioned according to horizontal and vertical partition modes and having two different intra prediction modes associated with each, to illustrate the possibility of rendering-dependent determination of partition order on the intra prediction modes associated with intra predicted blocks. [Figure 8] FIG. 1 is a schematic diagram illustrating possible signaling for an intra-predicted block 80 processed using partition options. [Figure 9] FIG. 10 is a schematic diagram illustrating a possible way of transmitting prediction residuals for a partition. [Figure 10]FIG. 10 is a schematic diagram illustrating the partial sum determination of coding costs associated with partitions of intra-prediction modes, so that testing can be stopped if it is clear that the intra-prediction modes are not any better than any of the regular intra-prediction modes. [Figure 11] FIG. 10 is a flow chart diagram of the modes or operations of the encoder to perform partition mode testing. [Figure 12-1] 1 is a schematic diagram illustrating a decoder for block-based decoding of pictures in which the inventive ISP concept is implemented; [Figure 12-2] 1 is a schematic diagram illustrating a decoder for block-based decoding of pictures in which the inventive ISP concept is implemented; [Figure 13] FIG. 10 is a schematic diagram illustrating the use of the final position syntax element. [Figure 14-1] 1 is a schematic diagram illustrating an encoder for block-based decoding of pictures in which the inventive ISP concept is implemented; [Figure 14-2] 1 is a schematic diagram illustrating an encoder for block-based decoding of pictures in which the inventive ISP concept is implemented; [Figure 15a] 1 is a schematic diagram illustrating intra prediction of individual transform partitions of a vertically divided 4x4 block. [Figure 15b] 1 is a schematic diagram illustrating intra prediction of individual transform partitions of a vertically divided 4x4 block. [Figure 15c] 1 is a schematic diagram illustrating intra prediction of individual transform partitions of a vertically divided 4x4 block. [Figure 15d] 1 is a schematic diagram illustrating intra prediction of individual transform partitions of a vertically divided 4x4 block. [Figure 16a] 1 is a schematic diagram illustrating intra prediction of individual transform partitions of horizontally divided 4x4 blocks. [Figure 16b] 1 is a schematic diagram illustrating intra prediction of individual transform partitions of horizontally divided 4x4 blocks. [Figure 16c] 1 is a schematic diagram illustrating intra prediction of individual transform partitions of horizontally divided 4x4 blocks. [Figure 16d] 1 is a schematic diagram illustrating intra prediction of individual transform partitions of horizontally divided 4x4 blocks. [Figure 17] 1 is a schematic diagram illustrating intra prediction of individual transform partitions of 4x8 blocks divided vertically. [Figure 18] 1 is a schematic diagram illustrating intra prediction of individual transform partitions of an 8x4 block divided horizontally. [Figure 19a] Vertical partitioning of 4xM blocks (M>8) of the ISP design in VVC Draft 5 (left) and the proposed version (right). [Figure 19b] Vertical partitioning of 8xN blocks (N>4) of the ISP design in VVC Draft 5 (left) and the proposed version (right). DETAILED DESCRIPTION OF THE INVENTION
[0029] The drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention.
[0030] The following description of the figures begins with a presentation illustrating an encoder and decoder of a block-based predictive codec for encoding pictures of video, to form an example of a coding framework into which embodiments of an intra-predictive codec may be incorporated. The former encoder and decoder are described with reference to Figures 1-3. Below, a description of a variant of the ISP concept is presented along with a description of how the concept may be incorporated into the encoder and decoder of Figures 1 and 2, although the concepts described in subsequent Figure 4 and below may also be used to form encoders and decoders that do not operate according to the coding framework underlying the encoder and decoder of Figures 1 and 2. Later, embodiments that utilize ISP but that are improved in terms of implementation efficiency are described. Also, embodiments that utilize a variant of partition-based intra-coding are described.
[0031] FIG. 1 illustrates an apparatus for predictively encoding a picture 12 into a data stream 14, illustratively using transform-based residual coding. The apparatus or encoder is indicated using the reference numeral 10. FIG. 2 illustrates a corresponding decoder 20, i.e., an apparatus 20 configured to predictively decode a picture 12′ from the data stream 14 further using transform-based residual decoding, where an apostrophe is used to indicate that the picture 12′ reconstructed by the decoder 20 deviates from the picture 12 originally encoded by the apparatus 10 in terms of coding loss introduced by quantization of the prediction residual signal. While FIGS. 1 and 2 illustratively use transform-based predictive residual coding, embodiments of the present application are not limited to this type of predictive residual coding. This also applies to other details described with respect to FIGS. 1 and 2, as outlined below.
[0032] The encoder 10 is configured to transform the prediction residual signal from spatial to spectral and encode the prediction residual signal thus obtained into a data stream 14. Similarly, the decoder 20 is configured to decode the prediction residual signal from the data stream 14 and transform the prediction residual signal thus obtained from spectral to spatial.
[0033] Internally, the encoder 10 may comprise a prediction residual signal former 22 that generates a prediction residual 24 to measure the deviation of a prediction signal 26 from the original signal, i.e., picture 12. The prediction residual signal former 22 may, for example, be a subtractor that subtracts the prediction signal from the original signal, i.e., picture 12. The encoder 10 then further comprises a transformer 28 that transforms the prediction residual signal 24 from spatial to spectral to obtain a spectral-domain prediction residual signal 24′, which is also quantized by a quantizer 32 provided in the encoder 10. The prediction residual signal 24″ thus quantized is coded into the bitstream 14. For this purpose, the encoder 10 may optionally comprise an entropy coder 34 that entropy codes the transformed and quantized prediction residual signal into the data stream 14. The prediction residual 24 is generated by a prediction stage 36 of the encoder 10 based on the prediction residual signal 24″ that is decoded into and decodable from the data stream 14. For this purpose, the prediction stage 36 may internally comprise, as shown in FIG. 1 , an inverse quantizer 38 that inversely quantizes the prediction residual signal 24″ to obtain a spectral-domain prediction residual signal 24′″ that corresponds to the signal 24′ without the quantization losses, and an inverse transformer 40 that inversely transforms, i.e., spectral-to-spatial, the latter prediction residual signal 24′″ to obtain a prediction residual signal 24′″ that corresponds to the original prediction residual signal 24 without the quantization losses. A combiner 42 of the prediction stage 36 then recombines the prediction signal 26 and the prediction residual signal 24′″, for example by addition, to obtain a reconstructed signal 46, i.e., a reconstruction of the original signal 12. The reconstructed signal 46 may correspond to the signal 12′. A prediction module 44 of the prediction stage 36 then generates a prediction signal 26 based on the signal 46, for example by using spatial prediction, i.e., intra-prediction, and / or temporal prediction, i.e., inter-prediction.
[0034] Similarly, decoder 20 may be internally composed of components corresponding to prediction stage 36, interconnected in a manner corresponding to the prediction stage. In particular, entropy decoder 50 of decoder 20 may entropy decode quantized spectral domain prediction residual signal 24" from the data stream, whereby inverse quantizer 52, inverse transformer 54, combiner 56 and prediction module 58, interconnected and cooperating in the manner described above with respect to the modules of prediction stage 36, recover a reconstructed signal based on prediction residual signal 24" so that the output of combiner 56 provides the reconstructed signal, i.e., picture 12', as shown in FIG. 2.
[0035] Although not specifically described above, it is readily apparent that the encoder 10 may set several coding parameters, including, for example, prediction modes, motion parameters, etc., according to several optimization schemes, such as, for example, several rate- and distortion-related criteria, i.e., a method for optimizing coding cost. For example, the encoder 10 and the decoder 20 and corresponding modules 44, 58 may each support various prediction modes, such as intra-coding modes and inter-coding modes. The granularity at which the encoder and decoder switch between these prediction mode types may correspond to the subdivision of each of the pictures 12 and 12′ into coding segments or coding blocks. For example, in units of these coding segments, a picture may be subdivided into intra-coded blocks and inter-coded blocks. The intra-coded blocks are predicted based on the respective blocks' spatially already coded / decoded neighbors, as outlined in more detail below. Several intra-coding modes may exist and be selected for each intra-coding segment, including a directional intra-coding mode or an angular intra-coding mode, in which the respective segments are filled by extrapolating, to the respective intra-coding segment, sample values of neighbors along a specific direction specific to each directional intra-coding mode. For example, intra-coding modes may include one or more further modes, such as a DC coding mode in which the prediction of each intra-coded block assigns a DC value to all samples in the respective intra-coded segment, and / or a planar intra-coding mode in which the prediction of each block is approximated or determined as a spatial distribution of sample values described by a two-dimensional linear function over the sample positions of the respective intra-coded block with a driving gradient and a planar offset defined by the two-dimensional linear function based on neighboring samples. In comparison, inter-coded blocks may be predicted, for example, temporally.In the case of inter-coded blocks, motion vectors may be signaled within the data stream, indicating the spatial displacement of portions of previously coded pictures of the video to which picture 12 belongs, where the previously coded / decoded pictures are sampled to obtain a prediction signal for each inter-coded block. This means that in addition to the residual signal coding included in data stream 14, such as entropy-coded transform coefficient levels representing the quantized spectral domain prediction residual signal 24", data stream 14 may also be encoded with optional further parameters, such as coding mode parameters for assigning coding modes to various blocks, some prediction parameters of the blocks, such as motion parameters for inter-coded segments, and parameters controlling and signaling the subdivision into segments of each of pictures 12 and 12'. Decoder 20 uses these parameters to subdivide the picture in the same way as the encoder did, assign the same prediction modes to the segments, and perform the same prediction, resulting in the same prediction signal.
[0036] 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 a prediction residual signal 24″″ and a prediction signal 26 signaled in a data stream. As already mentioned above, the combination may be additive. In FIG. 3, the prediction signal 26 is shown as a subdivision of the picture area into intra-coded blocks, which are exemplarily shown using hatching, and inter-coded blocks, which are exemplarily shown without hatching. The subdivision may be any subdivision, such as a regular subdivision of the picture area into rows and columns of one or more blocks, or a multi-tree subdivision of the picture 12 into leaf blocks of various sizes, such as a quad-tree subdivision into blocks, a mixture of which is shown in FIG. 3, where the picture area is first subdivided into rows and columns of tree-root blocks and then further subdivided according to a recursive multi-tree subdivision. Again, data stream 14 may have an intra-coding mode coded for intra-coded blocks 80, assigning one of several supported intra-coding modes to each intra-coded block 80. Further details are provided below. For inter-coded blocks 82, data stream 14 may have one or more motion parameters coded therein. Generally speaking, inter-coded blocks 82 are not limited to being temporally coded. Alternatively, inter-coded blocks 82 may be any blocks predicted from previously coded portions beyond current picture 12 itself, such as a previously coded picture of the video to which picture 12 belongs, or, if the encoder and decoder are scalable encoder and decoder, respectively, a picture of another view or hierarchically lower layer. Prediction residual signal 24'''' in FIG. 3 is also shown as a subdivision of the picture area into blocks 84. These blocks are sometimes referred to as transform blocks to distinguish them from coding blocks 80 and 82.3 illustrates that the encoder 10 and the decoder 20 may use two different subdivisions of the picture 12 and the picture 12′ into blocks, respectively: one into coding blocks 80 and 82, respectively, and the other into blocks 84. While both subdivisions may be the same, i.e., each coding block 80 and 82 may simultaneously form a transform block 84, FIG. 3 also illustrates the case where, for example, the subdivision into transform blocks 84 forms an extension of the subdivision into coding blocks 80 / 82, so that any boundary between two blocks 80 and 82 covers the boundary between the two blocks 84, or, alternatively, where each block 80 / 82 coincides with one of the transform blocks 84 or with a cluster of transform blocks 84. However, the subdivisions may also be determined or selected independently of each other, such that the transform block 84 may alternatively cross the block boundary between the blocks 80 / 82. Therefore, as far as the subdivision into transformation blocks 84 is concerned, similar statements apply as those presented with regard to the subdivision into blocks 80 / 82, i.e., blocks 84 may be the result of a regular subdivision of the picture area into one or more blocks arranged in rows and columns, or a recursive multi-tree subdivision of the picture area, or a combination thereof, or any other kind of blocking. As an aside, it should be noted that blocks 80, 82 and 84 are not limited to being quadratic, rectangular, or any other shape.
[0037] 3 shows that the combination of the prediction signal 26 and the prediction residual signal 24'''' directly results in the reconstructed signal 12'. However, it should be noted that, according to alternative embodiments, multiple prediction signals 26 may be combined with the prediction residual signal 24'''' into the picture 12'.
[0038] In Fig. 3, the transform segments 84 have the following significance: The transformer 28 and the inverse transformer 54 perform the transform in units of these transform segments 84. For example, many codecs use some kind of DST or DCT for all transform blocks 84. Some codecs can skip the transform for some of the transform segments 84 so that the prediction residual signal is directly coded in the spatial domain. However, according to the embodiments described below, the encoder 10 and the decoder 20 are configured in such a way that they support several transforms. For example, the transforms supported by the encoder 10 and the decoder 20 may include: DCT-II (or DCT-III), where DCT stands for Discrete Cosine Transform. DST-IV, where DST stands for Discrete Sine Transform. DCT-IV DST-VII Identity Transformation (IT)
[0039] Of course, the transformer 28 supports all of the forward transform versions of these transforms, while the decoder 20 or inverse transformer 54 supports the corresponding backward or inverse versions of the following: Inverse DCT-II (or Inverse DCT-III) Inverse DST-IV Inverse DCT-IV Inverse DST-VII Identity Transformation (IT)
[0040] The following description provides further details regarding which transforms may be supported by the encoder 10 and decoder 20. Note that in any case, the set of supported transforms may include only one transform, such as a spectral-to-spatial transform or a spatial-to-spectral transform.
[0041] As already mentioned above, Figures 1-3 are presented as examples in which the intra-prediction concept described further below can be implemented. To that extent, the encoder and decoder of Figures 1 and 2 respectively represent possible implementations of the encoder and decoder described later in this specification. As outlined in detail below, when the later-described embodiments for intra-prediction according to the present application are incorporated into the encoder and decoder of Figures 1 and 2, the encoder of Figure 1 and the decoder of Figure 2 support, as at least one option, processing intra-predicted blocks 80 in the manner outlined in detail below. Therefore, the embodiments described below refer to an encoder equivalent to the encoder 10 of Figure 1 that processes intra-coded blocks 80 in the manner outlined in detail below, and the same applies with respect to the decoder of Figure 2, thus representing an example of a decoder according to the embodiments in which intra-coded blocks are processed in the manner outlined in detail below. However, Figures 1 and 2 are only specific examples. However, an encoder according to embodiments of the present application may perform block-based encoding of picture 12 using concepts outlined in detail below, and may differ from the encoder of Figure 1 in, for example, the fact that the encoder is not a video encoder, that the encoder does not support inter-prediction, or that the subdivision into blocks 80 is performed in a different manner than illustrated in Figure 3, or, depending on the embodiment, the encoder may not use transform prediction residual codes, but may instead code the prediction residual directly in the spatial domain, for example. Similarly, a decoder according to embodiments of the present application may perform block-based decoding of picture 12' from data stream 14 using intra-prediction coding concepts outlined further below, but may differ from decoder 20 of Figure 2 in, for example, the fact that the decoder is a still image decoder rather than a video decoder, that the decoder does not support intra-prediction, or that the decoder subdivides picture 12' into blocks in a different manner than described with respect to Figure 3, and / or that the decoder derives the prediction residual from data stream 14 in the spatial domain rather than the transform domain.
[0042] As mentioned above, the following discussion focuses first on a 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 one-dimensional horizontal or one-dimensional vertical partitions. The ability to process blocks in this manner can be provided for intra-predicted blocks 80 of any size, or can be limited to blocks 80 within a predefined range of block sizes, such as blocks larger than a certain size. "One-dimensional" refers to the fact that, if the associated partition is the result of partitioning, the partition is only one sample wide along the partition dimension. However, the one-dimensional nature of the partition modes described herein refers to the fact that partitioning is performed along a specific dimension, and the resulting partition is like a stripe that extends completely across the block in a direction transverse to the partition direction. See, for example, FIG. 4. FIG. 4 shows an intra-predicted block 80, i.e., a block to be decoded or encoded, on the left. It has dimensions W×H. That is, it is a W×H dimensional 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 division or partitioning options available, namely a horizontal division 100 in which block 80 is divided or partitioned into several partitions 1021, 1022, 1023 and 1024 along a vertical axis, i.e. partition dimension 104. According to the example of Fig. 4, which is the example applied in the following description, each partition 1021-1024 is one sample wide, as indicated by the double-headed arrow 106, so that the number of partitions 1021-1024 arising from block 80 is equal to the height H of block 80 in units of samples 108 of block 80, but it is clear that partitioning can also be performed by the encoder and decoder according to a different method agreed between them, e.g., partitioning block 80 along dimension 104 into a predetermined number of partitions 1021, 1022, 1023 and 1024 along a vertical axis, i.e. partition dimension 104. iwhere the predetermined number is, for example, greater than 2 or a mixture thereof, to evenly distribute the size of the block 80 along the partition dimension into the predetermined number of partitions.
[0043] 4 and denoted by reference numeral 110 corresponds to dividing block 80 into vertical partitions 1121, 1122, ... 1128. That is, according to option 110, block 80 is divided into partitions 1121, 1122, ... 1128 along the horizontal axis, i.e., horizontal partition dimension 104. i For option 100, each partition 102 i is the same width as the block 80, i.e., has the width W of the block, but the partition 112 i adopts the height H of block 80, i.e., has height H. In summary, in a manner similar to the description of option 100, vertical split 110 divides block 80 into partitions 112 i , where W denotes the horizontal width of the block 80 measured in samples 108, so that each partition 112 i is one sample wide in the horizontal direction; however, the partitioning according to option 110 may be performed in another way agreed between the encoder and decoder.
[0044] Thus, according to FIG. 4, the encoder divides block 80 into H Wx1 partitions 102 according to horizontal partitioning options 100. i , or W 1xH partition 112 according to vertical partitioning option 110 i80, and the partitioning option selected by the encoder for block 80 may be signaled within data stream 14 for block 80, such as by a corresponding partition dimension flag 114 within data stream 14. However, it should be apparent that embodiments of the present application also contemplate encoders and decoders that use only one of options 100 and 110 by default, without requiring flag 114 within the data stream. Furthermore, flag 114 may alternatively be conveyed within data stream 14 depending on an intra-coding mode 116 signaled within data stream 14 from the encoder to the decoder for block 80. The intra-coding mode may indicate one of a set of available and supported intra-coding modes, including, as described above, an angular mode and, optionally, one or more non-angular modes, such as a DC mode or a planar mode. That is, flag 114 may be conveyed within data stream 14 in a manner that conditionally depends on intra-coding mode 116, according to alternative embodiments not further described below. According to the embodiment described below, flag 114 is present in data stream 14 for block 80 regardless of the intra-coding mode 116 signaled in data stream 14 for block 80. However, a dependency may exist for flag switching between the partitioning process for intra-coded block 80 described above and different methods of handling intra-coding of block 80 as outlined below.
[0045] According to ISP, each of the partitions 102 / 112 is predicted, transformed, quantized, and coded individually, processing the partitions sequentially in this manner. Thus, the reconstructed samples of a particular partition can be used to predict subsequent partitions 102 / 112 in partition order between the partitions into which the block 80 is partitioned. In this manner, the process of intra-prediction cycles through the partitions 102 / 112 into which the block 80 is partitioned. Figure 5 exemplarily illustrates an intra-predicted block 80 divided according to option 100. Each partition 1021-1024 of the block 80 is predicted, i.e., the respective partition 102. i The latter task may be performed by combining the prediction residual with the predictor, which is performed in the decoder for reconstruction. The encoder performs prediction residual-related tasks, such as determining the prediction residual, including transformation and quantization, and correcting the predictor using the prediction residual, i.e., keeping the prediction loop synchronized with the decoder by filling the decoded picture buffer in the encoder with picture reconstruction. The above-mentioned tasks, i.e., prediction and residual processing, are performed separately and sequentially among partitions 1021 to 1024. After these two steps for the currently processed partition, the next partition 102 in the partition order is processed. i are treated in the same way. The partition order is exemplarily shown in FIG.
[0046] Although Figure 5 shows that the partition containing the top left-most pixel of block 80 is processed first, corresponding to the assignment of indices to partitions 1021-1024 in Figure 5, before proceeding to the immediately adjacent partition 1022, etc., this order is merely an example, and as the following description will make clear, this partition order may be selected in a manner that depends on other settings such as the intra-coding mode and / or the size of block 80, the former dependencies being described below.
[0047] In examples described further below, the partition order 126 simply varies between traversing the partitions 102 / 112 in such a way that immediately succeeding partitions are immediately adjacent to one another, such that the partition order is top-to-bottom or bottom-to-top in the case of split type 100, and left-to-right or right-to-left in the case of partitioning type 110. Note, however, that other examples are also possible. For example, the partition order can be selected in such a way that the partitions are scanned in the adjacent order just outlined, with two scans processing each second partition from top-to-bottom, bottom-to-top, left-to-right, or right-to-left in a first scan, and then processing the remaining partitions between them in the same or opposite order direction, whatever is applied.
[0048] In either case, FIG. 5 shows the first partition 1021, which is the partition that was processed first and is currently being processed. For the first partition, here illustratively 1021, the set of neighboring samples 1181 used to form the predictor for partition 1021 may only be selected based on samples outside the boundary of block 80 during the processing of the first partition of block 80; the samples of block 80 have not yet been processed, i.e., reconstructed or encoded. That is, the samples in set 1181 have already been reconstructed in the encoder using any prediction and correction of the corresponding predictor using the prediction residual transmitted in the data stream. They belong to previously coded / decoded picture blocks, which may be inter-coded, intra-coded, or any other coded block. The exact number and location of samples in the set of neighboring samples 1181 used to form the predictor for first partition 1021 depend on the intra-coding mode assigned to block 80. This intra-coding mode is used jointly or equally for the processing of all partitions of block 80, as will be explained below. To finish processing the first partition 1021, a predictor for this partition 1021 derived in the decoder and encoder by filling this partition 1021, which depends on one or more already reconstructed / encoded samples in set 1181, determines its prediction residual as far as the encoder is concerned, i.e., by transforming and quantizing as outlined above, and then this prediction residual is used to reconstruct this partition 1021 in the version transmitted in the data stream, i.e., including the quantization loss, by correcting the predictor using the prediction residual in data stream 14. For example, FIG. 5 exemplarily shows the prediction residual for partition 1021 in 1201. That is, 1201 contains transform coefficients corresponding to the transform of the prediction residual for partition 1021, the description of data 1201 being given in more detail below.
[0049] Next, attention is focused on the next partition in the partition order, i.e., partition 1022 in the example of FIG. 5. The situation has changed insofar as the set of neighboring already reconstructed / encoded samples used to derive the predictor for partition 1022 may be composed of samples located outside block 80 and / or samples located within block 80, i.e., samples located in any already processed partition, here currently partition 1021 in the example of FIG. 5, for which the prediction residual has already been determined and is already available in data stream 14. That is, the encoder and decoder derive a predictor for this partition 1022, followed by prediction residual determination in the encoder and use of the prediction residual for predictor correction in the encoder and decoder, respectively. This process then continues with the next partition in the column, i.e., the next partition in the partition order, thereby sequentially processing all partitions of block 80.
[0050] As already mentioned above, the partition order 126 may be selected in a different way to traverse the partitions, so that immediately consecutive partitions may be immediately adjacent to the partitions. That is, the partition order may jump from any partition to the next. This means that each partition 102 i The set of adjacent samples used to derive each predictor is determined by filling iThis means that the predictor is not limited to the immediate sample neighbors of the respective partition, as shown in FIG. 5 . This also relates to the choice of the start of the partition order 126. For example, suppose partition 1024 is the first partition in the partition order. Then, its predictor can be derived by filling the same, relying on a set of neighboring samples 1184 (not shown in FIG. 5 ), which collects samples located to the left and above block 80 along the periphery of block 80. Some of the samples in set 1184 are not immediately neighbors of partition 1024. Incidentally, this corresponds to the situation of filling the last sample row together in a normal intra-prediction filling of block 80. The above possibility also applies with respect to any subsequently processed partitions, i.e., the second and further partitions in the partition order. That is, their neighboring sample set 1184 i Also, each partition 102 i Furthermore, if we do not constrain the partition order across the partitions in such a way that consecutive partitions are immediately adjacent to each other, then any second or subsequently processed partition 102 i A set of 118 reference samples i partition 102 i In addition to collecting samples to the left and above of the set 180, it may also be samples below each partition 1021, depending on whether any partition of block 80 has been processed earlier than partition 1021 according to the partition order. i partition 102 i The sample may include samples located on three or more sides of the sample.
[0051] To briefly summarize, while FIG. 5 illustrates the sequential processing of partitions 102 / 112 of block 80, here illustratively with respect to horizontal partitions, the same description applies to vertical partitions 112. i This also applies to the vertical mode 110.i For each, the corresponding prediction residual is 102 i are included in the data stream 14. The data 1201-1204 together form the prediction residual 120 for the block 80. It should be recalled that, according to an alternative embodiment of the present application, transform residual coding may not be used, i.e., the prediction residual 120 for the block 80 may be signaled directly in the data stream 14, for example, in the spatial domain. In this case, the data 1201-1204 for the various partitions 1021-1024 may not include a partition separation field in the data stream 14, as shown in FIG. 5, and each data portion 120 i partition 102 i Rather, the prediction residuals 120 of the block 80 may then form one field of data 14. The decoder may then signal a particular partition 102 i In this alternative embodiment, when processing the field 120, the partition 102 i This procedure may also be applied when using a strictly reversible version of the transform, so that quantization can be done in the spatial domain.
[0052] Thus, FIG. 5 shows that in the encoder and decoder, each partition 102 i There are two tasks performed for each partition 1021: 1) prediction or predictor for each partition 102 i and 2) a subsequent prediction residual related task, i.e., prediction residual derivation at the encoder, including quantization of the prediction residual for input to the data stream 14, and this partition 102 i , respectively, by combining or correcting the prediction residuals and the predictors to obtain reconstructed samples of iThe latter reconstructed samples are then passed to the subsequent processed partitions 102 according to the partition order 126 for the prediction derivation task. j 118 adjacent sample sets of j It can function as a reservoir for
[0053] Before proceeding to further explain the possible details of the ISP concept, FIG. 6 illustrates the currently processed partition 102. i 6 illustrates the process of deriving a prediction 122 by filling the currently processed partition 102, recalling that the description regarding the horizontal partition 102 is chosen merely for illustrative purposes, and the same description also pertains to the vertical partition 112. i and 118 adjacent samples already reconstructed / encoded i As already mentioned above with respect to FIG. 5, the set 118 i partition 102 i However, due to partitioning, the partition 102 may not be limited to samples 128 that are directly adjacent or adjacent to the partition 102. i Samples and set 118 i The average distance 130 between the samples 128 of the block 80, when averaged over all samples of the block 80, is small compared to performing intra prediction of the block 80, as known from, for example, H.264 or HEVC. As explained with respect to FIG. 5, the predictor derivation or filling 122 uses the intra prediction mode associated with the block 80 to determine the partition 102. i The mode indicates one of a set of available intra-prediction modes, which are performed for each adjacent sample set 118. i Sample contents of partition 102 i The angle or direction 132 copied to the sample 134 of the partition 102 may include different angle or direction modes. iThe prediction of each sample 134 of the set 118 is made in a direction facing opposite to the direction 132 and located relative to the sample 134. i This number may be derived based on the number of adjacent samples 134 in the sample set 118, for example. i The inter-pixel locations between the samples 128 in the set 118 are defined by the kernel of the interpolation filter used to derive the inter-pixel locations between the samples 128 in the set 118. i Three samples out of 128 are in the currently processed partition 102 i 102. Because the average distance 130 is relatively small, the partition 102 i The number of reference samples 134 per sample 134 of a partition 102 may be kept low. Further details are provided below. However, for completeness, the set of available intra-prediction modes may also be determined by the partition 102. i a DC mode in which all samples 134 of a set of adjacent samples are assigned a DC value, and this DC value is then applied to the set of adjacent samples 118 i Furthermore, it should be noted that the predicted value of sample 134 is derived by performing an averaging of i is defined by a linear function of the sample position in the i There may be a planar mode that derives the slope and offset of this linear function based on the neighbor set 118. i Note that σ may vary depending on the intra prediction mode selected for block 80, for example, particularly between angular mode and non-angular mode DC / Planar.
[0054] For example, in a state-of-the-art JEM decoder, 67 intra-prediction modes are available, 65 of which are angular modes, and the remaining two are DC and planar model omnidirectional texture. A 1D partitioning mode (simply referred to as 1D partition mode) is used in which block 80 is partitioned / divided into partitions along dimension 104, with the resulting partitions being one or more samples wide along direction 104 and extending across the entire width of the block transversely relative to dimension 104. This means that the predictor derivation 122 performed on partitions 102 / 112, as outlined above and below, can be combined with, or stated differently, implemented using, any of the partitions. As already explained with respect to FIG. 5, all partitions 102 / 112 of one block 80, such as a coding unit CU, use the same associated intra-prediction mode of block 80, thereby avoiding excessive signaling overhead since the intra-prediction mode 116 only needs to be transmitted in data stream 14 once for block 80.
[0055] That is, prediction 122 may be performed in the same manner as in the two-dimensional case outlined in the JEM decoder. However, compared to JEM, only one line, whether horizontal or vertical, is calculated for the currently processed partition 102 / 112 so that prediction process 122 is adjusted accordingly. If the partition order for traversing the partitions is selected in such a way that consecutive partitions are immediately adjacent to each other, prediction process 122 may correspond to the two-dimensional case of JEM, but only with respect to the first line, i.e., the one closest to the already reconstructed / encoded neighbor. In some cases, both HEVC and JEM allow the use of specific filters applied to the reference sample 128 or the resulting predictor. This is useful in the two-dimensional case to better predict samples in the prediction block 80 that are far away from the reference sample 128 in order to reduce boundary discontinuities. However, by using partitioning into partitions 102 / 112, it is possible, and should be the goal, to take advantage of high correlations between nearby pixels.
[0056] That is, a reduced average distance 130 should be utilized. Excessive smoothing degrades this quality. Thus, if an encoder or decoder may perform both types of intra prediction, i.e., intra prediction using partitioning as described with respect to FIGS. 4-6 and outlined below, the intra filters, i.e., the filters involved in predictor derivation 122, are disabled, or at least the number of contributing samples 134 per partition sample 134 is reduced relative to the number of samples contributing to one sample, when intra prediction of block 80 is performed on the block or is performed according to HEVC, i.e., a two-dimensional decomposition of block 80 into leaf blocks that hierarchically quadtree sub-partitions block 80 into rectangular blocks.
[0057] As is clear from the above description, to perform the prediction residual related tasks 124, the decoder, for example, decodes from the data stream 14 a transform of the respective prediction residual of the currently processed partition, performs an inverse transform on this transform, such as a spectral-to-spatial transform, to produce a prediction residual, which is then used to correct the predictor obtained at 122 by combining / adding. The same is done in the encoder to keep the prediction loop synchronized with the decoder. In addition, the encoder performs a transform of the prediction error of the predictor determined using 122 for the currently processed partition, which undergoes a transform, such as a spatial-to-spectral transform, followed by quantization of the transform coefficients, and then encodes that transform into the data stream 14 to correct the prediction residual of the currently processed partition 102. i The corresponding data of 120 i Regarding the transform, all partitions 102 / 112 within block 80 may be processed using this same transform, which may be DCT-II, except for the case of planar mode, in which case DCT-VII may be used, for example. For this reason, all tools related to transform and inverse transform that the encoder and decoder may use for other blocks, such as transform skipping, i.e., coding in the spatial domain, EMT (EMT = Explicit Multiple Core Transform), NSST (NSST = Mode Dependent Non-Separable Quadratic Transform), etc., may be disabled when block 80 is coded using an intra-prediction mode with the partitioning method outlined above and further below with respect to FIGS. 4-7 , in order to avoid unnecessary overhead bits. Further alternatively, the transform may be a linear transform of a type selected based on one or more of the intra-prediction mode, dedicated syntax elements, and a predetermined partition order.
[0058] Some terminology has already been used regarding the partition order 126, in which the partitions 102 / 112 of the currently processed block 80 are processed sequentially. It is emphasized that this embodiment is merely an example, and the partition order may be static according to alternative embodiments, or may be modified in different ways according to the examples shown below. FIG. 7 shows a possible partition / processing order indicated using the arrow 126 in FIG. 5 with inscribed numbers. Here, this order follows ascending inscribed numbers. FIG. 5 shows an example in which the order 126 starts with the partition containing the top-left pixel / sample 140 of the block 80 and moves downward to the lowest partition. Similarly, if the partition type were vertical, the processing order would start with the leftmost partition, again containing the top-left pixel / sample, with its beginning in the right direction. However, this is not the optimal case for all existing intra-prediction modes. This is illustrated in FIG. 7, which shows vertical and horizontal partitioning of block 80 for diagonal mode 34, i.e., copy angle / direction 132 points 45° from bottom left to top right, and diagonal mode 34, i.e., copy angle / direction 132 points -45° from top left to bottom right. In the former case, if the partitioning is horizontal, partitions are generated starting from the upper left corner of block 80, and their reconstructed samples 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 partition order. Nevertheless, for vertical partitioning, this is not necessary, as can be observed in the previous figure. On the other hand, mode 34 does not encounter these problems because samples appear from both sides in both horizontal and vertical partitioning. Therefore, the normal processing order can be adopted for both partitions.
[0059] Table 1 shows the complete list of processing orders by intra prediction mode and partition type. [Table 1] Table 1: Processing order by intra mode and division type. HOR_DIR and VER_DIR are horizontal and vertical modes, respectively, and VDIA_DIR is vertical diagonal mode.
[0060] Summarizing the ISP concept discussed so far with respect to signaling overhead, reference is now made to FIG. 8 , which illustrates what is transmitted for block 80 according to one embodiment of the present application. In particular, there is intra-prediction mode signaling 116 signaling which intra-prediction mode should be applied to block 80. Thus, signaling 116 indicates one of the available modes, including one of the angular modes, e.g., angular mode, as well as non-angular modes such as DC and planar. In addition to this signaling 116, there is a partition flag 160 encoded into the data stream 14 by the encoder and decoded therefrom by the decoder for block 80, which indicates whether partitioning according to FIGS. 4-7 is applied to block 80, or whether the partitioning is to be processed “normally,” such as en bloc, integrally, or bidimensionally, i.e., whether only samples outside block 80 are used to form reference sample reservoir 118 and predict each sample within block 80. Alternatively, flag 160 may switch between the partitioning process described with respect to Figures 4-7 on the one hand and decomposition of block 80 using quad-tree subdivision into transform blocks, which are then processed serially with the drawback of having to signal the decomposition in data stream 14. If partition flag 160 indicates partitioning according to Figure 4, data stream 14 includes partition dimension flag 114 that toggles between partitioning types 100 and 110 described with respect to Figure 4 for block 80. And, if partition flag 160 indicates this partitioning option, for each partition of block 80 into which block 80 is subdivided / partitioned, data stream 14 includes signaling / data 1201 having the prediction residual of the respective partition encoded, such as in the transform domain, as described above.
[0061] 8, it should be noted that the prediction residual data 1201, 1202, ... may be coded into the data stream 14 in an order corresponding to the partition / coding order 126. The latter may be uniquely determined by the intra-prediction mode indicated by the signaling 116, as discussed above. However, an alternative is that the partition order 126 is determined, at least in part, based on optional additional signaling within the data stream 14.
[0062] A further alternative to the description presented herein is the fact that signaling 116 may alternatively be used to indicate whether or not a partitioning option is used. In other words, one syntax element may jointly be responsible for signaling 116 and 160. Such a syntax element assumes one of a range of values, each corresponding to a combination of an intra-prediction mode and an indication of whether or not block partitioning is used. In such a case, it is also possible to simply provide partitioning options for a subset of intra-prediction modes. Finally, it should be noted that partition flag 160 may also be conditionally conveyed in data stream 14 only if the intra-prediction mode indicated by signaling 116 assumes a particular subset of the available intra-prediction modes.
[0063] Figure 9 shows the specific partition 102 / 112 i Data 120 with prediction residuals i 9 exemplarily illustrates what the data 120 may look like. According to FIG. 9, the prediction residual is coded into the data stream 14 in the transform domain. That is, the encoder generates a transform 182 of the prediction residual by transform 180, with the decoder deriving the prediction residual and the spatial domain by inverse transform 184. FIG. 9 illustrates, for example, transform coefficients 186 of the transform 182 corresponding to different spectral frequencies f. i may include coded block flags CBF, and data 120 imay include a coded block flag CBF 188 that indicates whether the transform 182 contains significant transform coefficients 186, i.e., whether the transform 182 is entirely zero. If the CBF 188 is set, the transform 182 is non-zero and the data 120 i may include a last position (LP) syntax element 190 that indicates the last position 192 along increasing spectral frequency (see axis 194) of a significant transform coefficient, i.e., a non-zero transform coefficient 186, starting from a minimum or DC coefficient 196. i comprises signaling 198 for signaling the conversion coefficients from 196 to 192.
[0064] That is, FIG. 9 shows each partition 102 i / 112 i102 / 112 may have its prediction residual coded into the data stream 14 by CBFs 188, LPs 190, and transform coefficient data 198. That is, for a block 80 with n partitions 102 / 112, there are n CBFs 188, one LP 190 for each partition with a non-zero CBF 188, and simply the transform coefficient data 198 for those partitions with their associated non-zero CBFs 188. If the partitions are one sample wide (which would otherwise require two coordinates as usual), i.e., x for horizontal partitions 100 and y for vertical partitions 110, then the coefficient data 198 may be coded in the same manner as for normally processed intra-predicted blocks, i.e., blocks 80 whose partition flag 160 indicates the non-partitioning option, with the exception that each LP 190 requires only one coordinate. However, for two-dimensional partitions, the LP 190 indicates the final position along the scan direction or path using a rank indication or using x and y coordinates. The context of each CBF 188 may be selected to be the value of a previously coded CBF, i.e., the CBF of a previous partition in the partition order 126. Furthermore, due to the partitioning, the transform coefficient data 198 is associated with different shapes; i.e., the transform 182 also has a different shape. The transform 182 is a one-dimensional transform when the partition is a one-dimensional partition, as described with respect to FIG. 4. That is, the transform 182 may be a W / H length vector of transform coefficients 186 depending on the partition type 100 or 110.
[0065] Regarding the flags 160 and 114 in FIG. 8 and their coding, the following is noted: The flag 160, which indicates whether the block 80 should be divided into partitions 102 / 112, defines a condition to be checked for whether the flag 114 is conveyed in the data stream 14 for the block 80. In particular, if the flag 160 indicates partitioning into partitions 102 / 112, the flag 114 is present in the data stream 14 and transmitted to the decoder to signal which type of division 100 / 110, i.e., horizontal or vertical, should be performed. Similar to the flag CBF, the flag 114 can also be coded using context-dependent entropy coding / decoding. The context of the flag 114 can have three possibilities according to the intra-prediction mode of the block 80: 0 for non-angular mode, 1 for horizontal mode, and 2 for vertical mode.
[0066] 9 illustrates that the CBF 188 may exist once for each partition i of the current block 80. Additionally or alternatively, the transform 182 of a partition 120i of the current block 80 may each be divided into one or more sub-blocks with a coded sub-block flag signaled for each sub-block in the data 120i indicating whether the transform coefficients 186 in that sub-block are all zero or at least one coefficient is non-zero. Thus, only the coefficients 186 in the sub-block whose coded sub-block flag signals the presence of a non-zero coefficient are coded, while other coefficients in the sub-block whose coded sub-block flag signals the absence of a non-zero coefficient are inferred to be zero at the decoder side. Note that because each partition 120i is transformed separately, the sub-blocks belonging to one partition have different spectral content of the partition's transform 182 and different transform coefficients 186 that the sub-blocks are composed of. For example, each partition 120i may have different spectral content of the transform 182 of that partition. i / 112 ihas dimensions x (partition width) and y (partition height), and as long as they are both four or more samples 140, then each partition 102 i / 112 iAs long as the transform 180 has x and y dimensions, both of which are four or more coefficients 186, the sub-blocks may be configured to be 4x4 coefficient blocks. For a 4xN partition, the sub-blocks form columns of m 4x4 sub-blocks, where m*4=N, and m is an integer. For an Nx4 partition, the sub-blocks form rows of m 4x4 sub-blocks, where m*4=N, and m is an integer. For wide partitions, an arrangement of 4x4 sub-blocks arranged in rows and columns may result. However, depending on the embedding, such partitions, i.e., partitions wider than and / or as wide as four samples, may not occur. Regardless of whether it occurs or not, for narrow partitions, i.e., partitions having one of their dimensions less than four samples, i.e., less than four samples wide, in at least one of dimensions x or y, sub-block partitioning of the transform 180 into sub-blocks each collecting a different group of coefficients of the transform 180 may be performed so that the sub-blocks have a minimum number M of coefficients in all possible cases for the size of the current block. That is, the partition is set as large as the block width N along one dimension, and partitioning may be performed along the other dimension 104. Thus, the transform 180 of each partition may be sized 1×N, 2×N, N×1, or N×2. In fact, the transform 180 of a particular partition may have a number of coefficients equal to the number of samples in this partition. In the case of a 1×N partition / transform, the sub-blocks may form a sequence of m 1×M sub-blocks, where m*M=N, where m is an integer. For an Nx1 partition, the sub-blocks form rows of m Mx1 sub-blocks, where m*M=N, and m is an integer. For a 2xN partition / transform, the sub-blocks may form columns of m 2x(M / 2) sub-blocks, where m*(M / 2)=N, and m is an integer. For an Nx2 partition, the sub-blocks may form rows of m (M / 2)x2 sub-blocks, where m*(M / 2)=N, and m is an integer. This is exemplarily shown in Table 2 for the exemplary case of M=16 for the minimum number of coefficients.
[0067] Table 2: Entropy coding coefficient group sizes [Table 2]
[0068] While FIG. 9 shows that there may be one CBF 188 for each partition i of the current block 80, it may be agreed between the decoder and encoder that for the current block 80, at least one of the n partitions in the partition has a non-zero CBF 188. Thus, if n is the number of subpartitions and the first n-1 subpartitions in the coding order produce zero CBFs, then the CBF for the nth partition is inferred to be one. Therefore, there is no need to decode it, and it is not encoded. Thus, the missing CBF for data 120n is due to the data 1201-120 signaled with zeros. n-1 , and the decoder infers this CBF to signal the presence of at least one non-zero coefficient in the transform of that partition.
[0069] As far as the intra-coding mode signaling 116 is concerned, the following may hold: The coding mode signaling 116 is transmitted as a pointer or index to one of a list of most probable modes (MPMs). The latter MPM list may be determined in the same way by the encoder and the decoder based on the intra-prediction modes used for previously coded / decoded intra-predicted blocks, such as spatially and / or temporally neighboring intra-prediction modes. Thus, the MPM list may represent a proper subset of available / supported intra-prediction modes, i.e., one or more of the aforementioned angular modes and / or DC and planar modes. As mentioned above, in addition to traditional intra-predicted ones, i.e., intra-predicted en bloc or by transform block where the intra-predicted blocks are partitioned using recursive quadtree partitioning, there may be blocks intra-predicted using the LIP or ISP scheme, such as block 80 in the figure. Both types of intra-predicted blocks may support the same set of available / supported intra-prediction modes. For subsequent normal / conventional intra-predicted blocks, an MPM flag may be signaled in the data stream, and the decoder decodes and the encoder encodes this, to indicate whether the mode for that block is selected from an MPM list, and if so, a pointer / index to this MPM list is sent, and the decoder decodes and 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 schemes, such as block 80. If the MPM flag signals that none of the MPM modes are used for a particular normal / conventional intra-predicted block, then no index / pointer is present for that block in the data stream, and an alternative pointer / index to the residual list of intra-prediction modes is sent in the data stream for that block instead.The residual list may also be a proper subset of the set of available / supported intra-prediction modes, in particular, a complementary set of the MPM list compared to the set of available / supported intra-prediction modes, i.e., every element of the set of available / supported intra-prediction modes is either an element of the MPM list or the residual set. Pointers / indexes to the MPM list may be VLC-encoded, and pointers / indexes to the residual set may be encoded using fixed-length codes. Of course, an MPM flag may be transmitted for LIP or ISP intra-predicted blocks, and the encoder may be free to select any mode from the set of available / supported intra-prediction modes, setting the MPM flag depending on whether the selected mode is thin in the MPM list or the residual set.
[0070] The MPM list may be the same, i.e., determined by the encoder in the same way for normal / conventional intra-predicted blocks and ISP / LIP intra-predicted blocks. However, regardless of whether restrictions on the MPM list and inference of the MPM flag for signaling MPM list usage for ISP / LIP intra-predicted blocks are applied, the MPM list may alternatively be determined for ISP / LIP intra-predicted blocks in a different way to adapt to the statistics of ISP / LIP modes. For example, it may be modified to exclude DC intra-mode from the MP list and to prioritize horizontal intra-mode for ISP horizontal partitioning, i.e., horizontal 104, and vertical intra-mode for vertical partitioning, i.e., vertical 104. That is, for normal / conventional intra-predicted blocks, the MPM list may form a proper subset of the set of available / supported intra-prediction modes, and the modes are selected and ordered according to a specific concept. For an ISP / LIP intra-predicted block 80, the MPM index may point to an MPM list that depends on the partition direction 104 signaled by the flag 114 and / or forms an appropriate subset of the set of available / supported intra-prediction modes, i.e., an appropriate subset of angular modes in the set of available / supported intra-prediction modes, that is ...
[0071] Regarding the immediately preceding description, it should be noted again that, as outlined herein, juxtaposition between the intra-prediction mode processed normally and the intra-prediction mode processed using partitioning is not necessary. That is, the encoder and decoder may necessarily process the intra-predicted block 80 using the partitioning presented herein, and accordingly, for example, the partition flag 160 becomes obsolete. However, if the partition options signaled by the flag 160 are available as decisions for the encoder, the following description will clarify possibilities for how the encoder can make a decision, or find out whether a partition mode should be used for a particular block 80 and which partition type, i.e., horizontal or vertical, is best. To do this, the encoder needs to test both options of different intra-prediction modes for each block. Compared to when the encoder has only one option, such as a normal option, the encoder will be slower because it needs to test many options. To reduce this impact, the partition mode signaled by the flag 160 may be tested by encoding according to the following strategy, which is now referred to in FIG. 10 and FIG. 11.
[0072] 1) The 1D partition mode is the last intra mode tested. 2) The minimum cost so far when the 1D partition mode is tested is C min Let's say. 3) Select the combination of intra mode and split type to be tested. 4) The block is divided into N 1D partitions, and the index of each of these partitions is i, where i=[1,N]. 5) After all partitions are coded, their subcosts J i is calculated. Therefore, the sum of all sub-costs available after partition i is coded, i.e. [Table 3] This procedure is illustrated in Figure 10, which shows the accumulation of 1D partition sub-costs to obtain the final cost of the whole block. 6) After all partitions have been processed, the formula Si <C min is evaluated. If it is true, continue to encode the partition until the end. Otherwise, if this test mode is C min Since it is guaranteed that it will not result in a lower RD cost, the process is aborted and proceeds to the next combination of intra-mode and split type. 7) If all 1D partitions are coded, the test mode is the best mode, and C min will be updated accordingly.
[0073] The advantage of this procedure is that it avoids processing unnecessary 1D partitions, since it is already known that the 1D partition mode does not yield a cost better than the existing minimum cost. Furthermore, there is no drawback in terms of RD loss. The entire process is shown as a flowchart in Figure 11.
[0074] Note again that all of the above ISP examples showing partitioning as occurring within one sample width stripes across direction 104 could alternatively be performed in such a way that the partitions are wider, thereby resulting in two-dimensional partitions. Further alternatives for partitioning are presented below.
[0075] In a particular ISP example, the width along the division direction 104 is defined based on 1) whether the intra prediction mode is angular or non-angular, and 2) the width of the intra predicted block along that direction 104.
[0076] 1) A W x H (assuming W and H are powers of 2) block 80 may be divided horizontally or vertically (e.g., as indicated by syntax element 114 sent to the decoder) into K partitions 102 / 112 having dimensions w x h, the values of which are listed in Table 3. According to Table 3, a block with W=16 and H=8 that is predicted using a non-angular intra mode and is subject to vertical partitioning (i.e., when direction 104 is vertical) would be divided into four partitions 102, all of which have dimensions w=16 and h=2. If the same block 80 were predicted using an angular intra mode, it would be divided into eight partitions 102, each with dimensions w=16 and h=1.
[0077] [Table 4] Table 3: Values of w, h and K for additional layout example 1
[0078] 2) A W x H (assuming W and H are powers of 2) block 80 may alternatively be divided horizontally or vertically (e.g., as indicated by syntax element 114 sent to the decoder) into K partitions having dimensions w x h, where the value of K is not fixed (and therefore is sent to the decoder with the syntax element) and may range from any power of 2 between 2 and S, where S is the value of the dimension being divided (the width of the vertical division and the height of the horizontal division). The values of w and h are obtained as set forth in Table 4.
[0079] [Table 5] Table 4: w and h values for additional layout example 2
[0080] Instead, the width of the partition along dimension 104 may be signaled directly to block 80 .
[0081] 3) W x H (assuming W and H are powers of 2) Block 80 can alternatively be i ×hi The image may be divided horizontally or vertically (e.g., as indicated by syntax element 114 transmitted to the decoder) into K partitions (where K depends on W and H) with dimensions (where i=1, 2, ..., K). If the division is horizontal, then S=H, and s i =h i and when perpendicular, S=W, s i =w i s i Various choices for the value of s are listed in Table 5 for different values of S, which measures the width of block 80 along dimension 104, i measures the width of partition i along dimension 104.
[0082] [Table 6] Table 5: Different partition layouts i Value of
[0083] The choice used by the decoder may be fixed or may be implicitly determined according to the values of existing parameters on the decoder side.
[0084] 4) W x H (assuming W and H are powers of 2) Block 80 can alternatively be i ×h i The image may be divided horizontally or vertically (e.g., as indicated by syntax element 114 transmitted to the decoder) into K partitions (where K depends on W and H) with dimensions (where i=1, 2, ..., K). If the division is horizontal, then S=H, and s i =h i and when perpendicular, S=W, s i =w i s i The value of is determined by a syntax element that indicates which of the three options presented in example 3) is used to divide the block into subpartitions.
[0085] Thus, as illustrated in Examples 1-4 above, partitioning may be performed along one dimension 104 such that the partitions are the same width as a given block perpendicular to the given dimension, with the width of the partitions, measured along the given dimension 104, being selected from at least two different width settings or options. Explicit or implicit signaling concepts may be used to maintain synchronization of the selection between the encoder and decoder. This selection therefore allows the 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 the intra-coding mode of a given block, for example, whether the intra-coding mode of the given block is angular mode. The selection may also be made depending on an index in the data stream for a given block indexing of at least two different width settings, as shown in Example 4. The partitions may be one or more samples wide along the partition dimension. Within a block, the partitioning / partition width along a given direction may vary. Some may be one sample wide, i.e. a one dimensional stripe, others may be a number of samples wide greater than one, i.e. a two dimensional field of samples.
[0086] As far as residual coding is concerned, the same can be done using transform coding, as mentioned above. Each subpartition 102 / 112 may have its own coded block flag (CBF) 188, last position (LP) syntax element 190, and transform coefficients 198 that are transmitted to the decoder in the data stream. Thus, for a block 80, such as a CU, with K subpartitions 102 / 112, there are K CBFs 188 and one LP 190 for each partition 102 / 112 with a non-zero CBF. The context used to code each CBF 188 may depend on the value of the CBF of a previously coded subpartition within the same block, for example, along the order 126. Furthermore, further syntax elements not yet mentioned may be transmitted to the decoder in the data stream to indicate whether the ISP concept is used for all blocks, or in a range corresponding to the entire data stream or a particular picture or slice of a particular picture, for example, whether the partitioned intra prediction concept described herein is used for all intra predicted blocks 80 within that range, or whether some are signaled and treated as a whole, i.e., divided into only one partition.
[0087] Similarly, it was mentioned above that each subpartition may be transformed separately using one transform, resulting in one transform for each partition 102 / 112 that is not quantized to all zeros. A 2D transform may be used as the transform for a particular partition 102 / 112, except when one of the dimensions of that partition 102 / 112 is 1, in which case a 1D transform is applied. The transform core may be a DCT-II or any other transform determined by existing parameters on the decoder side at the time the subpartition is to be decoded. For example, the transform may be selected according to a combination of intra mode, subpartition index, and subpartition dimension, or some subset of the latter parameters. It may also be signaled directly to the decoder, or, alternatively, in the form of an additional syntax element transmitted separately, for example, for all partitions in a block 80 or for each partition 102 / 112 of a block 80.
[0088] Also, one aspect already mentioned above is the fact that after quantization in the spatial or some intermediate transform domain, which is arrived at by transforming the prediction residual of each partition separately, the residuals of the partitions 102 / 112 of the block 80 may be quantized transform coefficients or may be subject to a further transform, lossless or reversible. Thus, the decoder can obtain the transform coefficient levels of the transform of the entire block 80 and inversely transform them to 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 is obtained by re-transforming each partition 102 / 112.
[0089] Furthermore, it has already been mentioned above that the prediction residuals of the various partitions of block 80 are quantized and coded into the data stream sequentially, partition by partition, alternating with the individual intra-predictions of these partitions. This has been described with reference to FIG. 5 and with reference to FIGS. 10 and 11. However, the decoder does not have to perform the decoding by alternating between residual decoding on the one hand and reconstruction of the various partitions by combining intra-prediction on the one hand and prediction residuals on the other hand. That is, when decoding a particular block 80, the decoder may decouple the decoding of the prediction residuals 120 of the various partitions from the actual reconstruction procedure, which includes the individual intra-prediction of the various partitions. Referring to FIG. 5, the decoder may decode the prediction residuals 120 of all partitions, i.e., prediction residuals 1201-1204 for block 80, from the data stream 14 according to one processing task, and the decoder may decode the prediction residuals 120 of partitions 102 according to another task. i Prediction residual of 120 i 8. To this end, the decoder may, in a second task, reconstruct the interior of block 80 for each partition 120 using the intra prediction mode of block 80 according to partition order 126. i Then, the prediction residual 120 obtained from the first task is used. i and then add the next partition 120 in partition order 126 to perform spatial prediction. i+1 The decoder continues reconstructing block 80 by stepping to the first partition 102, followed by using the prediction residual of that partition to correct the intra prediction result. The decoder may either fully perform the first task of deriving prediction residual 120 from data stream 14 before beginning the second task of performing prediction and prediction correction using the prediction residual, or the decoder may perform the first task of deriving prediction residual 120 from data stream 14 by stepping to the first partition 102, followed by using the prediction residual of that partition to correct the intra prediction result. i Prediction residual of 120 i But when needed, i.e., partition 102 iThe decoder may perform two tasks in parallel: providing a means to ensure that the prediction results of the block are obtained using the intra prediction mode of the block and are ready when they need to be corrected. In particular, during the first task or phase, the decoder performs the following tasks: i For all partitions 102 for which σ is signaled as non-zero, the inverse transform may all be performed in parallel.
[0090] As an aside, the residual for partition i is 120 i It should be noted that when partition j is quantized in the transform domain, it may happen that the reconstructed samples of these partitions leave, i.e., exceed or pass a certain allowable sample value range. As mentioned above, they may serve as elements of reference samples 118j for partition j following in order 126. According to a variant of ISP, these samples are left intact for the purpose of predicting partition j following in order 126, and clipping of these samples in block 80 is performed as the final clipping step for the entire block 80, thereby facilitating, for example, a more convenient implementation on the decoder side. Thus, partition 102 i In deriving the predictor for , one or more already reconstructed samples 118 serve as a basis for the current partition. i This partition is 102 according to partition order 126. iThe reconstructed samples of the partition i preceding the partition j may 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 performed at the end to finally reconstruct the given block after performing the sequential reconstruction. On the encoder side, clipping is performed only to obtain reconstructed versions of such samples to serve as prediction references for subsequently encoded blocks in order to maintain reference synchronization with the decoder. However, this final cleanup type of clipping is only an example, and clipping may alternatively be performed immediately, i.e., before the reconstructed samples of partition i serve as reference samples 118j for the subsequently processed partition j.
[0091] An example of one ISP is specifically illustrated below. In particular, according to this example, data stream 14 signals to intra-coded block 80 via partition mode flag 160 whether it is coded using an ISP scheme. The corresponding syntax element in data stream 14 may be named intra_subpartitions_mode_flag. For example, if this flag is 1, intra-coded block 80 may be coded using the LIP or ISP scheme; otherwise, block 80 is coded using normal intra prediction. The LIP or ISP scheme may be available for the current intra-coded block 80 only if one or more specific conditions are met. The one or more conditions may include, for example, that intra-coded block 80 must exceed a certain minimum size, e.g., in terms of the number of samples in block 80, and / or that intra-coded block 80 may not be allowed to exceed certain dimensions, at least both horizontally and vertically, e.g., to avoid resulting in a transform size that is too large. To be precise, LSP or ISP mode is available only if the block 80 is less than or equal to the above-mentioned maximum transform-related size in at least one direction, i.e., horizontal or vertical. Therefore, the intra_subpartitions_mode_flag may be present in the data stream only if the block 80 satisfies the above-mentioned condition. Otherwise, the decoder may infer that the intra-coded block 80 is conventionally intra-coded. In the case of a partition mode flag, intra_subpartitions_mode_flag, indicating that the intra-coded block 80 is an LSP- or ISP-coded block, a partition size flag 114 may be further signaled to the intra-coded block 80. However, this intra_subpartitions_mode_flag is not necessarily explicitly signaled, but may be inferred to indicate a particular partition size 104 in certain circumstances.For example, for an intra-coded block 80 having a width that exceeds (but a height that does not exceed) the aforementioned maximum transform size, the partition dimension 104 may be forced to be horizontal, and if the height of the block 80 exceeds (but the width does not exceed) the aforementioned maximum transform size, the dimension 104 may be forced to be vertical. In either case, the intra_subpartitions_split_flag is not explicitly signaled in the data stream but is inferred as such by the decoder. The intra-coding mode 116 may be signaled in the data stream as outlined above, i.e., by using a list of most likely intra-prediction modes constructed at the encoder and decoder side. For LIP or ISP intra-coded blocks 80, data stream 14 may signal the intra-coding mode via an MPM list pointer, e.g., called intra_luma_mpm_IDX, that necessarily points to a list of possible intra-prediction modes; however, this pointer may be preceded in data stream 14 by an MPM flag if the intra-coded block is not ISP-coded. For example, if that MPM flag, called intra_luma_mpm_flag, has a specific flag state, a pointer to a remainder list of intra-prediction modes is signaled in the data stream instead of a pointer to a list of most likely intra-prediction modes. However, as noted above, this is merely an example, and the signalable set of intra-prediction modes may be the same, i.e., cover all supported intra-prediction modes for both normally coded intra-predicted blocks and ISP intra-predicted blocks. For example, intra_luma_mpm_flag may be transmitted for both types of intra-coded blocks. Alternatively, the pointers transmitted for both types of intra-predicted blocks may point directly to the complete list of supported intra-prediction modes, without the MPM flag, for both types of intra-coded blocks.When an intra-coded block 80 is coded using the ISP scheme, the number of partitions 102 / 112 may be defined as follows: In particular, the encoder and decoder may determine the number of partitions depending on the size of the block 80. No signaling is required in the data stream. For small block sizes, the number may be two; otherwise, the number of partitions 102 / 112 is four. The partition order in which intra prediction of partitions and coding of prediction residuals in the data stream is performed may proceed sequentially from the leftmost partition along the partition direction 104 in the horizontal direction n14, and from the topmost partition in the vertical partition direction, to the furthest partition. Again, no signaling is required. The residual transform may be performed for each partition 102 / 112, as described above. That is, each partition may be transformed separately. In comparison, for a typical intra-coded block 80, the number of transforms may depend on the size of the intra-coded block 80 as follows: if the intra-coded block is smaller than the aforementioned maximum transform size in the horizontal and vertical directions, the residual of the intra-coded block 80 is coded using one transform, i.e., the residual of the block 80 is completely subjected to one transform. If the maximum transform size is exceeded in the horizontal direction, the intra-coded block 80 is divided horizontally into two halves or a corresponding number of transform blocks, such that each half or transform block meets the maximum transform size and the residual of the block 80 is subjected to one transform per half / transform block. The same applies when the block 80 exceeds the maximum transform size in the vertical direction. If the maximum transform size is exceeded both vertically and horizontally, four or a corresponding number of transforms are used to transform the residual of the block 80 within the four quadrants of this block 80, or a regular two-dimensional subdivision of the block 80, into a corresponding number of transform blocks. Furthermore, the processing of regular intra-coded blocks 80 may deviate from the processing of LIP or ISP coded intra-coded blocks 80 in that regular intra-coded blocks are intra-predicted en bloc.That is, it is not subpartitioned. A further difference may relate to the coding of the transforms for coding the prediction residual of block 80. For each transform, a coded block flag 188 such as tu_cbf_luma may be transmitted, but for a regular intra-coded block 80, this flag may necessarily be coded for each transform within block 80, and this flag may be inferred to be the flag for the last transform of block 80 if block 80 is ISB-coded and all previous CBFs for previous transforms are zero. Furthermore, the choice of dimensions of the sub-blocks within each transform may differ between one regular intra-coded block 80 and another ISP-coded block 80. Details are as described above. However, alternatively, the subdivision of transform 182 into sub-blocks may be performed equally for regular 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-block, and let log2TbWidth and log2TbHeight be the width and height of the transform, respectively. The sub-block dimensions can then be determined as follows: [Table 7]
[0092] The above pseudocode results in sub-blocks of the sizes shown in Table 2. Due to the inherent minimum size of intra-coded block 80 and the non-subdivision of regular intra-coded blocks, only sub-blocks of 4x4 coefficients can result for regular intra-coded block 80. Finally, while the above example may result in ISP intra-predicted blocks of various sizes, including those partitioned into only two partitions 102 / 112, note that whether or not such ISP intra-predicted blocks exist, there may be ISP intra-predicted blocks partitioned into more than two partitions.
[0093] This is the starting point for the description of an embodiment with improved implementation efficiency presented below. Note that although the description is presented as an alternative to processing large ISP blocks as described above while processing ISP blocks of a particular size, such as 4x4, 8x4, 4x8 blocks, a further alternative embodiment can be achieved by transferring the following partition-based intra-coding concept to a block-based codec without the ISP processing of blocks outlined so far.
[0094] 12 illustrates a decoder 20 for block-based decoding of a picture from a data stream 14, according to one embodiment. Accordingly, a given block 80 may be decoded, whereby the given block may be partitioned into sub-blocks, which may be understood as transform partitions 300. The data stream 14 may comprise an encoded intra-coding mode 116, an encoded partition size flag 114, and several encoded transforms 120 of the prediction residuals. The intra-coding mode 116 and the partition size flag 114 are signaled, for example, for the given block 80. Conversely, the transforms 120 of the prediction residuals are signaled, for example, for individual transform partitions of the given block 80.
[0095] The decoder 20 is configured to decode, for a given block 80 of a picture, a partition dimension flag 114 from the data stream 14 and set the partition dimension 104 depending on the partition dimension flag 114 to either horizontal 1041 or vertical 1042. The partition dimension 104 indicates, for example, the direction 105 in which the given block 80 is partitioned by the decoder 20.
[0096] According to one embodiment, the decoder 20 is configured to decode the partition dimension flag 114 by using context-dependent entropy decoding that uses a context that depends on the intra-coding mode 116. According to one embodiment, the decoder 20 is configured to decode the partition dimension flag 114 by using context-dependent entropy decoding that uses one of three contexts, including an intra-coding mode signaling a non-angular mode, an intra-coding mode signaling a horizontal mode, and an intra-coding mode signaling a vertical mode.
[0097] If the partition dimension 1041 is horizontal, then a given block 801 may have, for example, a vertical translation partition 300 that spans the entire vertical height of the given block 801. 1b ~300 6b Alternatively, if the partition dimension 1042 is vertical, the given block 802 may be partitioned or divided into, for example, horizontal translation partitions 300 spanning the entire horizontal width of the given block 802. 1a ~300 4a In other words, the decoder is configured to partition a given block 80 along a predetermined dimension 1041 or 1042 into transform partitions 300 of the same width 1031 or 1032 as the given block 80 perpendicular to the predetermined dimension 1041 or 1042. The predetermined dimension is, for example, the partition dimension 104.
[0098] The number of transform partitions 300 may be, for example, greater than two, and / or the transform partitions 300 may be one sample wide 1011 or 1012 along a given dimension 1041 or 1042. Alternatively, the transform partitions 300 may be two or more samples wide along the partition dimension 1041 or 1042.
[0099] According to one embodiment, the decoder 20 is configured to set the width 101 of the transform partition 300 measured along the predetermined dimension 104 depending on the size 101a of the predetermined block 80 along the predetermined dimension 104, 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.
[0100] In one embodiment, a given block 80 having width W and height H, i.e., dimensions W×H, is divided horizontally or vertically into K equally sized transformation partitions, for example, having dimensions W×H / K for horizontal division (along the vertical division dimension), or dimensions W / K×H for vertical division (along the horizontal division dimension).
[0101] The decoder 20 is configured to reconstruct 123 a given block 80 based on already reconstructed samples 118 neighboring the given block 80, based on the intra-coding mode 116, and based on a transformation 120 of the prediction residual.
[0102] Thus, the decoder is configured to decode the transform 120 of the prediction residual for each transform partition from the data stream. According to one embodiment, the decoder 20 is configured to decode the transform 120 for each partition from the data stream by decoding the coded transform partition flag 188 from the data stream. If the coded transform partition flag 188 is not set, the decoder 20 is configured to set the prediction residual to zero for each transform partition 300; if the coded transform partition flag is set, the decoder 20 is configured to decode the transform coefficients of the transform 120 of the prediction residual for each transform partition from the data stream. For example, if the coded transform partition flag 188 is zero, the coded transform partition flag 188 is not set.
[0103] 12 , for each transform partition 300, a coded transform partition flag 188 is optionally encoded in the data stream 14, based on which the decoder 20 is configured to either decode the transform 120 of the prediction residual for the transform partition 300, or to infer that the prediction residual is zero and that a transform 120 does not need to be decoded by the decoder 20 for this transform partition. Alternatively, the coded transform partition flag 188 is not decoded by the decoder, and instead the decoder is configured to either directly decode the transform 120 of the prediction residual for each transform partition 300, or to decode one transform for the entire given block 80.
[0104] According to one embodiment, decoder 20 sequentially decodes coded transform partition flags 188 from data stream 14 for transform partition 300, and if all preceding coded transform partition flags 188 are not set, decoder 20 decodes the last transform partition in transform partition order 210, e.g., transform partition 300. 4a Or conversion partition 300 6b , the coded transform partition flag 188 is configured to be set.
[0105] According to one embodiment, the decoder 20 selects a preceding transform partition, e.g., the first transform partition 300, that precedes each transform partition in the predetermined transform partition order 210. 1a or 300 1b For each transform partition, e.g., the second transform partition 300 is decoded using context-dependent entropy decoding that uses a context that depends on the coded transform partition flag 1881. 2a or 300 2b , the encoded transform partition flags 1882 are configured to be decoded from the data stream 14.
[0106] Additionally, the decoder 20 is configured to decode the intra-coding mode 116 from the data stream 14 for a given block 80 of a picture.
[0107] The decoder 20 is configured to intra predict 122 a given block 80 depending on one or more already reconstructed samples 118 neighboring the given block 80, in a manner that depends on the intra coding mode 116, to obtain a predictor for the given block 80. According to one embodiment, the decoder 20 is configured to intra predict 122 a predictor for each transform partition 300.
[0108] According to the first option, the transform partitions 300 are reconstructed sequentially by the decoder 20. Thus, the decoder reconstructs the first transform partition 300 1a or 300 1b , the predictor is intra-predicted 1221, and the first transform partition 300 1a or 300 1b 12. Correct this predictor using the transform 1201 of the decoded prediction residual for 2a or 300 2b , the predictor is intra-predicted 1222, and the second transform partition 300 2a or 300 2b 12, the predictor is configured to correct this predictor using the transform 1202 of the decoded prediction residual for block 802. For a given partitioned block 801 and 802 shown in FIG. 3a and 300 4a , as well as the subsequent transformation partition 300 for block 801. 3b , 300 4b , 300 5b and 300 6b is intra predicted and corrected accordingly.
[0109] According to a second option, the transform partitions 300 are reconstructed in one step. Thus, the decoder 20 is configured to decode, for each transform partition 300, a transform 120 of the prediction residual from the data stream 14 and to intra-predict 122 a predictor for each transform partition 300. The decoding of the transform 120 is, for example, performed independently of the intra-prediction. According to one embodiment, in the reconstruction 123 of a given block 80, all transforms 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 given block 80, for each transform partition 300, the transforms 120 of the prediction residual are decoded for each transform partition 300 and the predictors associated with each available transform partition 300.
[0110] According to one embodiment, decoder 20 is configured, for each transform partition 300, to retransform transform 120 into the spatial domain for use in correcting the predictor in the respective transform partition 300. In other words, an inverse transform may be applied to the transform coefficients of transform 120 of the prediction residual to obtain a prediction residual in the spatial domain.
[0111] According to one embodiment, the transform 120 is a DCT transform when the intra-prediction mode (i.e., the intra-coding mode 116) is not a planar mode, and a DST transform when the intra-prediction mode is a planar mode, or the transform is a linear transform whose type is selected based on the intra-prediction mode, the block size of the given block 80, and / or dedicated syntax elements. Thus, the decoder is configured to determine the transform type of the transform 120 of the prediction residual based on, for example, the intra-coding mode. For the above re-transform, the decoder uses, for example, an inverse transform type.
[0112] According to one embodiment, the decoder 20 is configured to decode a partition mode flag 160 from the data stream 14 for a given block 80 of a picture. If the partition mode flag 160 indicates a first partition mode, the decoder 20 is configured to perform decoding of the partition dimension flag 114, partitioning 105, and decoding of the transform 120 for each transform partition 300. If the partition mode flag 160 indicates a second partition mode, instead of decoding the partition dimension flag 114, partitioning 105, and decoding of the transform 120 for each transform partition 300, the decoder 20 is configured to decode one transform 120 of the prediction residual within the given block 80. In other words, the first partition mode indicates decoding of the given block 80 based on the transform partitions, and the second partition mode indicates decoding of the entire given block 80 without partitioning 105. Therefore, in the second partitioning mode, the transform partitions are not used by the decoder 20, e.g., the partition dimension flag 114, the coded transform partition flag 188, and the individual transforms 120 of the prediction residuals associated with the transform partitions are not encoded in the data stream 14 for a given block 80.
[0113] 13 shows an embodiment for decoding the transform 120 of the prediction residuals of a given transform partition 300 from the data stream 14, which may be performed by the decoder shown in FIG. 3a or 300 3b (An embodiment is shown for a given block 802 partitioned along a vertical partition dimension 1042 and for a given block 801 partitioned along a horizontal partition dimension 1041) 31 ~120 36 (Conversion partition 300 3a (related to) or 120 31 ~120 34 (Conversion Partition 3003b 1203) along a predetermined scan order 193 that scans the transform 1203 (associated with the transform 1203) by decoding a final position indication 1903 that forms a data stream 14 indicating the final transform coefficient position 191 of the transform 1203. 3a or 300 3b The decoder 20 is configured to decode a transform 1203 of the prediction residual from the data stream 14. Further, the decoder 20 decodes a transform 1203 of the prediction residual from the data stream 14. 3a or 300 3b , the transform coefficients 120 of the transform 1203 along the predetermined scan order 193 up to the final transform coefficient position 191 31 ~120 33 (Conversion Partition 300 3a (related to) or 120 31 ~120 33 (Conversion Partition 300 3b 19) from the data stream 14 and along a predetermined scan order 193, transform coefficients 120 of the transform 120 beyond the last transform coefficient position 191 are 34 ~120 36 (Conversion Partition 300 3a (related to) or 120 34 (Conversion Partition 300 3b ) is zero for a given transformation partition 300 3a or 300 3b 12. The system is configured to decode a transform 1203 of the prediction residual from the data stream 14 .
[0114] According to an embodiment, the final position indication 190 may be encoded in the data stream 14 in addition to the coded transform partition flag 188, for example, as described with respect to Figure 9. Alternatively, only the final position indication 190 is encoded in the data stream 14, and the coded transform partition flag 188 is not encoded.
[0115] According to one embodiment, transform partition 300 is one sample wide along predetermined dimension 104, and transform 120 is a one-dimensional transform.
[0116] 14 shows an embodiment of an encoder 10 for block-based encoding from a picture to a data stream 14, configured to encode, for a given block 80 of a picture, a partition dimension flag 114 into the data stream 14, the partition dimension flag 114 signaling that the partition dimension 104 should be set to horizontal 1041 or vertical 1042. The decision 200 by the encoder 10 of whether the given block 80 should be partitioned, and if so, which partition dimension 104 should be selected, depends, for example, on the block size of the given block 80 and / or on one or more partition decisions 200 of the encoder for one or more previously encoded blocks of the picture.
[0117] The encoder 10 is configured to partition 105 a given block 80 along a predetermined dimension 104 into transform partitions 300 that are the same width 103 as the given block 80 perpendicular to the predetermined dimension. The predetermined dimension is, for example, the partition dimension 104. Thus, the encoder 10 is configured to perform a vertical partition if the partition dimension 1041 is horizontal, and a horizontal partition if the partition dimension 1042 is vertical. The partitioning is optionally performed as described in Figures 12 and 13 in the context of a decoder and / or as described with respect to Figures 15 to 18.
[0118] The encoder 10 is configured to intra-predict a given block 80 depending on one or more already reconstructed samples 118 neighboring the given block 80 in a manner that depends on the intra-coding mode 116 to obtain a predictor for the given block 80. This is performed, for example, by a prediction module 44 of a prediction stage 36, which generates a prediction signal 26 by using the intra-prediction mode 116. According to one embodiment, the encoder 10 is configured to perform intra-prediction separately for each transform partition 300 of the given block. The transform partitions 300 are, for example, sequentially intra-predicted, transformed 28, quantized 32, and encoded 34 into a data stream 14.
[0119] According to one embodiment, the encoder 10 is configured to encode, for a given block 80 of a picture, an intra-coding mode 116 into the data stream 14. For example, for the complete given block 80, the encoder 10 is configured to obtain prediction residuals 24 for each transform partition of the given block 80 using the same intra-coding mode 116, which may be transformed 28, quantized 32, and encoded 34 into the data stream 14.
[0120] The encoder 10 is configured to encode, for each transform partition 300, a transform 120 of the prediction residual into the data stream 14 so that a given block 80 can be reconstructed by correcting the predictor in each transform partition 300 using the transform 120 of the prediction residual encoded for that partition 300. In other words, for each transform partition 300, the encoder 10 is configured to transform 28, for example, the prediction residual 24 in that partition 300 into the spectral domain for use in correcting the predictor in that partition 300.
[0121] According to one embodiment, the number of transform partitions is greater than two and / or the transform partitions are one sample wide along the given dimension.
[0122] According to one embodiment, the encoder 10 is configured to encode the transform 120 into the data stream 14 by encoding, for each partition 300, a coded transform partition flag 188 into the data stream 14. If the coded transform partition flag 188 is not set, the coded transform partition flag 188 signals that, for the respective transform partition 300, the prediction residual 24 is zero; if the coded transform partition flag 188 is set, the encoder is configured to encode the transform coefficients of the transform 120 of the prediction residual 24 of the respective transform partition 300 into the data stream 14. For example, if the coded transform partition flag 188 is zero, the coded transform partition flag 188 is not set.
[0123] According to one embodiment, if all preceding coded transform partition flags, e.g., all preceding coded transform partition flags 1881-1887 for vertical partitions or all preceding coded transform partition flags 1881-1883 for horizontal partitions, are not set and are expected to be set later, the last transform partition, e.g., transform partition 300 for vertical partitions, is selected in the transform partition order 210. 8b or horizontal partitioning conversion partition 300 4b With the exception of the coded transform partition flags, e.g., coded transform partition flags 1888 for vertical partitioning or coded transform partition flags 1884 for horizontal partitioning, the encoder 10 is configured to sequentially encode the coded transform partition flags 188 for the transform partitions 300 into the data stream 14.
[0124] According to one embodiment, the encoder 10 is configured to encode the coded transform partition flag 188 for each transform partition 300 into the data stream 14 by using context-dependent entropy coding that uses a context that depends on the coded transform partition flag 188 coded for the preceding transform partition 300 that precedes the respective transform partition 300 in a predetermined transform partition order 210.
[0125] According to one embodiment, the encoder 10 is configured to encode the transform 120 of the prediction residual of a given partition 300 into the data stream 14 by encoding a final position indication 190 into the data stream 14 that indicates, for a given transform partition 300, a final transform coefficient position of the transform along a predetermined scan order scan transform coefficients of a one-dimensional transform. The encoder is further configured to encode the transform 120 of the prediction residual of a given partition 300 into the data stream 14 by encoding, for a given transform partition 300, transform coefficients of the transform along a predetermined scan order up to a final transform coefficient position, where transform coefficients of the transform beyond the final transform coefficient position along the predetermined scan order are zero and are inferred to be zero. This may be performed in a similar manner to the decoder, as described in FIG. 13.
[0126] The transform partition is, for example, one sample wide along the given dimension 104, and the transform is a one-dimensional transform.
[0127] The transform may be, for example, a DCT transform if the intra-prediction mode 116 is not a planar mode, a DST transform if the intra-prediction mode 116 is a planar mode, or a linear transform whose type is selected based on the intra-prediction mode 116, the block size of the given block 80, and / or dedicated syntax elements.
[0128] According to one embodiment, the encoder 10 is configured to encode a partition mode flag 160 into the data stream 14 for a given block 80 of a picture. If the partition mode flag indicates a first partitioning mode, the encoder is configured to perform encoding of the partition dimension flag 114, partitioning and encoding of the transforms 120 for each transform partition 300. If the partition mode flag indicates a second partitioning mode, instead of encoding of the partition dimension flag 114, partitioning and encoding of the transforms 120 for each transform partition 300, the encoder is configured to encode one transform 120 of the prediction residual within the given block.
[0129] According to one embodiment, the encoder is configured to encode the partition dimension flag 114 by using context-dependent entropy coding, which uses a context that depends on the intra-coding mode.
[0130] According to one embodiment, the encoder is configured to encode the partition dimension flag 114 by using context-dependent entropy encoding using one of three contexts, including an intra-coding mode 116 signaling a non-angular mode, an intra-coding mode 116 signaling a horizontal mode, and an intra-coding mode 116 signaling a vertical mode.
[0131] According to one embodiment, the encoder is configured to set the width 101 of the transform partition 300 measured along the predetermined dimension 104 depending on the size of the predetermined block 80 along the predetermined dimension 104 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.
[0132] Below, the extension of the intra-subpartition (ISP) coding mode to 4x4 and the modification of the number of subpartitions for 4x8 and 8x4 blocks are described and motivated. The subpartitions are independent of each other to maintain a worst-case throughput of 16 samples / cycle. Experimental results show gains of 0, 1%, and 0.47% for CTC and class F, respectively, for the AI configuration, and 0, 01%, and 0.25% for CTC and class F, respectively, for the RA case. The impact on encoding runtime is 102% for the AI case and 100% for the RA case.
[0133] We provide additional test results on the impact of extending the ISP concept to all ISP blocks generating subpartitions with widths smaller than 4. Experimental results show gains of 0.05% and 0.44% for CTC and class F, respectively, for the AI configuration, and a gain of 0.24% for class F (no change in CTC) for the RA case. Meanwhile, we have tested the impact of completely removing subpartitions with widths smaller than four in the current ISP design. This additional information shows losses of 0.14% and 0.31% for CTC and class F, respectively, for the AI configuration, and 0.04% and 0.23% for CTC and class F, respectively, for the RA case.
[0134] 1 Introduction As shown in [1], the Intra Subpartition (ISP) coding mode divides the luma intra prediction block vertically or horizontally into two or four equally sized subpartitions according to the CU dimension. Table 6 shows the different possibilities.
[0135] Table 6: Number of subpartitions created by ISP according to CU dimensions in the current VVC draft [Table 8]
[0136] Each subpartition is predicted, transformed, quantized, and the entropy coded coefficients are transmitted to the decoder. The reconstructed samples of a subpartition are then used to generate a prediction for the next subpartition, but the intra mode used is shared among all subpartitions.
[0137] Because this process is in the intra-prediction critical path (in the general case, a subpartition cannot be decoded until the reconstructed samples of the previous subpartition are available), a minimum of 16 samples must be performed for each subpartition, which guarantees a worst-case throughput of 16 samples / cycle. This is, in fact, why 4x8 and 8x4 blocks have two subpartitions (instead of four), and why 4x4 blocks cannot be subdivided.
[0138] The following description presents an extension of ISP that allows its use with 4x4 blocks and modifies the number of subpartitions for 4x8 and 8x4 blocks while maintaining the 16 samples / cycle throughput constraint. This goal can be achieved by generating subpartitions that are independent of each other, i.e., by not using the reconstructed samples of a subpartition to predict the next one.
[0139] For example, for 4x8 and 8x4 blocks, the partitioning and reconstruction of a given block 80 as described below with respect to Figures 15-18 may be performed by a decoder as described with respect to Figures 12 and 13, or by an encoder as described with respect to Figure 14.
[0140] It should be noted that the subsequent presentation of specific modifications in the ISP represents only a presentation of possible embodiments, and that variations thereof are readily available, for example, less complex or straightforward forward variations are described in Section 6 below.
[0141] 2 ISP expansion to new block sizes The ISP changes introduced in this contribution affect 4x4, 8x4 and 4x8 blocks.
[0142] 2.1 4x4 blocks According to the embodiment shown in Figures 15 and 16, a given block 80 is divided into four 4x1 (hor.split) or 1x4 (ver.split) partitions. However, the prediction signal 122 of each of them is generated using neighboring samples 118 of the CU boundary as reference samples. Therefore, each subpartition (i.e., transform partitions 300) is independent of the other, and all of them can be processed in parallel in a single step. In other words, reusing the terminology applied above, the block 80 is not partitioned, or is left as one partition 112, and the reference samples 118 used for intra prediction or prediction derivation are all outside the block 80. Rather, the partitioning is applied to transform-based residual coding, as outlined below. Here, one partition 112, i.e., a block, is partitioned into transform partitions 300, each of which is transformed separately and results in a respective transform 182 coded in the manner described above with respect to the data structure 120.
[0143] Figures 15a-15d show one embodiment of a vertical division of a 4x4 block, i.e., partitioning along the horizontal partition dimension. The reference samples 118 used to generate each 1x4 prediction are CU boundary samples only. Note that the prediction is the same as in the non-ISP case.
[0144] Note that the predicted samples for all transform partitions 300 are the same as those generated for blocks that do not use ISP (except for the reference samples and PDPC filtering operation, which are disabled for all ISP blocks). The difference between a 4x4 block that uses ISP and one that does not is in the transforms (four 1D transforms in the ISP case and a single 4x4 transform in the non-ISP case) and the entropy coding of the coefficients.
[0145] 2.2 8x4 and 4x8 blocks According to the embodiment shown in FIG. 17 or FIG. 18, the ISP design is modified so that the number of transform partitions 300 becomes four and the number of subpartitions 1121 and 1122 becomes two. Each subpartition 1121 and 1122 is subdivided into two transform partitions 300. As shown in the embodiment of FIG. 17 or FIG. 18, the prediction signals 122 of transform partitions 2 and 4 cannot be generated using the reconstructed samples of transform partitions 1 and 3, respectively. Therefore, transform partition 2 is independent from transform partition 1, and similarly, transform partition 4 is independent from transform partition 3. Therefore, a 4×8 or 8×4 block can be processed in two cycles, which corresponds to a total of 16 samples / cycle. The figures illustrate this for horizontal and vertical partitioning.
[0146] 17 illustrates one embodiment of vertical partitioning of a given block 80. The given block 80 may be, for example, a 4×M block divided into four 1×M transform partitions 300, where M≧8, an 8×N block divided into four 2×N transform partitions 300, where N≧4, or a 16×0 block divided into four 4×0 transform partitions 300, where O≧1. Reconstructed samples from transform partition 2 may be used to predict transform partition 3, but reconstructed samples from transform partitions 1 and 3 may not be used to predict 2 and 4, respectively. The vertical partitioning corresponds to partitioning along the horizontal partition dimension.
[0147] 18 illustrates one embodiment of horizontal partitioning of a given block 80. The given block 80 may be, for example, an Mx4 block divided into four Mx1 transform blocks, where M >= 8; an Nx8 block divided into four Nx2 transform partitions 300, where N >= 4; or an Ox16 block divided into four Ox4 transform partitions 300, where O >= 4. Reconstructed samples from transform partition 2 may be used to predict transform partition 3, but reconstructed samples from transform partitions 1 and 3 may not be used to predict 2 and 4, respectively. The horizontal partitioning corresponds to partitioning along the vertical partition dimension.
[0148] As shown in Figures 17 and 18, the decoder described herein performs intra prediction 122 of a given block 80 dependent on one or more already reconstructed samples 1181 adjacent to the given block 80 in a manner that depends on the intra coding mode to obtain a predictor for the given block 80, and for a current subpartition, e.g., subpartition 1121 shown in Figure 17 or subpartition 1021 shown in Figure 18, performs subpartition reconstructing along a predetermined dimension 104 before proceeding to the next subpartition, e.g., subpartition 1122 shown in Figure 17 or subpartition 1022 shown in Figure 18. 11. The decoder is configured to: reconstruct a given block 80 by sequentially reconstructing the group of transform partitions 300, for each group of transform partitions 300 according to a predetermined subpartition order 126 that sequentially traverses the subpartitions 102 / 112, where the transform partitions 300 of the given block 80 are grouped to form subpartitions, e.g., 1121 and 1122 shown in FIG. 17 or 1021 and 1022 shown in FIG. 18; and reconstructing the given block 80 by correcting a predictor in each transform partition 300 using a transform of a decoded prediction residual for each transform partition 300. The decoder is configured to derive 122 a predictor for the current subpartition by filling the current subpartition with one or more already reconstructed samples 1181 adjacent to the current subpartition, in a manner that depends on the intra-coding mode. The decoder is further configured to reconstruct the current subpartition by correcting a predictor in each transform partition 300 included in the group of transform partitions that form the current subpartition, using the transform of the respective transform partition 300.
[0149] 17 and 18, the encoder described herein is similar to a decoder and performs intra prediction 122 of a given block 80 depending on one or more already reconstructed samples 1181 adjacent to the given block 80 in a manner that depends on the intra coding mode to obtain a predictor for the given block 80, and fills a current subpartition depending on one or more already reconstructed samples 1181 adjacent to the current subpartition in a manner that depends on the intra coding mode, for each group of transform partitions, for example, subpartition 1121 and 1122 shown in FIG. 17 or subpartition 1021 shown in FIG. 18 according to a predetermined subpartition order 126 that sequentially traverses the subpartitions 102 / 112 along the predetermined dimension 104, to derive a predictor for a current subpartition, for example, subpartition 1121 and 1122 shown in FIG. 17 or subpartition 1021 shown in FIG. 18. 17 or subpartition 1022 shown in FIG. 18, and by determining a transformation of the prediction residual in each transform partition 300 constituted by the group of transform partitions forming the current subpartition 102 / 112 to aid in reconstruction of the current subpartition by correcting the predictor in each transform partition 300 constituted by the group of transform partitions forming the current subpartition 102 / 112 using the transformation of the respective transform partition.
[0150] 17 and 18, the decoder and / or encoder is configured to use already reconstructed samples 1181 adjacent to a given block 80 to perform prediction 122 of a predictor of, for example, the first and second transform partitions 300 that are grouped together to form a first subpartition, for example, the subpartition 1121 shown in FIG. 17 or the subpartition 1021 shown in FIG. 18. To predict 122 of a predictor of, for example, the third and fourth transform partitions 300 that are grouped together to form a second subpartition, for example, the subpartition 1122 shown in FIG. 17 or the subpartition 1022 shown in FIG. 18, the decoder uses, for example, already reconstructed samples 1182 adjacent to the given block 80 and / or already reconstructed samples 1182 of the second transform partition 300 that are adjacent to the third transform partition 300. In other words, to predict 122 the predictor of the transform partition 300 of the second subpartition 1122 / 1022, the decoder is configured to use, for example, already reconstructed samples 1182 adjacent to the second subpartition 1122 / 1022, where at least some of the already reconstructed samples may be associated with already reconstructed samples of a preceding subpartition, for example, subpartition 1121 shown in FIG. 17 or subpartition 1021 shown in FIG. 18.
[0151] According to one embodiment, the subpartitions of a given block 80 are reconstructed or encoded sequentially. In other words, a first subpartition, e.g., subpartition 1121 according to FIG. 17 or subpartition 1021 according to FIG. 18, is reconstructed or encoded in a first cycle, and then a second subpartition, e.g., subpartition 1122 according to FIG. 17 or subpartition 1022 according to FIG. 18, is reconstructed or encoded in a second cycle. Thus, all transform partitions of the same subpartition are reconstructed or encoded in the same cycle. In other words, transform partitions associated with the same subpartition may be reconstructed or encoded in parallel. Thus, according to one embodiment, since all transform partitions 300 are reconstructed in parallel, the complete given block 80 of FIG. 15 or FIG. 16 may be understood as one partition (i.e., subpartition).
[0152] According to one embodiment, the decoder and / or encoder is configured such that the number of transform partitions 300 per sub-partition 102 / 112 depends on the dimensions of a given block 80.
[0153] According to one embodiment, the decoder and / or encoder is configured such that the number of transform partitions 300 per sub-partition 102 / 112 is one if the dimension of a given block 80 exceeds a predetermined threshold, and is greater than one if the dimension of the given block 80 does not exceed the predetermined threshold. If the given block exceeds a certain dimension, it is advantageous to refrain from further dividing the sub-partitions to further enhance decoding or encoding runtime. The predetermined threshold is, for example, a block dimension of 64x64 samples. In other words, the use of the ISP is limited to dimensions of the given block 80 that do not exceed the predetermined threshold.
[0154] According to one embodiment, the decoder and / or encoder is configured such that the number of sub-partitions 102 / 112 in a given block depends on the size of the given block and / or on the given dimension.
[0155] According to one embodiment, the decoder and / or encoder is configured such that the number of subpartitions 102 / 112 in a given block 80 is 1 if the dimension of the given block 80 is below a further predetermined threshold, and is greater than 1 if the dimension of the given block 80 is not below the further predetermined threshold. The further predetermined threshold is determined, for example, so that the given block 80 includes at least 16 samples. The further predetermined threshold is, for example, a dimension of the given block 80 greater than 4×4 samples, 8×2 samples, 2×8 samples, 1×16, or 16×1 samples. In the case of 4×4 samples, the given block 80 comprises, for example, one subpartition with four 1×4 transform partitions or four 4×1 transform partitions, as shown in FIG. 15 or FIG. 16. In the case of 2×8 samples, the given block 80 comprises, for example, one subpartition with two 1×8 transform partitions, and in the case of 8×2 samples, the given block 80 comprises, for example, one subpartition with two 8×1 transform partitions. For a given block dimension of 1x16 or 16x1 samples, the entire block is simultaneously a subpartition and a transform partition. If a given block 80 comprises only one subpartition, this subpartition is, for example, equal to the entire given block 80. Alternatively, as shown in Figures 17 and 18, larger dimensions of a given block 80 may result in two or more subpartitions comprising two or more transform partitions.
[0156] According to one embodiment, the decoder and / or encoder is configured such that the number of subpartitions in a given block depends on the dimensions of the given block, in that the number of subpartitions in the given block is equal to a first number when the given block has a first width and a first height, and the second number is different from the first number when the given block has a second width equal to the first height and a second height equal to the first width. As shown in Figures 15-18, for blocks having equal widths and heights, the number of subpartitions is different compared to blocks having the same width but different heights. A given block 80 having 4x4 dimensions, for example, is not divided, i.e., the entire block represents one partition (i.e., subpartition) with four transform partitions. Conversely, a given block having 4x8 or 8x4 dimensions is divided into two subpartitions. This may also be applicable to larger blocks. For example, a given block 80 having dimensions of 128x128 would not be divided, but a given block 80 having dimensions of 128x64 may be divided vertically (along the horizontal partition dimension) into four sub-partitions.
[0157] 3. Experimental results According to the general test conditions [2], the proposed method is evaluated for Intra-Only (AI), Random Access (RA), and Low-Latency (LDB) configurations using VTM-4.0.1 software. The corresponding simulations were performed on an Intel Xeon cluster (E5-2697A v4, AVX2 on, Turbo Boost off) with Linux OS and GCC 7.2.1 compiler.
[0158] Table 7: AI configuration results [Table 9]
[0159] Table 8: RA configuration results [Table 10]
[0160] Table 9: LDB configuration results [Table 11]
[0161] 4. Additional Information 4.1 Using subpartitions with widths less than four Because samples are typically allocated in a raster-scan fashion and certain implementations write the output of reconstructed samples in 4x1 groups, the use of subpartitions with a width less than four is mentioned in the JVET reflector as a potential hardware concern. Therefore, for example, 1xN or 2xN subpartitions could pose a problem. While prediction from 1xN subpartitions is not a major issue, writing 1xN subpartition data is problematic because data is typically written horizontally at four or eight samples per cycle. To make this work, a 4xN intermediate buffer (register) must be maintained to store this data, and then, for example, four samples must be written to memory at a time (e.g., for deblocking). The same problem occurs when reading the 1xN inverse transform output for reconstruction. This increases latency and may also require double buffering. For this reason, the following provides additional information to evaluate the impact of using these subpartitions.
[0162] 4.1.1 Eliminating Subpartitions with Width Less Than Four This change affects the vertical division of 4xN and 8xN blocks as follows: 4xN: There is no longer a vertical partition, i.e., along the horizontal partition dimension. Therefore, whenever an ISP is used in one of these blocks, the decoder or encoder infers that a horizontal partition is used and therefore does not need to parse the partition flag syntax element. So, for example, instead of a 1xN transform partition, a 4x1 transform partition is used. 8xN: The vertical division generates 2 sub-partitions instead of 4. Thus, a given block 80 is divided into, for example, 4xN sub-partitions instead of 1xN or 2xN sub-partitions.
[0163] Note that this modified ISP approach was proposed in [1] as Test 1.1.2 at CE3 of the Marrakech conference in January 2019. The results of this approach on VTM-4.0.1 are shown in Tables 10, 11 and 12.
[0164] Table 10: Results for AI configurations with no subpartitions with width less than 4 [Table 12]
[0165] Table 11: Results for RA configurations with no subpartitions with width less than 4 [Table 13]
[0166] Table 12: Results for LDB configurations with no subpartitions with width less than 4 [Table 14]
[0167] 4.1.2 Extending ISP using the independent subpartition approach to subpartitions with widths smaller than four In this case, subpartitions with widths smaller than four are not removed from the ISP structure. Instead, the same designs introduced in Section 2 for 4x4, 8x4, and 4x8 are applied to them. We distinguish between two different cases as follows: Vertical partitioning of a 4xN block is handled in the same way as the 4x4 vertical partitioning described in section 2.1. For example, a 4x32 block may be vertically partitioned into four independent 1x32 transform partitions 300 that form one partition 112. Vertical partitioning of an 8xN block is handled in the same way as the vertical partitioning of an 8x4 block described in Section 2.2. For example, an 8x16 block may be partitioned into four 2x16 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 allows writing reconstructed samples in groups of at least 4x4 samples for all vertical partitions (for horizontal partitions the minimum remains 16x1). The results of this approach on VTM-4.0.1 (using independent transform partitions of 4x4, 4x8, 8x4, and vertical partitions of 4xN and 8xN blocks) are shown in Tables 13, 14, and 15.
[0169] Thus, according to one embodiment, the decoder is configured to divide a given block into 16xM sub-blocks, where M > 1, or into 4xN or Nx4 sub-blocks, where N > 4. The sub-blocks are optionally partitioned into two or more smaller transform partitions, as described above.
[0170] Table 13: Results of using 4x4, 4x8, 8x4 independent subpartitions and vertical division of 4xN and 8xN blocks for AI configurations [Table 15]
[0171] Table 14: Results of using 4x4, 4x8, 8x4 independent sub-partitions and vertical partitioning of 4xN and 8xN blocks for RA configurations. [Table 16]
[0172] Table 15: Results of using 4x4, 4x8, 8x4 independent subpartitions and vertical partitioning of 4xN and 8xN blocks for LDB configurations. [Table 17]
[0173] 5 Conclusion The reported results show gains in CTC and class F with very little (AI) or no impact (RA and LDB) on encoding runtime.
[0174] With regard to the additional information presented, experimental results show that for classes C and E in AI and class F in all configurations, removing subpartitions with widths less than four results in significant losses. Furthermore, this loss is slightly reduced in encoding runtime. On the other hand, extending the novel ISP design to blocks that generate subpartitions with widths less than four performs better in terms of BD rate gain than the complete removal of these subpartitions, given that it produces no losses and produces significant gains in class F with negligible impact on encoding runtime.
[0175] 6. Reduction of Complexity of ISP Partition Structure As already mentioned above, there are variations of the above concept, and here is one.As outlined above, in a typical decoder hardware implementation, one of the most important aspects that affects the top-level system pipeline is processing dependency.In the case of ISP, since the smallest luma block of VVC has 4x4 dimensions, that is, 16 samples, the minimum 16 sample constraint ensures that the intra-loop dependency that exists in intra prediction does not matter in terms of throughput.
[0176] However, ISP introduces new, extremely narrow geometries to the VVC design: 1xN, 2xN, Mx2, and Mx1. Given that pixels are typically allocated in an internal line buffer memory in a raster-scan fashion, accessing samples in groups of 4x1, processing dependencies can become an issue for 1xN and 2xN subpartitions. Filling this buffer is therefore inefficient for all subpartitions with a width less than four. While the impact of this issue can be reduced by different hardware implementations (such as changing the pixel allocation method or using transpose memory), it still implies increased hardware implementation complexity.
[0177] 19a and 19b show examples of different sub-partitions 112 / P and transformation partitions 300 / T for different block sizes of a given block 80, with the left example showing a conventional partition and the right example showing a proposed partition according to the invention described herein. Decoding and / or encoding of the given block 80 on the right side of Fig. 19a may be performed similarly to or as described in Figs. 15a-15d, and decoding and / or encoding of the given block 80 on the right side of Fig. 19b may be performed similarly to or as described in Fig. 17.
[0178] To reduce the complexity of the hardware implementation, a minimum prediction width of 4 (transform size remains unchanged) is established, which affects the vertical division of 4xM (where M>4) and 8xN (where N>4) blocks as follows: 4xM: As shown in Figure 1a, the entire block is predicted at once, like a non-ISP block, and a 4xM residual signal is calculated. The residual is then split into four 1xM (or two 2x8 if M=8) transform subpartitions that are processed independently. 8xN: As shown in Figure 1b, the block is divided into two 4xN prediction subpartitions P1 and P2. After calculating the prediction for P1, a 4xN residual signal is generated and divided into two 2xN transform subpartitions T1 and T2, which are processed independently. The same process is then repeated for P2, T3, and T4. However, in this case, the prediction signal may use the reconstructed samples from the P1 area.
[0179] 7 References [1] S. De-Luxan-Hernandez, V. George, J. Ma, T. Nguyen, H. Schwarz, D. Marpe, T. Wiegand, et al., "CE3: Intra Sub-Partitions Coding Mode (Tests 1.1.1 and 1.1.2)," JVET-M0102, Marrakech, Morocco, 2019. [2] F. Bossen, J. Boyce, X. Li, V. Seregin, K. Suhring et al., "JVET common test conditions and software reference configurations for SDR video," JVET-M1010 document, Marrakech, Morocco, 2019.
[0180] Although some aspects have been described in the context of an apparatus, it will be apparent that these aspects also represent a description of a corresponding method, with a block or device corresponding to a method step or function of a method step. Similarly, aspects described in the context of a method step also represent a description of a corresponding block or item or function of a corresponding apparatus. Some or all of the method steps may be performed by (or using) a hardware apparatus, such as, for example, a microprocessor, a programmable computer, or an electronic circuit. In some embodiments, one or more of the most important method steps may be performed by such an apparatus.
[0181] The data stream of the present invention may be stored on a digital storage medium or may be transmitted over a transmission medium such as a wireless transmission medium or a wired transmission medium such as the Internet.
[0182] Depending on the particular implementation, embodiments of the present invention may be implemented in hardware or software. Implementations may be performed using a digital storage medium, such as a floppy disk, DVD, Blu-ray, CD, ROM, PROM, EPROM, EEPROM, or flash memory, having electronically readable control signals stored thereon, which cooperates (or can cooperate) with a programmable computer system to perform the respective methods. 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 can cooperate with a programmable computer system to cause one of the methods described herein to be performed.
[0184] Generally, embodiments of the present invention may be implemented as a computer program product having program code that operates to perform one of the methods when the computer program product is run on a computer. The program code may, for example, be stored on a machine-readable carrier.
[0185] Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier. In other words, therefore, an embodiment of the inventive method is a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.
[0186] A further embodiment of the inventive method is therefore a data carrier (or digital storage medium, or computer readable medium) having recorded thereon a computer program for performing one of the methods described herein. The data carrier, digital storage medium, or recorded medium is typically tangible and / or non-transitory.
[0187] A further embodiment of the inventive method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein, The data stream or the sequence of signals can for example be adapted to be transferred via a data communication connection, for example via the Internet.
[0188] A further embodiment comprises a processing means, for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein. A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
[0189] Further embodiments according to the invention comprise an apparatus or a system configured to transfer (e.g. electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver may for example be a computer, a mobile device, a memory device, etc. The apparatus or system may for example comprise a file server for transferring the computer program to the receiver.
[0190] In some embodiments, a programmable logic device (e.g., a field programmable gate array) may be used to perform some or all of the functions of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor to perform one of the methods described herein. In general, the methods are preferably performed by any hardware apparatus.
[0191] The apparatus described herein may be implemented using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
[0192] The devices described herein, or any components of the devices described herein, may be implemented at least in part in hardware and / or software.
[0193] The methods described herein may be performed using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
[0194] Any of the methods described herein, or any of the components of the apparatus described herein, may be implemented at least in part by hardware and / or software.
[0195] The above-described embodiments are merely illustrative of the principles of the present invention. It is understood that modifications and variations of the arrangements and details described herein will be apparent to others skilled in the art. It is therefore intended to be limited only by the scope of the claims that follow and not by the specific details presented by way of description and illustration of the embodiments herein.
Claims
1. A method for decoding a block of pictures, comprising: decoding, from a data stream, an intra coding mode of the block, wherein the block is divided into four transform partitions of the same size based on a partition size flag and the size of the block; determining, based on the size of the block, a plurality of prediction partitions into which the block is divided; deriving a predictor for a first prediction partition of the plurality of prediction partitions, using at least one reconstructed sample corresponding to the first prediction partition and the intra coding mode, wherein the first prediction partition corresponds to two transform partitions; after deriving the predictor for the first prediction partition, deriving a first prediction residual for a first transform partition and a second prediction residual for a second transform partition, wherein the first and second transform partitions correspond to the first prediction partition; combining the predictor for the first prediction partition, the first prediction residual, and the second prediction residual to reconstruct the first prediction partition; A method comprising the above steps.
2. reconstructing the block using the reconstructed prediction partition, prediction residuals corresponding to each of the four transform partitions, and predictors for each additional prediction partition of the plurality of prediction partitions; The method according to claim 1, further comprising the above step.
3. decoding, from the data stream, a partition size flag indicating a partitioning direction in which the block is divided; determining that the block is divided into the four transform partitions of the same size along the partitioning direction indicated by the partition size flag, wherein when the partitioning direction is horizontal, each transform partition extends in the vertical height of the block, and when the partitioning direction is vertical, each transform partition extends in the horizontal width of the block; The method according to claim 1, further comprising the above steps.
4. The method of claim 3 , wherein a first dimension of each of the transform partitions and a first dimension of the block are the same, but a second dimension of the transform partition and a second dimension of the block are different.
5. The method of claim 3 , comprising determining that if the size of the block is 8×4 or 4×8, the block is divided into two equal-sized transform partitions.
6. decoding the partition dimension flag from the data stream, which indicates a division direction in which the block is divided; When the partition size flag indicates that the division direction of the block is horizontal, the method further comprises: [Equation 1] determining that the When the partition size flag indicates that the division direction of the block is vertical, the method further comprises: [Equation 2] determining that the The method of claim 1 , wherein W is the width of the block, H is the height of the block, and K is four.
7. the intra-coding mode is selected from a set of supported intra-coding modes including an angular mode and at least one non-angular mode; the first prediction partition includes at least 16 samples; the first translation partition is a first size; The method of claim 1 , wherein the first predicted partition is a second size different from the first size.
8. Deriving the first and second prediction residuals includes: decoding a transform of the first and second prediction residuals from the data stream; or estimating values of the first and second prediction residuals; The method of claim 1 , comprising:
9. The method of claim 1 , wherein the plurality of prediction partitions is two.
10. The method of claim 1 , further comprising: for each additional prediction partition of the plurality of prediction partitions, deriving a predictor using at least one or more reconstructed samples and the intra-coding mode.
11. 11. The method of claim 10, wherein the one or more already reconstructed samples used to predict each additional prediction partition are each outside and adjacent to the block, or outside and adjacent to each additional prediction partition.
12. a reconstructed sample at one position of the four transform partitions included in the reconstructed prediction partition is not used to derive a predictor corresponding to another prediction partition of the plurality of prediction partitions; 2. The method of claim 1, wherein a reconstructed sample at a position corresponding to another one of the four transform partitions included in the reconstructed prediction partition is used to derive a predictor corresponding to another prediction partition of the plurality of prediction partitions.
13. The method of claim 1 , further comprising deriving a prediction residual for each of the four transform partitions after the predictor for the prediction partition is derived.
14. 1. A decoder for decoding blocks of a picture, comprising: decoding an intra-coding mode of the block from a data stream, wherein the block is divided into four transform partitions of equal size based on a partition dimension flag and a block size; determining a number of predicted partitions into which the block is divided based on a size of the block; deriving a predictor for a first prediction partition of the plurality of prediction partitions using at least one already reconstructed sample and the intra coding mode, the first prediction partition corresponding to two of the transform partitions; after deriving the predictor for the first prediction partition, deriving a first prediction residual for a first transform partition and a second prediction residual for a second transform partition, the first and second transform partitions corresponding to the first prediction partition; combining the predictor of the first prediction partition with the first prediction residual and the second prediction residual to reconstruct the first prediction partition; 1. A decoder having a processor configured to execute:
15. 15. The decoder of claim 14 configured to reconstruct the block using the reconstructed prediction partition, a prediction residual for each additional transform partition of the four transform partitions, and a predictor for each additional prediction partition of the plurality of prediction partitions.
16. decoding the partition dimension flag from the data stream, which indicates a division direction in which the block is divided; determining that the block is divided into four equally sized transform partitions along the division direction indicated by the partition size flag, each transform partition spanning the vertical height of the block when the division direction is horizontal, or the horizontal width when the division direction is vertical; 15. The decoder of claim 14, further comprising:
17. 17. The decoder of claim 16, wherein each first dimension of the transform partition and the first dimension of the block are the same, but a second dimension of the transform partition and the second dimension of the block are different.
18. The decoder of claim 14 , wherein when the size of the block is 8×4 or 4×8, the decoder is configured to determine that the block is divided into two equal-sized transform partitions.
19. decoding the partition dimension flag from the data stream, which indicates a division direction in which the block is divided; When the partition size flag indicates that the block division direction is horizontal, the decoder determines that the size of each transformation partition is [Equation 3] configured to determine that the When the partition size flag indicates that the block division direction is vertical, the decoder determines that the size of each transformation partition is [Equation 4] configured to determine that the 15. The decoder of claim 14, wherein W is the width of the block, H is the height of the block, and K is four.
20. the intra-coding mode is one of a set consisting of an angular mode and at least one non-angular mode; the first prediction partition includes at least 16 samples; the first translation partition is a first size; The decoder of claim 14 , wherein the first prediction partition is a second size different from the first size.
21. Deriving the first and second prediction residuals includes: decoding a transform of the first and second prediction residuals from the data stream; or 15. A decoder as claimed in claim 14, configured to infer values of the first and second prediction residuals.
22. The decoder of claim 14 , wherein the plurality of prediction partitions is two.
23. 15. The decoder of claim 14, configured to derive a predictor for each additional prediction partition of the plurality of prediction partitions using at least one or more reconstructed samples and the intra-coding mode.
24. The one or more previously reconstructed samples used to predict each additional prediction partition are 24. The decoder of claim 23, wherein the prediction partitions are either outside and adjacent to the block or outside and adjacent to each of the additional prediction partitions.
25. a reconstructed sample at a position corresponding to one of the four transform partitions included in the reconstructed prediction partition is not used to derive predictors for other prediction partitions among the plurality of prediction partitions; 15. The decoder of claim 14, wherein reconstructed samples at positions corresponding to other ones of the four transform partitions included in the reconstructed prediction partition are used to derive predictors corresponding to other prediction partitions of the plurality of prediction partitions.
26. The decoder of claim 14 , wherein a prediction residual for each of the four transform partitions is derived after a predictor for the prediction partition is derived.
27. 1. A non-transitory computer-readable medium comprising instructions for decoding blocks of a picture, the instructions, when executed, comprising: decoding an intra-coding mode of the block from a data stream, wherein the block is divided into four equally sized transform partitions based on a partition dimension flag and a size of the block; determining a number of predicted partitions into which the block is divided based on a size of the block; deriving a predictor corresponding to a first prediction partition of the plurality of prediction partitions using at least one already reconstructed sample and the intra coding mode, the first prediction partition corresponding to two of the transform partitions; deriving a first prediction residual for a first transform partition and a second prediction residual for a second transform partition after deriving a predictor for the first prediction partition, wherein the first and second transform partitions correspond to the first prediction partition; combining a predictor of the first prediction partition with the first prediction residual and the second prediction residual to reconstruct the first prediction partition; A computer-readable medium for causing at least one processor to execute the method.
28. 1. A method for encoding a block of a picture, comprising: encoding an intra-coding mode of the block into a data stream, wherein the block is divided into four equally sized transform partitions according to a partition dimension flag and a size of the block; determining a number of predicted partitions into which the block is divided based on a size of the block; deriving a predictor corresponding to a first prediction partition of the plurality of prediction partitions using at least one already reconstructed sample and the intra coding mode, the first prediction partition corresponding to two of the transform partitions; deriving a first prediction residual for a first transform partition and a second prediction residual for a second transform partition, the first and second transform partitions corresponding to the first prediction partition; encoding the predictor for the first prediction partition, the first prediction residual, and the second prediction residual into the data stream; A method comprising:
29. 1. An encoder for encoding blocks of a picture, comprising: encoding an intra-coding mode of the block into a data stream, wherein the block is divided into four equally sized transform partitions according to a partition dimension flag and a size of the block; determining a number of predicted partitions into which the block is divided based on a size of the block; deriving a predictor corresponding to a first prediction partition of the plurality of prediction partitions using at least one already reconstructed sample and the intra coding mode, the first prediction partition corresponding to two of the transform partitions; deriving a first prediction residual for a first transform partition and a second prediction residual for a second transform partition after deriving a predictor for the first prediction partition, wherein the first and second transform partitions correspond to the first prediction partition; encoding the predictor for the first prediction partition and the first and second prediction residuals into the data stream; 1. An encoder having a processor configured to perform:
30. 1. A non-transitory computer-readable medium comprising instructions for encoding a block of a picture, the instructions, when executed, comprising: encoding an intra-coding mode of the block into a data stream, wherein the block is divided into four equally sized transform partitions according to a partition dimension flag and a size of the block; determining a number of predicted partitions into which the block is divided based on a size of the block; deriving a predictor for a first prediction partition of the plurality of prediction partitions using at least one already reconstructed sample and the intra coding mode, the first prediction partition corresponding to two of the transform partitions; deriving a first prediction residual for a first transform partition and a second prediction residual for a second transform partition, the first and second transform partitions corresponding to the first prediction partition; encoding the predictor for the first prediction partition and the first and second prediction residuals into the data stream; A computer-readable medium for causing at least one processor to execute the method.
Citation Information
Patent Citations
Partition-based intra coding concept
WO2019154936A1
Intra sub-partitions in video coding
WO2020185910A1