Partition-based intra coding concept
By partitioning blocks in video codecs and applying sequential spatial prediction with modified prediction residuals, the solution addresses inefficiencies in intra prediction, reducing signaling overhead and enhancing coding efficiency and accuracy.
Patent Information
- Application Number
- JP2025089697
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2019-01-02
- Filing Date
- 2025-05-29
- Publication Date
- 2025-08-20
- Estimated Expiration
- 2039-02-07
AI Technical Summary
Existing block-based video codecs, such as HEVC, face inefficiencies in intra prediction due to high signaling overhead and reduced accuracy of larger intra-prediction blocks, necessitating improved coding methods to enhance prediction residuals and reduce signaling costs.
The proposed solution involves partitioning a given block into multiple partitions along one dimension, allowing sequential spatial prediction using the intra-prediction mode signaled for the block, with the predictor modified by the prediction residual, thereby reducing signaling overhead and improving prediction accuracy.
This approach reduces signaling overhead and enhances coding efficiency by allowing the decoder to reconstruct multiple samples at once, maintaining synchronization with the encoder and improving prediction accuracy through reduced average sample distance from neighboring reference samples.
Smart Images

Figure 2025122181000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to the concept of intra-coding for use in block-based codecs, such as hybrid video codecs. [Background technology]
[0002] Intra prediction in HEVC is performed by extrapolating the decoded boundary samples of neighboring blocks according to a certain pattern, namely, 33 angular modes, one DC mode, and one planar mode [1]. The decoder is then informed of the intra prediction mode that minimizes the rate-distortion cost. While there are known codecs that support many intra prediction modes (IPM), the intra prediction achieved by these known codecs still has room for improvement in finding better intra predictors that lead to higher coding efficiency. This applies not only to HEVC but also to other block-based codecs that use intra prediction. Given the fact that more accurate predictors reduce prediction residuals, thereby reducing the signaling overhead associated with encoding the prediction residuals, finding a suitable set of intra prediction modes to efficiently code the interior of a block requires considering the overhead of signaling intra prediction modes in terms of signaling overhead and the resulting quality of the predictors obtained by these intra prediction modes. To keep the signaling overhead associated with intra-prediction modes low, intra-prediction blocks need to be large, i.e., the granularity at which intra-prediction modes are signaled needs to be kept coarse. On the other hand, spatial prediction of larger blocks tends to be less accurate due to the larger average sample distance between samples inside the intra-prediction block, i.e., the block to be predicted, and its neighboring already decoded / encoded samples, i.e., reference samples. HEVC somewhat alleviates this dilemma by allowing transform residual blocks to inherit the intra-prediction mode of the corresponding coding unit, compared to when transform residual blocks form leaf blocks that are subdivided by multi-tree subpartitioning of the coding unit. However, signaling overhead is still required in this case to inform the decoder of the subpartitioning of individual intra-coded coding units into transform blocks.
[0003] Therefore, it is desirable to have a concept that further improves the coding efficiency of intra coding. Summary of the Invention [Problem to be solved by the invention]
[0004] It is therefore an object of the present invention to provide a more efficient intra-coding concept.
[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 efficient by providing an intra-prediction coding concept, where a given block of a picture is intra-predictively coded using an intra-coding mode, the given block is partitioned along a certain dimension into multiple partitions, the number of partitions being greater than two and / or the partitions being one sample wide along said dimension, so that during reconstruction, the partitions are sequentially subjected to spatial prediction using the intra-prediction coding mode signaled for the given block, and then the predictor thus obtained is modified using a prediction residual, so that when processing the next or current partition, the decoder can reconstruct multiple samples at once for the previous partitions. As a result, signaling overhead for partitioning can be omitted or kept low. For example, only signaling related to the partition dimension may be required in the data stream, such as signaling between a partition along the vertical axis in which a given block is partitioned into multiple horizontal slices, each having a predetermined block width, and a partition along the horizontal axis in which a given block is partitioned into multiple vertical slices, each having a predetermined block height. The number of partitions may be inherently clear, for example, by having an agreed-upon number of partitions between the encoder and decoder, in which case the encoder and decoder may divide the given block into this number of partitions, or the given block may be partitioned into the same number of partitions as the given block is dimensioned by multiple samples along a given dimension, with each partition having a width of one sample along that given dimension, i.e., into multiple partitions each having a width of one sample. This allows the partitioning to keep the overall signaling overhead low for a given block whose intra-prediction mode is signaled in the data stream.On the other hand, it offers the encoder and decoder the possibility to reduce the average distance of the samples of a given block from neighboring reference samples that have already been reconstructed / encoded, which reference samples are at least partly located within the given block itself, i.e., in previously processed partitions for which the prediction residuals have already been determined and are available for modifying the predictors used for the partitions in which they are located.
[0007] Advantageous aspects of the invention are the subject of the dependent claims. Preferred embodiments of the present application are described below with reference to the figures. [Brief explanation of the drawings]
[0008] [Figure 1] FIG. 1 shows a block diagram of an apparatus for predictive coding of pictures as an example of an encoder in which the intra prediction concept according to embodiments of the present application can be implemented. [Figure 2] FIG. 2 shows a block diagram of an apparatus for predictively decoding pictures, compatible with the apparatus of FIG. 1, as an example of a decoder in which the intra prediction concept according to embodiments of the present application can be implemented. [Figure 3] FIG. 3 is a schematic diagram illustrating an example of the relationship between the prediction residual signal, the prediction signal, and the reconstructed signal, showing the possibility of setting subdivisions for the coding mode selection, the transform selection, and the transform performance, respectively. [Figure 4] FIG. 4 shows a schematic diagram illustrating the partitioning process of an intra-coded block according to an embodiment that allows a choice between different partitioning dimensions, namely horizontal and vertical partitioning. [Figure 5] FIG. 5 shows a schematic diagram illustrating the sequential processing of partitions of an intra-coded block processed according to the partition option. [Figure 6] 1 shows a schematic diagram illustrating the predicted derivation of the partition filling process. [Figure 7]An example of a partitioned intra-prediction block is shown, partitioned according to horizontal and vertical partition modes and having two different intra-prediction modes associated with each, illustrating the possibility of determining the partition order depending on the intra-prediction mode associated with the intra-prediction block. [Figure 8] 1 shows a schematic diagram illustrating possible signaling for an intra-predicted block 80 processed using the partition option. [Figure 9] 1 shows a schematic diagram illustrating a possible way of transmitting prediction residuals for a partition according to one embodiment. [Figure 10] A schematic diagram showing the determination of the partial sum of coding costs associated with the intra-prediction mode partitioning is shown, so that testing can be stopped when it is clear that it does not perform better than any of the regular intra-prediction modes. [Figure 11] 1 illustrates a flowchart of the modes or operations of an encoder for performing partition mode testing, according to one embodiment. [Figure 12a] An example of an alternative partitioning of an intra-coded block is shown as a further embodiment. [Figure 12b] An example of an alternative partitioning of an intra-coded block is shown as an exemplary comparative embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0009] The figures are described below, but first a description of an encoder and decoder of a block-based predictive codec for encoding video pictures is presented to form an example of a coding framework in which embodiments of an intra-predictive codec may be included. Conventional encoders and decoders are described with respect to Figures 1-3. Next, a description of an embodiment of the present intra-prediction concept is presented, along with an explanation of how the concept may be incorporated into the encoder and decoder of Figures 1 and 2, respectively, although the embodiments shown in subsequent Figures 4 and subsequent Figures may also be used to form encoders and decoders that do not operate according to the underlying coding framework of the encoder and decoder of Figures 1 and 2.
[0010] FIG. 1 illustrates an apparatus for predictively encoding a picture 12 into a data stream 14, illustratively using transform-based residual coding. The apparatus or encoder is indicated using the reference numeral 10. FIG. 2 illustrates a corresponding decoder 20, i.e., apparatus 20 configured to predictively decode a picture 12′ from data stream 14, also using transform-based residual decoding. Here, an apostrophe is used to indicate that picture 12′ reconstructed by decoder 20 deviates from the original picture 12 encoded by apparatus 10 due to coding loss introduced by quantization of the prediction residual signal. While FIGS. 1 and 2 illustratively use transform-based predictive residual coding, embodiments of the present application are not limited to this type of predictive residual coding. This also applies to other details described with respect to FIGS. 1 and 2, as outlined below.
[0011] The encoder 10 is configured to subject the prediction residual signal to a spatial-to-spectral transformation and to encode the resulting prediction residual signal into a data stream 14. Similarly, the decoder 20 is configured to decode the prediction residual signal from the data stream 14 and to subject the resulting prediction residual signal to a spectral-to-spatial transformation.
[0012] Internally, the encoder 10 may comprise a prediction residual signal forming unit 22 for generating a prediction residual 24 in order to measure the deviation of a prediction signal 26 from the original signal, i.e., picture 12. The prediction residual signal forming unit 22 may, for example, be a subtractor for subtracting the prediction signal from the original signal, i.e., picture 12. The encoder 10 then further comprises a transformer 28 for subjecting the prediction residual signal 24 to a spatial-spectral transformation to obtain a spectral-domain prediction residual signal 24', which is then quantized by a quantizer 32 included in the encoder 10. The prediction residual signal 24'' thus quantized is coded into the bitstream 14. For this purpose, the encoder 10 may optionally comprise an entropy coder 34 for entropy coding the transformed and quantized prediction residual signal 24''. The prediction residual 26 is generated by a prediction stage 36 of the encoder 10 based on a prediction residual signal 24" that is encoded into and decodable from the data stream 14. To this end, the prediction stage 36 may internally comprise an inverse quantizer 38, as shown in FIG. 1, which inversely quantizes the prediction residual signal 24" to obtain a spectral-domain prediction residual signal 24'", which corresponds to the signal 24' except for quantization losses. The inverse quantizer 38 is followed by an inverse transformer 40, which performs an inverse transform, i.e., a spectral-to-spatial transform, of the prediction residual signal 24'", to obtain a prediction residual signal 24"", which corresponds to the original prediction residual signal 24 except for quantization losses. A combiner 42 of the prediction stage 36 then recombines the prediction signal 26 and the prediction residual signal 24"", such as by addition, to obtain a reconstructed signal 46, i.e., a reconstruction of the original signal 12. The reconstructed signal 46 may correspond to the signal 12′. A prediction module 44 of the prediction stage 36 then generates the predicted signal 26 based on the signal 46, for example by using spatial prediction, i.e., intra-prediction, and / or temporal prediction, i.e., inter-prediction.
[0013] Similarly, decoder 20 may be internally composed of components corresponding to, and interconnected in a corresponding manner with, prediction stage 36. In particular, entropy decoder 50 of decoder 20 may entropy decode a quantized spectral-domain prediction residual signal 24'' from the data stream, after which inverse quantizer 52, inverse transformer 54, combiner 56 and prediction module 58, which are interconnected and operate in the manner described above with respect to the modules of prediction stage 36, recover a reconstructed signal based on prediction residual signal 24'' so that, as shown in Figure 2, the output of combiner 56 provides a reconstructed signal, i.e., picture 12'.
[0014] Although not specifically described above, it is readily apparent that the encoder 10 can set certain coding parameters, including, for example, prediction mode, motion parameters, etc., according to some optimization scheme, e.g., in a manner that optimizes some rate- and distortion-related criteria, i.e., coding cost. For example, the encoder 10 and decoder 20 and corresponding modules 44, 58 can support different prediction modes, such as intra-coding and inter-coding modes, respectively. The granularity with which the encoder and decoder switch between these prediction mode types may correspond to a subdivision of the pictures 12 and 12′ into coding segments or coding blocks, respectively. A picture can be subdivided, for example, into intra-coded and inter-coded blocks in units of these coding segments.
[0015] As outlined in more detail below, intra-coded blocks are predicted based on their spatial, already coded / decoded neighbors. Several intra-coding modes, including directional or angular intra-coding modes, may exist and may be selected for each intra-coded segment. According to the selected mode, each segment is filled into the segment by extrapolating neighboring sample values along a direction specific to each directional intra-coding mode. The intra-coding modes may also include one or more additional modes, such as a DC coding mode, in which predictions for each intra-coded block are assigned a DC value to all samples in the segment, and / or a planar intra-coding mode, in which predictions for each block are approximated or determined as a spatial distribution of sample values, which is described by using a two-dimensional linear function over the sample positions of each intra-coded block and shifting the slope and intercept of the plane defined by the two-dimensional linear function based on neighboring samples.
[0016] In contrast, inter-coded blocks may be predicted, for example, temporally. For inter-coded blocks, motion vectors may be signaled in the data stream, indicating the spatial displacement of a portion of a previously coded picture of the video to which picture 12 belongs, i.e., the portion from which the previously coded / 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 data stream 14, such as entropy-coded transform coefficient levels representing the quantized spectral-domain prediction residual signal 24", data stream 14 may also include coded therein any other parameters, such as coding mode parameters for assigning coding modes to various blocks, prediction parameters for some blocks, such as motion parameters for inter-coded segments, and parameters that respectively control and inform the subdivision of pictures 12 and 12' into segments. Decoder 20 uses these parameters to subdivide the picture in the same way as the encoder did, assigning the same prediction modes to each segment, and performing the same prediction, resulting in the same prediction signal.
[0017] FIG. 3 illustrates 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 mentioned above, this combination may be additive. The prediction signal 26 is illustrated in FIG. 3 as a subdivision of the picture region into intra-coded and inter-coded blocks, with the intra-coded blocks illustratively shown using hatching and the inter-coded blocks illustratively shown without hatching. This subdivision may be any subdivision, such as a regular subdivision of the picture region into blocks or rows and columns of blocks, or a multi-tree subdivision of the picture 12 into leaf blocks of various sizes, such as a quad-tree subdivision, a mixture of which is shown in FIG. 3, in which the picture region is first subdivided into rows and columns of tree-root blocks, and then further subdivided according to a recursive multi-tree subdivision. Again, data stream 14 may have encoded therein an intra-coding mode for intra-coded block 80, which assigns one of several supported intra-coding modes to each intra-coded block 80. Further details are provided below.
[0018] In the case of inter-coded blocks 82, data stream 14 may have one or more motion parameters encoded therein. Generally speaking, inter-coded blocks 82 are not limited to being temporally coded. Alternatively, inter-coded blocks 82 may be any blocks predicted from an earlier coded portion of the current picture 12 itself, such as a previously coded picture of the video to which picture 12 belongs, or a picture of another view, or a hierarchically lower layer if the encoder and decoder are hierarchical encoders and decoders, respectively. Prediction residual signal 24"" in FIG. 3 is also shown as a subdivision of the picture region into blocks 84. These blocks are sometimes referred to as transform blocks to distinguish them from coding blocks 80 and 82. Indeed, FIG. 3 illustrates that encoder 10 and decoder 20 may each divide picture 12 and picture 12' into multiple blocks using two different subdivisions: one subdivision into coding blocks 80 and 82, and the other subdivision into block 84. Although both subdivisions may be the same, i.e., each coding block 80 and 82 may simultaneously form a transform block 84, Figure 3 shows the case where, for example, the subdivision into transform blocks 84 forms an extension of the subdivision into coding blocks 80 / 82. As a result, either 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 with a group of transform blocks 84. However, the subdivisions may also be determined or selected independently of each other, such that the transform block 84 can cross the block boundary between blocks 80 / 82. As far as the subdivision into transform blocks 84 is concerned, the same explanations apply as those explained with respect to the subdivision into blocks 80 / 82.That is, the blocks 84 may be the result of a regular subdivision of the picture region into multiple blocks, i.e., blocks arranged in rows and columns, or may be the result of a recursive multi-tree subdivision of the picture region, or a combination thereof, or other types of blocking. As an aside, it should be noted that the blocks 80, 82, 84 are not limited to quadratic, rectangular, or other shapes.
[0019] 3 shows that the combination of the prediction signal 26 and the prediction residual signal 24'''' directly results in the reconstructed signal 12'. However, it should be noted that, according to alternative embodiments, more than one prediction signal 26 may be combined with the prediction residual signal 24'''' to result in the picture 12'.
[0020] 3, the transform segments 84 have the following meaning: The transform unit 28 and the inverse transform unit 54 perform transforms in units of these transform segments 84. For example, many codecs use some kind of DST or DCT for all transform blocks 84. Some codecs skip such transforms, so that for some segments 84, the prediction residual signal is directly coded in the spatial domain. However, according to the embodiments described below, the encoder 10 and the decoder 20 are configured so that they support several transforms. For example, the transforms supported by the encoder 10 and the decoder 20 may include the following: DCT-II (or DCT-III), where DCT stands for Discrete Cosine Transform DST-IV, where DST stands for discrete sine transform DCT-IV DST-VII Identity Transformation (IT)
[0021] Of course, the transform unit 28 will support all of the forward transform versions of these transforms, while the decoder 20 or inverse transform unit 54 will support the corresponding backward or inverse versions thereof. Inverse DCT-II (or Inverse DCT-III) Reverse DST-IV ·Inverse DCT-IV Reverse DST-VII Identity Transformation (IT)
[0022] The following description provides details of transforms that may be supported by the encoder 10 and the decoder 20. In either case, the set of supported transforms may only include one transform, such as one spectral-to-spatial or spatial-to-spectral transform.
[0023] As mentioned above, Figures 1-3 have been presented as examples in which the intra-prediction concepts described further below may be implemented to form specific examples of encoders and decoders according to the present application. Thus far, the encoders and decoders of Figures 1 and 2 respectively represent possible implementations of the encoders and decoders described below in this specification. As outlined in more detail below, when implementing an embodiment of intra-prediction according to the present application as described below within the encoders and decoders of Figures 1 and 2, the encoder of Figure 1 and the decoder of Figure 2 support, as at least one option, processing intra-predicted blocks 80 in a manner outlined in more detail below. Accordingly, the embodiments described below refer to an encoder equivalent to the encoder 10 of Figure 1 that processes intra-coded blocks 80 in a manner outlined in more detail below, and the same is true with respect to the decoder of Figure 2. That is, Figure 2 represents an example of a decoder according to one embodiment in which intra-coded blocks are processed in a manner outlined in more detail below. However, Figures 1 and 2 are merely specific examples. However, an encoder according to embodiments of the present application may perform block-based decoding of picture 12′ from data stream 14 using concepts outlined in more detail below that differ from the encoder of FIG. 1 , such as: the encoder is not a video encoder, does not support inter-prediction, or the subdivision into blocks 80 is performed in a different manner than illustrated in FIG. 3 , or the encoder does not use transform prediction residual coding but instead encodes the prediction residual directly, e.g., in the spatial domain. Similarly, a decoder according to embodiments of the present application may perform block-based decoding of picture 12′ from data stream 14 using intra-prediction coding concepts outlined further below, but may differ from decoder 20 of FIG. 2 , such as: the decoder is a still picture decoder rather than a video decoder, does not support intra-prediction, or subdivides picture 12′ into blocks in a different manner than described with respect to FIG. 3 , and / or derives the prediction residual from data stream 14 in the spatial domain rather than the transform domain.
[0024] With the above caveats in mind, the following discussion will focus on describing intra-prediction according to embodiments of the present application. According to the intra-prediction presented herein, an intra-prediction block, such as block 80 in FIG. 4, may be divided into one-dimensional horizontal or one-dimensional vertical partitions. 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 certain size. "One-dimensional"—when referring to partitions resulting from partitioning—refers to the fact that the partitions are only one sample wide along the partition dimension. However, the one-dimensionality of the partitioning modes discussed herein refers to the fact that the partitioning is performed along a particular dimension, and the resulting partitions resemble stripes that extend completely across the block in a direction transverse to the partitioning direction. See, for example, FIG. 4. On the left side, FIG. 4 shows an intra-prediction block 80, i.e., a block to be decoded or coded. It has dimensions W×H. 4, two partitioning or segmentation options are available. One option is horizontal segmentation 100, in which block 80 is segmented or segmented into several partitions 1021, 1022, 1023, and 1024 along the vertical axis, or partition dimension 104. According to the example of FIG. 4, which will be applied in the following description, each partition 1021-1024 is one sample wide, as indicated by the double-headed arrow 106, and therefore the number of partitions 1021-1024 obtained from block 80 is equal to H, i.e., the height of block 80 in units of samples 108 of block 80. However, it will be apparent that the segmentation may be performed by the encoder and decoder according to another method agreed upon between them, such as:For example, the partitioning of block 80 along dimension 104 may be done in a manner that results in a predetermined number of partitions 102i, where the predetermined number is, for example, greater than two or a mixture thereof, and distributes the dimension of block 80 evenly along the partition dimension into the predetermined number of partitions.
[0025] Another encoding option, shown in FIG. 4 and designated 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., horizontal partition dimension 104. For option 100, each partition 102i is the same width as block 80, i.e., has the width W of the block, but 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, vertical division 110 can divide block 80 into W partitions 112i, where W denotes the horizontal width of block 80 measured in samples 108, and each partition 112i is one sample wide in the horizontal direction. However, the division according to option 110 can also be performed in another manner agreed upon between the encoder and decoder.
[0026] 4 , the encoder may 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 in data stream 14 for block 80, e.g., by a corresponding partition dimension flag 114 in data stream 14. However, it should be apparent that embodiments of the present application cover encoders and decoders that, by default, use only one of options 100 and 110 without requiring flag 114 in the data stream. Furthermore, in other examples, flag 114 may be conveyed in data stream 14 depending on an intra-coding mode 116 signaled in data stream 14 for block 80 from the encoder to the decoder. As mentioned above, the intra-coding mode may indicate one from a set of available / supported intra-coding modes, including, for example, angular mode and, optionally, one or more non-angular modes, such as DC mode and planar mode. That is, flag 114 may, according to alternative embodiments not further described below, be conveyed within data stream 14 in a manner that is conditionally dependent on intra-coding mode 116. According to embodiments described below, flag 114 is present in data stream 14 for block 80 independently of the intra-coding mode 116 signaled for block 80 in data stream 14. However, there may be a dependency on intra-coding mode 116 with respect to flag switching between partition processing of intra-coded block 80 as described above and different intra-coding processing methods for block 80 as outlined below.
[0027] According to an embodiment of the present application, each partition 102 / 112 is independently predicted, transformed, quantized, and coded, with multiple partitions processed sequentially in this manner. Thus, the reconstructed samples of a particular partition may be used to predict any subsequent partition 102 / 112 in the partition order among the partitions into which the block 80 is divided. In this manner, the intra-prediction process cycles through the partitions 102 / 112 into which the block 80 is divided. Figure 5 exemplarily illustrates an intra-prediction block 80 divided according to option 100. Each partition 1021-1024 of the block 80 is subjected to prediction, i.e., deriving a predictor for the respective partition 102i, and a task related to the prediction residual, i.e., modifying the predictor using the prediction residual. The latter task can be performed by combining the prediction residual with the predictor, which is performed in the decoder for reconstruction. The encoder performs tasks related to the prediction residual, such as determining the prediction residual, including transformation and quantization, and modifying the predictor using the prediction residual. That is, by filling the decoded picture buffer in the encoder with picture reconstructions, the prediction loop is kept synchronized with the decoder. The above tasks, i.e., prediction and residual processing, are performed for partitions 1021-1024 individually and sequentially between partitions. After performing these two steps for the currently processed partition, the next partition 102i in the partition order is processed in the same way. The partition order is exemplarily shown in Figure 5 using three arrows 126.
[0028] Figure 5 shows that the partition containing the top-left most pixel of block 80 is processed first before proceeding to the immediately lower adjacent partition 1022, thus corresponding to the assignment of indices to partitions 1021-1024 in Figure 5. However, this order is merely an example, and as will become apparent below, this partition order may be selected depending on other settings, such as the intra-coding mode and / or the size of block 80, with the dependency on intra-coding mode being explained below.
[0029] In an example described further below, the partition order 126 only varies between partitions across partitions 102 / 112. That is, immediately succeeding partitions are immediately adjacent to one another, and for partition type 100, the partition order proceeds from top to bottom or bottom to top, and for partition type 110, it proceeds from left to right or right to left, respectively. However, other examples are contemplated. For example, a partition order may be selected in which the partitions are scanned twice in the adjacent order described above, with the first scan processing every other partition in any applicable order, such as top to bottom, bottom to top, left to right, or right to left, and then the remaining partitions in the same order, or in the reverse direction.
[0030] In any case, FIG. 5 shows the first partition 1021, which is the partition that should be processed first and is currently being processed. For the first partition (here, 1021 as an example), the set of neighboring samples 1181 used to form the predictor of partition 1021 may simply be selected based on samples outside the boundary of block 80, since the samples of block 80 have not yet been processed, i.e., reconstructed or coded, when processing the first partition of block 80. That is, the samples of set 1181 have already been reconstructed in the encoder using any prediction and modification of the corresponding predictor using the prediction residual transmitted in the data stream. They belong to previously coded / decoded picture blocks, which may be inter-coded, intra-coded, or other coded blocks. The number and exact locations of the samples in the set of neighboring samples 1181 used to form the predictor of first partition 1021 depend on the intra-coding mode assigned to block 80. This intra-coding mode is used jointly or equally for the processing of all partitions of block 80, as explained below. To complete the processing of the first partition 1021, a predictor for this partition 1021 is derived in the decoder and encoder by filling this partition 1021 with one or more already reconstructed / encoded samples of set 1181, and its prediction residual is determined by the transform and quantization described above as far as the encoder is concerned. This prediction residual (the version transmitted in the data stream, i.e., including the quantization loss) is then used to reconstruct this partition 1021 by modifying the predictor using the prediction residual in data stream 14. For example, Figure 5 exemplarily shows the prediction residual for partition 1021 at 1201. That is, 1201 includes transform coefficients corresponding to the transform of the prediction residual for partition 1021; a description of data 1201 is provided in more detail below.
[0031] Now, we move on to the next partition in the partition order, i.e., partition 1022 in the example of FIG. 5. The situation changes in that the set of already reconstructed / encoded neighboring samples used to derive the predictor for partition 1022 can be composed of samples located outside sample block 80 and / or samples within block 80. That is, the samples within block 80 are samples located within an already processed partition, here partition 1021 in the example of FIG. 5, because for these samples, the prediction residual has already been determined and is already available in the data stream. That is, the encoder and decoder derive a predictor for this partition 1022, followed by prediction residual determination in the encoder and use of the prediction residual to modify the predictor in the encoder and decoder, respectively. Then, this process continues with the next partition, i.e., the next partition in the partition order, until all partitions of block 80 have been processed sequentially.
[0032] As already mentioned above, the partition order 126 may be selected in a manner other than traversing the partitions so that immediately consecutive partitions are immediately adjacent. That is, the partition order may jump from one partition to the next. This means that the set of adjacent samples 118i used to derive each predictor by filling each partition 102i is not limited to the samples immediately adjacent to each partition, as shown in FIG. 5 . This also relates to the selection of the start of the partition order 126. For example, suppose partition 1024 were the first partition in the partition order. In that case, its predictor could be derived by filling it with a set of adjacent samples 1184, not shown in FIG. 5 , which includes samples located to the left and above block 80 along the perimeter of block 80. Some of the samples in set 1184 may not be immediately adjacent to partition 1024. Incidentally, this would correspond to the situation of filling the last sample row in a regular intra-prediction filling of block 80 altogether. This possibility also applies to any partitions processed subsequently, i.e., the second or subsequent partitions in the partition order. That is, their adjacent sample sets 118i may include samples that are not immediately adjacent to the respective partition 102i. Moreover, if the partition order is not limited to traversing the partitions such that consecutive partitions are immediately adjacent to each other, the set of reference samples 118i for any second or subsequent processed partition 102i may not only include samples to the left and above the respective partition 102i, but may also include samples below the respective partition 1021, depending on whether any partition of block 80 was processed before partition 1021 according to the partition order. That is, set 180i may include samples located on three or more sides of partition 102i.
[0033] Briefly, while FIG. 5 illustrates sequential processing of partitions 102 / 112 of block 80, here exemplarily with respect to horizontal partitions, the same explanation also applies to vertical mode 110 with respect to vertical partitions 112i. For each partition 102i, a corresponding prediction residual 102i is included in data stream 14. Data 1201-1204 together form prediction residual 120 for block 80. It should be recalled here that, according to alternative embodiments of the present application, transform residual coding may not be used, i.e., prediction residual 120 for block 80 may be directly signaled in data stream 14, for example, in the spatial domain. In this case, data 1201-1204 for the various partitions 102i-1024 may not include separate fields per partition in data stream 14, as shown in FIG. 5, with each data portion 120i representing signaling of a specific transform for the respective partition 102i. Rather, in that case, the prediction residuals 120 of block 80 may form one field of data 14. In this alternative embodiment, when the decoder processes a particular partition 102i, it will gather information about the prediction residuals of this partition 102i from field 120. This procedure could also be applied when using a truly reversible version of the transform, so that quantization can be done in the spatial domain.
[0034] 5 shows that two tasks are performed for each partition 102i in the encoder and decoder: (1) a prediction derivation task 122 that generates a prediction or predictor for the respective partition 102i, i.e., a task that generates predicted sample values for each sample of the respective partition 102i, and (2) a subsequent prediction residual-related task that derives a prediction residual in the encoder, which includes quantizing the prediction residual for entry into the data stream 14, and reconstructing the samples of each partition 102i by combining or modifying the prediction residual with the predictor to obtain a reconstructed sample of this partition 102i. The reconstructed sample can serve as a reservoir for the adjacent sample set 118j of partition 102j that is subsequently processed according to the partition order 126 for the prediction derivation task.
[0035] Before proceeding to further description of the details of the present embodiment, FIG. 6 illustrates the process of prediction derivation 122 by filling the currently processed partition 102i. It should be remembered here that the illustration regarding the horizontal partition 102 is chosen purely for illustrative purposes, and the same description also relates to the vertical partition 112. FIG. 6 illustrates the currently processed partition 102i and its corresponding set of neighboring samples 118i that have already been reconstructed / encoded. As already mentioned above with reference to FIG. 5, the set 118i may not be limited to samples 128 that are directly adjacent or neighboring 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, averaged over all samples of the block 80, is lower compared to performing intra-prediction of the block 80 as known from, for example, H.264 or HEVC. As described with respect to FIG. 5, predictor derivation or filling 122 is performed for each partition 102i using the intra-prediction mode associated with block 80, which indicates one of a set of available intra-prediction modes. This set may include angular or directional modes, in which the angle or direction 132 at which sample content from a neighboring sample set 118i is copied to samples 134 of partition 102i differs from each other. To perform this copying, a prediction for each sample 134 of partition 102i may be derived based on several neighboring samples 134 from set 118i located on the opposite side of the direction 132 from the sample 134. The number may be defined, for example, by the kernel of an interpolation filter used to derive inter-pel positions between samples 128 of sample set 118i. FIG. 6, for example, shows that three samples 128 from set 118i are used to calculate a prediction for one sample 134 from the currently processed partition 102i. Because the average distance 130 is relatively small, the number of reference samples 134 per each sample 134 in the partition 102i can be kept low, as will be explained in more detail below.For completeness, however, it should be noted that the set of available intra-prediction modes may include a DC mode, in which a single DC value is assigned to every sample 134 of a partition 102i, and this DC value is derived by averaging a set of neighboring samples 118i. Additionally, a planar mode may also exist, in which a predicted value for a sample 134 is defined by a linear function over the sample position within the partition 102i, and the slope and offset of this linear function are derived based on the neighboring samples 118i. Furthermore, it should be noted that the neighboring set 118i may differ depending on the intra-prediction mode selected for the block 80, for example, between angular and non-angular modes, DC / planar, among others.
[0036] For example, a current JEM decoder provides 67 intra-prediction modes, 65 of which are angular modes, two of which, DC and planar, form a non-directional texture. That is, according to the predictor derivation 122 performed on the partitions 102 / 112 and mentioned above, the block 80 is partitioned / divided into partitions along the dimension 104, with the resulting partitions spanning the full width of the block across the dimension 104 and being one or more samples wide along the direction 104. This 1D partition mode (simply referred to as the 1D partition mode) can be combined with, or implemented using, any of the intra-prediction modes described above. According to the 1D partition mode, as already explained with respect to FIG. 5, all partitions 102 / 112 of a block 80, such as a coding unit CU, use the same intra-prediction mode associated with the block 80, thereby avoiding excessive signaling overhead. This is because the intra-prediction mode 116 only needs to be transmitted once for the block 80 in the data stream 14 .
[0037] That is, prediction 122 may be performed in the same manner as in the two-dimensional case outlined in the JEM decoder. However, compared to JEM, only one line, whether horizontal or vertical, is calculated for the currently processed partition 102 / 112 so that the prediction process 122 can be adjusted accordingly. If a partition order is selected that traverses the partitions so that consecutive partitions are immediately adjacent to each other, prediction process 122 may correspond to the two-dimensional case of JEM, but only for the first line, i.e., the line closest to the already reconstructed / encoded neighbor. In some cases, both HEVC and JEM allow the use of specific filters applied to the reference sample 128 or the resulting predictor. This is effective in the two-dimensional case to better predict samples within the prediction block 80 that are far from the reference sample 128 and reduce boundary discontinuities. However, using partitioning into partitions 102 / 112 makes it possible to exploit high correlations between neighboring pixels, which should be the objective.
[0038] That is, a reduced average distance 130 should be utilized. Excessive smoothing can degrade this quality. Therefore, if an encoder or decoder is capable of performing both types of intra prediction, i.e., intra prediction using the partitioning described above with respect to FIGS. 4-6 and intra prediction outlined below, when using the partitioning described above, the intra filters, i.e., the filters involved in predictor derivation 122, are 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, intra prediction of block 80 is performed on the block as a whole or according to HEVC, i.e., decomposed into rectangular blocks that are leaf blocks of a hierarchical quadtree subdivision of block 80.
[0039] As is clear from the above discussion, to perform the prediction residual-related tasks 124, the decoder decodes, for example, from the data stream 14, a transform of the prediction residual for each of the currently processed partitions, and performs an inverse transform, such as a spectral-to-spatial transform, on this transform to generate a prediction residual that is used to modify the predictor obtained at 122 by combining / adding. The same is done in the encoder to keep the decoder and the prediction loop synchronized. Furthermore, the encoder performs a transform of the prediction error of the predictor determined using 122 for the currently processed partition, such as a spatial-to-spectral transform, followed by quantization of the transform coefficients, and then encodes the transform into the data stream 14 to generate data 120i corresponding to the currently processed partition 102i. Regarding the transform, all partitions 102 / 112 within the block 80 may be processed using this same transform, which may be, for example, a DCT-II, except in the case of planar mode, where DST-VII is available. For this reason, all tools related to transforms and inverse transforms that the encoder and decoder can use for other blocks, such as transform skipping, i.e., coding in the spatial domain, EMT (Explicit multiple core transform), NSST (Mode dependent non-separable transforms), etc., may be disabled to avoid unnecessary overhead bits when block 80 is coded using an intra prediction mode in the partitioned manner outlined above with respect to Figures 4-7 and further described below. Further alternatively, the transform may be a linear transform, the type of which may be selected based on one or more of the intra prediction mode, a dedicated syntax element, and a predetermined partition order.
[0040] Some discussion has already been provided above regarding the partition order 126 used when the partitions 102 / 112 of the currently processed block 80 are processed sequentially. It is emphasized that this embodiment is merely an example, and that the partition order may be static according to alternative embodiments, or may vary in different ways according to other embodiments, examples of which are provided below. Figure 7 illustrates, by numbering, the possible partition / processing orders indicated in Figure 5 using arrows 126, where the order continues in ascending order of the assigned numbers. Figure 5 illustrated an example in which the order 126 begins with the partition containing the pixel / sample 140 in the top left of the block 80 and proceeds downward toward the bottom partition. Similarly, if the partition type is vertical, the processing order begins with the leftmost partition containing the pixel / sample in the top left and proceeds to the right. However, this is not the optimal case for all existing intra-prediction modes. This is illustrated in FIG. 7, which shows the vertical and horizontal division of block 80 for diagonal mode 2, i.e., a mode in which copy angle / direction 132 points 45° from bottom left to top right, and diagonal mode 34, i.e., a mode in which copy angle / direction 132 points −45° from top left to bottom right. In the former case, if the division is horizontal, starting in the upper left corner of block 80 would produce a partition whose reconstructed samples do not affect the prediction of the next partition. Consequently, it makes more sense to start in the lower left corner of the block, so that the reconstructed samples of each partition can be used to predict the next partition in the partition order. However, for vertical division, this is not necessary, as can be seen in the previous figure. On the other hand, for mode 34, no such problem occurs because samples arrive from both sides in both the horizontal and vertical division cases. Therefore, the normal processing order can be used for both divisions.
[0041] Table 1 shows the complete list of processing orders depending on intra prediction modes and partition types.
[0042] [Table I]
[0043] To summarize the embodiments described so far with respect to signaling overhead, please 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 intra-prediction mode signaling 116 that indicates which intra-prediction mode should be applied to block 80. That is, signaling 116 indicates one of the available modes, including, for example, one of the angular modes, or one of the angular modes and a non-angular mode, such as DC or planar. In addition to this signaling 116, there is a partition flag 160 that is coded into the data stream 14 by the encoder and decoded from the data stream by the decoder for block 80, which indicates whether partitioning according to FIGS. 4-7 has been applied to block 80, or whether it has been processed "normally," either collectively, in one piece, or in two dimensions, i.e., whether only samples outside block 80 are used to form a reference sample reservoir 118 for predicting each sample within block 80. Alternatively, flag 160 may switch between the partitioning process described with respect to Figures 4-7 and decomposition of block 80 using quadtree subdivision into transform blocks, with the disadvantage that, although the transform blocks are processed sequentially, decomposition using quadtree subdivision requires signaling of the decomposition within data stream 14. If partition flag 160 indicates partitioning according to Figure 4, data stream 14 includes partition dimension flag 114 that switches for block 80 between partition types 100 and 110 as described with respect to Figure 4. Also, if partition flag 160 indicates this partitioning option, then for each partition of block 80 into which block 80 is subdivided / partitioned, data stream 14 includes signaling / data 1201 having the prediction residual for each partition coded into the data stream, such as in the transform domain, as described above.
[0044] 8, it should be noted that the prediction residual data 1201, 1202, ... may be coded into the data stream 14 in an order corresponding to the partition / coding order 126. The partition order 126 may be determined independently by the intra-prediction mode indicated by the signalization 116, as described above. However, in alternative embodiments, the partition order 126 may also be determined, at least in part, based on any additional signaling within the data stream 14.
[0045] In a further alternative to the description presented herein, signaling 116 may alternatively be used to indicate whether the partition option is used. In other words, one syntax element may jointly be responsible for the signaling of 116 and 160. Such a syntax element may assume a value from a range of values, each corresponding to a combination of an intra-prediction mode and an indication of whether block partitioning is used. In such a case, it is also possible to provide the partition option only for a subset of intra-prediction modes. Finally, it should be noted that partition flag 160 may also be conveyed in data stream 14, conditionally only if the intra-prediction modes indicated by signaling 116 are assumed to be a specific subset of the available intra-prediction modes.
[0046] Figure 9 exemplarily illustrates what data 120i having a prediction residual for a particular partition 102 / 112i may look like. According to the embodiment of Figure 9, the prediction residual is encoded into the data stream 14 in the transform domain. That is, the encoder generates a transform 182 of the prediction residual by a transform 180, and the decoder derives the prediction residual in the spatial domain by an inverse transform 184. Figure 9 illustrates transform coefficients 186 of the transform 182, for example, corresponding to different spectral frequencies f. The data 120i may include a coded block flag CBF, and the data 120i may include a coded block flag CBF 188 that indicates whether the transform 182 includes significant transform coefficients 186, i.e., whether the transform 182 is completely zero. If CBF 188 is set, transform 182 is not zero, and data 120i may include a last position (LP) syntax element 190 indicating a last position 192 along increasing spectral frequency (see axis 194) of significant transform coefficients, i.e., non-zero transform coefficients 186, starting from the lowest or DC coefficient 196. Data 120i then includes signaling 198 announcing the transform coefficients 196 through 192.
[0047] 9 illustrates that each partition 102i / 112i may have its prediction residual coded into the data stream 14 by a CBF 188, an LP 190, and transform coefficient data 198. That is, for a block 80 with n partitions 102 / 112, there are n CBFs 188, one LP 190 for each partition with a non-zero CBF 188, and transform coefficient data 198 only for those partitions with an associated non-zero CBF 188. This coefficient data 198 may be coded in the same manner as for intra-predicted blocks processed normally, i.e., blocks 80 whose partition flag 160 indicates the non-partition option, with the following exception: Each LP 190 requires only one coordinate if the partition is one sample wide (two coordinates are required otherwise, as usual), i.e., only the x coordinate for the horizontal partition 100 and the y coordinate for the vertical partition 110. However, for two-dimensional partitions, the LP 190 uses a rank indication or x and y coordinates to indicate the final position along the scan direction or scan path. The context of each CBF 188 may be selected to be the value of a previously coded CBF, i.e., the CBF of the previous partition in the partition order 126. Furthermore, this partitioning causes the transform coefficient data 198 to relate to different shapes; that is, the transform 182 also has a different shape. As described with respect to FIG. 4, if the partition is a one-dimensional partition, the transform 182 is a one-dimensional transform. That is, the transform 182 may be a W / H length vector of transform coefficients 186 depending on the partition type 100 or 110.
[0048] Regarding flags 160 and 114 in FIG. 8 and their encoding, note the following: Flag 160, which indicates whether block 80 is divided into partitions 102 / 112, defines a condition to be checked for whether flag 114 is conveyed in data stream 14 for block 80. In particular, if flag 160 indicates division into partitions 102 / 112, flag 114 is present in data stream 14 and sent to the decoder to signal which type of division 100 / 110 should be performed, i.e., horizontal or vertical. Similar to flag CBF, flag 114 may also be coded using context-dependent entropy coding / decoding. The context of flag 114 may have three possibilities according to the intra-prediction mode of block 80: 0 for non-angular mode, 1 for horizontal mode, and 2 for vertical mode.
[0049] While FIG. 9 illustrates that the CBF 188 may exist once per partition i of the current block 80, additionally or alternatively, each transform 182 of a partition 120i of the current block 80 may be divided into one or more sub-blocks, each with a coded sub-block flag indicated in the data 120i indicating whether the transform coefficients 186 in the sub-block are all zero or at least one coefficient is non-zero. Thus, only the coefficients 186 in a sub-block whose coded sub-block flag indicates the presence of non-zero coefficients will be coded. Other coefficients in a sub-block whose coded sub-block flag indicates the absence of any non-zero coefficients will be estimated to be zero at the decoder. Note that because each partition 120i is transformed separately, the sub-blocks belonging to a single partition may differ in the spectral content of the partition's transform 182 and in the transform coefficients 186 that make up that transform. For example, sub-blocks can be configured to be 4x4 coefficient blocks, as long as each partition 102i / 112i has dimensions x (partition width) and y (partition height), both of which are equal to or greater than four samples 140, and consequently, the transform 180 of each partition 102i / 112i has dimensions x and y, both of which are equal to or greater than four coefficients 186. For 4xN partitions, the sub-blocks form columns of m 4x4 sub-blocks, where m*4=N, where m is an integer. For Nx4 partitions, the sub-blocks form rows of m 4x4 sub-blocks, where m*4=N, where m is an integer.
[0050] For wider partitions, an array of 4x4 sub-blocks arranged in rows and columns may be generated. However, in some embodiments, such partitions, i.e., partitions wider than or equal to 4 samples, may not occur. Regardless of whether they do occur, if a partition is narrow, i.e., has fewer than 4 samples in one of its dimensions, i.e., is less than 4 samples wide in at least one dimension x or y, a sub-block division of the transform 180 into sub-blocks may be performed that collects different groups of coefficients of that transform 180, so that the sub-blocks have a minimum number M of coefficients in all possible cases of the size of the current block. That is, a partition may be set along one dimension as large as the block width N, and a division may occur along the other dimension 104. Thus, the size of the transform 180 of each partition may be 1xN, 2xN, Nx1, or Nx2. In fact, the transform 180 of a particular partition may have a number of coefficients equal to the number of samples in that partition. For a 1xN partition / transform, the sub-blocks may form a column of m 1xM sub-blocks, where m*M=N, and m is an integer. For an Nx1 partition, the sub-blocks may form a row of m Mx1 sub-blocks, where m*M=N, and m is an integer. For a 2xN partition / transform, the sub-blocks may form a column of m 2x(M / 2) sub-blocks, where m*(M / 2)=N, and m is an integer. For an Nx2 partition, the sub-blocks may form a row of m (M / 2)x2 sub-blocks, where m*(M / 2)=N, and m is an integer. This is exemplarily shown in Table 1 for the exemplary case where M=16 for the minimum number of coefficients.
[0051] [Table 1]
[0052] While Figure 9 showed that CBF 188 may exist once per partition i of current block 80, it may be agreed upon between the decoder and encoder that at least one of n of the partitions of current block 80 has a nonzero CBF 188. Thus, if n is the number of subpartitions and the first (n-1) subpartitions in coding order produce a CBF of zero, the CBF of the nth partition will be inferred to be one. Therefore, there is no need to decode it, and it will not be coded. Thus, if the CBF in data 1201-120n-1 signals zero, the CBF of data 120n will be missing, and the decoder will infer that this CBF signals the presence of at least one nonzero coefficient in the transform of that partition.
[0053] As far as the intra-coding mode signaling 116 is concerned, the following may apply: the coding mode signaling 116 may be transmitted as a pointer or index to one from a list of most probable modes (MPMs). The MPM list may be determined in the same way by the encoder and decoder based on the intra-prediction modes used for previously coded / decoded intra-predicted blocks, such as spatially and / or temporally neighboring intra-prediction modes. Thus, the list of MPMs may represent a suitable subset of available / supported intra-prediction modes, i.e., one or more of the angular and / or DC and planar modes mentioned above. As noted above, some intra-predicted blocks may be intra-predicted using the LIP or ISP scheme, such as block 80 in the figure, while others may be intra-predicted in a conventional manner, i.e., in batches or by transform blocks, where such intra-predicted blocks are partitioned using recursive quadtree partitioning. Both types of intra-predicted blocks may support the same set of available / supported intra-prediction modes. For normal / traditional intra-predicted blocks, an MPM flag may be signaled in the data stream—the decoder decodes it and the encoder encodes it—to indicate whether the mode for that block is selected from an MPM list, in which case a pointer / index to this MPM list is transmitted—the decoder decodes it and the encoder encodes it—whereas for intra-predicted blocks using the LIP or ISP scheme, such as block 80, it would be assumed that the MPM flag signals a restriction on the MPM list. If the MPM flag signals that no MPM mode is used for a particular normal / traditional intra-predicted block, there will be no index / pointer for that block in the data stream; instead, a substitute pointer / index to a remainder list of intra-prediction modes will be transmitted in the data stream for that block.The remainder list may also be a proper subset of the set of available / supported intra-prediction modes, in particular, a complementary set to the MPM list compared to the set of available / supported intra-prediction modes. That is, all members of the set of available / supported intra-prediction modes will either be members of the MPM list or the remainder set. The pointers / indexes to the MPM list may be VLC-encoded, and the pointers / indexes to the remainder set may be encoded using a fixed-length code. Of course, even for intra-predicted blocks in the LIP or ISP scheme, the MPM flag may be transmitted, allowing the encoder to freely select any mode from the set of available / supported intra-prediction modes and setting the MPM flag depending on whether the selected mode is in the MPM list or the remainder set.
[0054] The MPM list may be the same, i.e., determined by the encoder and decoder in the same way, for normal / traditional intra-predicted blocks and ISP / LIP intra-predicted blocks. However, regardless of whether restrictions on the MPM list and the inference of the MPM flag signaling the use of the MPM list for ISP / LIP intra-predicted blocks are applied, the MPM list for ISP / LIP intra-predicted blocks may alternatively be determined differently to adapt to the statistics of ISP / LIP modes. For example, the MPM list may be modified to exclude DC intra-mode and to prioritize horizontal intra-mode for ISP horizontal splitting, i.e., horizontal direction 104, and vertical intra-mode for vertical splitting, i.e., vertical direction 104. That is, for normal / traditional intra-predicted blocks, the MPM list may form a proper subset of the set of available / supported intra-prediction modes, and the modes may be selected and ordered according to a specific concept. For the ISP / LIP intra prediction block 80, the MPM index may point to an MPM list that depends on the partitioning direction 104 signaled by the flag 114 and / or may point to an MPM list that forms a proper subset of the set of available / supported intra prediction modes that does not include DC mode or that does not include DC and planar modes, i.e., a proper subset of angular modes within the set of available / supported intra prediction modes. When constructing an MPM list based on previously used intra prediction modes of previously encoded / decoded blocks, when the flag 114 indicates that the partitioning direction 104 is horizontal, an angular mode with an angular intra prediction direction closer to the horizontal dimension will be preferred, and when the flag 114 indicates that the partitioning direction 104 is vertical, an angular mode with an angular intra prediction direction closer to the vertical dimension will be preferred.
[0055] Regarding the above description, it should be noted again that the intra-prediction mode processed normally and the intra-prediction mode processed using partitions as outlined herein do not need to be juxtaposed. That is, the encoder and decoder may necessarily process the intra-prediction block 80 using the partitions presented herein, and consequently, for example, the partition flag 160 may not be necessary. However, if the partition option signaled by the flag 160 is available as a decision for the encoder, the following description will clarify how the encoder can make that decision or find out which partition mode should be used for a particular block 80 and which partition 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 when the encoder has only one option, such as the normal option, the encoder speed will be slower because it needs to test more options. To reduce this impact, the partition mode signaled by the flag 160 may be tested by being coded according to the following strategy, which is now referred to in Figures 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 at which the 1D partition mode is about to be tested. 3) Select the combination of intra mode and split type to be tested. 4) The block is divided into N 1D partitions, where i denotes the index of each of these partitions, i=[1,N]. 5) After all partitions are coded, their sub-costs Ji are calculated. Thus, after partition i is coded, 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 is no drawback in terms of the 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 the direction 104. Alternatively, the segments may be executed to be wider partitions, and it should be noted that thus, the method can lead to two-dimensional partitions in a way that does not utilize the particular details in the description of the embodiments as long as they do not utilize one-dimensionality. Further alternatives regarding the segments are shown below.
[0059] In other words, the above description describes an embodiment that can be simply described as including a line-based intra-prediction (LIP) coding mode tool, in which an intra-predicted W×H block 80 is divided into one-dimensional partitions 102 / 112, or lines. Each of the resulting lines 102 / 112 is predicted, generating a residual signal that is transformed, quantized, and entropy coded, and finally the coefficients are transmitted to the decoder. The reconstructed samples of such a line can be used to predict the next line, and so on. This process is repeated until all one-dimensional partitions in the original block are coded.
[0060] However, modifications to this LIP concept are possible. It has already been shown above when discussing Figure 4 that embodiments of the present application are not limited to having partitions 102 / 112 that are one sample wide along the partitioning / division direction 104. In the embodiments described below, the width along the division direction 104 is defined based on 1) whether the intra-prediction mode is angular or non-angular, and 2) the width of the intra-predicted block along that direction 104.
[0061] 1) A W×H (where W and H are assumed to be powers of 2) block 80 may be partitioned horizontally or vertically (e.g., as indicated by syntax element 114 sent to the decoder) into K equal partitions 102 / 112 of dimensions w×h. These values are listed in Table II. According to Table II, a block with W=16, H=8 predicted using a non-angular intra mode and with vertical partitioning (i.e., partitioning in the vertical direction 104) may be partitioned, for example, into four partitions 102, all of which would have dimensions w=16 and h=2. An example of this is shown in FIG. 12a. If the same block 80 were predicted using an angular intra mode, it would be partitioned into eight partitions 102 with dimensions w=16 and h=1.
[0062] [Table II]
[0063] 2) A W x H (where W and H are assumed to be powers of 2) block 80 can alternatively be divided horizontally or vertically (e.g., as indicated by syntax element 114 sent to the decoder) into K equal partitions of dimension w x h, where the value of K is not fixed (and therefore its value is transmitted to the decoder using a syntax element) and can range from 2 to a power of 2 between 2 and S, where S is the value of the dimension being divided (width for a vertical division and height for a horizontal division). The values of w and h are obtained as shown in Table III.
[0064] [Table III]
[0065] Instead, the width of the partition along dimension 104 may be signaled directly for block 80 .
[0066] 3) A W x H (where W and H are assumed to be powers of 2) block 80 can alternatively be divided horizontally or vertically (e.g., as indicated using syntax element 114 sent to the decoder) into K partitions of dimensions w x h i (where K depends on W and H), where i = 1, 2, ..., K. If the division is horizontal, then S = H, and si = h i; if the division is vertical, then S = W, and si = w i. 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 may be fixed or may be implicitly determined according to the values of parameters present on the decoder side.
[0069] 4) A W x H (where W and H are assumed to be powers of 2) block 80 can alternatively be divided horizontally or vertically (e.g., indicated using syntax element 114 sent to the decoder) into K partitions of dimension w x h i (where K depends on W and H), with i = 1, 2, ..., K. If the division is horizontal, then S = H, si = h i; if the division is vertical, then S = W, si = w i. 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 subpartitions.
[0070] Thus, as illustrated in Examples 1-4 above, partitioning may occur along one dimension 104, with the partitions being the same width as the given block in a direction perpendicular to the given dimension, while the width of the partitions, measured along the given dimension 104, is selected from at least two different width settings or options. Explicit or implicit signaling concepts may be used to synchronize the selection between the encoder and decoder. This selection thus allows for partitioning to be changed between blocks of the same size and shape while keeping the overhead associated with this change reasonably low. The selection may be made depending on the intra-coding mode of the given block, for example, whether the intra-coding mode for the given block is angular mode or not. The selection may also be made depending on an index in the data stream for the given block, which indexes one of at least two different width settings, as shown in Example 4. Partitions may be one sample wide or more along the partition dimension. Within a block, the width of the partitions / partitions along the given direction may vary. One may be one sample wide, i.e., a one-dimensional stripe, while the other is greater than one sample wide, i.e., a two-dimensional field of samples.
[0071] Furthermore, in some embodiments of the LIP concept, two types of processing orders (referred to as partition orders 126 in the above description) have been proposed for use in each block 80, with the final one being selected depending on the intra mode used in block 80. However, as already mentioned above, alternatives exist for determining the partition order 126. The processing order 126 indicates in what order the subpartitions 102 / 112 should be processed. A possible processing order 126 is to start with the top-left subpartition and proceed in a predetermined order, such as downward in the case of horizontal division, rightward in the case of vertical division, or other orders such as raster scan format in other cases where other divisions into partitions are used. In general, the processing order 126 could be determined by existing parameters available at the decoder side when each subpartition is decoded / processed. That is, for the decoder, the processing order 126 could be determined on the fly, i.e., depending on the prediction of the various subpartitions 102 / 112. Such existing parameters may include 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 can also be transmitted directly to the decoder.
[0072] 5, there may be a motivation to change the partition order for blocks 80 that undergo partitioned intra prediction using the same partitioning into partitions 102 / 112. That is, changing the order 126 in which partitions 102 / 112 are processed allows for 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 neighboring sample set 118 is selected to be processed first according to the partition order 126, this would mean that the intra prediction would be worse than if the far partition were processed last according to the partition order 126. This is because in the latter case, the reference sample used to fill that partition would be located closer, i.e., in the partition adjacent to that partition on the side facing the reference sample set 118. 5, if the intra prediction result obtained for partition 1024 is the first in partition order 126 (the prediction will be obtained based on neighboring samples outside block 80), it is clear that the prediction residual will be larger compared to if partition 1024 is processed last according to partition order 126 (the prediction will be generated based on a neighboring sample set covering samples directly adjacent to partition 1024 and including, for example, partition 1023). However, the opposite is true for the remaining partitions. If partition 1024 is processed first, its reconstruction using the prediction residual of partition 1024 can be included in the neighboring sample set 118i of any partition processed thereafter according to partition order 126. This allows the intra prediction modes of blocks 80 from both sides of these partitions to be used to predict, for example, the interior of each partition 1021-1023 in FIG. 5.
[0073] When processing partition 1024, the neighboring sample sets 118i are located only on one side of each partition 102i, i=1...4. That is, the situation would be reversed for partitions 1021-1023. For these partitions, the prediction residual would be lower if partition 1024 were processed first compared to processing partition 1024 last. Furthermore, as mentioned above, it is not only possible to switch between the two options of traversing the partitions side by side, but it is also necessary to consider the possibility of allowing further partition orders 126, such as first processing every second partition according to a predetermined order, and then processing the remaining partitions in the same or reverse predetermined order. The optimal option may be determined on the encoder side by testing various ordering options and sending respective additional signaling regarding the order 126 of the blocks 80 in the data stream, or the order 126 may be selected in the same way on the encoder and decoder side depending on syntax elements sent in the data stream for the block 80 or adjacent blocks, so that even for blocks 80 of the same size and shape and divided into partitions 102 / 112 in the same way, the order 126 may not be the same but may vary between the blocks 80.
[0074] Thus, the partition order in which the partitions of each block 80 are processed can be selected from at least two different orders. Explicit or implicit signaling concepts can be used to synchronize the selection between the encoder and 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 coded using the partitioned intra prediction concept, has the same size and shape, and is partitioned in the same way. The encoder's freedom in selecting a partition processing order, or the rendering of a partition processing order that depends on parameters other than size, shape, and partitioning, can be effective in increasing the effectiveness of the partitioned intra prediction mode. The effectiveness can be even greater when recruiting reference samples 118i in a manner that depends on the selection of a predetermined partition order 126 for a given block from at least two different orders for the derivation of a predictor for a particular partition 102i. In particular, as noted above, for one available or selectable partition order, the collected reference samples 118i can be located on two opposite sides of the current partition, while for another selectable partition order, the collected reference samples 118i can be located on only one of two opposite sides of that partition 120i. When dividing along dimension 104, a "side" may be either side of partition 120i facing along that direction, such as the top and bottom sides in the vertical direction 104, or the left and right sides in the horizontal direction. However, for another partitioning, discussed briefly below, a "side" may simply be defined as one side of the partition facing samples from reference sample set 118i that are outside block 80, and the other side of the partition facing samples from reference sample set 118i that are inside block 80, i.e., in one of the previously processed partitions.For example, one of the at least two different selectable orders may traverse the partitions starting with the partition farthest from the upper left corner of the given block, while another of the at least two different selectable orders may traverse the partitions starting with the partition closest to the upper left corner of the given block.
[0075] Another issue to address concerns residual coding. As mentioned above, residual coding may be performed using transform coding. Each subpartition 102 / 112 may have its own coded block flag (CBF) 188, last position (LP) syntax element 190, and transform coefficients 198 in the data stream, which will be transmitted to the decoder. Thus, for a block 80, such as a CU, with K subpartitions 102 / 112, there will be K CBFs 188, one LP 190 for each subpartition 102 / 112 with a non-zero CBF. The context used to code each CBF 188 may depend on the value of the CBF of a previously coded subpartition within the same block—for example, according to the order 126. Furthermore, further syntax elements not yet described may be transmitted to the decoder in the data stream to indicate whether the above-described concepts are used for all blocks, or for the entire data stream or for a range corresponding to a particular picture, or for example for a slice of a particular picture, whether the partitioned intra prediction concepts described in this specification are used for all intra prediction blocks 80 within that range, or whether some (partitions) are signaled to be treated as one piece, i.e., divided into only one partition.
[0076] Similarly, as explained above, each subpartition can be individually transformed using one transform, thereby generating one transform for each partition 102 / 112 that is not quantized to all zeros. A 2D transform may be used as the transform for a particular partition 102 / 112, except when one of the dimensions of that partition 102 / 112 is one, in which case a 1D transform would be applied. The transform core may be a DCT-II or any other transform determined by parameters present at the decoder when the subpartition is to be decoded. For example, the transform may be selected according to a combination of intra-mode, subpartition index, subpartition dimension, or a subset of the latter parameters. The transform may also be signaled directly to the decoder, or alternatively, in the form of additional syntax elements sent, for example, for all partitions in a block 80 or for each partition 102 / 112 of a block 80 individually.
[0077] One aspect, as already mentioned above, relates to the fact that after quantization in the spatial domain or some intermediate transform domain, which is arrived at by applying a transform to the prediction residual of each partition separately and then quantizing the transform coefficients, the residuals of the partitions 102 / 112 of the block 80 may be further transformed, which can be lossless or inverse. That is, the decoder can obtain the transform coefficient levels of the transform for the entire block 80 and perform an inverse lossless transform on the transform coefficient levels to obtain the prediction residual for each partition 102 / 112 in the spatial domain, or from the prediction residual in the spatial domain, an intermediate transform domain is obtained for each partition 102 / 112 by re-transform.
[0078] It should be noted that, according to a variant of the above embodiment, the partitioning can be done in a way different from the form of partitioning along the dimension 104. Intra-prediction coding using such a variant can be named flexible intra-prediction sub-partitioning (FIPS) or the like. Instead of partitioning into stripes 102 / 112, the division / partitioning of the block 80 can result in arbitrary rectangular sub-partitions of the block 80. Flexible intra-prediction sub-partitioning (FIPS) divides one W×H intra-prediction block 80 into K rectangular non-overlapping sub-partitions of size wi×hi (i=1, 2, ..., K). The resulting sub-partition layout is completely watertight, 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] Thus far, the above-described embodiments can be considered to illustrate exemplary partitions of the partition just described. For example, FIG. 4 shows two examples of such FIPS partitioning of block 80. However, in this case, all subpartitions 102 / 112 have the same size. In particular, perpendicular to dimension 104, the subpartitions are the width of the block, and along dimension 104, they are of equal width, corresponding to a specific fraction of the width of the block along dimension 104. As with any of the above partitions 102 / 112, each subpartition 102 generated in FIPS is predicted, and the resulting residual signal is transformed, quantized, and coded, for example, individually. Therefore, its reconstructed values may be used to predict other subpartitions 102 that have not yet been coded / decoded. For example, in the case of block 80 shown in FIG. 12b, subpartition number 1 may be predicted first, and then its reconstructed samples may be used to predict subpartitions numbers 2 and 3. This process is repeated until all subpartitions are coded / decoded.
[0081] To summarize a generalization of FIPS, the partitioning of intra-predicted block 80 into partitions 102 / 112 may be defined and signaled via the data stream in different ways, e.g., using a recursive multi-tree subdivision of block 80 into rectangular partitions of various sizes, or any other possible partition definition. For example, the partitioning may be defined by deriving dimension 104 as described above, which determines whether block 80 is partitioned into horizontal stripes 102 or vertical stripes 112, respectively, and also, with respect to the width of the stripes, i.e., the height of horizontal stripes 102 and the width of vertical stripes 112, depending on the intra-prediction mode. All other possibilities discussed above remain, such as the possibility of changing processing / partition order 126. That is, the change may depend on the intra-prediction mode, as described above, on some syntax element for block 80 transmitted in the data stream in addition to the intra-prediction mode parameter, or on some other information transmitted in the data stream, such as information derivable from prediction residuals transmitted in the data stream for the various partitions.
[0082] Furthermore, as already mentioned above, the prediction residuals of the various partitions of the block 80 are quantized and sequentially coded into a data stream, alternating with the individual intra predictions of these partitions. This applies not only to FIG. 5 but also to the descriptions of FIG. 10 and FIG. 11. However, the decoder does not need to perform decoding by alternating between residual decoding on the one hand and reconstruction of the various partitions by combining intra prediction and prediction residuals on the other hand. 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, which includes individual intra prediction 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 the block 80, from the data stream 14 according to one processing task, and may reconstruct the interior of the block 80 partition by partition according to the partition order 126 using the prediction residual 120i of the partition 102i according to another task. To this end, in a second task, the decoder continues reconstructing block 80 by performing intra prediction for each partition 120i using the intra prediction mode of block 80, adding the prediction residual 120i obtained from the first task, and then stepping to the next partition 120i+1 in partition order 126, thereby performing spatial prediction and then performing reconstruction using the prediction residual for that partition to correct the intra prediction result. The decoder can either perform the first task of fully deriving the prediction residual 120 from data stream 14 before starting the second task of performing prediction and prediction correction using the prediction residual, or the decoder can perform the two tasks in parallel, in which case it must have means to ensure that the prediction residual 120i for a particular partition 102i is ready when it is needed, i.e., when the prediction result for that partition 102i has been obtained using the intra prediction mode of that block and needs to be corrected.In particular, during a first task or phase, the decoder may perform all inverse transforms in parallel for all non-zero partitions, ie, all partitions 102 for which the prediction residuals 120i are signaled as non-zero.
[0083] It should be noted that, according to the above embodiment in which the residuals 120i of partition i are quantized in the transform domain, the reconstructed samples of these partitions may leave, i.e., exceed, or inherit a certain range of allowed sample values. As mentioned above, the reconstructed samples may serve as members of the reference samples 118j for the following partition j in the order 126. According to one embodiment, these samples are left as they are for the purpose of predicting the following partition j in the order 126, and clipping of these samples of the block 80 is performed as the final clipping step for the entire block 80, thereby improving, for example, the ease of implementation on the decoder side. Thus, when deriving the predictor for partition 102i, reconstructed samples of the partition preceding this partition 102i according to the partition order 126, which are among the one or more already reconstructed samples 118i serving as references for the current partition, may be used in an unclipped state, and clipping of the reconstructed samples from an unclipped state to a clipped state within the allowed sample value range is performed last after a series of reconstructions to finally reconstruct the given block. On the encoder side, clipping is performed only to obtain reconstructed versions of such samples that serve as prediction references for subsequent coded blocks in order to maintain reference synchronization with the decoder. However, this final clean-up type clipping is only an example; alternatively, clipping may be performed immediately, i.e., before the reconstructed samples of partition i serve as reference samples 118j for the subsequently processed partition j.
[0084] Among the embodiments described above, one embodiment will be described below using a specific example. In particular, according to this embodiment, the data stream 14 signals, via a partition mode flag 160, whether an intra-coded block 80 is coded using the LIP or ISP scheme. The corresponding syntax element in 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 one or more specific conditions are met. The one or more conditions may include, for example, that the intra-coded block 80 must be larger than some minimum size in terms of the number of samples in the block 80 and / or that the intra-coded block 80 cannot exceed certain dimensions in at least both the horizontal and vertical directions, for example, to prevent excessively large transform sizes. More precisely, LSP or ISP mode may be available only if block 80 is less than or equal to the aforementioned maximum transform-related size in at least one direction, i.e., horizontal or vertical. Thus, intra_subpartitions_mode_flag may be present in the data stream only if block 80 satisfies the above condition. Otherwise, the decoder may infer that intra-coded block 80 is intra-coded as usual.
[0085] If the split mode flag (intra_subpartitions_mode_flag) indicates that the intra-coded block 80 is an LSP or ISP-coded block, then a 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 circumstances. For example, if the intra-coded block 80 has a width that exceeds (but a height that does not exceed) the maximum transform size mentioned above, then the partition dimension 104 may be necessarily horizontal; if the height of the block 80 exceeds (but the width does not exceed) the maximum transform size mentioned immediately above, then the dimension 104 may be necessarily vertical. In either case, the intra_subpartitions_split_flag would not be explicitly signaled in the data stream, but would be inferred accordingly by the decoder. The intra-coding mode 116 may be signaled in the data stream by using a list of most probable intra-prediction modes constructed at the encoder and decoder sides, as outlined above. On the other hand, for a LIP or ISP intra-coded block 80, the data stream 14 may signal the intra-coding mode via an MPM list pointer, e.g., called intra_luma_mpm_IDX, which necessarily points to the list of most probable intra-prediction modes, and which may be preceded in the data stream 14 by an MPM flag if the intra-coded block is not coded with the LIP or ISP scheme. If an MPM flag, e.g., 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 most probable intra-prediction mode list.However, as mentioned above, this is just an example, and the signalable set of intra-prediction modes may be the same, i.e., cover all supported intra-prediction modes for both normally coded intra-predicted blocks and LIP or ISP intra-predicted blocks.
[0086] For example, the intra_luma_mpm_flag may be transmitted for both types of intra-coded blocks. Alternatively, the pointers transmitted for both types of intra-predicted blocks may directly point to the complete list of supported intra-prediction modes for both types of intra-coded blocks, without the MPM flag. When the intra-coded block 80 is coded 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 depending on the size of the block 80. No signal would be consumed in the data stream. For small block sizes, the number may be 2; otherwise, the number of partitions 102 / 112 is 4. The partition order in which intra-prediction of partitions and coding of prediction residuals into the data stream are performed may proceed sequentially along the partition direction 104, starting from the leftmost partition in the horizontal direction 104 or the topmost partition in the vertical partition direction, to the farthest partition. Again, no signal would be consumed. As described above, a residual transform may be performed for each partition 102 / 112. That is, each partition may be transformed individually.
[0087] In comparison, for a conventionally intra-coded block 80, the number of transforms may depend on the size of the intra-coded block 80 as follows: if the intra-coded block is smaller than the aforementioned maximum transform size in the horizontal and vertical directions, the residual of the intra-coded block 80 is coded using one transform, i.e., the residual of the block 80 is completely subjected to one transform. If the maximum transform size in the horizontal direction is exceeded, the intra-coded block 80 is divided horizontally into two half blocks or a corresponding number of transform blocks, where the half blocks or transform blocks match the maximum transform size, and the residual of the block 80 is subjected to one transform for each half block / transform block. The same applies to a block 80 that exceeds the maximum transform size in the vertical direction. If the maximum transform size is exceeded both vertically and horizontally, four or a corresponding number of transforms are used to transform the residual of the block 80 into the four quadrants of this block 80 or to transform the standard two-dimensional subdivision of the block 80 into the corresponding number of transform blocks. Furthermore, the processing of a regular intra-coded block 80 may differ from the handling of a LIP- or ISP-coded intra-coded block 80 in that a regular intra-coded block is intra-predicted block-by-block. That is, a regular intra-coded block is not sub-partitioned. A further difference may relate to the coding of the transform block, for coding the prediction residual of the block 80. For each transform, a coded block flag 188, such as tu_cbf_luma, may be transmitted. However, for a regular intra-coded block 80, this flag may be coded for each transform within the block 80. However, if the block 80 is LIP- or ISB-coded and all preceding CBFs of the previous transform are zero, this flag may be inferred to be 1 for the last transform of the block 80. Furthermore, the selection of the dimensions of the sub-blocks within each transform may differ between a regular intra-coded block 80 and a LIP- or ISP-coded block 80. Details are described above.However, alternatively, the subdivision of the transform 182 into sub-blocks may be performed equally for regular intra-coded blocks and for LIP or ISP-coded blocks. For example, let log2SbW and log2SbH be the logarithms of the width and height of the sub-blocks, respectively, and let log2TbWidth and log2TbHeight be the logarithms of the width and height of the transform, respectively. The dimensions of the sub-blocks can then be determined as follows:
[0088]
number
[0089] The above pseudocode generates sub-blocks of the sizes shown in Table 1. This may result in only 4x4 sub-blocks of coefficients for a regular intra-coded block 80 due to the inherent minimum size of the intra-coded block 80 and the non-subdivision of regular intra-coded blocks. Finally, while the examples outlined above may result in LIP or ISP intra-predicted blocks of various sizes, including blocks that are partitioned into only two partitions 102 / 112, it should be noted that regardless of whether such LIP or ISP intra-predicted blocks exist, there may also be LIP or ISP intra-predicted blocks that are partitioned into more than two partitions.
[0090] While some aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of a corresponding method, with blocks or devices corresponding to method steps or features of method steps. Similarly, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus. Some or all of the method steps can be performed by (or using) a hardware apparatus, such as, for example, a microprocessor, a programmable computer, or electronic circuitry. In some embodiments, one or more of the most important method steps can be performed by such an apparatus.
[0091] The data stream of the present invention can be stored on a digital storage medium or transmitted over a transmission medium, such as a wireless or wired transmission medium, such as the Internet.
[0092] Depending on specific implementation requirements, embodiments of the present invention can be implemented in hardware or software. Implementation can be performed using digital storage media such as floppy disks, DVDs, Blu-ray™, CDs, ROMs, PROMs, EPROMs, EEPROMs, or flash memories, which cooperate (or can cooperate) with a programmable computer system so that the respective methods are executed. Thus, the digital storage media can be computer-readable.
[0093] Some embodiments according to the present invention include a data carrier having electronically readable control signals that can cooperate with a programmable computer system to perform one of the methods described herein.
[0094] Generally, embodiments of the present invention can be implemented as a computer program product having program code that operates to perform one of the methods when the computer program product is run on a computer, and the program code may for example be stored on a machine-readable carrier.
[0095] Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.
[0096] In other words, an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.
[0097] A further embodiment of the inventive methods is therefore a data carrier (or digital storage medium, or computer-readable medium) having recorded thereon a computer program for performing one of the methods described herein. The data carrier, digital storage medium, or recorded medium is typically tangible and / or non-transitory.
[0098] A further embodiment of the inventive method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or sequence of signals may be adapted to be transferred via a data communication connection, for example the Internet.
[0099] A further embodiment comprises a processing means, for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein.
[0100] A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
[0101] Further embodiments according to the invention include 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 may be, for example, a computer, a mobile device, a memory device, etc. The apparatus or system may, for example, include 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) may be used to perform some or all of the functions of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor to perform one of the methods described herein. In general, the methods are preferably performed by any hardware apparatus.
[0103] The apparatus described herein may be implemented using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
[0104] The apparatus described herein, or any components of the apparatus described herein, may be implemented at least in part in hardware and / or software.
[0105] The methods described herein can be performed using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
[0106] The methods described herein, or any components of the apparatus described herein, may be at least partially implemented by hardware and / or software.
[0107] The above-described embodiments are merely illustrative of the principles of the present invention. It is understood that modifications and variations of the arrangements and details described herein will be apparent to those skilled in the art. It is therefore intended to be limited only by the scope of the appended claims, and not by the specific details presented by way of description and illustration of the embodiments herein.
Claims
[Claim 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; 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 1 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 0; A decoder configured as follows:
Citation Information
Patent Citations
Video decoding method and apparatus therefor
JP2016213895A
Moving picture encoding device and moving picture decoding device
JP2017028726A