Partition-based Intra Coding Concept
By partitioning blocks into smaller partitions for sequential spatial prediction and correction, the proposed method addresses the challenges of high signaling overhead and reduced accuracy in existing block-based codecs, achieving efficient intra coding.
Patent Information
- Application Number
- JP2024130770
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-01-02
- Filing Date
- 2024-08-07
- Publication Date
- 2025-06-10
- Estimated Expiration
- 2039-02-07
AI Technical Summary
Existing block-based codecs face challenges in achieving high coding efficiency for intra prediction due to increased signaling overhead and reduced accuracy of spatial prediction with larger blocks.
The concept of partitioning a predetermined block into a plurality of partitions along a certain dimension, allowing for sequential spatial prediction and correction using prediction residuals, thereby reducing signaling overhead and maintaining prediction accuracy.
This approach enables efficient intra coding by reducing signaling overhead and improving prediction accuracy, allowing for the reconstruction of multiple samples simultaneously and maintaining synchronization between the encoder and decoder.
Smart Images

Figure 0007690661000010 
Figure 0007690661000011 
Figure 0007690661000012
Abstract
Description
Technical Field
[0001] The present invention relates to the concept of intra coding for use in block-based coders such as, for example, hybrid video coders.
Background Art
[0002] In HEVC, intra prediction is performed by extrapolating the decoded boundary samples of adjacent blocks according to a certain pattern when a block is given, that is, according to 33 angular modes, 1 DC mode, and 1 planar mode [1]. Next, one intra prediction mode that minimizes the rate-distortion cost is notified to the decoder. There are known codecs that support many intra prediction modes (IPMs), but there is still room for improvement in finding better intra predictors that lead to higher coding efficiency in the intra prediction achieved by these known codecs. This is related not only to HEVC but also to other block-based codecs that use intra prediction. In view of the fact that more accurate predictors reduce the prediction residual and thereby reduce the signaling overhead associated with the coding of the prediction residual, in order to find a set of intra prediction modes suitable for efficiently coding the inside of the block, it is necessary to consider the overhead for signaling the intra prediction mode from the perspective of signaling overhead and the resulting quality of the predictors obtained by these intra prediction modes. To keep the signaling overhead associated with the intra prediction mode low, it is necessary to make the intra prediction block larger, that is, to keep the granularity at which the intra prediction mode is signaled coarse. On the other hand, the spatial prediction of a larger block tends to be less accurate because the average sample distance between the samples inside the intra prediction block, that is, the samples to be predicted, and the already decoded / encoded samples adjacent to this block, that is, the reference samples, increases. HEVC somewhat alleviates this dilemma by allowing the transform residual block to inherit the intra prediction mode of the corresponding coding unit, compared to the case where the transform residual block forms a leaf block that is subdivided by multi-tree sub-division. However, even in this case, there is still a need for signaling overhead to notify the decoder from the encoder of the sub-division from individual intra-coded coding units to transform blocks.
[0003] Therefore, it is desirable to obtain a concept for further enhancing the coding efficiency of intra coding. SUMMARY OF THE INVENTION PROBLEM TO BE SOLVED BY THE INVENTION
[0004] Accordingly, an object of the present invention is to provide a concept for more efficient intra coding.
[0005] This object is achieved by the subject matter of the independent claims of the present application.
[0006] The present invention is based on the finding that block-based coding of pictures can be made more effective by providing a certain intra prediction coding concept. According to that concept, a predetermined block of a picture is intra-prediction coded using a certain intra coding mode, and the predetermined block is partitioned into a plurality of partitions along a certain dimension, the number of the partitions being greater than 2, and / or the partitions having a width of 1 sample along the dimension. Thus, when reconstructing, for those partitions, spatial prediction using the intra prediction coding mode signaled for the predetermined block is sequentially performed, and then the predictor thus obtained is corrected using a certain prediction residual. As a result, when processing the next, i.e., the current partition, it becomes possible for a decoder to reconstruct a plurality of samples at once for a plurality of preceding partitions. As a result, the signaling overhead regarding partitioning can be omitted or kept low. For example, only the signaling regarding the partitioning dimension may be expended in the data stream, in which case, the distinction between partitioning along the vertical axis, where a predetermined block is partitioned into a plurality of horizontal slices each having a predetermined block width, and partitioning along the horizontal axis, where a predetermined block is partitioned into a plurality of vertical slices each having a predetermined block height, etc. is signaled. The number of partitions may be essentially obvious, for example, by having the number of partitions agreed between the encoder and the decoder, in which case, the encoder and the decoder may divide a predetermined block into this number of partitions, or divide a predetermined block into the same number of partitions as the number by which the predetermined block is dimensioned in units of a plurality of samples along a predetermined dimension, with each partition having a width of 1 sample along the predetermined dimension, i.e., divide it into a plurality of partitions each having a width of 1 sample. Thereby, partitioning can keep the overall signaling overhead of a predetermined block in which the intra prediction mode is signaled in the data stream low.On the other hand, for the encoder and decoder, there is provided the possibility of reducing the average distance of samples of a given block from already reconstructed / encoded adjacent reference samples. The reference samples are at least partly within the given block itself, i.e., within a previously processed partition where the prediction residual has already been determined, and are available for the modification of predictors used for the partition in which they are placed.
[0007] Advantageous aspects of the invention are the subject matter of the dependent claims. Preferred embodiments of the present application are described below with respect to the figures.
Brief Description of the Drawings
[0008]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12a
Figure 12b
DETAILED DESCRIPTION OF THE INVENTION
[0009] The figures will be described below. First, an encoder and a decoder of a block-based prediction codec for encoding a picture of a video (moving picture) will be presented to form an example of an encoding framework that may include embodiments of an intra prediction codec. Regarding conventional encoders and decoders, they will be described with reference to FIGS. 1 - 3. Next, an embodiment of the intra prediction concept of the present application will be presented together with an explanation of how the concept can be incorporated into the encoders and decoders of FIGS. 1 and 2 respectively. However, the embodiments shown in FIGS. 4 and subsequent figures can also be used to form encoders and decoders that do not operate according to the encoding framework underlying the encoders and decoders of FIGS. 1 and 2.
[0010] FIG. 1 shows an apparatus for predictively encoding picture 12 into data stream 14, exemplarily using transform-based residual encoding. The apparatus or encoder is denoted using reference numeral 10. FIG. 2 shows a corresponding decoder 20, i.e., an apparatus 20 configured to predictively decode picture 12' from data stream 14, also using transform-based residual decoding. Here, the apostrophe is used to indicate that picture 12', reconstructed by decoder 20, is shifted from the original picture 12 encoded by apparatus 10 due to the encoding loss introduced by quantization of the prediction residual signal. FIGS. 1 and 2 exemplarily use transform-based prediction residual encoding, but embodiments of the present application are not limited to this type of prediction residual encoding. This also applies to other details described with respect to FIGS. 1 and 2, as outlined below.
[0011] Encoder 10 is configured to subject the prediction residual signal to a spatio-spectral transform and encode the thus obtained prediction residual signal into data stream 14. Similarly, decoder 20 is configured to decode the prediction residual signal from data stream 14 and subject the thus obtained prediction residual signal to a spectral-spatial transform.
[0012] Encoder 10 may internally include a prediction residual signal forming unit 22 that generates a prediction residual 24 for measuring the deviation between the original signal, i.e., the prediction signal 26 from picture 12. The prediction residual signal forming unit 22 may be, for example, a subtractor that subtracts the prediction signal from the original signal, i.e., picture 12. Next, encoder 10 further includes a converter 28 that subjects the prediction residual signal 24 to a spatio-spectral transformation to obtain a spectral domain prediction residual signal 24'. The spectral domain prediction residual signal 24' is then quantized by a quantizer 32 included in encoder 10. The thus quantized prediction residual signal 24'' is encoded into bitstream 14. For this purpose, encoder 10 can optionally include an entropy encoder 34, and this entropy encoder 34 entropy-encodes the transformed and quantized prediction residual signal 24''. The prediction residual 26 is generated by the prediction stage 36 of encoder 10 based on the prediction residual signal 24'' that is encoded in data stream 14 and decodable from data stream 14. For this reason, the prediction stage 36 can internally include an inverse quantizer 38 as shown in FIG. 1, and this inverse quantizer 38 inverse-quantizes the prediction residual signal 24'' to obtain a spectral domain prediction residual signal 24'''. The spectral domain prediction residual signal 24''' corresponds to signal 24' except for quantization loss. Following the inverse quantizer 38, there is an inverse converter 40 that performs an inverse transformation, i.e., a spectral-spatial transformation, on the prediction residual signal 24''' to obtain a prediction residual signal 24''''. This prediction residual signal 24'''' corresponds to the original prediction residual signal 24 except for quantization loss. Next, the combiner 42 of the prediction stage 36 recombines the prediction signal 26 and the prediction residual signal 24'''' by addition or the like to obtain a reconstructed signal 46, i.e., a reconstruction of the original signal 12. The reconstructed signal 46 may correspond to signal 12'. Next, the prediction module 44 of the prediction stage 36 generates a prediction signal 26 based on signal 46 by using, for example, spatial prediction, i.e., intra prediction, and / or temporal prediction, i.e., inter prediction.
[0013] Similarly, decoder 20 may be internally composed of components corresponding to prediction stage 36 and interconnected accordingly. In particular, entropy decoder 50 of decoder 20 may entropy-decode the quantized spectral domain prediction residual signal 24'' from the data stream, and then, interconnected, inverse quantizer 52, inverse transformer 54, combiner 56, and prediction module 58, which cooperate in the manner described above with respect to the modules of prediction stage 36, restore the signal reconstructed based on prediction residual signal 24'', and as a result, as shown in FIG. 2, the output of combiner 56 yields the reconstructed signal, i.e., picture 12'.
[0014] Although not specifically described above, it is readily apparent that encoder 10 can set some encoding parameters, such as prediction mode, motion parameters, etc., according to some optimization scheme in a manner that optimizes some criteria related to, for example, any rate and distortion, i.e., the encoding cost. For example, encoder 10, decoder 20, and corresponding modules 44, 58 can each support different prediction modes, such as intra-encoding mode and inter-encoding mode. The granularity at which the encoder and decoder switch between these prediction mode types may correspond to the sub-division of pictures 12 and 12' into encoding segments or encoding blocks, respectively. A picture may be sub-divided, for example, in units of these encoding segments, into blocks to be intra-encoded and blocks to be inter-encoded.
[0015] As will be outlined in more detail below, the intra-coded blocks are predicted based on the spatial, already coded / decoded neighborhood of each block. There may be several intra-coding modes, including directional or angular intra-coding modes, which can be selected for individual intra-coded segments. According to the selected mode, the individual segments are filled into the individual intra-coded segments by extrapolating neighboring sample values along a certain direction, which is specific for each directional intra-coding mode. The intra-coding mode can also include one or more additional modes, such as the DC coding mode, in which case the prediction for an individual intra-coded block is to assign the DC value to all samples within the individual intra-coded segment, and / or can include the planar intra-coding mode, in which case the prediction of an individual block is approximated or determined as the spatial distribution of a plurality of sample values, and the spatial distribution of the sample values is described by moving the slope and intercept of the plane defined by the two-dimensional linear function, which is based on neighboring samples, over a plurality of sample positions of the individual intra-coded block using the two-dimensional linear function over the plurality of sample positions of the individual intra-coded block.
[0016] In contrast, the inter-coded blocks can be predicted, for example, temporally. In the case of inter-coded blocks, the motion vectors may be signaled in the data stream, and the motion vectors indicate a spatial displacement of a portion of a previously encoded picture of the video to which picture 12 belongs, i.e., the portion from which the previously encoded / decoded picture is sampled to obtain a prediction signal for each inter-coded block. That is, in addition to the residual signal coding included in the data stream 14, such as the entropy-coded transform coefficient levels representing the quantized spectral domain prediction residual signal 24'', the data stream 14 may also encode and include encoding mode parameters for assigning the encoding modes to the various blocks, prediction parameters for some of the blocks, such as motion parameters for the inter-coded segments, and any other parameters, such as parameters for controlling and notifying the sub-division of pictures 12 and 12' into segments respectively. The decoder 20 uses these parameters to sub-divide the picture in the same way as the encoder did, assign each same prediction mode to each segment, and perform the same prediction to yield the same prediction signal.
[0017] FIG. 3 shows the relationship between the reconstructed signal, i.e., the reconstructed picture 12’, on the one hand, and the combination of the prediction residual signal 24’’’’ and the prediction signal 26 signaled in the data stream, on the other hand. As described above, this combination may be an addition. The prediction signal 26 is shown in FIG. 3 as a sub-division into intra-coded blocks and inter-coded blocks of the picture area, where the intra-coded blocks are shown, by way of example, using hatching, and the inter-coded blocks are shown, by way of example, without hatching. This sub-division may be any sub-division, and is divided into blocks by, for example, a regular sub-division of the picture area into blocks or rows and columns of blocks, or a multi-tree sub-division of picture 12 into leaf blocks of various sizes, such as a quadtree sub-division, and a mixture of those sub-divisions is shown in FIG. 3. There, the picture area is first sub-divided into rows and columns of tree root blocks and then further sub-divided according to a recursive multi-tree sub-division. Repeating, the data stream 14 may have therein, in coded form, the intra-coding mode for the intra-coded blocks 80, which assigns one of several supported intra-coding modes to the individual intra-coded blocks 80. Further details will be described below.
[0018] In the case of the inter-coded block 82, the data stream 14 can have one or more motion parameters encoded therein. Generally speaking, the inter-coded block 82 is not limited to being temporally coded. Alternatively, the inter-coded block 82 can be any block predicted from a portion coded before the current picture 12 itself, for example, a previously coded picture of the video to which the picture 12 belongs, or a picture of another view, or, in the case where the encoder and decoder are a hierarchical encoder and decoder respectively, a hierarchically lower layer. The prediction residual signal 24'''' in FIG. 3 is also shown as a sub-division of the picture area into blocks 84. These blocks may sometimes be called transform blocks to distinguish them from the coded blocks 80 and 82. In fact, FIG. 3 shows that the encoder 10 and the decoder 20 can each divide the picture 12 and the picture 12' into a plurality of blocks using two different sub-divisions, that is, one sub-division divides into the coded blocks 80 and 82, and the other sub-division divides into the blocks 84. Both sub-divisions may be the same, that is, each coded block 80 and 82 may simultaneously form the transform block 84, but FIG. 3 shows a case where, for example, the sub-division into the transform block 84 forms an extension of the sub-division into the coded blocks 80 / 82. As a result, any boundary between the two blocks 80 and 82 overlaps the boundary between the two blocks 84, or in other words, each block 80 / 82 coincides with one of the transform blocks 84, or coincides with the set of transform blocks 84. However, the sub-divisions may also be determined or selected independently of each other such that the transform block 84 can cross the block boundaries between the blocks 80 / 82. As far as the sub-division into the transform block 84 is concerned, the same explanations as those given for the sub-division into the blocks 80 / 82 apply.That is, the block 84 may be the result of regularly sub-dividing the picture area into a plurality of blocks, that is, blocks arranged in rows and columns, may be the result of a recursive multi-tree sub-division of the picture area, or a combination thereof, or other types of blocking. Incidentally, it should be noted that the blocks 80, 82, and 84 are not limited to quadratic shapes, rectangles, or other shapes.
[0019] FIG. 3 shows that the combination of the prediction signal 26 and the prediction residual signal 24'''' directly yields the reconstructed signal 12'. However, it should be noted that according to an alternative embodiment, a plurality of prediction signals 26 greater than 1 may be combined with the prediction residual signal 24'''' in order to obtain the picture 12' as a result.
[0020] In FIG. 3, the transform segment 84 shall have the following meaning. The transform unit 28 and the inverse transform unit 54 perform the transformation in units of these transform segments 84. For example, many codecs use a certain DST or DCT for all transform blocks 84. In some codecs, such a transformation is skipped, so for some segments 84, the prediction residual signal is directly encoded in the spatial domain. However, according to the embodiments described below, the encoder 10 and the decoder 20 are configured such that they support some transformations. For example, the transformations supported by the encoder 10 and the decoder 20 can include the following. · DCT-II (or DCT-III), where DCT represents the discrete cosine transform · DST-IV, where DST represents the discrete sine transform · DCT-IV · DST-VII · Identity transform (IT)
[0021] Of course, while the transform unit 28 supports all forward transform versions of these transforms, the decoder 20 or the inverse transform unit 54 will support the corresponding backward or inverse versions of them. ·Inverse DCT-II (or Inverse DCT-III) ·Inverse DST-IV ·Inverse DCT-IV ·Inverse DST-VII ·Identity transform (IT)
[0022] The following description provides details of the transforms that can be supported by the encoder 10 and the decoder 20. In either case, the set of supported transforms may include only one transform, such as one spectral-spatial or spatial-spectral transform.
[0023] As described above, FIGS. 1-3 have been presented as examples in which the intra prediction concepts to be further described below can be implemented to form specific examples of the encoder and decoder according to the present application. So far, the encoders and decoders of FIGS. 1 and 2 represent possible implementations of the encoders and decoders described below in this specification, respectively. As outlined in more detail below, when constructing an intra prediction embodiment as described below according to the present application within the encoders and decoders of FIGS. 1 and 2, the encoder of FIG. 1 and the decoder of FIG. 2 support, as at least one option, processing the intra prediction block 80 in a manner outlined in more detail below. Accordingly, the embodiments described below refer to an encoder equivalent to the encoder 10 of FIG. 1 that processes the intra-coded block 80 in a manner outlined in more detail below, and the same applies to the decoder of FIG. 2. That is, FIG. 2 represents an example of a decoder according to one embodiment in which an intra-coded block is processed in a manner outlined in more detail below. However, FIGS. 1 and 2 are merely specific examples. However, the encoder according to the embodiment of the present application may perform block-based coding of the picture 12 using a concept different from that of the encoder of FIG. 1 as outlined in more detail below. For example, the encoder may not be a video encoder, may not support inter prediction, or the sub-division into the block 80 may be performed in a manner different from that illustrated in FIG. 3, or instead of using transform prediction residual coding, the encoder may directly code the prediction residual in the spatial domain, for example. Similarly, the decoder according to the embodiment of the present application may perform block-based decoding of the picture 12' from the data stream 14 using the intra prediction coding concept further outlined below, but may be different from the decoder 20 of FIG. 2 as follows. For example, the decoder may not be a video decoder but a still picture decoder, may not support intra prediction, or may sub-divide the picture 12' into blocks in a manner different from that described with respect to FIG. 3, and / or may derive the prediction residual from the data stream 14 in the spatial domain rather than in the transform domain, etc.
[0024] With the above cautions in mind, the following description will focus on the description of intra prediction according to the embodiments of the present application. According to the intra prediction presented in this specification, an intra prediction block such as block 80 in FIG. 4 may be divided into a one-dimensional horizontal partition or a one-dimensional vertical partition. Such block processing may be available for intra prediction blocks 80 of any size, or may be limited to blocks 80 within a predetermined block size range, such as blocks larger than a specific size. "One-dimensional" refers to the fact that - when related to the partitions that are the result of the division - the plurality of partitions have a width of only 1 sample along the partition dimension. However, the one-dimensional nature of the division mode discussed in this specification refers to the fact that the division is performed along a specific dimension, and the resulting plurality of partitions are like stripes that extend completely across the block in a direction transverse to the division direction. For example, refer to FIG. 4. FIG. 4 shows, on the left, an intra prediction block 80, that is, a block to be decoded or a block to be encoded. This has dimensions / dimensions of W×H. That is, this is a block of W×H dimensions, where H represents the height and W represents the width of block 80 measured in a plurality of samples. According to FIG. 4, two options for splitting or partitioning are available. One option is the horizontal split 100, in which case block 80 is divided or partitioned into several partitions 1021, 1022, 1023, and 1024 along the vertical axis, that is, the partition dimension 104. According to the example of FIG. 4, which is an application example in the following description, each partition 1021-1024 has a width of 1 sample as indicated by the double-headed arrow 106, so the number of partitions 1021-1024 obtained from block 80 is equal to H, that is, the height of block 80 in units of samples 108 of block 80. However, it is obvious that the division may be performed by the encoder and the decoder according to another method agreed upon between the encoder and the decoder as follows.For example, the partitioning of block 80 along dimension 104 may be done in a way that results in a predetermined number of partitions 102i, where the predetermined number is greater than, for example, 2, or a mixture thereof, and the dimensions of block 80 are evenly distributed among the predetermined number of partitions along the partition dimension.
[0025] Another coding option shown in FIG. 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 112i along the horizontal axis, i.e., the horizontal partition dimension 104. In the case of option 100, each partition 102i has the same width as block 80, i.e., has the width W of the block, while each partition 112i adopts the height H of block 80, i.e., has the height H. In summary, similar to the description of option 100, the vertical division 110 can divide block 80 into W partitions 112i, where W represents the horizontal width of block 80 measured at sample 108, and each partition 112i has a width of 1 sample in the horizontal direction. However, the partitioning according to option 110 can also be performed in another way agreed upon between the encoder and the decoder.
[0026] Thus, according to FIG. 4, the encoder can freely partition block 80 into H W×1 partitions 102i according to horizontal partitioning option 100 or into W 1×H partitions 112i according to vertical partitioning option 110, and the partitioning option selected by the encoder for block 80 may be signaled within data stream 14 for block 80, for example, by corresponding partition dimension flag 114 within data stream 14. However, it is clear that embodiments of the present application cover encoders and decoders that use only one of options 100 and 110 without requiring flag 114 in the data stream by default. Further, in other examples, flag 114 may be transmitted within data stream 14 depending on intra coding mode 116 signaled within data stream 14 for block 80 from the encoder to the decoder. As described above, the intra coding mode may indicate one from a set of available / supported intra coding modes including, for example, 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 transmitted within data stream 14 in a manner that is conditionally dependent on intra coding mode 116 according to alternative embodiments not further described below. According to the embodiments described below, flag 114 exists within data stream 14 for block 80 independently of the intra coding mode 116 signaled for block 80 within data stream 14. However, with respect to flag switching between the partitioning process of intra coding block 80 as described above and different intra coding processing methods of block 80 as outlined below, there may be a dependency on intra coding mode 116.
[0027] According to the embodiments of the present application, each of the partitions 102 / 112 is individually predicted, transformed, quantized, and encoded, and a plurality of partitions are sequentially processed in this way. Therefore, the reconstructed samples of a specific partition can be used to predict any subsequent partition 102 / 112 in the partition order among the plurality of partitions into which the block 80 is divided, and in this way, the process of intra prediction circulates through the partitions 102 / 112 into which the block 80 is divided. FIG. 5 exemplarily shows an intra prediction block 80 divided according to option 100. For each partition 1021-1024 of the block 80, prediction, that is, derivation of predictors for each partition 102i, and tasks related to prediction residuals, that is, correction of predictors using prediction residuals, are performed. The latter task can be executed by combining the prediction residuals and the predictors. This is done in the decoder for reconstruction. The encoder executes, as tasks related to prediction residuals, determination of prediction residuals including, for example, transformation and quantization, and correction of predictors using prediction residuals. That is, by filling the decoded picture buffer in the encoder with the reconstruction of the picture, the prediction loop is maintained in synchronization with the decoder. The above tasks, that is, prediction and residual processing, are executed individually for the partitions 1021-1024 and sequentially among the partitions. After these two steps are executed for one partition currently being processed, the next partition 102i in the partition order is processed in the same way. The partition order is exemplarily shown in FIG. 5 using three arrows 126.
[0028] FIG. 5 shows that the partition containing the top left pixel of block 80 is processed first before proceeding to the immediately adjacent partition 1022 below, and thus corresponds to the assignment of indices to partitions 1021-1024 in FIG. 5. However, this order is merely an example, and as will become apparent in the following description, this partition order may be selected depending on other settings such as the intra coding mode and / or the size of block 80, and the dependency on the intra coding mode will be described later.
[0029] In the example further described below, the partition order 126 only varies between partitions crossing partitions 102 / 112. That is, the immediately subsequent partitions are directly adjacent to each other, and in the case of split type 100, the partition order proceeds from top to bottom or from bottom to top, and in the case of split type 110, it proceeds from left to right or from right to left, respectively. However, other examples are also conceivable. For example, a partition order can also be selected such that the partitions are scanned twice in the above adjacent order, and in the first scan, every other partition is processed in any applicable order such as from top to bottom, from bottom to top, from left to right, or from right to left, and then the remaining partitions are processed in the same order direction or the reverse direction.
[0030] In any case, FIG. 5 shows a first partition 1021 that should be processed first and is the currently processed partition. For the first partition (here 1021 as an example), the set of adjacent samples 1181 used to form the predictors of partition 1021 may simply be selected based on samples outside the boundaries of block 80 when processing the first partition of block 80, since the samples of block 80 have not yet been processed, i.e., reconstructed or encoded. That is, the samples of set 1181 have already been reconstructed within the encoder using any prediction and correction of the corresponding predictors using the prediction residuals transmitted in the data stream. They belong to previously encoded / decoded picture blocks and may be inter-encoded, intra-encoded, or other encoded blocks. Regarding the number and exact positions of the samples of set 1181 of adjacent samples used to form the predictors of the first partition 1021, they depend on the intra-encoding mode assigned to block 80. This intra-encoding mode is used identically or equally for the processing of all partitions of block 80, as will be described below. To complete the processing of the first partition 1021, the predictors of this partition 1021 are derived at the decoder and encoder by filling this partition 1021 depending on one or more already reconstructed / encoded samples of set 1181, and the prediction residuals are determined by the above-described transformation and quantization as far as the encoder is concerned. Next, this prediction residual (the version transmitted in the data stream, i.e., including quantization loss) is used for the reconstruction of this partition 1021 by correcting the predictors using the prediction residuals in data stream 14. For example, FIG. 5 illustratively shows the prediction residual of partition 1021 as 1201. That is, 1201 includes the transform coefficients corresponding to the transform of the prediction residual of partition 1021, and the description of data 1201 will be detailed below.
[0031] Here, move to the next partition in the partition order, i.e., partition 1022 in the example of FIG. 5. The situation has changed in that the set of already reconstructed / encoded adjacent samples used to derive the predictors for partition 1022 can consist of samples located outside sample block 80 and / or samples within block 80. That is, the samples within block 80 are samples located within the already processed partition, here partition 1021 in the example of FIG. 5. This is because for these samples, the prediction residuals have already been determined and are already available in the data stream. That is, the encoder and decoder derive the predictors for this partition 1022, and then the prediction residual determination in the encoder and the use of the prediction residuals for the correction of the predictors in the encoder and decoder respectively continue. Next, this process continues with the next partition in position, i.e., the next partition in the partition order, whereby all partitions of block 80 are processed sequentially.
[0032] As already described above, the partition order 126 may be selected in a way different from the way of traversing partitions such that directly consecutive partitions become directly adjacent partitions. That is, the partition order may skip from one partition to the next partition. This means that the set 118i of adjacent samples used to derive each predictor by filling each partition 102i is not limited to samples directly adjacent to each partition, as shown in FIG. 5. This is also related to the selection of the start of the partition order 126. For example, assume that partition 1024 is the first partition in the partition order. In that case, its predictor can be derived by filling it depending on the set 1184 of adjacent samples that collects samples located on the left side and the upper side of block 80 along the periphery of block 80, although not shown in FIG. 5. Some of the samples in set 1184 may not be directly adjacent to partition 1024. Incidentally, this would correspond to the situation of filling the last sample row in the normal intra-prediction filling of block 80 as a whole. Such a possibility also applies to any subsequent partition to be processed, that is, the partitions after the second partition in the partition order. That is, those adjacent sample sets 118i may also include samples not directly adjacent to each partition 102i. Furthermore, if the partition order is not limited to the method of traversing partitions such that consecutive partitions are directly adjacent to each other, the set of reference samples 118i of any subsequent processed partition 102i may collect not only samples on the left side and the upper side of each partition 102i, but also samples on the lower side of each partition 1021 depending on whether any partition of block 80 has been processed before partition 1021 according to the partition order. That is, set 180i may include samples arranged on three or more sides of partition 102i.
[0033] Briefly summarized, FIG. 5 here exemplarily shows the sequential processing of partitions 102 / 112 of block 80 with respect to horizontal partitioning, but the same explanation also applies to vertical mode 110 with respect to vertical partition 112i. For each partition 102i, the corresponding prediction residual 102i is included in data stream 14. Data 1201 - 1204 together form prediction residual 120 for block 80. It should be remembered here that transform residual coding may not be used according to an alternative embodiment of the present application, that is, the prediction residual 120 of block 80 may be directly signaled in data stream 14, for example, in the spatial domain. In this case, the data 1201 - 1204 of the various partitions 1021 - 1024 may not include individual fields for each partition as shown in FIG. 5 in data stream 14 where each data part 120i represents the signaling of a specific transform for its respective partition 102i. Rather, in that case, the prediction residual 120 of block 80 may form one field of data 14. In this alternative embodiment, the decoder will collect information regarding the prediction residual of this partition 102i from field 120 when processing a specific partition 102i. This procedure will also be applicable when using a exactly invertible version of the transform so that quantization can be performed in the spatial domain.
[0034] Accordingly, FIG. 5 shows that in the encoder and decoder, two tasks are performed for each partition 102i. That is, (1) a prediction derivation task 122 that generates a prediction or predictor for each partition 1021, that is, a task that generates a predicted sample value for each sample of each partition 102i, and (2) a prediction residual related task that is executed thereafter, that is, the derivation of the prediction residual in the encoder including quantization of the prediction residual for entry into the data stream 14, and the reconstruction of the samples of each partition 102i by combining or correcting the prediction residual and the predictor to obtain the reconstructed samples of this partition 102i. The reconstructed samples can function as a reservoir for an adjacent sample set 118j of a partition 102j that is subsequently processed according to the partition order 126 for the prediction derivation task.
[0035] Before proceeding to a further description of the embodiments of the present application, FIG. 6 shows the process of prediction derivation 122 by filling the currently processed partition 102i. It should be remembered here that the figure regarding the horizontal partition 102 was simply selected as an example, and the same explanation also applies to the vertical partition 112. FIG. 6 shows the currently processed partition 102i and a set 118i of its corresponding adjacent samples that have already been reconstructed / encoded. As already described above with respect to FIG. 5, the set 118i may not be limited to samples 128 that are directly adjacent to or adjacent to the partition 102i. However, due to the partitioning, the average distance 130 between the samples of the partition 102i and the samples 128 of the set 118i is lower when averaged over all the samples of the block 80 compared to, for example, performing intra prediction of the block 80 known from H.264 or HEVC. As described with respect to FIG. 5, the predictor derivation or filling 122 is performed for each partition 102i using the intra prediction mode associated with the block 80, and this mode represents one of the set of available intra prediction modes. This set may include angular modes or directional modes in which the angles or directions 132 at which the sample contents of the adjacent sample set 118i are copied to the samples 134 of the partition 102i are different from each other. To perform this copy, the prediction of each sample 134 of the partition 102i can be derived based on several adjacent samples 134 from the set 118i located on the opposite side of the direction 132 with respect to the sample 134. The number is defined, for example, by the kernel of the interpolation filter used to derive the inter-pel positions between the samples 128 of the sample set 118i. FIG. 6 shows, for example, that three samples 128 from the set 118i are used to calculate the prediction of one sample 134 from the currently processed partition 102i. Since the average distance 130 is relatively small, the number of reference samples 134 per sample 134 of the partition 102i can be kept low. Details are shown below.However, note that to be complete, the set of available intra prediction modes may include the DC mode. According to the DC mode, one DC value is assigned to all samples 134 of partition 102i, and this DC value is derived by averaging a set 118i of adjacent samples. Further, a planar mode may also exist. According to this planar mode, the predicted value of sample 134 is defined by a linear function over the sample positions within partition 102i, and the slope and offset of this linear function are derived based on adjacent samples 118i. Further, note that the adjacent set 118i may vary depending on the intra prediction mode selected for block 80, for example, it may vary particularly between the angular mode and the non-angular mode, and between DC / planar.
[0036] For example, in the latest JEM decoder, 67 intra prediction modes are available. Among them, 65 are angular modes, and two of them, namely DC and planar, form non-directional textures. That is, according to the derivation 122 of the predictor performed for partition 102 / 112 and mentioned both in the previous stage and the subsequent stage, block 80 is divided / split into a plurality of partitions along dimension 104, and the resulting partitions extend across the full width of the block in the direction transverse to dimension 104 and are one sample width or more than one sample width along dimension 104. This 1D partitioning mode (simply called the 1D partition mode) can be combined with any of the above-mentioned intra prediction modes, or in other words, it can be implemented using any of them. According to the 1D partitioning mode, as already described with respect to FIG. 5, all partitions 102 / 112 of one block 80, such as a coding unit CU, use the same intra prediction mode related to block 80, thereby avoiding excessive overhead in signaling. Because the intra prediction mode 116 only needs to be transmitted once for block 80 within the data stream 14.
[0037] That is, prediction 122 can be performed in the same way as in the two-dimensional case outlined by the JEM decoder. However, compared to JEM, only one line is calculated, either horizontally or vertically, for the currently processed partition 102 / 112 so that the prediction process 122 can be adjusted accordingly. When selecting a partition order that traverses the partitions such that consecutive partitions are directly adjacent to each other, the prediction process 122 can correspond to the two-dimensional case of JEM, but only for the first line, i.e., the line closest to the already reconstructed / encoded neighbors. In some cases, both HEVC and JEM allow the use of specific filters that are applied to the reference samples 128 or the resulting predictors. This is effective for better predicting samples within the prediction block 80 that are far from the reference samples 128 and reducing boundary discontinuities in the two-dimensional case. However, by using the partitioning into partitions 102 / 112, it becomes possible to utilize the high correlation between neighboring pixels, which should be the goal.
[0038] That is, the reduced average distance 130 should be utilized. Excessive smoothing may risk degrading this quality. Thus, if the encoder or decoder can perform both types of intra prediction, i.e., the intra prediction using the partitioning described above with respect to FIGS. 4 - 6 and the intra prediction outlined below, when using the above-described partitioning, the intra filter, i.e., the filter involved in predictor derivation 122, is disabled or, at least, the number of samples 135 contributing to each partition sample 134 is reduced compared to the number of samples contributing to one sample in the two-dimensional case. In the two-dimensional case, the intra prediction of the block 80 is performed either globally for the block or according to HEVC. That is, it is decomposed into rectangular blocks that are leaf blocks of the hierarchical quad-tree sub-division of the block 80.
[0039] As is clear from the above discussion, to perform the prediction residual related task 124, the decoder, for example, decodes the transformation of the respective prediction residuals of the currently processed partition from the data stream 14, performs an inverse transformation such as a spectrum-spatial transformation on this transformation, and generates a prediction residual used to correct the predictor obtained at 122 by combination / addition. To keep the decoder and the prediction loop in sync, the same is done in the encoder. Further, the encoder performs a transformation of the prediction error of the predictor determined using 122 for the currently processed partition, performs a transformation such as a spatial-spectrum transformation, then performs quantization of the transformation coefficients, and then encodes the transformation into the data stream 14 to generate the data 120i corresponding to the currently processed partition 102i. Regarding the transformation, all partitions 102 / 112 within the block 80 can be processed using this same transformation. It may be DCT-II, for example, except for the case of the planar mode where DST-VII can be used. For this reason, all tools related to the forward and inverse transformations that can be used by the encoder and decoder in other blocks, such as transform skip, i.e., encoding in the spatial domain, EMT (EMT = Explicit multiple core transform), NSST (NSST = Mode dependent non-separable transforms), etc., can be disabled to avoid unnecessary overhead bits when the block 80 is encoded using the intra prediction mode in the partitioning method outlined with respect to FIGS. 4-7 and further described below. Further alternatively, the transformation may be a linear transformation, and the type thereof may be selected based on one or more of the intra prediction mode, dedicated syntax elements, and a predetermined partition order.
[0040] Somewhat has been described so far regarding the partition order 126 that is used when the partition 102 / 112 of block 80 being processed currently is processed sequentially. This embodiment is merely an example, and it is emphasized that according to alternative embodiments, the partition order may be static, or may vary in a different way according to other embodiments exemplified below. FIG. 7 shows the possible partition / processing order indicated by arrow 126 in FIG. 5 by numbering. Here, this order continues in ascending order of the assigned numbers. FIG. 5 represents an example where the order 126 starts from the partition containing the top-left pixel / sample 140 of block 80 and proceeds downward towards the bottom partition. Similarly, when the split type is vertical, the processing order starts from the leftmost partition containing the top-left pixel / sample and proceeds to the right. However, this is not the optimal case for all existing intra prediction modes. This is illustrated in FIG. 7, where for diagonal mode 2, i.e., the mode where the copy angle / direction 132 points 45° from bottom-left to top-right, and diagonal mode 34, i.e., the mode where the copy angle / direction 132 points -45° from top-left to bottom-right, the vertical and horizontal divisions of block 80 are shown. In the former case, if the split is horizontal, starting at the top-left corner of block 80 will generate a partition where the reconstructed samples do not affect the prediction of the next partition. As a result, it is more reasonable to start from the bottom-left corner of the block, so that the reconstructed samples of each partition can be used to predict the next partition in the partition order. However, in the case of vertical split, as can be confirmed in the aforementioned figure, this is not necessary. On the other hand, in mode 34, since samples come from both sides in both the horizontal and vertical split cases, such a problem does not occur. Therefore, the normal processing order can be used for both splits.
[0041] Table 1 shows a complete list of the processing order according to the intra prediction mode and split type.
[0042]
Table I
[0043] Regarding the signaling overhead, in summarizing the embodiments described so far, refer to FIG. 8. FIG. 8 shows what is transmitted for block 80 according to an embodiment of the present application. In particular, there is an intra prediction mode signaling 116 that notifies which intra prediction mode should be applied to block 80. That is, the signaling 116 indicates, for example, one of the angular modes, or one of the available modes including an angular mode and non-angular modes such as DC and planar. In addition to this signaling 116, there is a segmentation flag 160 that is encoded into the data stream 14 by the encoder and decoded from the data stream for block 80 by the decoder, which indicates whether the segmentation process according to FIGS. 4-7 was applied to block 80, or whether it was processed "normally", either in a batch or in one piece or two-dimensionally, that is, whether only samples outside block 80 were used to form the reference sample reservoir 118 for predicting each sample within block 80. Alternatively, the flag 160 may switch between the segmentation process described with respect to FIGS. 4-7 and the decomposition of block 80 using quadtree sub-division to the transform block. However, in the decomposition using quadtree sub-division, although the transform blocks are processed sequentially, there is a drawback that it is necessary to signal the decomposition within the data stream 14. When the segmentation flag 160 indicates the segmentation according to FIG. 4, the data stream 14 includes a segmentation dimension flag 114 that switches between the segmentation types 100 and 110 described with respect to FIG. 4 for block 80. Also, when the segmentation flag 160 indicates this segmentation option, for each partition of block 80 that is being sub-divided / segmented, the data stream 14 includes signaling / data 1201, and the signaling / data has the prediction residual of each partition encoded into the data stream in the transform domain or the like as described above.
[0044] Regarding FIG. 8, it should be noted that the prediction residual data 1201, 1202... may be encoded in the data stream 14 in an order corresponding to the partition / encoding order 126. The partition order 126 can be uniquely determined by the intra prediction mode indicated by the signalization 116 as described above. However, in an alternative embodiment, the partition order 126 may be at least partially determined based on any additional signalization within the data stream 14.
[0045] In a further alternative of the description presented herein, the signalization 116 may alternatively be used to indicate whether a partitioning option is used. In other words, one syntax element may share the responsibility of the signalizations of 116 and 160. Such a syntax element can be assumed to be one value from a range of multiple values, and each value corresponds to the combination of the intra prediction mode and the indication of whether block partitioning was used. In such a case, it is also possible to provide the partitioning option only for a subset of the intra prediction modes. And finally, it should be noted that the partitioning flag 160 may also be transmitted within the data stream 14, conditional on the assumption that the intra prediction mode indicated by the signalization 116 is a specific subset of the available intra prediction modes.
[0046] FIG. 9 illustratively shows how data 120i having prediction residuals of a particular partition 102 / 112i may look. According to the embodiment of FIG. 9, the prediction residuals are encoded in the data stream 14 in the transform domain. That is, the encoder generates a transform 182 of the prediction residuals by transform 180, and the decoder derives the prediction residuals in the spatial domain by inverse transform 184. FIG. 9 shows transform coefficients 186 corresponding to, for example, different spectral frequencies f of transform 182. The data 120i can include an encoded block flag CBF, and the data 120i can include an encoded block flag CBF 188 indicating whether the transform 182 includes significant transform coefficients 186, i.e., whether the transform 182 is completely zero. If CBF 188 is set, the transform 182 is not zero, and the data 120i may include a final position (LP) syntax element 190, which indicates a final position 192 starting from the lowest or DC coefficient 196 along the increasing spectral frequency (see axis 194) of significant transform coefficients, i.e., non-zero transform coefficients 186. Next, the data 120i includes signaling 198 that notifies the transform coefficients from 196 to 192.
[0047] That is, FIG. 9 shows that each partition 102i / 112i may have its prediction residual encoded into the data stream 14 by CBF188, LP190, and the conversion coefficient data 198. That is, for one block 80 having n partitions 102 / 112, there are n CBF188s, one LP190 for each partition having a non-zero CBF188, and the conversion coefficient data 198 only for these partitions having the associated non-zero CBF188s. This coefficient data 198 may be encoded in the same way as an intra prediction block that is processed normally, i.e., a block 80 where the partition flag 160 indicates the non-partition option, with the following exception. Each LP190 requires only one coordinate when the partition is one sample wide (two coordinates are required normally in other cases). That is, only the x coordinate is required for the horizontal partition 100 and only the y coordinate is required for the vertical partition 110. However, in the case of a two-dimensional partition, the LP190 uses a rank indication or uses the x and y coordinates to indicate the final position along the scan direction or scan path. The context of each CBF188 may be selected to be the previously encoded CBF, i.e., the value of the CBF of the previous partition in the partition order 126. Further, due to this partitioning, the conversion coefficient data 198 is related to different shapes. That is, the conversion 182 also has different shapes. As described with respect to FIG. 4, when the partition is a one-dimensional partition, the conversion 182 is a one-dimensional conversion. That is, the conversion 182 may be a W / H length vector of the conversion coefficients 186 according to the split type 100 or 110.
[0048] Regarding flags 160 and 114 in FIG. 8 and their encoding, the following points should be noted. Flag 160, which indicates whether block 80 is divided into partitions 102 / 112, defines the condition that should be checked to determine whether flag 114 is transmitted within data stream 14 for block 80. In particular, when flag 160 indicates a division into partitions 102 / 112, flag 114 is present within data stream 14 and is sent to the decoder to signal which type of division 100 / 110 should be performed, i.e., whether it is horizontal or vertical. Similar to flag CBF, flag 114 may also be encoded using context-dependent entropy encoding / decoding. The context of flag 114 may have three possibilities: 0 for the non-angular mode, 1 for the horizontal mode, and 2 for the vertical mode, according to the intra prediction mode of block 80.
[0049] FIG. 9 shows that CBF188 can exist once per partition i of the current block 80. Additionally or alternatively, the transformation 182 of partition 120i of the current block can be split into one or more sub-blocks each. In that case, the sub-blocks have an encoded sub-block flag signaled within the data 120i for each such sub-block, the flag indicating whether all the transform coefficients 186 within the sub-block are zero or at least one of its coefficients is non-zero. Thus, only the coefficients 186 within the sub-block where the encoded sub-block flag signals the presence of non-zero coefficients will be encoded. Other coefficients within the sub-block where the encoded sub-block flag signals the absence of non-zero coefficients will be presumed to be zero at the decoder side. Since each partition 120i is transformed separately, it should be noted that multiple sub-blocks belonging to one partition differ in the spectral components of the transformation 182 of that partition and in the transform coefficients 186 that make up that transformation. For example, if each partition 102i / 112i has dimensions of x (width of the partition) and y (height of the partition), and as long as both those dimensions are four samples 140 or more, and as a result, if the transformation 180 of each partition 102i / 112i has dimensions of x and y and as long as both those dimensions are four coefficients 186 or more, the sub-blocks can be set to be 4×4 coefficient blocks. For a 4×N partition, the sub-blocks form a column of m 4×4 sub-blocks where m*4 = N and m is an integer. For an N×4 partition, the sub-blocks form a row of m 4×4 sub-blocks where m*4 = N and m is an integer.
[0050] For a wider partition, an array of 4×4 sub-blocks arranged in rows and columns may be generated. However, depending on the embodiment, such a partition, i.e., a partition having a width of 4 samples or more or the same as 4 samples, may not occur. Regardless of whether it occurs or not, when the partition is narrow, i.e., when one of its dimensions is less than 4 samples, i.e., when the width is less than 4 samples in at least one dimension x or y, sub-block division of the transform 180 into sub-blocks that group different groups of coefficients of the transform 180 may be performed, so that the sub-blocks may have the minimum number M of coefficients in all possible cases of the size of the current block. That is, the partition may be set to the same size as the block width N along one dimension, and division may be performed along the other dimension 104. Therefore, the size of the transform 180 for each partition may be 1×N, 2×N, N×1, or N×2. In fact, the transform 180 of a specific 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 column consisting of m 1×M sub-blocks, where m*M = N and m is an integer. In the case of an N×1 partition, the sub-blocks may form a row consisting of m M×1 sub-blocks, where m*M = N and m is an integer. In the case of a 2×N partition / transform, the sub-blocks may form a column consisting of m 2×(M / 2) sub-blocks, where m*(M / 2) = N and m is an integer. In the case of an N×2 partition, the sub-blocks may form a row consisting of m (M / 2)×2 sub-blocks, where m*(M / 2) = N and m is an integer. This is illustratively shown in Table 1 for an exemplary case where M = 16 for the minimum number of coefficients.
[0051]
Table 1
[0052] FIG. 9 shows that CBF188 can exist once per partition i of the current block 80. However, it may be agreed between the decoder and the encoder that at least one of the n partitions of the current block 80 has a non-zero CBF188. For this reason, if n is the number of sub-partitions and the first (n - 1) sub-partitions in the encoding order generate zero CBFs, the CBF of the nth partition will be presumed to be 1. Therefore, there is no need to decode it, and it is not encoded. Thus, if the CBFs in data 1201 - 120n - 1 signal zero, the CBF of data 120n will be missing, and the decoder will presume that this CBF is signaling that there is at least one non-zero coefficient in the transform of that partition.
[0053] As for the signaling 116 of the intra coding mode, the following may apply. That is, the coding mode signaling 116 may be sent as a pointer or index pointing to one from a list of most probable modes (MPM). The MPM list can be determined in the same way by the encoder and decoder based on the intra prediction modes used for previously coded / decoded intra prediction blocks, such as spatially and / or temporally adjacent intra prediction modes. Thus, the MPM list may represent a suitable subset of the available / supported intra prediction modes, i.e., one or more of the aforementioned angular modes and / or DC and planar modes. As described above, there may be intra prediction blocks using LIP or ISP schemes such as block 80 in the figure, and in addition, blocks intra predicted in the conventional manner, i.e., blocks intra predicted in units of transform blocks that are split using recursive quadtree partitioning, either collectively or such intra predicted blocks. Both types of intra prediction blocks may support the same set of available / supported intra prediction modes. For normal / conventional intra prediction blocks, an MPM flag indicating whether the mode of the block is selected from the MPM list may be signaled in the data stream - the decoder decodes this and the encoder encodes this - in which case a pointer / index to this MPM list is sent - the decoder decodes this and the encoder encodes this - in intra prediction blocks using LIP or ISP schemes such as block 80, it is presumed that the MPM flag notifies the limitations of the MPM list. For a particular normal / conventional intra prediction block, if the MPM flag notifies that no MPM mode is used, there is no index / pointer for the block in the data stream. Instead, an alternative pointer / index to the remainder list of intra prediction modes is sent in the data stream for the block.The remaining list may also be a suitable subset of the set of available / supported intra prediction modes, and in particular, may be a complementary set to the MPM list as compared to the set of available / supported intra prediction modes. That is, all members of the set of available / supported intra prediction modes will be either members of the MPM list or members of the remaining set. The pointer / index to the MPM list may be VLC encoded, and the pointer / index to the remaining set may be encoded using a fixed-length code. Of course, even in the case of an intra prediction block of the LIP or ISP scheme, the MPM flag may be transmitted, and the encoder may be free to select any mode from the set of available / supported intra prediction modes and set the MPM flag according to whether the selected mode is in the MPM list or in the remaining set.
[0054] The MPM lists may be the same, i.e., they may be determined in the same way by the encoder and the decoder for normal / traditional intra prediction blocks and ISP / LIP intra prediction blocks. However, regardless of whether restrictions on the MPM lists and the inference of the MPM flag that notifies the use of the MPM list for ISP / LIP intra prediction blocks are applied, alternatively, for adapting to the statistics of the ISP / LIP mode, the MPM list for ISP / LIP intra prediction blocks may be determined in a different way. For example, the DC intra mode can be excluded from the MPM list, and it can be changed to prioritize the horizontal intra mode for the ISP horizontal split, i.e., in the horizontal direction 104, and the vertical intra mode for the vertical split, i.e., in the vertical direction 104. That is, for normal / traditional intra prediction blocks, the MPM list can form an appropriate subset of the set of available / supported intra prediction modes, and those modes can be selected and ordered according to certain concepts. For the ISP / LIP intra prediction block 80, the MPM index may refer to an MPM list that depends on the partitioning direction 104 notified by the flag 114, and / or an appropriate subset of the set of available / supported intra prediction modes that does not include the DC mode, or does not include the DC and planar modes, i.e., an appropriate subset of the angular modes in the set of available / supported intra prediction modes. When constructing the MPM list based on the previously used intra prediction modes of previously encoded / decoded blocks, when the flag 114 indicates that the partitioning direction 104 is horizontal, the angular mode in the angular intra prediction direction closer to the horizontal dimension would be preferred, and when the flag 114 indicates that the partitioning direction 104 is vertical, the angular mode in the angular intra prediction direction closer to the vertical dimension would be preferred.
[0055] Regarding the description mentioned above, it should be noted again that the normally processed intra prediction mode and the intra prediction mode processed using the partitions as outlined in this specification do not need to be juxtaposed. That is, the encoder and decoder may always use the partitions presented in this specification to process the intra prediction block 80, in which case, as a result, for example, the partition flag 160 may become unnecessary. However, if the partition option signaled by the flag 160 can be utilized as one decision for the encoder, the following description reveals the possibilities regarding how the encoder executes that decision, or regarding whether that partition mode should be used for a particular block 80 and which split type, i.e., horizontal or vertical, is optimal. To do this, the encoder should test both options of different intra prediction modes for each block. Compared to the case where the encoder has only one option such as the normal option, more options need to be tested, so the speed of the encoder becomes slower. To reduce this impact, the partition mode signaled by the flag 160 may be tested by being encoded according to the following strategy, where reference is made to FIGS. 10 and 11.
[0056] 1) The 1D partition mode is the last intra mode to be tested. 2) Let Cmin be the minimum cost up to the point when the 1D partition mode is about to be tested. 3) Select a combination of the intra mode and split type to be tested. 4) The block is divided into N 1D partitions, and i indicates the index of each of these partitions, where i = [1, N]. 5) After all partitions are encoded, its sub-cost Ji is calculated. Thus, after partition i is encoded, the sum of all available sub-costs, i.e.,
Number
[0057] The advantage of this procedure is that in the 1D partition mode, it is already possible to know that it is unlikely to obtain a cost better than the existing minimum cost, so it is possible to avoid processing unnecessary 1D partitions. Moreover, there are no drawbacks in terms of RD loss. The overall process is shown as a flowchart in FIG. 11.
[0058] All of the above embodiments show segments that are executed in stripes with a 1-sample width crossing direction 104. Alternatively, the segments may be executed to be wider partitions, and it should be noted that, thereby, the method can be carried out in a way that leads to 2D partitions as long as the specific details in the description of the embodiments do not utilize one-dimensionality. Further alternatives regarding the segments are shown below.
[0059] In other words, in the above description, an embodiment including a line-based intra prediction (LIP) coding mode tool in which the intra-predicted W×H block 80 is divided into one-dimensional partitions 102 / 112 or lines has been described. Therein, each of the resulting lines 102 / 112 is predicted, a residual signal is generated, which is transformed, quantized, entropy-coded, and finally the coefficients are sent to the decoder. The reconstructed samples of such lines can be used to predict the next line and so on. This process is repeated until all one-dimensional partitions within the original block are encoded.
[0060] However, changes are possible to this LIP concept. It has already been shown above when discussing FIG. 4 that embodiments of the present application are not limited to having partitions 102 / 112 of one sample width along the division / splitting direction 104. In the embodiments described next, the width along the splitting direction 104 is defined based on 1) whether the intra prediction mode is an angular mode or a non-angular mode, and 2) the width of the intra prediction block along that direction 104.
[0061] 1) A W×H block 80 (where W and H are assumed to be powers of two) can be divided into K equal partitions 102 / 112 of w×h dimensions, either horizontally or vertically (e.g., as indicated by the syntax element 114 sent to the decoder). Their values are listed in Table II. According to Table II, a block with W = 16 and H = 8 that is predicted using the non-angular intra mode and is vertically split (i.e., split in the direction 104 that is vertical) may be divided into, for example, 4 partitions 102, and all of these partitions will have dimensions of w = 16 and h = 2. This example is shown in FIG. 12a. If the same block 80 is predicted using the angular intra mode, the block will be divided into 8 partitions 102 having dimensions of w = 16 and h = 1.
[0062]
Table II
[0063] 2) The W×H block 80 (where W and H are assumed to be powers of 2) can alternatively be divided into K equal partitions of w×h dimensions, either horizontally or vertically (e.g., as indicated by the syntax element 114 sent to the decoder), where the value of K is not fixed (and thus its value is sent to the decoder using the syntax element), and the range can be a power of 2 between 2 and S. Here, S is the value of the dimension to be divided (width for vertical division and height for horizontal division). The values of w and h are obtained as shown in Table III.
[0064]
Table III
[0065] Alternatively, the width of the partition along dimension 104 can be signaled directly for block 80.
[0066] 3) The W×H block 80 (where W and H are assumed to be powers of 2) can alternatively be divided into K partitions of wi×hi dimensions in the horizontal or vertical direction (e.g., as indicated using the syntax element 114 sent to the decoder), where K depends on W and H, and i = 1, 2, …, K. When the division is horizontal, S = H and si = hi, and when the division is vertical, S = W and si = wi. The various options for the value of si are described in Table IV for different values of S, where the value of S quantifies the width of block 80 along dimension 104, and si quantifies the width of partition i along dimension 104.
[0067]
Table IV
[0068] The options used in the decoder are either fixed or can be implicitly determined according to the values of the parameters present on the decoder side.
[0069] 4) A block 80 of W×H (where W and H are assumed to be powers of 2) can alternatively be divided into K partitions of dimension wi×hi in the horizontal or vertical direction (K depends on W and H), as indicated by, for example, the syntax element 114 sent to the decoder, where i = 1, 2, …, K. When the division is horizontal, S = H and si = hi, and when the division is vertical, S = W and si = wi. The value of si will be determined by a syntax element indicating which of the three options shown in Example 3) should be used to divide the block into sub - partitions.
[0070] Thus, as illustrated in the above Examples 1 - 4, the partitioning may be performed along a one - dimensional 104, and while the partitions have the same width as the predetermined block in a direction perpendicular to the predetermined dimension, the width of the partitions measured along the predetermined dimension 104 is selected from at least two different width settings or options. Explicit or implicit signaling concepts can be used to keep the selection synchronized between the encoder and the decoder. Thus, this selection allows changing the partitioning between blocks of the same size and shape while keeping the overhead associated with this change reasonably low. The selection can be made, for example, according to the intra - coding mode of the predetermined block, such as whether the intra - coding mode for the predetermined block is the angular mode or not. The selection can also be made, as shown in Example 4, according to the index in the data stream for the predetermined block that indicates one of at least two different width settings. The partitions can be one sample width or more along the partitioning dimension. Within one block, the partition width along the partitioning / predetermined direction may vary. One may be one sample width, i.e., a one - dimensional stripe, and the other may be more than one sample width, i.e., a two - dimensional field of samples.
[0071] Furthermore, in some cases of the above-described embodiments of the LIP concept, it has been proposed that two types of processing orders (referred to as partition order 126 in the above description) be available for each block 80, and the one finally applied has been selected according to the intra-mode used in block 80. However, as already described above, there are alternatives for determining the partition order 126. The processing order 126 indicates in which order the sub-partitions 102 / 112 should be processed. Possible processing orders 126 start from the upper left sub-partition and continue in a predetermined order, such as downward in the case of horizontal partitioning, rightward in the case of vertical partitioning, or other orders such as raster scan format in other cases where other divisions to the partition are used. Generally, the processing order 126 could be determined by existing parameters that are available on the decoder side when each sub-partition is decoded / processed. That is, for the decoder, the processing order 126 could be determined on-the-fly, i.e., according to the prediction of the various sub-partitions 102 / 112. Such existing parameters could include the intra-mode, sub-partition index, dimensions of the original block, dimensions of the sub-partition, CBF flag of the current partition, etc. The order 126 could also be sent directly to the decoder.
[0072] Derived from the ideas already described above with respect to FIG. 5, there may also be a motivation to change the partition order for block 80 that receives split intra prediction using the same partitioning to partition 102 / 112. That is, a change in the order 126 in which partitions 102 / 112 are processed enables the distribution of prediction accuracy among the various partitions 102 / 112. For example, as illustrated above, if a partition 102 / 112 that is far from the adjacent sample set 118 is selected to be processed first according to the partition order 126, this would mean that the intra prediction is worse than if the far partition were processed last according to the partition order 126. This is because, in the latter case, the reference samples used to fill that partition are closer, i.e., are located in the partition adjacent to that partition on the side facing the reference sample set 118. For example, in the case of FIG. 5, if the intra prediction result obtained for partition 1024 is first in the partition order 126 (the prediction will be obtained based on the adjacent samples outside block 80), then the prediction residual will be larger compared to the case where partition 1024 is processed last according to the partition order 126 (covering the samples directly adjacent to partition 1024 and generating a prediction based on, for example, the adjacent sample set including partition 1023). However, the opposite is true for the remaining partitions. When processing partition 1024 first, its reconstruction using the prediction residual of partition 1024 can be included in the adjacent sample set 118i of any partition that is processed subsequently according to the partition order 126. This allows the use of the intra prediction mode of block 80 from both sides of these partitions to predict, for example, the interior of each partition 1021 - 1023 in FIG. 5.
[0073] When processing partition 1024, the adjacent sample sets 118i are only located on one side of each partition 102i for i = 1...4. That is, for partitions 1021 - 1023, the situation will be reversed. In the case of these partitions, the prediction residual will be lower when partition 1024 is processed first compared to when partition 1024 is processed last. Furthermore, as described above, not only can the order be switched between two options that cross adjacent partitions consecutively, but it is also necessary to consider the possibility that another partition order 126 can be permitted. That order is a method such as processing every second partition in a predetermined order first and then processing the remaining partitions in the same order or the reverse of the predetermined order. Which option is optimal is determined by testing various order options on the encoder side and transmitting each additional signal (signaling) regarding the order 126 of block 80 within the data stream, or the order 126 can be made selectable in the same way on both the encoder side and the decoder side according to the syntax elements transmitted within the data stream for block 80 or adjacent blocks, so that even for blocks 80 that have the same size and shape and are similarly divided into partitions 102 / 112, the order 126 is not the same and can be different between those blocks 80.
[0074] Therefore, the partition order in which the partitions of each block 80 are processed can be selected from at least two different orders. The concept of explicit or implicit signaling can be used to maintain synchronization of the selection between the encoder and the decoder. That is, this selection allows one partition order to be applied to a given block while another order is applied to another block, i.e., a block that is also encoded using the concept of split intra prediction, has the same size and the same shape, and is partitioned into partitions in the same way. The freedom in the selection of the partition processing order in the encoder, or the freedom in the rendering of the partition processing order depending on parameters other than size, shape, and partitioning, is effective in enhancing the effectiveness of the split intra prediction mode. When collecting (recruiting) reference samples 118i in a manner corresponding to the selection of a given partition order 126 for a given block from at least two different orders for the derivation of the predictor of a particular partition 102i, the effectiveness can be even greater. In particular, as described above, for a certain available or selectable partition order, the collected reference samples 118i can be placed on two opposite sides of the current partition, while for another selectable partition order, the collected reference samples 118i can be placed only on one of the two opposite sides of that partition 120i. When splitting along dimension 104, "side" may refer to both sides of the partition 120i facing each other along that direction, such as the upper and lower sides in the case of the vertical direction 104 and the left and right sides in the case of the horizontal direction. However, in the case of another partitioning briefly described below, "side" may simply be defined as one side of the partitioning facing the samples from the reference sample set 118i outside the block 80 and the other side of the partitioning facing the samples from the reference sample set 118i inside the block 80, i.e., within one of the previously processed partitions.For example, one of at least two different selectable orders may start from the partition farthest from the upper left corner of a given block and traverse the partitions, while the other of the at least two different selectable orders may start from the partition closest to the upper left corner of the given block and traverse the partitions.
[0075] Another problem to be addressed relates to residual coding. As described above, residual coding can be performed using transform coding. Each sub-partition 102 / 112 can have its own coding block flag (CBF) 188, final position (LP) syntax element 190, and transform coefficients 198 within the data stream, and these will be sent to the decoder. Thus, in the case of a block 80 such as a CU having K sub-partitions 102 / 112, there will be K CBFs 188 and one LP 190 for each partition 102 / 112 having a non-zero CBF. The context used to encode each CBF 188 may depend on the value of the CBF of previously encoded sub-partitions within the same block - for example, according to order 126. Additionally, further unspecified syntax elements may be sent to the decoder within the data stream, and the syntax elements are for indicating whether the concepts described above are used for all blocks, or within a range corresponding to the entire data stream or a particular picture, or, for example, for a slice of a particular picture, whether the concept of split intra prediction described herein is used for all intra prediction blocks 80 within that range, or whether some (partitions) are signaled to be treated as one piece, i.e., split into a single partition.
[0076] Similarly, as described above, each sub - partition can be individually transformed using one transformation, thereby generating one transformation for each partition 102 / 112 that is not quantized to all zeros. As a transformation for a particular partition 102 / 112, a 2D transformation may be used, except when one of the dimensions of that partition 102 / 112 is 1, in which case a 1D transformation would be applied. The transform core can be the DCT - II, or any other arbitrary transformation determined by parameters present on the decoder side when the sub - partition is to be decoded. For example, the transformation can be selected according to a combination of the intra mode, sub - partition index, sub - partition dimension, or a subset of the latter parameters. The transformation can be signaled directly to the decoder, or, in other words, in the form of additional syntax elements sent individually for all partitions within block 80, or for each partition 102 / 112 of one block 80.
[0077] One aspect relates to the fact that, as already described above, after quantization in the spatial domain or some intermediate transform domain, which is achieved by applying a partition - by - partition transform to the prediction residual of each partition and then quantizing the transform coefficients, the residual of the partitions 102 / 112 of block 80 may be further transformed, and that transformation is lossless or inversely transformable. That is, the decoder can obtain the transform coefficient levels of the transformation for the entire block 80, perform an inverse lossless transform on those transform coefficient levels, and obtain the prediction residual for each partition 102 / 112 in the spatial domain, or obtain the intermediate transform domain for each partition 102 / 112 by re - transformation from the prediction residual in the spatial domain.
[0078] According to a modification of the above embodiment, it should be noted that the partitioning can be performed in a way different from the form of partitioning along dimension 104. Intra prediction coding using such a modification can be named, for example, Flexible Intra Prediction Sub-Partitioning (FIPS). Instead of partitioning into stripes 102 / 112, the splitting / partitioning of block 80 can result in any rectangular sub-partitioning of block 80. Flexible Intra Prediction Sub-Partitioning (FIPS) divides one W×H intra prediction block 80 into K non-overlapping rectangular sub-partitions of size wi×hi (i = 1, 2, …, K). The resulting sub-partition layout is completely gapless, which means that the sum of the areas of the sub-partitions is equal to the area of the original block. That is,
Number
[0079]
Table V
[0080] So far, the above-described embodiments can be said to show exemplary segments of the immediately preceding described segments. For example, FIG. 4 shows two examples of such FIPS partitions of block 80. However, in this case, all sub-partitions 102 / 112 have the same size. In particular, in the direction perpendicular to dimension 104, the sub-partitions are the width of the block, and in the direction along dimension 104, they are of equal width and correspond to a particular fraction of the width of the block along dimension 104. Similar to any of the above partitions 102 / 112, each sub-partition 102 generated in FIPS is predicted, and the resulting residual signal is, for example, individually, transformed, quantized, and encoded. Thus, its reconstructed value may be used for the prediction of other sub-partitions 102 that are not yet encoded / decoded. For example, in the case of block 80 shown in FIG. 12b, sub-partition number 1 is predicted first, and then its reconstructed sample can be used to predict sub-partition numbers 2 and 3. This process is repeated until all sub-partitions are encoded / decoded.
[0081] To summarize the generalization of FIPS, the partitioning of the intra prediction block 80 into partitions 102 / 112 may be defined and signaled through the data stream in a different way, for example, using a recursive multi-tree sub-division of the block 80 into rectangular partitions of various sizes, or any other possible partition definition. For example, the partitioning can be defined by the derivation of dimension 104 as described above, and based on that dimension, determine whether the partition of block 80 is a horizontal stripe 102 or a vertical stripe 112, respectively. Also, regarding the width of the stripes, i.e., the height of the horizontal stripe 102 and the width of the vertical stripe 112, it is determined depending on the intra prediction mode. For example, all other possibilities discussed above remain, such as the possibility of changing the processing / partitioning order 126. That is, the change may depend on the intra prediction mode as described above, or on some syntax element for block 80 that is sent appended to the intra prediction mode parameters in the data stream, or it may follow some other information sent in the data stream, such as information derivable from the prediction residuals sent in the data stream for various partitions.
[0082] Furthermore, the prediction residuals of the various partitions of block 80 are quantized and sequentially encoded into the data stream for each partition so as to alternate with respect to the individual intra-predictions of these partitions, as already described above. This is the same not only for FIG. 5 but also for the descriptions regarding FIGS. 10 and 11. However, the decoder does not need to repeatedly alternate between, on the one hand, residual decoding and, on the other hand, reconstruction of the various partitions by combining intra-prediction and prediction residuals. That is, when decoding a particular block 80, the decoder may separate the decoding of the prediction residuals 120 of the various partitions from the actual reconstruction procedure that includes the individual intra-predictions of the various partitions. See FIG. 5. Here, the decoder may decode the prediction residuals 120 of all partitions, i.e., the prediction residuals 1201-1204 of block 80, from the data stream 14 according to one processing task, and the decoder may use the prediction residuals 120i of partition 102i according to another task to reconstruct the inside of block 80 partition by partition according to the partition order 126. For this purpose, in a second task, the decoder executes an intra-prediction of each partition 120i using the intra-prediction mode of block 80, adds the prediction residual 120i obtained from the first task, and then steps to the next partition 120i+1 in the partition order 126 to continue the reconstruction of block 80. Thereby, spatial prediction is performed, and then reconstruction is carried out using the prediction residual of that partition to correct the intra-prediction result. The decoder may execute a first task of completely deriving the prediction residuals 120 from the data stream 14 before starting a second task of performing prediction correction using prediction and prediction residuals, or the decoder may execute the above two tasks in parallel. In that case, when the prediction residual 120i of a particular partition 102i is required, i.e., when the prediction result of that partition 102i has been obtained using the intra-prediction mode of that block and needs to be corrected, means are required to ensure that the prediction residuals are ready.In particular, during the first task or phase, the decoder may perform all inverse transforms in parallel for all non-zero partitions, i.e., all partitions 102 for which the prediction residual 120i is notified as non-zero.
[0083] As an added note, according to the above-described embodiment in which the residual 120i of partition i is quantized in the transform domain, it should be noted that the reconstructed samples of these partitions may go out of, i.e., exceed or inherit, a specific allowable sample value range. As described above, the reconstructed samples may function as members of the reference samples 118j for subsequent partition j in order 126. According to one embodiment, these samples are left as is for the purpose of predicting subsequent partition j in order 126, and clipping of these samples of block 80 is performed as the last clipping step for the entire block 80. Thereby, for example, the ease of implementation on the decoder side is improved. Thus, when deriving the predictor of partition 102i, samples among the reconstructed samples 118i of the partitions preceding this partition 102i according to the partition order 126 and functioning as references for the current partition may be used in an unclipped state, and clipping the reconstructed samples from an unclipped state to a clipped state within the allowable sample value range is done last in order to finally reconstruct a given block after a series of reconstructions. On the encoder side, clipping is performed only to obtain a reconstructed version of such samples that function as prediction references for subsequent encoded blocks in order to maintain reference synchronization with the decoder. However, this last cleanup-type clipping is only an example, and alternatively, clipping may be performed immediately, i.e., before the reconstructed samples of partition i function as the reference samples 118j of the subsequent partition j to be processed.
[0084] Among the embodiments described so far, one embodiment will be described below using specific examples. In particular, according to this embodiment, the data stream 14 signals, via the split mode flag 160, whether the intra-coded block 80 is coded using the LIP or ISP scheme. The corresponding syntax element within the data stream 14 can be named in-tra_subpartitions_mode_flag. For example, if this flag is 1, the intra-coded block 80 can be coded using the LIP or ISP scheme; otherwise, the block 80 is coded using normal intra prediction. The LIP or ISP scheme may be available for the current intra-coded block 80 only if, for example, one or more specific conditions are met. The one or more conditions can include, for example, the following. For example, the intra-coded block 80 needs to be larger than some minimum size with respect to the number of samples of the block 80, and / or the intra-coded block 80 cannot exceed a predetermined dimension in at least both the horizontal and vertical directions, for example, to prevent the transform size from becoming too large. More precisely, the LSP or ISP mode may be available only when the block 80 is below the aforementioned maximum transform-related size in at least one direction, i.e., the horizontal or vertical direction. Therefore, the in-tra_subpartitions_mode_flag may exist in the data stream only if the block 80 meets the above conditions. Otherwise, the decoder may assume that the intra-coded block 80 is intra-coded as usual.
[0085] If the intra-coded block 80 is an LSP or ISP coded block, as indicated by the split mode flag (intra_subpartitions_mode_flag), the partition dimension flag 114 may be further signaled for the intra-coded block 80. However, this intra_subpartitions_mode_flag is not necessarily explicitly signaled, but may be inferred to indicate a particular partition dimension 104 in certain situations. For example, if the intra-coded block 80 has a width exceeding the aforementioned maximum transform size (but a height not exceeding it), the partition dimension 104 can necessarily be horizontal, and if the height of the block 80 exceeds the maximum transform size mentioned immediately above (but the width does not exceed it), the dimension 104 can necessarily be vertical. In either case, the intra_subpartitions_split_flag will not be explicitly signaled in the data stream, but will be appropriately inferred by the decoder. The intra coding mode 116 can be signaled in the data stream by using the list of most accurate intra prediction modes constructed on the encoder side and the decoder side as outlined above. On the other hand, in the case of an LIP or ISP intra-coded block 80, the data stream 14 can signal the intra coding mode via, for example, an MPM list pointer called intra_luma_mpm_IDX, which necessarily points to the list of most accurate intra prediction modes. If the intra-coded block is not coded with an LIP or ISP scheme, there may be an MPM flag before this pointer in the data stream 14. For example, if an MPM flag called intra_luma_mpm_flag has a particular flag state, a pointer to the remaining list of intra prediction modes will be signaled in the data stream instead of a pointer to the list of most accurate intra prediction modes.However, as described above, this is merely an example, and the set of signaling possible for the intra prediction mode may be the same, i.e., it may cover all supported intra prediction modes for both the intra prediction block encoded normally and the LIP or ISP intra prediction block.
[0086] For example, intra_luma_mpm_flag may be sent for both types of intra encoded blocks. Alternatively, the pointers sent for both types of intra prediction blocks may directly point to the complete list of supported intra prediction modes for both types of intra encoded blocks without the MPM flag. When the intra encoded block 80 is encoded using the LIP or 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 according to the size of the block 80. The signal will not be consumed in the data stream. For a small block size, the number may be 2, but otherwise, the number of partitions 102 / 112 is 4. The partition order in which the intra prediction and the encoding of the prediction residual into the data stream are performed may proceed sequentially along the partition direction 104 from the leftmost partition in the case of the horizontal direction 104 and from the uppermost partition in the case of the vertical partition direction to the farthest partition. Again, the signal will not be consumed in the data stream. As described above, the residual transformation may be performed for each partition 102 / 112. That is, each partition may be transformed individually.
[0087] In contrast, for a normally intra-coded block 80, the number of transforms may depend on the size of the intra-coded block 80 as follows. That is, if the intra-coded block is smaller than the aforementioned maximum transform size in both the horizontal and vertical directions, the residual of the intra-coded block 80 is coded using one transform, i.e., exactly one transform is applied to the residual of block 80. If it exceeds the maximum transform size in the horizontal direction, the intra-coded block 80 is split horizontally into two half-blocks or the corresponding number of transform blocks, where these half-blocks or transform blocks match the maximum transform size, and one transform is applied to the residual of block 80 for each half-block / transform block. The same applies to block 80 that exceeds the maximum transform size in the vertical direction. If it exceeds the maximum transform size in both the vertical and horizontal directions, four or the corresponding number of transforms are used to transform the residual of block 80 into the quadrants of this block 80, or to transform the standard two-dimensional sub-division of block 80 into the corresponding number of transform blocks. Furthermore, the processing of a normal intra-coded block 80 may differ from the handling of an LIP- or ISP-coded intra-coded block 80 in that a normal intra-coded block is intra-predicted in block units. That is, a normal intra-coded block is not sub-divided. A further difference may relate to the coding of the transform blocks for coding the prediction residual of block 80. For each transform, a coding block flag 188 such as tu_cbf_luma may be transmitted. However, for a normal intra-coded block 80, this flag may necessarily be coded for each transform within block 80, while if block 80 is LIP- or ISB-coded and all preceding CBFs of previous transforms are zero, this flag may be presumed to be 1 for the last transform of that block 80. Furthermore, the selection of the dimensions of the sub-blocks within each transform may differ between a normal intra-coded block 80 and an LIP- or ISP-coded block 80. Details are described in the above paragraph.However, alternatively, the sub - division into sub - blocks of transform 182 may be performed equally for normal intra - coding blocks and LIP or ISP coding blocks. For example, let log2SbW and log2SbH be the logarithms of the width and height of the sub - block respectively, and let log2TbWidth and log2TbHeight be the logarithms of the width and height of the transform respectively. Then, the dimensions of the sub - block can be determined as follows.
[0088]
Number
[0089] The above pseudo - code generates sub - blocks of the size shown in Table 1. This may result in only 4×4 coefficient sub - blocks for the normal intra - coding block 80, due to the minimum size specific to the intra - coding block 80 and the non - sub - division of the normal intra - coding block. Finally, the examples outlined above can result in LIP or ISP intra - prediction blocks of various sizes, including blocks divided into only two partitions 102 / 112, but it should be noted that there may be LIP or ISP intra - prediction blocks divided into three or more partitions, regardless of whether such LIP or ISP intra - prediction blocks exist.
[0090] Although several aspects have been described in the context of an apparatus, these aspects also represent descriptions of corresponding methods, and it is clear that a block or device corresponds to a method step or a feature of a method step. Similarly, aspects described in the context of a method step also represent descriptions of corresponding blocks or items or features of a corresponding apparatus. Some or all of the method steps can be performed (or used) by a hardware device such as, for example, a microprocessor, a programmable computer, or an electronic circuit. In some embodiments, one or more of the most important method steps can be performed by such a device.
[0091] The data stream of the present invention can be stored in a digital storage medium or transmitted through a transmission medium such as a wireless transmission medium or a wired transmission medium like the Internet.
[0092] According to specific implementation requirements, embodiments of the present invention can be implemented in hardware or software. The implementation can be executed using a digital storage medium such as a flexible disk, DVD, Blu-ray (trademark), CD, ROM, PROM, EPROM, EEPROM, or flash memory. Moreover, it can cooperate (or be capable of cooperating) with a programmable computer system so that each method is executed. Therefore, the digital storage medium can be computer-readable.
[0093] Some embodiments according to the present invention include a data carrier having an electronically readable control signal that can cooperate with a programmable computer system so that one of the methods described herein is executed.
[0094] Generally, embodiments of the present invention can be implemented as a computer program product having program code, and the program code operates to execute one of the methods when the computer program product is executed on a computer. The program code may be stored, for example, in a machine-readable carrier.
[0095] Other embodiments include a computer program stored in a machine-readable carrier for executing one of the methods described herein.
[0096] Therefore, in other words, embodiments of the method of the present invention are computer programs having program code for executing one of the methods described herein when the computer program is executed on a computer.
[0097] Accordingly, a further embodiment of the method of the present invention is 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.
[0098] Accordingly, a further embodiment of the method of the present invention is a data stream or sequence of signals representing a computer program for performing one of the methods described herein. The data stream or sequence of signals may be configured to be transferred via a data communication connection such as, for example, the Internet.
[0099] A further embodiment includes processing means, such as a computer or programmable logic device, configured or adapted to perform one of the methods described herein.
[0100] A further embodiment includes a computer having installed thereon a computer program for performing one of the methods described herein.
[0101] A further embodiment according to the present invention includes an apparatus or 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 can be, for example, a computer, a mobile device, a memory device, etc. The apparatus or system can include, for example, a file server for transferring the computer program to the receiver.
[0102] In some embodiments, a programmable logic device (e.g., a field programmable gate array) can be used to perform some or all of the functions of the methods described herein. In some embodiments, the field programmable gate array can cooperate with a microprocessor to perform one of the methods described herein. Generally, the methods are preferably performed by any hardware device.
[0103] The devices described herein can be implemented using a hardware device, or using a computer, or using a combination of a hardware device and a computer.
[0104] The devices described herein, or any component of the devices described herein, can be implemented at least partially in hardware and / or software.
[0105] The methods described herein can be performed using a hardware device, or using a computer, or using a combination of a hardware device and a computer.
[0106] The methods described herein, or any component of the devices described herein, can be performed at least partially by hardware and / or software.
[0107] The above-described embodiments are merely illustrative of the principles of the present invention. It will be understood that modifications and variations of the configurations and details described herein will be apparent to those skilled in the art. Accordingly, it is intended to be limited only by the appended claims and not by the specific details presented as descriptions and explanations of the embodiments herein.
Claims
1. 1. A decoder for decoding a picture comprising a plurality of blocks from a data stream, comprising: the decoder comprises a processor; The processor, determining an intra coding mode for a block among the plurality of blocks, the block being divided into at least two partitions along a partition dimension; deriving a predictor for the current partition of the one block based on one or more previously reconstructed samples neighboring the current partition using the intra coding mode of the one block; determining whether the current partition is the last partition in the one block according to a partition order; responsive to determining that the current partition is not the last partition in the one block according to the partition order, decoding a partition flag of the current partition from the data stream; (i) in response to determining that the current partition is the last partition in the one block according to the partition order, and (ii) for each previous partition in the one block according to the partition order, a respective partition flag is zero, inferring the partition flag of the current partition to be one without decoding from the data stream; decoding transform coefficients of the current partition from the data stream in response to the partition flag for the current partition being equal to one; inferring that the transform coefficients of the current partition are zero in response to the partition flag of the current partition being equal to zero; reconstructing the current partition based on the predictor and the transform coefficients. A decoder configured as follows:
2. To reconstruct the current partition of the one block, the processor: performing an inverse transform on the transform coefficients to obtain a prediction residual for the current partition; configured to combine the predictor and the prediction residual.
2. A decoder as claimed in claim 1.
3. The processor, configured to decode the partition flag for the current partition from the data stream using context-dependent entropy decoding, the context depending on a coded partition flag decoded for a partition preceding the current partition according to the partition order.
2. A decoder as claimed in claim 1.
4. The processor, and further configured to decode a first flag indicating that the one block is divided into the at least two partitions.
2. A decoder as claimed in claim 1.
5. Based on the first flag indicating that the one block is divided into the at least two partitions, the decoder is further configured to entropy decode a second flag indicating whether the one block is divided vertically or horizontally.
5. A decoder as claimed in claim 4.
6. The processor, and determining a width of the at least two partitions based on a size of the one block.
2. A decoder as claimed in claim 1.
7. 2. The decoder of claim 1, wherein said at least two partitions are four partitions.
8. 1. A method for decoding a picture comprising a plurality of blocks from a data stream, comprising the steps of: The method comprises: determining an intra coding mode for a block of the plurality of blocks, the block being divided into at least two partitions along a partition dimension; deriving a predictor for a current partition of the one block based on one or more already reconstructed samples neighboring the current partition using the intra coding mode of the one block; determining whether the current partition is the last partition in the one block according to a partition order; in response to determining that the current partition is not the last partition in the one block according to the partition order, decoding a partition flag of the current partition from the data stream; inferring the partition flag of the current partition to be one without decoding from the data stream in response to determining that (i) the current partition is the last partition in the one block according to the partition order, and (ii) for each previous partition in the one block according to the partition order, a respective partition flag is zero; in response to the partition flag for the current partition being equal to one, decoding transform coefficients of the current partition from the data stream; inferring that the transform coefficients of the current partition are zero in response to the partition flag of the current partition being equal to zero; reconstructing the current partition based on the predictor and the transform coefficients; A method for providing the above.
9. The step of reconfiguring the current partition includes: performing an inverse transform on the transform coefficients to obtain a prediction residual for the current partition; combining the predictor and the prediction residual; 9. The method of claim 8, comprising:
10. the partition flag for the current partition is decoded from the data stream using context-dependent entropy decoding, the context depending on the coded partition flag for a partition preceding the current partition according to the partition order.
9. The method of claim 8.
11. and decoding a first flag indicating that the one block is divided into at least two partitions. The method according to claim 8.
12. and entropy decoding a second flag indicating whether the block is divided vertically or horizontally based on the first flag indicating that the one block is divided into the at least two partitions. The method of claim 11.
13. determining a width of the at least two partitions based on a size of the one block; The method according to claim 8.
14. 9. The method of claim 8, wherein the at least two partitions are four partitions.
15. 1. A non-transitory computer-readable medium comprising instructions for decoding a picture comprising a plurality of blocks from a data stream, the non-transitory computer-readable medium comprising: The instructions, when executed by a computer, determining an intra coding mode for a block of the plurality of blocks, the block being divided into at least two partitions along a partition dimension; deriving a predictor for a current partition of the one block based on one or more already reconstructed samples neighboring the current partition using the intra coding mode of the one block; determining whether the current partition is the last partition in the one block according to a partition order; in response to determining that the current partition is not the last partition in the one block according to the partition order, decoding a partition flag of the current partition from the data stream; inferring the partition flag of the current partition to be one without decoding from the data stream in response to determining that (i) the current partition is the last partition in the one block according to the partition order, and (ii) for each previous partition in the one block according to the partition order, a respective partition flag is zero; in response to the partition flag for the current partition being equal to one, decoding transform coefficients of the current partition from the data stream; inferring that the transform coefficients of the current partition are zero in response to the partition flag of the current partition being equal to zero; reconstructing the current partition based on the predictor and the transform coefficients; A non-transitory computer-readable medium for causing the computer to execute the method.
16. The step of reconfiguring the current partition includes: performing an inverse transform on the transform coefficients to obtain a prediction residual for the current partition; combining the predictor and the prediction residual; 20. The non-transitory computer readable medium of claim 15, comprising:
17. 16. The non-transitory computer-readable medium of claim 15, further comprising instructions that, when executed by the computer, cause the computer to decode the partition flag for the current partition from the data stream using context-dependent entropy decoding that uses a context that depends on a coded partition flag decoded for a partition that precedes the current partition according to the partition order.
18. 20. The non-transitory computer-readable medium of claim 15, further comprising instructions that, when executed by the computer, cause the computer to perform the step of decoding a first flag indicating that the one block is divided into the at least two partitions.
19. 20. The non-transitory computer-readable medium of claim 18, further comprising instructions that, when executed by the computer, cause the computer to perform the step of entropy decoding a second flag indicating whether the one block is divided vertically or horizontally based on the first flag indicating that the one block is divided into the at least two partitions.
20. 16. The non-transitory computer-readable medium of claim 15, wherein the at least two partitions are four partitions.
Citation Information
Patent Citations
Video decoding method and apparatus therefor
JP2016213895A
Moving picture encoding device and moving picture decoding device
JP2017028726A