Intra-partition coding concept
By partitioning the image blocks in HEVC and synchronously selecting the partition processing order and width, the problems of intraprediction mode signaling overhead and coding efficiency are solved, and a more efficient intracoding effect is achieved.
Patent Information
- Application Number
- CN202411254816.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-01-02
- Filing Date
- 2019-07-12
- Publication Date
- 2024-12-13
AI Technical Summary
The selection of intra-prediction modes and signaling overhead of existing block-based codecs in HEVC results in low encoding efficiency, and the spatial prediction of larger blocks is not accurate enough, resulting in low signaling overhead and prediction residual encoding efficiency.
By segmenting the image block into multiple partitions and synchronously selecting the partition processing order and partition width between the encoder and decoder, using explicit or implicit signaling techniques, selecting appropriate intraprediction modes and partition structures to reduce signaling Make overhead and improve the accuracy of prediction modes.
The signaling overhead of the intraprediction mode is effectively reduced, encoding efficiency is improved, and the number of bits in the data stream is reduced through more accurate prediction residual coding, improving the quality of image reconstruction.
Smart Images

Figure CN119135930A_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with national application number 201980060400.2. The application date of the invention patent application is July 12, 2019, and the name of the invention is “Intra-partition coding concept”. Technical Field
[0002] The present application relates to a concept of intra-coding for use in block-based codecs, such as, for example, a hybrid video codec. Background Art
[0003] Given a particular block, intra prediction is performed in HEVC by extrapolating the decoded boundary samples of neighboring blocks according to certain modes, namely 33 angular modes and DC and planar modes [1]. The intra prediction mode that minimizes the rate-distortion cost is then signaled to the decoder. Although known codecs support a large number of intra prediction modes (IPMs), the intra prediction implemented by them is still a subject of development to find better intra predictors leading to higher coding efficiency. This applies not only to HEVC, but also to other block-based codecs using intra prediction. Due to the fact that more accurate predictors reduce the prediction residual, finding a set of intra prediction modes suitable for efficiently encoding the interior of the block requires considering the signaling overhead of signaling the intra prediction modes and the resulting quality of the predictors obtained by these intra prediction modes from a signaling overhead point of view, thereby reducing the signaling overhead associated with encoding the prediction residual. In order for the signaling overhead associated with intra prediction modes to be low, intra prediction blocks should be large, i.e. the granularity of signaling intra prediction modes should remain coarse, but on the other hand, spatial prediction of larger blocks tends to be less accurate, since the average sample distance of samples inside an intra prediction block, i.e. the samples to be predicted, is higher than the average sample distance of already decoded / encoded samples adjacent to the block, i.e. the reference samples. HEVC alleviates this dilemma somewhat by allowing transform residual blocks to inherit the intra prediction mode of their corresponding coding unit, with respect to which they form leaf blocks of the subdivision of the coding unit by multi-tree subdivision. However, this still requires signaling overhead for signaling from the encoder to the decoder the partitioning of the corresponding intra-encoded coding unit into sub-partitions of transform blocks.
[0004] Therefore, it would be advantageous to have technology that can further improve the coding efficiency of intra-coding. Summary of the invention
[0005] It is therefore an object of the present invention to provide a more efficient intra-coding technique.
[0006] This object is achieved by the subject-matter of the independent claims of the present application.
[0007] The present invention relates to block-based coding of images using an intra-prediction coding concept, according to which a specific block of an image is intra-predicted by partitioning the predetermined block into partitions having a number of partitions greater than or equal to two using a specific intra-coding mode. For reconstruction purposes, the partitions are sequentially spatially predicted using the intra-prediction coding mode signaled for the specific block, and the predictor obtained thereby is subsequently corrected using the prediction residual, so that for the previous partition, the reconstructed samples can be available to the decoder when processing the next partition and then the current partition. According to a first aspect, the partition order for processing the partitions of the predetermined block is selected from at least two different orders. The selection can be synchronized between the encoder and the decoder using explicit or implicit signaling techniques. Thus, the selection is such that when one partition order is applied to the predetermined block, another order can be applied to another block, also encoded using the intra-partition prediction technique, having the same size and shape and partitioned into partitions in the same way. Freely selecting the partition processing order for the encoder, or presenting the dependence of the partition processing order on other parameters besides size, shape and partitioning, is effective in improving the effectiveness of the intra-partition prediction mode.
[0008] According to a further aspect of the invention, which can be combined with the previous aspect or used without the previous aspect, partitioning is performed along a dimension so that the partition is as wide as the predetermined block in a direction perpendicular to the predetermined dimension, while the width of the partition measured along the predetermined dimension is selected from at least two different width settings or options. Explicit or implicit signaling techniques can be used to synchronize the selection between the encoder and the decoder. Therefore, the selection can make the partition change between blocks of the same size and shape, but the overhead associated with the change can be kept relatively low. For example, the selection can be performed based on the intra-coding mode for the predetermined block, such as depending on whether the intra-coding mode for the predetermined block is an angular mode. The selection can also be made based on an index indexed on at least two different width settings for the predetermined block in the data stream. The partition can be one or more samples wide along the partition dimension. Within a block, the partition width along the partition / predetermined direction can vary. One can be one sample wide, i.e. a one-dimensional strip, while the other is more than one sample wide, a two-dimensional field of samples. The signaling overhead on the partition can be removed or can be kept very low. The partitioning thus enables the signaling overhead for signaling the intra-prediction mode of the predetermined block to be low overall in the data stream, while still providing the encoder and the decoder with the opportunity to reduce the average distance of the samples of the predetermined block from their already reconstructed / encoded neighboring reference samples. The latter are at least partially located within the predetermined block itself, i.e. within previously processed partitions for which prediction residuals have been determined so as to be available for calibration of the predictor for the partition in which they are located.
[0009] According to a further aspect of the invention, which may be combined with any of the preceding aspects or used without the preceding aspects, the decoder operation may be made more efficient in implementation by decoding prediction residuals from the data stream for all partitions before sequentially reconstructing partitions of a predetermined block.
[0010] And according to a further aspect of the present invention, it can be combined with any one of the aforementioned aspects, or used without the aforementioned aspects, by using, in a not yet limited state, a reconstructed sample of a partition located before the current partition according to a predetermined partition order when deriving a predictor for the current partition, the reconstructed sample being a sample among one or more already reconstructed samples adjacent to the current partition, wherein the reconstructed sample is limited from the not yet limited state to a state limited to an allowed sample value range to finally reconstruct the predetermined block, so that the decoder operation becomes more efficient in implementation, which means that, on the encoder side, the limiting is performed only to obtain a reconstructed version of such a sample, which is used as a prediction reference for subsequent encoding blocks so as to maintain reference synchronization with the decoder.
[0011] Advantageous aspects of the invention are subject matter of the dependent claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The following describes preferred embodiments of the present application with reference to the accompanying drawings, in which:
[0013] Figure 1 A block diagram of an apparatus for predictively encoding an image is shown as an example of an encoder in which the intra-prediction technique according to an embodiment of the present application can be implemented;
[0014] Figure 2 A block diagram of an apparatus for predictive decoding of an image is shown, Figure 1 as an example of a decoder in which the intra prediction technique according to the embodiment of the present application can be implemented;
[0015] Figure 3 A schematic diagram illustrating an example of a relationship between a prediction residual signal, a prediction signal and a reconstructed signal for illustrating the possibility of setting subdivisions for coding mode selection, transform selection and transform performance, respectively;
[0016] Figure 4 shows a schematic diagram illustrating a partitioning process of an intra-coded block according to an embodiment which allows a choice among different partitioning dimensions, i.e. horizontal and vertical partitioning;
[0017] Figure 5 shows a schematic diagram illustrating sequential processing of partitions of an intra-coded block processed according to a partitioning option;
[0018] Figure 6 A schematic diagram is shown illustrating prediction derivation for a fill process for a partition;
[0019] Figure 7 shows examples of partitioned intra prediction blocks partitioned according to horizontal and vertical partitioning modes, respectively, and having two different intra prediction modes associated therewith, respectively, in order to illustrate the possibility of rendering a relevant decision of the partition order on the intra prediction modes associated with the intra prediction blocks;
[0020] Figure 8 A schematic diagram is shown which illustrates a possible signaling scheme of an intra-prediction block 80 processed using a partitioning option;
[0021] Fig. 9 A schematic diagram is shown, which illustrates a possible way of transmitting the prediction residual of a partition according to an embodiment;
[0022] Fig.10showing a schematic diagram illustrating the partial summation of the coding costs involved in determining a partition of an intra-prediction mode so that the test can be aborted when it is clear that it will not get better than any normal intra-prediction mode; and
[0023] Fig.11 A flow chart showing modes or operations of an encoder to perform partition mode testing according to an embodiment; and
[0024] Fig.12a and Figure 12b An example of an alternative partitioning of an intra-coded block is shown as a further embodiment. DETAILED DESCRIPTION
[0025] The following description of the figures begins with the presentation of a description of an encoder and decoder for a block-based predictive codec for encoding images of a video in order to form an example for a coding architecture in which an embodiment for an intra-prediction codec can be constructed. Figures 1 to 3 The former encoder and decoder are described in detail below. After that, the description of the embodiments of the intra-prediction techniques of the present application and how to construct these techniques into Figure 1 and Figure 2 , but with Figure 4 The embodiments described in the subsequent figures can also be used to form Figure 1 and 2 The encoder and decoder operate on the coding architecture based on which the encoder and decoder are based.
[0026] Figure 1 An apparatus is shown for predictively encoding an image 12 into a data stream 14 using, for example, transform-based residual coding. The apparatus or encoder is indicated using the reference numeral 10 . Figure 2 A corresponding decoder 20 is shown, i.e. a device 20 configured to predictively decode an image 12' from a data stream 14 also using transform-based residual decoding, wherein a prime has been used to indicate that the image 12' reconstructed by the decoder 20 deviates from the image 12 originally encoded by the device 10 in terms of the coding losses introduced by the quantization of the prediction residual signal. Although Figure 1 and Figure 2 Transform-based prediction residual coding is used exemplarily, but the embodiments of the present application are not limited to such prediction residual coding. Figure 1 and 2 The same is true for the other details described, as will be outlined below.
[0027] The encoder 10 is configured to perform a spatial-to-spectral transformation on the prediction residual signal and encode the prediction residual signal thus obtained into a data stream 14. Likewise, the decoder 20 is configured to decode the prediction residual signal from the data stream 14 and perform a spectral-to-spatial transformation on the prediction residual signal thus obtained.
[0028] Internally, the encoder 10 may include a prediction residual signal former 22, which generates a prediction residual 24 in order to measure the deviation between the prediction signal 26 and the original signal, i.e. the image 12. For example, the prediction residual signal former 22 may be a subtractor, which subtracts the prediction signal from the original signal, i.e. the image 12. The encoder 10 then further comprises a transformer 28, which performs a spatial to spectral transformation on the prediction residual signal 24 to obtain a first prediction residual signal 24' in the frequency domain, which is then quantized by a quantizer 32, which is also comprised by the encoder 10. The second prediction residual signal 24" thus quantized is encoded as a bit stream 14. To this end, the encoder 10 may optionally include an entropy encoder 34, which entropy encodes the transformed and quantized prediction residual signal as a data stream 14. The prediction residual 26 is generated by a prediction stage 36 of the encoder 10 on the basis of the second prediction residual signal 24" which is encoded as the data stream 14 and can be decoded from the data stream 14. To this end, the prediction stage 36 may internally include a dequantizer 38, such as Figure 1 As shown in , it dequantizes the second prediction residual signal 24" in order to obtain a third prediction residual signal 24"' in the frequency domain, which corresponds to the signal 24' except for the quantization loss, followed by an inverse transformer 40, which performs an inverse transform, i.e. a spectrum-to-space transform, on the third prediction residual signal 24' to obtain a fourth prediction residual signal 24"", which corresponds to the original prediction residual signal 24 except for the quantization loss. Then, the combiner 42 of the prediction stage 36 recombines, such as by adding the prediction signal 26 to the fourth prediction residual signal 24"", so as 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'. Then, the prediction module 44 of the prediction stage 36 generates the prediction signal 26 on the basis of the signal 46 by using, for example, spatial prediction, i.e. intra-prediction, and / or temporal prediction, i.e. inter-prediction.
[0029] Likewise, the decoder 20 may be internally composed of components corresponding to the prediction stage 36 and interconnected in a manner corresponding to the prediction stage 36. Specifically, the entropy decoder 50 of the decoder 20 may entropy decode a quantized frequency-domain second prediction residual signal 24″ from the data stream, wherein the inverse quantizer 52, the inverse transformer 54, the combiner 56, and the prediction module 58 are interconnected and cooperate in the manner described above for the modules of the prediction stage 36, and recover the reconstructed signal based on the second prediction residual signal 24″, as in Figure 2, so that the output of combiner 56 produces the reconstructed signal, ie image 12 ′.
[0030] Although not specifically described above, it is clear that the encoder 10 can set some encoding parameters, such as prediction modes, motion parameters, etc., according to some optimization schemes, such as, for example, in a way that optimizes a certain data rate and distortion-related criterion, i.e., the encoding cost. For example, the encoder 10 and the decoder 20 and the corresponding modules 44, 58 can support different prediction modes, such as intra-coding mode and inter-coding mode. The granularity at which the encoder and the decoder switch between these prediction mode types can correspond to the subdivision of the images 12 and 12' into coding segments or coding blocks, respectively. In terms of these coding segments, for example, the image can be subdivided into intra-coding blocks and inter-coding blocks. The intra-coding blocks are predicted based on the spatial, already encoded / decoded neighborhood of the corresponding block, as will be outlined in more detail below. Several intra-coding modes can exist and can be selected for the corresponding intra-coding segment, including directional or angular intra-coding modes, according to which the corresponding segment is filled into the corresponding intra-coding segment by extrapolating the sample values of the neighborhood along a specific direction, wherein the specific direction is specific to the corresponding directional intra-coding mode. The intra-coding mode may for example also comprise one or more further modes, such as a DC coding mode, according to which a DC value is assigned to all samples within a corresponding generated intra-coding segment for the prediction of the corresponding intra-coding block; and / or a plane intra-coding mode, according to which the prediction of the corresponding block is approximated or determined as a spatial distribution of sample values, the spatial distribution being described by a two-dimensional linear function at the sample positions of the corresponding intra-coding block, with a driving tilt and offset of a plane defined by the two-dimensional linear function on the basis of adjacent samples. In contrast, an inter-coding block may for example be predicted in time. For an inter-coding block, a motion vector may be signaled within the data stream, the motion vector indicating a spatial displacement of a portion of a previously coded image of the video to which the image 12 belongs, at which position the previously coded / decoded image was sampled to obtain a prediction signal for the corresponding inter-coding block. This means that, in addition to the residual signal encoding comprised by the data stream 14, such as entropy encoded transform coefficient levels representing the quantized frequency domain second prediction residual signal 24″, the following parameters may be encoded in the data stream 14: coding mode parameters for assigning coding modes to various blocks, prediction parameters for some blocks, such as motion parameters for inter-coded segments, and further optional parameters, such as parameters for controlling and signaling the subdivision of Figures 12 and 12′, respectively. The decoder 20 uses these parameters to subdivide the image in the same way as the encoder, to assign the same prediction modes to the segments, and to perform the same prediction to produce the same prediction signal.
[0031] Figure 3The relationship between the reconstruction signal, ie the reconstructed image 12', on the one hand, and the combination of the fourth prediction residual signal 24"" as signaled in the data stream and the prediction signal 26 on the other hand is shown. As already stated above, the combination may be an addition. The prediction signal 26 is Figure 3 1 is shown as a subdivision of the image area into intra-coded blocks, which are diagrammatically indicated using hatching, and inter-coded blocks are diagrammatically indicated using no hatching. The subdivision may be any subdivision, such as a subdivision of the image area into rows and columns of blocks or a conventional subdivision of blocks, or a multi-tree subdivision of the image 12 into leaf blocks of different sizes, such as a quadtree subdivision into blocks or the like, wherein a mixture of these is illustrated in Figure 3 , where the image region is first subdivided into rows and columns of tree root blocks and then further subdivided according to a recursive multi-tree subdivision. Again, for the intra-coding block 80, the intra-coding mode can be encoded into the data stream 14, which assigns one of several supported intra-coding modes to the corresponding intra-coding block 80. Further details are described as follows. For the inter-coding block 82, one or more motion parameters can be encoded into the data stream 14. In general, the inter-coding block 82 is not limited to being temporally encoded. Alternatively, the inter-coding block 82 can be any block predicted from: a previously encoded portion other than the current image 12 itself, such as a previously encoded image of the video to which the image 12 belongs, or an image from another perspective or an image at a lower level of the hierarchical architecture in the case where the encoder and decoder are scalable encoders and decoders, respectively. In Figure 3 The fourth prediction residual signal 24"" in is also illustrated as a subdivision of the image area into blocks 84. These blocks may be referred to as transform blocks in order to distinguish them from the coding blocks 80 and 82. In practice, Figure 3 It is shown that the encoder 10 and the decoder 20 can use two different subdivisions of the image 12 and the image 12', respectively, into blocks, namely one subdivision into coding blocks 80 and 82, respectively, and another subdivision into blocks 84. The two subdivisions may be identical, i.e. each coding block 80 and 82 may simultaneously form a transform block 84, but in Figure 3In the illustrated case, for example, the subdivision into transform block 84 forms an extension of the subdivision into coding block 80 / 82, so that any boundary between two blocks of blocks 80 and 82 overlaps a boundary between two blocks 84, or alternatively, each block 80 / 82 either coincides with one of the transform blocks 84 or with a cluster of transform blocks 84. However, the subdivisions may also be determined or selected independently of one another, so that transform block 84 may alternatively cross a block boundary between blocks 80 / 82. Thus, similar statements exist for the subdivision into transform block 84 as those presented with respect to the subdivision into block 80 / 82, i.e. block 84 may be the result of a conventional subdivision of an image area into blocks / blocks arranged in rows and columns, the result of a recursive multi-tree subdivision of an image area, or a combination thereof or any other kind of blocking. Furthermore, it should be noted that blocks 80, 82 and 84 are not limited to square, rectangular or any other shape.
[0032] Figure 3 The combination of the prediction signal 26 and the fourth prediction residual signal 24"" is shown to directly produce 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 fourth prediction residual signal 24"" to produce the image 12'.
[0033] exist Figure 3 In the embodiment described below, the transform section 84 shall have the following meanings. The transformer 28 and the inverse transformer 54 perform their transforms in units of these transform sections 84. For example, many codecs use some kind of DST or DCT for all transform blocks 84. Some codecs allow skipping of transforms so that for some of the transform sections 84, the prediction residual signal is encoded directly in the spatial domain. However, according to the embodiments described below, the encoder 10 and the decoder 20 are configured in a way that they can support multiple transforms. For example, the transforms supported by the encoder 10 and the decoder 20 may include:
[0034] o DCT-II (or DCT-III), where DCT stands for Discrete Cosine Transform
[0035] o DST-IV, where DST stands for Discrete Sine Transform
[0036] o DCT-IV
[0037] o DST-VII
[0038] oIdentity Transformation (IT)
[0039] Of course, while the transformer 28 will support forward transformed versions of all of these transforms, the decoder 20 or inverse transformer 54 will support their corresponding inverse or inverse transformed versions:
[0040] o Inverse DCT-II (or inverse DCT-III)
[0041] oInverse DST-IV
[0042] oInverse DCT-IV
[0043] oInverse DST-VII
[0044] oIdentity Transformation (IT)
[0045] The subsequent description provides more details on which transforms may be supported by the encoder 10 and decoder 20. In any case, it should be noted that the set of supported transforms may include only one transform, such as a spectral to spatial or spatial to spectral transform.
[0046] As already outlined above, it has been presented Figure 1-3 As an example, the intra-prediction concept, which will be further described below, may be implemented therein to form a specific example for an encoder and a decoder according to the present application. In this regard, Figure 1 and 2 The encoder and decoder of represent possible implementations of the encoder and decoder described below, respectively. As will be outlined in more detail below, when the embodiments for intra prediction according to the present application explained later are constructed in Figure 1 and 2 When the encoder and decoder are Figure 1 The encoder and Figure 2 The decoder of , at least as an option, supports processing the intra prediction block 80 in a manner described in more detail below. Therefore, the embodiments described below relate to an encoder that is equivalent to Figure 1 The encoder 10 processes the intra-prediction block 80 in a manner described in more detail below and which also applies to Figure 2 The decoder, therefore, Figure 2 represents an example of a decoder according to an embodiment, in which intra-coded blocks are processed in the manner outlined in more detail below. However, Figure 1 and 2 However, an encoder according to an embodiment of the present application may perform block-based encoding of image 12 using the techniques outlined in more detail below, and different from Figure 1 encoder, such as, for example, differing in that it is not a video encoder, differing in that it does not support intra prediction, or differing in that the subdivision into block 80 is in the same Figure 3The example is performed in a different way, or even different in that the encoder does not use transform prediction residual coding, but directly encodes the prediction residual, for example in the spatial domain. Similarly, the decoder according to an embodiment of the present application can use the intra prediction technique further outlined below to perform block-based decoding of the image 12' from the data stream 14, but it can also be different from Figure 2 The decoder 20 of FIG. 1 may be different from the decoder 20 of FIG. 1 , for example, in that it is not a video decoder but a still picture decoder, in that it does not support intra prediction, or in that it uses the same Figure 3 The described approach subdivides the image 12 ′ into blocks in a different way and / or differs in that the prediction residual is derived from the data stream 14 not in the transform domain but, for example, in the spatial domain.
[0047] Having said that, the following description focuses on the description of the intra prediction according to the embodiment of the present application. According to the intra prediction presented here, it is allowed to convert the intra prediction block such as Figure 4 The block 80 in is divided into partitions. According to some embodiments, the partitions are fixed one-dimensional horizontal partitions or one-dimensional vertical partitions, but as mentioned several times in this article, this situation will be understood as an example that can be varied so as to obtain alternative embodiments in which the partitions are wider or even have additional properties, and instead of partitioning the block along a certain partitioning direction / dimension, the partitioning into one-dimensional and / or two-dimensional partitions is performed in any other way, including, for example, using multi-tree partitioning operations, first defining partition columns and then partitioning the partition columns into partitions, or other ways. The availability of processing blocks in the manner described below can be provided for intra-prediction blocks 80 of any size or for blocks 80 limited to a predetermined range of block sizes, such as blocks larger than a certain size. "One-dimensional" in relation to partitioning refers to the fact that the partitions are only one sample wide along the partitioning dimension, while one-dimensional or 1D in relation to partitioning refers to the partitioning of the block into partitions along one direction, thereby generating partitions / strips extending across the block in a direction perpendicular to the partitioning direction.
[0048] See e.g. Figure 4 . Figure 4 On the left side is shown an intra-prediction block 80, i.e. a block to be decoded or a block to be encoded. It has dimensions W×H. That is, it is a block of size W×H, where H is the height of the block 80 and W is the width of the block 80, each measured in samples. Figure 4 , two partitioning or splitting options are available, namely horizontal partitioning 100, according to which the block 80 is divided or split into a plurality of partitions 1021, 1022, 1023 and 1024 along a vertical axis, namely a partitioning dimension 104. Figure 4, which is an example used in the following description, each partition 1021 to 1024 is one sample wide, as indicated by the double-headed arrow 106, so that the number of partitions 1021 to 1024 generated by the block 80 is equal to H, that is, the height of the block 80 in units of samples 108 of the block 80, but it should be clear that the partitioning can also be performed by the encoder and the decoder in a different way according to the agreement between the encoder and the decoder, such as, for example, the partitioning of the block 80 along the dimension 104 can result in partitions 102 i The one-dimensional nature of the partitioning itself can be changed to produce another partitioning concept, generally referred to as FIPS in the following.
[0049] Depicted in Figure 4 Another encoding option in FIG. 8 and denoted by reference numeral 110 corresponds to dividing the block 80 into vertical partitions 1121, 1122, ... 1128. That is, according to option 110, along the horizontal axis, i.e., the horizontal partitioning dimension 104, the block 80 is divided into partitions 112 i In the case of option 100, each partition 102 i is as wide as block 80, i.e., has a width W of the block, while partition 112 i Assume that the block 80 has a height H, that is, has a height H. In summary, in a manner similar to that described for option 100, vertical partitioning 110 can divide the block 80 into W partitions 112 i , where W represents the lateral width of the block 80 measured with the sample 108, so that each partition 112 i In the horizontal direction it is one sample wide, but the division according to option 110 can also be performed in another way that is agreed between encoder and decoder.
[0050] Therefore, according to Figure 4 , the encoder is free to divide the block 80 into H W×1 partitions 102 according to the horizontal partition option 100 i , or divided into W 1×H partitions 112 according to the vertical partition option 110 i, and the segmentation option selected by the encoder for the block 80 can be signaled in the data stream 14 for the block 80, such as, for example, by means of a corresponding segmentation dimension flag 114 in the data stream 14. However, it should be clear that embodiments of the present application also cover encoders and decoders that, in a preset situation, only use one of the options 100 and 110 without the flag 114 in the data stream. Even further, in other examples, depending on the intra-coding mode 116 signaled in the data stream 14 for the block 80 from the encoder to the decoder, the flag 114 can be transmitted in the data stream 80. As described above, the intra-coding mode can indicate one of a set of available / supported intra-coding modes, the set of modes including, for example, an angular mode, and optionally, one or more non-angular modes, such as a DC mode or a planar mode. That is, according to an alternative embodiment that will not be discussed further below, the flag 114 can be transmitted in the data stream 14 in a manner that is conditionally dependent on the intra-coding mode 116. According to the embodiment described below, the flag 114 is present in the data stream 14 for the block 80 independently of the intra-coding mode 116 signaled in the data stream 14 for the block 80. However, a dependency may exist with respect to the switching of the flag between the segmentation process of the intra-coded block 80 just discussed and a different way of processing the intra-coded block 80 to be outlined below.
[0051] According to an embodiment of the present application, each of the partitions 102 / 112 is predicted, transformed, quantized and encoded separately, and the partitions are processed sequentially in this manner. Therefore, the reconstructed samples of a certain partition will be able to be used to predict any subsequent partitions 102 / 112 in the partition order in which the block 80 has been partitioned, and in this manner, the process of intra-prediction loops through the partitions 102 / 112 into which the block 80 has been partitioned. Figure 5 The intra prediction block 80 partitioned according to option 100 is shown as an example. Each partition 1021 to 1024 of the block 80 is subjected to prediction, that is, the corresponding partition 102 iThe derivation of the predictor of , and the prediction residual related tasks, i.e., the correction of the predictor using the prediction residual. The latter task can be performed by combining the prediction residual and the predictor. This is done in the decoder for reconstruction. As prediction residual related tasks, the encoder performs the determination of the prediction residual, which includes, for example, the transformation and quantization of , and the correction of the predictor using the prediction residual, i.e., by filling the decoded image buffer in the decoder with the reconstruction of the image so that the prediction loop remains synchronized with the decoder. The tasks just mentioned, i.e., the processing of predictions and residuals, are performed separately for partitions 1021 to 1024 and sequentially among partitions 1021 to 1024. After these two steps for the currently processed partition, the next partition 102 according to the partition order is processed in the same way. i .exist Figure 5 The partition order is exemplarily shown using three arrows 126 in FIG.
[0052] Figure 5 It is shown that the partition including the upper leftmost pixel of block 80 will be processed first, followed by the immediately adjacent lower neighboring partition 1022, and so on, corresponding to Figure 5 , but this order is merely an example and as will become clear from the subsequent description, the partition order may be selected in a manner that depends on other settings such as the intra-coding mode and / or the size of block 80, the dependency of the former of which will be discussed below.
[0053] In the examples discussed further below, the partition order 126 varies only between traversing the partitions 102 / 112 in such a way that the immediately following partitions are directly adjacent to each other, such that in the case of partition type 100, the partition order is from top to bottom or from bottom to top, and in the case of partition type 110, from left to right or from right to left, respectively. However, it should be mentioned that other examples are also conceivable. For example, the partition order can be selected in such a way that the partitions are scanned in the adjacent order just outlined in two scans, in the first scan, every other partition is processed from top to bottom, from bottom to top, from left to right, or from right to left, as applicable, and then the remaining partitions in between are processed in the same order direction or in the opposite direction.
[0054] In any case, Figure 5It is shown that the first partition 1021 is to be processed first and is the partition currently being processed. For the first partition, exemplarily 1021 here, the set 1181 of neighboring samples used to form the predictor for the partition 1021 can be selected only based on samples located outside the boundary of the block 80, because when the first partition of the block 80 is processed, no samples of the block 80 have been processed, that is, reconstructed or encoded. That is, the samples in the set 1181 have been reconstructed in the encoder using any prediction and correction of the corresponding predictor using the prediction residual transmitted in the data stream. They belong to previously encoded / decoded image blocks and can be blocks that are inter-coded or intra-coded or coded in any other way. As for the number and exact position of the samples of the neighboring sample set 1181 used to form the predictor of the first partition 1021, it depends on the intra-coding mode assigned to the block 80. This intra-coding mode is used jointly or equally to process each partition of the block 80, as will be discussed below. To complete the processing of the first partition 1021, as far as the encoder is concerned, a predictor for this partition 1021 derived in the decoder and encoder by filling the partition 1021 depending on one or more already reconstructed / encoded samples in the set 1181 is determined, i.e. by transformation and quantization as outlined above, and this prediction residual - in the version transmitted in the data stream, i.e. including quantization losses - is then used to reconstruct this partition 1021 by correcting said predictor using the prediction residual in the data stream 14. For example, Figure 5 The prediction residual for the partition 1021 is exemplarily shown at 1201. That is, 1201 includes transform coefficients corresponding to the transform of the prediction residual for the partition 1021, wherein the description of the data 1201 will be discussed in more detail below.
[0055] Now turn to the next partition in the partition order, which is Figure 5 Now, the situation has changed, since the set of adjacent already reconstructed / coded samples used to derive the predictor for partition 1022 may now consist of samples located outside block 80 and / or samples within block 80, i.e. samples located in any already processed partition, here the currently processed partition. Figure 5 The partition 1021 in the example described is selected because for these samples the prediction residual has already been determined and is already available in the data stream 14. That is, the encoder and decoder derive a predictor for this partition 1022, followed by prediction residual determination in the encoder and use of the prediction residual for correcting the predictor in the encoder and decoder, respectively. The process then continues with the next partition in the queue, i.e., the next partition in the partition order, so that all partitions of block 80 are processed sequentially.
[0056] As already mentioned above, it is possible to select the partition order 126 in a manner other than traversing the partitions so that the next consecutive partitions are directly adjacent partitions. That is, the partition order can jump from one partition to the next. This means that by filling the corresponding partition 102 i To derive the set of adjacent samples used by the corresponding predictor 118 i Not limited to directly adjacent samples of the corresponding partition, as in Figure 5 This is also relevant to the choice of the start of the partition order 126. Imagine, for example, that partition 1024 was the first partition in the partition order. Then its predictor can be determined by depending on the Figure 5 1024, which collects samples located around the block 80 and up to the left and top of the block 80. Some samples in the set 1184 will not be directly adjacent to the partition 1024. Incidentally, this will correspond to the case of filling the last sample column in the conventional intra-prediction filling of the entire block 80. The possibilities just mentioned will also be true for any subsequently processed partitions, i.e., the second and other partitions in the partition order. That is, their neighboring sample sets 1184 i It may also include the corresponding partition 102 i Even further, in the case of traversing the partitions in a manner that does not restrict the partition order to consecutive partitions being directly adjacent to each other, any second or subsequently processed partition 102 i Reference sample collection 118 i Not only can it collect the data in the corresponding partition 102 i 1021, depending on whether any partition of block 80 has been processed earlier than partition 1021 according to the partition order. That is, set 180 i may include a partition 102 i More samples than on both sides.
[0057] To summarize briefly, Figure 5 The sequential processing of the partitions 102 / 112 of the block 80 is shown, and only the horizontal partitions are exemplified here, but the same description also applies to the vertical partitions 112. i The vertical pattern 110. For each partition 102 i , the corresponding prediction residual is 120 iis included in the data stream 14. The data 1201 to 1204 together form the prediction residual for the block 80, namely 120. It should be remembered that according to an alternative embodiment of the present application, the transform residual coding may not be used, i.e., the prediction residual 120 of the block 80 may be signaled directly in the spatial domain in the data stream 14, for example. In this case, the data 1201 to 1204 for the corresponding partitions 1021 to 1024 may not be included in the data stream 14 as in Figure 5 , wherein each data portion 120 i Indicates that it is used for the corresponding partition 102 i Instead, in this case, the prediction residual 120 for block 80 may form a field of data 14. In this alternative embodiment, the decoder will process a partition 102 i When collecting information from field 120 for this partition 102 i This process can also be applied when using a fully reversible version of the transform so that quantization can be done in the spatial domain.
[0058] therefore, Figure 5 It is shown that in the encoder and decoder, for each partition 102 i Two tasks are performed, namely: 1) prediction derivation task 122, generating a prediction or predictor for the corresponding partition 1021, i.e., for the corresponding partition 102 i ; and 2) the prediction residual related tasks performed later, namely the prediction residual derivation at the encoder, including quantizing the prediction residual so that it enters the data stream 14, and reconstructing the corresponding partition 102 by combining or correcting the prediction residual and the predictor i In order to obtain the sample for this partition 102 i For predicting the derived task, the reconstructed sample can be used as the partition 102 for subsequent sequential processing in the partition order 126. j The adjacent sample set 118 j storage device.
[0059] Before continuing to further describe the details of the embodiments of the present application, Figure 6 shows that by filling the current processing partition 102 i The process of predictive derivation 122 is performed, wherein it should be recalled that the illustration with respect to horizontal partitions 102 is selected for illustration only, and the same description also applies to vertical partitions 112 . Figure 6 Shows the current processing partition 102 i and its corresponding reconstructed / encoded adjacent sample set 118 i As mentioned above, Figure 5 The above, collection 118 i It may not be limited to being directly adjacent to or adjacent to the partition 102. i However, due to the partitioning, when averaging over all samples in block 80, i Samples and collections 118 i The average distance 130 between the samples 128 of , is lower than if intra prediction of the block 80 were performed in a manner known from, for example, H.264 or HEVC. Figure 5 As described, predictor derivation or filling 122 is performed for each partition 102 using the intra prediction mode associated with block 80. i The mode is performed, where the mode indicates one of a set of available intra-prediction modes. The set may include angle or direction modes, which are in the adjacent sample set 118 i The sample contents are copied to partition 102 i The angles or directions 132 along which the samples 134 are located differ from each other. To perform this replication, the partitions 102 i The prediction of each sample 134 may be based on the set 118 positioned relative to the sample 134 in a direction facing opposite to the direction 132. i For example, the number is derived by the number of adjacent samples 134 in the sample set 118. i The kernel of the interpolation filter is defined for pixel locations between samples 128. For example, Figure 6 Showing a collection of 118 i Three samples 128 are used to calculate the current processed partition 102 i The prediction of a sample 134 in . Due to the relatively small average distance 130, the partition 102 i The number of reference samples 134 for each sample 134 can be kept low. More details will be given below. However, for the sake of completeness, it should be noted that the set of available intra-prediction modes may also include a DC mode, according to which a DC value is assigned to the partition 102. i All samples 134, which are obtained by the adjacent sample set 118 i The DC value is derived by performing an average on the partition 102. In addition, a planar mode may exist, according to which the prediction value for sample 134 is obtained by averaging the DC value in the partition 102. i The linear function of the sample position within is defined as follows, where the adjacent sample 118 i The slope and offset of this linear function are derived based on . In addition, it should be noted that the adjacent set 118 iIt may differ depending on the intra prediction mode selected for block 80 and may, for example, differ in particular between angular mode and non-angular mode DC / Planar.
[0060] For example, in the prior art JEM decoder, 67 intra-prediction modes are available: 65 of them are angular modes and two of them are DC and planar model non-directional structures. The 1D partitioning mode, i.e., the predictor derivation 122 performed for the partitions 102 / 112 outlined above and below, according to which the block 80 is split / divided into partitions along the dimension 104, wherein the resulting partitions extend across the entire width of the block transversely to the dimension 104 and are one sample wide or more than one sample wide along the direction 104, can be combined with any of them or, in a different way, can be implemented using any of them, by outlining the partitioning process further described below using the name "flexible intra-prediction sub-partitioning mode". As already described for Figure 5 As described, all partitions 102 / 112 of a block 80 , such as a coding unit CU, use the same associated intra prediction mode as the block 80 , thereby avoiding excessive overhead in signaling since the prediction mode 116 for the block 80 only needs to be transmitted once in the data stream 14 .
[0061] That is, if the sub-partition is two-dimensional, the prediction 122 can be performed in the same way as the normal case outlined in the JEM decoder. However, if it is a 1-D sub-partition, that is, a line, whether horizontal or vertical, is calculated for the currently processed partition 102 / 112, so that compared to JEM, the prediction process 122 will be adjusted accordingly. In the case of choosing a partition order that traverses the partitions in a way that makes consecutive partitions directly adjacent to each other, the prediction process 122 can correspond to the normal case of JEM, but only to the first line (if the partition is a single sample wide, otherwise it is like in the conventional case), that is, the one closest to the reconstructed / encoded neighborhood. In some cases, both HEVC and JEM allow the use of certain filters applied on the reference sample 128 or on the resulting predictor. This is useful in the general case to better predict samples far away from the reference sample 128 within the prediction block 80 to reduce boundary discontinuities. However, by using a partition that becomes a partition 102 / 112, it is possible and should be the goal to exploit the high correlation between nearby pixels.
[0062] That is, a reduced average distance 130 should be utilized. Excessive smoothing will degrade this quality. Therefore, an encoder or decoder should be able to perform both types of intra prediction, i.e., using Figures 4 to 6The intra prediction of the partition as outlined, and subsequently, the intra filters, i.e. the filters involved in the predictor derivation 122, are either disabled or the number of contributing samples 134 for at least each partition sample 134 is reduced relative to the number of samples that contribute to one sample in the normal case, wherein the intra prediction for the block 80 is performed on the block, or is performed according to HEVC, i.e. decomposed into leaf blocks of a hierarchical quadtree subdivision that subdivides the block 80 into rectangular blocks.
[0063] As is clear from the discussion presented above, in order to perform the prediction residual related task 124, the decoder decodes, for example, from the data stream 14, a transform of the corresponding prediction residual of the current processing partition and performs an inverse transform on this transform, such as a spectral to spatial transform, in order to produce a prediction residual, which is then used to correct the predictor obtained at 122 by combining / adding. The same operation is done in the encoder to keep the prediction loop synchronized with the decoder. In addition, the encoder also performs a transform of the prediction error using the predictor determined for the current processing partition at 122, transforming the prediction error, such as a spatial to spectral transform, followed by quantizing these transform coefficients, and then encoding the transform into the data stream 14 to produce the current processing partition 102. i Corresponding data 120 i As for the transform, the same transform can be used to process all partitions 102 / 112 within the block 80. It can be DCT-II, except in the case of planar mode, for example, where DCT-VII can be used. Therefore, if the intra prediction mode is used to refer to the Figures 4 to 7 If the block 80 is encoded in the partitioning manner outlined and further outlined below, all tools related to transforms and inverse transforms that the encoder and decoder can use for other blocks can be disabled, such as transform skipping, i.e., coding in the spatial domain, EMT (EMT=Explicit Multicore Transform), NSST (NSST=Mode Dependent Non-Separable Secondary Transform) or others, to avoid unnecessary overhead bits. Even alternatively, the transform can be a linear transform, the type of which is selected based on one or more of the intra-prediction mode, the dedicated syntax elements and the predetermined partition order.
[0064] Some description has been given with respect to the partition order 126 for sequentially processing the partitions 102 / 112 of the current processing block 80. It should be emphasized that this embodiment is merely an example, and according to alternative embodiments, the partition order may be static, or may be changed in different ways according to other embodiments for which the examples listed below are directed. Figure 7 Indicate possible partitioning / processing order by inline numbering, using Figure 5 126 in FIG. 12. Here, this order follows the inscribed numbers in ascending order. Figure 5 1 shows an example where the order 126 starts with the partition including the top left pixel / sample 140 of block 80, leading downward to the lowest partition. Similarly, if the partition type is vertical, then the processing order will start with the leftmost partition including the top left pixel / sample, again proceeding to the right. However, this is not the best case for all existing intra prediction modes. This is Figure 7 is exemplified in Figure 7 Also shown are the vertical and horizontal segmentations of block 80 for the diagonal pattern, i.e., the copy angle / direction 132 points to 45° from the lower left to the upper right, and 34, i.e., the copy angle / direction 132 points to -45° from the upper left to the lower right. In the former case, if the segmentation is horizontal, starting from the upper left corner of block 80 will produce a partition whose reconstructed samples will not have any effect on the prediction of subsequent partitions. Therefore, it would be more reasonable to start from 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 order of partitions. However, in the vertical segmentation, this is not necessary, as it can be observed in the aforementioned accompanying drawings. On the other hand, considering that samples enter the horizontal and vertical segmentations from both sides, pattern 34 does not have any of these problems. Therefore, a normal processing order can be adopted in the two segmentations.
[0065] Table 1 shows a complete list of processing order according to intra prediction mode and partition type.
[0066]
[0067] Table I: Processing order according to intra mode and partition type. HOR_DIR and VER_DIR are horizontal and vertical modes respectively, and VDIA_DIR is vertical diagonal mode
[0068] To summarize the embodiments described so far regarding signaling overhead, please refer to Figure 8 . Figure 8 1 shows the transmitted content for block 80 according to an embodiment of the present application. Specifically, there is an intra-prediction mode signaling 116, which signals which intra-prediction mode is to be applied to block 80. Thus, the signaling 116 indicates, for example, one of the angular modes, or one of the available modes, which include angular modes as well as non-angular modes, such as DC and planar. In addition to the signaling 116, there is a split flag 160, which is encoded into the data stream 14 by the encoder and decoded from the block 80 by the decoder, indicating the split mode according to the embodiment of the present application. Figures 4 to 780, or whether it is processed "normally", such as block-wise or in its entirety, i.e., only samples outside of block 80 are used to form reference sample reservoir 118 to predict each sample within block 80. Again, as further described below, this embodiment directly implies alternative embodiments obtained by varying the above-described embodiments. Alternatively, marker 160 may be used in one aspect for Figures 4 to 7 The discussed partitioning process switches between a decomposition of the block 80 using a quadtree subdivision which subdivides the block 80 into transform blocks which are then processed sequentially, but has the disadvantage that the decomposition must be signaled in the data stream 14. If the partitioning marker 160 indicates that the block 80 is processed according to Figure 4 The data stream 14 includes a segmentation dimension flag 114 for the block 80, wherein the segmentation dimension flag 114 is Figure 4 The partitioning type 100 and 110 in question are switched between. And then, for each partition of the block 80 into which the block 80 is subdivided / partitioned, if the partition flag 160 indicates this partitioning option, the data stream 14 comprises signaling / data 1201 having the prediction residual of the corresponding partition encoded therein in the transform domain, such as indicated above.
[0069] Relative to Figure 8 It should be noted that the prediction residual data 1201, 1202, ... may be encoded into the data stream 14 in an order corresponding to the partitioning / coding order 126. As discussed above, the latter may be uniquely determined by the intra-prediction mode indicated by the signaling 116. However, an alternative embodiment would be to at least partially determine the partitioning order 126 based on optional additional signaling in the data stream 14.
[0070] Another alternative to the description proposed herein is the fact that the signaling 116 may be used instead in order to indicate whether the segmentation option is used. In other words, one syntax element may generally take on the responsibility of the signaling of 116 and 160. Such a syntax element will assume one of a range of values, each of which corresponds to a combination of an intra-prediction mode and an indication of whether block segmentation is used. In this case, it would also be possible to provide segmentation options only for a subset of intra-prediction modes. And finally, it should be noted that the segmentation flag 160 may also be conditionally transmitted in the data stream 14 only in the case where the intra-prediction mode indicated by the signaling 116 assumes a certain subset of the available intra-prediction modes.
[0071] Fig. 9 The example shows a partition 102 / 112 i The prediction residual data 120 i possible forms. Fig. 9 In the embodiment of the invention, the prediction residual is encoded in the transform domain into the data stream 14. That is, the encoder generates a transform 182 of the prediction residual by transform 180, wherein the decoder derives the prediction residual and the spatial domain by inverse transform 184. Fig. 9 Transform coefficients 186 of the transform 182 are shown, which correspond to, for example, different frequency spectra f. i A coded block flag CBF 188 may be included that indicates whether the transform 182 includes any significant transform coefficients 186, i.e., whether the transform 182 is all zero. If the CBF 188 is set, the transform 182 is not zero, and the data 120 i A last position (LP) syntax element 190 may be included that indicates 192 the last position along increasing spectral frequency (see axis 194) of significant transform coefficients, i.e., non-zero transform coefficients 186, starting at the lowest or DC coefficient 196. Then, the data 120 i Signaling 198 is included which signals the transform coefficients from 196 to 192 .
[0072] That is to say, Fig. 9 Each partition 102 is shown i / 112 i The prediction residual thereof may be encoded into the data stream 14 via the CBF 188, the LP 190, and the transform coefficient data 198. That is, for a block 80 having n partitions 102 / 112, there will be n CBFs 188 and one LP 190 for each partition having a non-n zero CBF 188, and the transform coefficient data 198 is only for the partition having a non-zero CBF 188 associated therewith. The coefficient data 198 may be encoded in the same manner as a normally processed intra-prediction block, i.e., the partition flag 160 indicates the block 80 of the non-partition option, but with the following exceptions: Each LP 190 requires only one coordinate if the partition is a single sample wide (otherwise it requires two coordinates, as is usually the case), i.e., x indicates a horizontal partition 100, and y indicates a vertical partition 110. However, in the case of a two-dimensional partition, the LP 190 indicates the last position along a scan direction or path, either using an ordering indication or using x and y coordinates. The context of each CBF 188 may be selected as the value of a previously encoded CBF, i.e., the CBF of the previous partition in the partition order 126. In addition, due to the partitioning, the transform coefficient data 198 involve different shapes. That is, the transform 182 also has a different shape. In the case where the partition is a one-dimensional partition, the transform 182 is a one-dimensional transform, such as for Figure 4 That is, the transform 182 may be a W / H long vector of transform coefficients 186, depending on the partitioning type 100 or 110.
[0073] against Figure 8 The flags 160 and 114, and their encoding, should be noted below. The flag 160 indicating whether the block 80 is to be divided into partitions 102 / 112 defines the condition under which the flag 114 is transmitted in the data stream 14 for the block 80. Specifically, if the flag 160 indicates that the partition is to be partitioned into partitions 102 / 112, the flag 114 is present in the data stream 14 and is transmitted to the decoder to signal which type of partition 100 / 110 is to be performed, i.e., horizontal or vertical. Like the flag CBF, the flag 114 can also be encoded using context-dependent entropy coding / decoding. Depending on the intra-prediction mode of the block 80, the context of the flag 114 can have three possibilities: 0 for non-angle mode, 1 for horizontal mode, and 2 for vertical mode.
[0074] Although Fig. 9 CBF 188 may appear once at each partition i of current block 80, but additionally or alternatively, partition 102 of the current block may also appear once at each partition i of the current block. i The transformation 182 can each be divided into one or more sub-blocks, wherein for the data 120 i Each sub-block in the partition 102 signals a coded sub-block flag indicating whether the transform coefficients 186 in the sub-block are all zero or at least one of the coefficients is non-zero. Therefore, only the coefficients 186 in the sub-blocks where the coded sub-block flag signals the presence of non-zero coefficients will be encoded. The other coefficients in the sub-blocks where the coded sub-block flag signals the absence of any non-zero coefficients will be inferred to be zero at the decoder side. Note that since each partition 102 i are transformed individually, the subblocks belonging to one partition differ in the spectral content of the partition transform 182 and in the transform coefficients 186 they comprise outside the transform. i / 112 i has a size in x (partition width) and y (partition height) greater than or equal to 4 samples 140, and therefore, as long as the corresponding partition 102 i / 112 iThe transform 180 has a size greater than or equal to 4 coefficients 186 in both x and y, the subblocks can be arranged in the form of 4×4 coefficient blocks. In the case of a 4×N partition, the subblocks form a row of m 4×4 subblocks, where m*4=N and m is an integer. In the case of an N×4 partition, the subblocks form a column of m 4×4 subblocks, where m*4=N and m is an integer. For wider partitions, an array of 4×4 subblocks arranged in rows and columns may be generated. However, depending on the embodiment, such partitions wider than 4 samples and / or 4 samples wide do not occur. Regardless of whether the occurrence occurs, for narrower partitions, i.e., one of its dimensions is less than 4 samples, i.e., less than 4 samples wide in at least one dimension x or y, it is possible to split the subblock of its transform 180 into subblocks, each of which collects a different group of coefficients of the transform 180, so that the subblock has a minimum number of M coefficients in all possible cases of the current block size. That is, the partitions may be arranged to be as large as the block width N along one dimension, with the splitting occurring along another dimension 104. Thus, the transform 180 for each partition may be of size 1×N, 2×N, N×1, or N×2. In practice, the transform 180 for a certain partition may have a number of coefficients equal to the number of samples in the partition. In the case of a 1×N partition / transform, the subblocks may form a column of m 1×M subblocks, where m*M=N and m is an integer. In the case of an N×1 partition, the subblocks form a row of m M×1 subblocks, where m*M=N and m is an integer. In the case of a 2×N partition / transform, the subblocks may form a column of m 2×(M / 2) subblocks, where m*(M / 2)=N and m is an integer. In the case of an N×2 partition, the subblocks may form a row of m (M / 2)×2 subblocks, where m*(M / 2)=N and m is an integer. This is exemplarily shown in Table 1 for the example case of M=16 for the minimum number of coefficients.
[0075] Table 1: Entropy coding coefficient group size
[0076]
[0077]
[0078] Although Fig. 9 It is shown that each partition i of the current block 80 may have a CBF 188 once, but it may be agreed between the decoder and the encoder that at least one of the n partitions of the current block 80 has a non-zero CBF 188. For this reason, if n is the number of sub-partitions, and the first n-1 sub-partitions in the coding order have produced zero CBFs, then the CBF of the nth partition will be inferred to be 1. Therefore, there is no need to decode it and it is not encoded. Therefore, the data 120n The CBF that will be lost is in data 1201 to 120 n-1 The CBF in is signaled to be zero, and the decoder shall infer this CBF to signal the presence of at least one non-zero coefficient in the transform of the partition.
[0079] With respect to the intra-coding mode signaling 116, the following may hold. The coded mode signaling 116 may be transmitted as a pointer or index to one of a list of most probable modes (MPMs). Next, the MPM list may be determined in the same manner by the encoder and the encoder based on the intra-prediction mode for the previously encoded / decoded intra-prediction block, such as spatially and / or temporally adjacent intra-prediction modes. Thus, the MPM list may represent an appropriate subset of the available / supported intra-prediction modes, i.e., one or more of the aforementioned angular modes and / or DC and planar modes. As mentioned above, there may be intra-prediction blocks using LIP or ISP schemes, such as block 80 in the figure, in addition to those that are intra-predicted in a classical manner, i.e., as a whole block or in units of transform blocks into which such intra-prediction blocks are partitioned using recursive quadtree partitioning. Both types of intra-prediction blocks may support the same set of available / supported intra-prediction modes. While for the latter normal / legacy intra prediction blocks, an MPM flag may be signaled in the data stream - decoded by the decoder and encoded by the encoder - indicating whether the mode for the block is selected from the MPM list, in which case a pointer / index to the MPM list is transmitted - decoded by the decoder and encoded by the encoder - in the case of intra prediction blocks such as block 80 using the LIP or ISP scheme, the MPM flag will be inferred to signal the MPM list restriction. If, for a certain normal / legacy intra prediction block, the MPM flag signals that no MPM mode is used, no index / pointer is present for the block in the data stream, but instead a replacement pointer / index to a remaining list of intra prediction modes is transmitted in the data stream for said block. The remaining list may also be a proper subset of the set of available / supported intra prediction modes, and in particular may be a complementary set of MPM lists compared to the set of available / supported intra prediction modes, i.e. each member of the set of available / supported intra prediction modes will be either a member of an MPM list or a member of the remaining set. The pointer / index to the MPM list can be VLC encoded, while the pointer / index to the remaining set can be encoded using a fixed length code. Of course, even for the intra-prediction block of the LIP or ISP scheme, the MPM flag can be transmitted, and the encoder can freely select any mode from the available / supported intra-prediction mode set, where the MPM flag is set depending on whether the selected mode is in the MPM list or in the remaining set.
[0080] The MPM list may be the same for normal / legacy intra prediction blocks and for ISP / LIP intra prediction blocks, i.e., may be determined in the same way by the encoder and the encoder. However, regardless of whether there are restrictions on the MPM list and whether there is an inference of the MPM flag to signal the use of the MPM list for the ISP / LIP intra prediction block, alternatively, the MPM list for the ISP / LIP intra prediction block may be determined differently to adapt to the statistics of the ISP / LIP mode. For example, it may be changed to exclude the DC intra mode from the MP list and prioritize the horizontal intra mode for ISP horizontal partition, i.e., horizontal direction 104, and prioritize the vertical intra mode for ISP vertical partition, i.e., vertical direction 104. That is, for normal / legacy intra prediction blocks, the MPM list may form an appropriate subset of the set of available / supported intra prediction modes, which are selected and sorted according to a particular concept. For the ISP / LIP intra-prediction block 80, the MPM index may point to an MPM list that depends on the partition direction 104 signaled by the flag 114 and / or forms an appropriate subset of the set of available / supported intra-prediction modes minus the DC mode or minus the DC and planar modes, i.e., an appropriate subset of the angular modes in the set of available / supported intra-prediction modes. The MPM list construction based on previously used intra-prediction modes that were previously encoded / decoded may prefer angular intra-prediction directions with angular modes closer to the horizontal dimension in the case where the flag 114 indicates that the partition direction 104 will be horizontal, and prefer angular intra-prediction directions with angular modes closer to the vertical dimension in the case where the flag 114 indicates that the partition direction 104 will be vertical.
[0081] With respect to the description just presented, please note again that the juxtaposition between normally processed intra-prediction modes and intra-prediction modes processed using partitioning as outlined herein is not required. That is, the encoder and decoder may inevitably process the intra-prediction block 80 using the partitioning presented here, so that, for example, the partitioning flag 160 becomes obsolete. However, if the partitioning option signaled by the flag 160 is available as a decision for the encoder, the following description reveals possibilities as to how the encoder can perform the decision, or discover whether a partitioning mode should be used for a particular block 80, and which type of partitioning, i.e., horizontal or vertical, is best. In order to do this, the encoder should test two options for different intra-prediction modes for each block. The encoder will therefore be slower than if the encoder only had one option, such as the normal option, because more options must be tested. In order to reduce this effect, the partitioning mode signaled by the flag 160 can be tested in a manner that is encoded according to the following strategy, where reference is made to Fig.10 and 11.
[0082] 1) 1D partition mode (or flexible intra prediction sub-partitioning according to the modified embodiment described later) is the last intra mode to be tested.
[0083] 2) Let C min becomes the minimum cost so far when the 1D partition mode (or the flexible intra-prediction sub-partitioning according to the modified embodiment described later) will be tested.
[0084] 3) Select a combination of internal mode and partition type to be tested.
[0085] 4) The block is divided into N partitions, and let i represent the index of each of the partitions, where i=[1,N].
[0086] 5) After each partition is encoded, its sub-cost J i is calculated. Therefore, we know the sum of all available sub-costs after partition i has been encoded, which is The process is illustrated in Fig.10 , which therefore illustrates the accumulation of partition sub-costs to obtain the final cost of the entire block.
[0087] 6) After processing each partition, the expression S i <C min is evaluated. If true, we continue encoding the partition to the end. Otherwise, it is guaranteed that this test pattern will not produce min Lower RD cost, so the process is interrupted and we continue to the next combination of inner mode and partition type.
[0088] 7) If all partitions are coded, then the test mode is the best mode and C min is updated accordingly.
[0089] The advantage of this process is that it avoids processing unnecessary partitions, because it is known that the 1D partitioning (or flexible intra-prediction sub-partitioning according to the modified embodiment explained later) mode will not produce a better cost than the existing minimum cost. In addition, it does not have any disadvantages in terms of RD loss. The whole process is just like Fig.11 As shown in the flowchart.
[0090] Please note again that all of the above embodiments show segmentation performed in one sample wide strip transverse to direction 104, which may alternatively be performed in a manner that results in wider partitions, thereby resulting in two-dimensional partitions, unless certain details in the embodiment descriptions exploit one-dimensional properties. Other alternatives to segmentation are described below.
[0091] In other words, in the above description an embodiment has been described which can be briefly described as including a line-based intra-prediction (LIP) coding mode tool, according to which the intra-predicted W×H block 80 is divided into 1-D partitions 102 / 112 or rows. Each of the resulting rows 102 / 112 is then predicted and a residual signal is generated, which is transformed, quantized and entropy encoded, and finally the coefficients are described as to be transmitted to the decoder. The reconstructed samples of such a row can be used to predict the next row, and so on. The process is repeated until all 1-D partitions within the original block are encoded.
[0092] However, modifications are possible with respect to this LIP concept. It has been discussed previously in Figure 4 As indicated, the embodiments of the present application are not limited to partitions 102 / 112 having a width of one sample along the partitioning / division direction 104. In the embodiments described below, the width along the partitioning direction 104 is defined based on 1) whether the intra-prediction mode is an angular mode or a non-angular mode, and 2) the width of the intra-prediction block along the direction 104.
[0093] 1) W×H (where W and H are assumed to be powers of 2) The block 80 may be partitioned horizontally or vertically (e.g., as indicated by a syntax element 114 transmitted to the decoder) into K equal partitions 102 / 112 of size w×h, whose values are listed in Table II. According to Table II, a block with W=16, H=8, predicted using no-angle intra mode and partitioned vertically (i.e., dimension 104 is vertical), for example, will be partitioned into 4 partitions 102, all of which have size w=16 and h=2. This example is shown in Table II. Fig.12a If the same block 80 is predicted using intra-angular mode, it will be divided into 8 partitions 102, each partition 102 having size w=16 and h=1.
[0094]
[0095] Table II: Values of w, h, and K for Additional Layout Example 1
[0096] 2) W×H (where W and H are assumed to be powers of 2) The block 80 may alternatively be partitioned horizontally or vertically (e.g., as indicated by a syntax element 114 transmitted to the decoder) into K equal partitions of size w×h, where the value of K is not fixed (and thus is transmitted to the decoder using a syntax element), and may range from any power of 2 between 2 and S, where S is the value of the dimension being partitioned (width for a vertical partition and height for a horizontal partition). The values of w and h are obtained as described in Table III.
[0097] variable Vertical division Horizontal division w W / K W h H H / K
[0098] Table III: Values of w and h for Additional Layout Example 2
[0099] Instead, the width of the partitions for block 80 along dimension 104 may be signaled directly.
[0100] 3) W×H (where W and H are assumed to be powers of 2) Block 80 may alternatively be partitioned horizontally or vertically (e.g., as indicated by syntax element 114 transmitted to the decoder) into K partitions (where K depends on W and H) with w i ×h i dimensions, where i = 1, 2, ..., K. If the segmentation is horizontal, let S = H, s i =h i , and if the split is vertical, let S = W, s i =w i The values of S are described in Table IV for different values of S. i The various options for the value of S measure the width of block 80 along dimension 104, and s i The width of partition i is measured along dimension 104 .
[0101]
[0102] Table IV: s for different partition layouts i Value
[0103] The options used by the decoder are either fixed or can be determined implicitly based on existing parameter values at the decoder side.
[0104] 4) W×H (where W and H are assumed to be powers of 2) Block 80 may alternatively be partitioned horizontally or vertically (e.g., as indicated by syntax element 114 transmitted to the decoder) into K partitions (where K depends on W and H) with w i ×h i dimensions, where i = 1, 2, ..., K. If the partition is horizontal, let S = H, s i =h i , and if the division is vertical, let S = W,s i =w i .s i The value of will be determined by a syntax element indicating which of the three options presented in Example 3) will be used to divide the block into sub-partitions.
[0105] Thus, as shown in Examples 1 to 4 above, the partitioning can be performed along a dimension 104 so that the partition is as wide as the predetermined block perpendicular to the predetermined dimension, and the width of the partition measured along the predetermined dimension 104 is selected from at least two different width settings or options. The concept of explicit or implicit signaling can be used to synchronize the selection between the encoder and the decoder. Therefore, the selection makes it possible to change the partition between blocks of the same size and shape, but the overhead associated with the change is kept quite low. For example, the selection can be performed according to the intra-coding mode for the predetermined block, such as depending on whether the intra-coding mode for the predetermined block is an angle mode. The selection can also depend on the index in the data stream for the predetermined block indexing at least two different width settings as shown in Example 4. The partition can be one or more samples wide along the partition dimension. Within a block, the partition width along the partition / predetermined direction can vary. One can be one sample wide, that is, a one-dimensional strip, and the other is more than one sample wide, a two-dimensional domain of samples.
[0106] Furthermore, in the case of some of the LIP concept embodiments presented above, two types of processing orders—referred to as partition orders 126 in the above description—are proposed for each block 80, where the final choice of which one to use depends on the intra-mode of the block 80. However, as already described above, there are alternatives for determining the partition order 126. The processing order 126 indicates in which order the sub-partitions 102 / 112 are to be processed. Possible processing orders 126 include starting with the upper left sub-partition and then continuing in a predetermined order, such as downwards in the case of horizontal partitioning or rightwards in the case of vertical partitioning, or in another case in any other order such as raster scanning to split into partitions. In general, the processing order 126 can be determined by existing parameters available on the decoder side when the corresponding sub-partition is to be decoded / processed. That is, for the decoder, the processing order 126 can be determined in real time, i.e., alternating in predicting the various sub-partitions 102 / 112. Such existing parameters may include the intra-mode, sub-partition index, size of the original block, size of the sub-partition, CBF flag of the current partition, etc. The order 126 may also be signaled directly to the decoder.
[0107] Even for block 80 that is intra-partition predicted using the same partitioning into partitions 102 / 112, the motivation for changing the partition order may stem from the above for Figure 5The concept of changing the order 126 in which the partitions 102 / 112 are processed in order to enable a distribution of prediction accuracy between the various partitions 102 / 112 has been discussed. For example, as exemplified above, when a partition 102 / 112 that is farthest from the neighboring sample set 118 is selected to be processed first according to the partition order 126, this will mean that its internal prediction will be worse than if it would have been processed last according to the partition order 126, because in the latter case the reference used to fill the partition will be located closer, namely at a partition that is adjacent to the partition at its side facing the reference sample set 118. Figure 5 In the case of partition 1024, for example, it is apparent that the intra-prediction result obtained for partition 1024 will result in a larger prediction residual if it is the first one according to the partition order 126 (so that the prediction will be obtained based on neighboring samples outside block 80) than if partition 1024 is processed last according to the partition order 126 (in which case partition 1024 will produce a prediction based on a set of samples covering the immediate neighboring samples relative to partition 1024 and including, for example, samples of partition 1023). However, the opposite is true for the remaining partitions. In the case of partition 1024 being processed first, the prediction residual of partition 1024 is used to reconstruct the neighboring sample set 118 that may be included in any subsequently processed partition according to the partition order 126. i , thus making it possible, for example, to predict Figure 5 In each partition 1021 to 1023 of FIG. 1024, the intra prediction mode for block 80 is used from both sides of the partition. In the case of processing partition 1024, the neighboring sample set 118 i Only in zone 102 i , where i=1...4, one side of the corresponding partition of each. That is, for partitions 1021 to 1023, the situation is exactly the opposite. For the partitions, in the case where partition 1024 is processed first, the prediction residual will be lower than when partition 1024 is processed last. Further, it should be considered what has been explained above, that the order can not only be switched between the two options of traversing the partitions side by side continuously, but also that it is possible to allow further partition orders 126, such as processing every other partition first in a predetermined order, and then processing the remaining partitions in the same order or in the opposite predetermined order. Which option is best can be determined by testing various order options at the encoder side while transmitting corresponding additional signaling for the blocks 80 in the data stream in the order 126, or the order 126 can be selected in the same way at the encoder side and the decoder side depending on the syntax elements transmitted in the data stream for the block 80, or in the same way for neighboring 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 is not the same and varies between these blocks 80.
[0108] Thus, the partition order for processing the partitions of block 80 may be selected from at least two different orders. The concept of explicit or implicit signaling may be used to synchronize the selection between the encoder and the decoder. Thus, the selection is such that when a partition order is applied to a predetermined block, another order may be applied to another block, also encoded using the intra-partition prediction concept, having the same size and shape and being partitioned into partitions in the same manner. Having freedom in the selection of the partition processing order for the encoder, or a partition processing order that depends on other parameters besides size, shape and partitioning, is effective in improving the effectiveness of the intra-partition prediction mode. When collecting the partition processing order for deriving a partition 102 i The reference sample of the predictor is 118 i In a manner that depends on selecting a predetermined partitioning order 126 for a predetermined block from at least two different orders, the effectiveness may be even greater. In particular, as shown, the reference samples 118 collected i In the case of one available or selectable partition order, it may be positioned on two opposite sides of the current partition, and in the case of another available partition order, it may be positioned only on the partition 102. i In the case of partitioning along dimension 104, a "side" may be one of two opposite sides of partition 102. i Facing the sides along the direction, such as the top and bottom sides in the case of the vertical direction 104, and the left and right sides in the case of the horizontal direction, but another segmentation scenario is briefly discussed below, and "side" can be simply defined as facing the reference sample set 118 located outside the block 80 i and facing the reference sample set 118 located inside the block 80. i For example, when one of the at least two different selectable orders may traverse the partitions starting from the partition farthest from the upper left corner of the predetermined block, another of the at least two different selectable orders may traverse the partitions from the partition closest to the upper left corner of the predetermined block.
[0109] Another topic that should be addressed relates to residual coding. As described above, this can be done using transform coding. Each sub-partition 102 / 112 can 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. Therefore, for a block 80 with K sub-partitions 102 / 112, such as a CU, there will be K CBFs 188 and one LP 190 for each partition 102 / 112 with a non-zero CBF. The context used to encode each CBF 188 can depend on the CBF value of the previously encoded sub-partition within the same block - for example, along the order 126. Additionally, another syntax element, not yet mentioned, may be transmitted in the data stream to the decoder to indicate whether the described concept is used on each block, or to indicate, within a range corresponding to the entire data stream or a certain picture or, for example, a segment for a certain picture, whether the partition intra-prediction concept described herein is used on each intra-prediction block 80 within the range, or whether it is signaled that some of them are to be treated as a whole, i.e. as if they were only split into one partition.
[0110] Similarly, it has been described above that each sub-partition can be transformed separately using a transform, thereby generating a transform for each partition 102 / 112 that is not quantized to all zeros. As a transform for a specific partition 102 / 112, a 2-D transform can be used, except in the case where one of the dimensions of the partition 102 / 112 is one, in which case a 1-D transform will be applied. The transform core can be DCT-II or any other transform determined by existing parameters on the decoder side when the sub-partition is to be decoded. For example, the transform can be selected based on a combination of the intra-mode, the sub-partition index and the sub-partition dimension or a subset of the latter parameters. The decoder can also be notified directly with a signal, or differently, for example, in the form of additional syntax elements for all partitions within the block 80 or for each partition 102 / 112 of a block 80, respectively.
[0111] One aspect relates to the aspects already discussed above and is the fact that after quantization in the spatial or some intermediate transform domain by transforming the prediction residuals of each partition in a single partition manner (whose transform coefficients are subsequently quantized), the residuals of the partitions 102 / 112 of the block 80 may be further transformed, albeit lossless or reversible. Thus, the decoder is able to obtain the transform coefficient levels for the transform of the entire block 80, subjecting it to an inverse lossless transform to obtain the prediction residuals for each partition 102 / 112 in the spatial domain or in the intermediate transform domain from the prediction residuals in the spatial domain obtained by re-transforming each partition 102 / 112.
[0112] It should be noted that, according to variations of the above-described embodiment, the partitioning may be performed in a form other than partitioning along dimension 104. Intra-predictive coding using such variations may be given a name such as flexible intra-prediction sub-partitioning (FIPS). Instead of partitioning into slices 102 / 112, the partitioning / partitioning of block 80 may instead result in any rectangular sub-partition of block 80. Flexible intra-prediction sub-partitioning (FIPS) partitions the W×H intra-prediction block 80 into K rectangular sub-partitions of size w. i ×h i non-overlapping sub-partitions of, where i = 1, 2, ..., K. The resulting sub-partition layout is completely compact, which means that the sum of the areas of the sub-partitions is equal to the area of the original block, i.e. Figure 12b An example of such a generalized partitioning of a block 80 is shown, where reference numeral 102 has been reused for the partitioning. In this case, the 16×8 block 80 is divided into K=7 sub-partitions 102, the dimensions of which are defined in Table V.
[0113]
[0114] Table V: Figure 12b The dimensions of the subpartitions depicted in
[0115] So far, the above embodiments have produced the example segmentation just mentioned. For example, Figure 4 Two examples of such a FIPS partitioning of block 80 are shown. However, in this case, all sub-partitions 102 / 112 have the same size. In particular, perpendicular to dimension 104, they have the width of the block, while along dimension 104, they have equal widths, corresponding to a certain fraction of the width of the block along dimension 104. Similar to any of the partitions 102 / 112 described above, for example, each of the generalized sub-partitions 102 generated with FIPS is predicted, and the resulting residual signal is transformed, quantized, and encoded separately. Therefore, its reconstructed values can be used to predict other sub-partitions 102 that have not yet been encoded / decoded. For example, in Figure 12b In the case of block 80 depicted in FIG, subpartition 1 may be predicted first, and then its reconstructed samples may be used to predict subpartitions 2 and 3. The process is repeated until all subpartitions have been encoded / decoded.
[0116] To summarize the FIPS generalization, the partitioning of the intra-prediction block 80 into partitions 102 / 112 may be defined and signaled via the data stream in a manner different from that discussed above, such as, for example, using a recursive multi-tree subdivision of the block 80 into rectangular partitions of different sizes or any other possibility that may define the partitioning. For example, the partitioning may be defined by the derivation of the dimension 104 in the manner discussed above, based on which it is determined whether the partitioning of the block 80 is a horizontal strip 102 or a vertical strip 112, and as far as the lateral width of the strips, i.e. the height of the horizontal strip 102 and the width of the vertical strip 112, respectively, is dependent on the intra-prediction mode. All other possibilities discussed above remain, such as, for example, the possibility of changing the processing / partitioning order 126, which, as described above, may depend on the intra-prediction mode, some syntax elements transmitted in the data stream for the block 80 and the intra-prediction mode parameters or according to some other information transmitted in the data stream, such as information that can be derived from the prediction residual transmitted in the data stream for the corresponding partition.
[0117] Furthermore, as discussed above, the prediction residuals for the corresponding partitions of block 80 are sequentially quantized and encoded into a data stream, partition by partition, in an alternating manner with respect to the generation of intra predictions for said partitions. This has been discussed with reference to Figure 5 And reference 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 respective partitions by combining intra prediction and prediction residuals on the other hand. That is, when decoding a certain block 80, the decoder can decouple the decoding of the prediction residuals 120 for the various partitions from the actual reconstruction process including separate intra predictions for the various partitions. See Figure 5 : The decoder can decode the prediction residuals 120 of all partitions from the data stream 14 according to one processing task, that is, the prediction residuals 1201 to 1204 of the block 80, and the decoder can use the prediction residuals 1201 to 1204 of the partition 102 according to another processing task. i The prediction residuals of 120 i In order to reconstruct the interior of the block 80 partition by partition according to the partition order 126. To this end, in a second task the decoder performs each partition 102 using the intra prediction mode of the block 80. i Then add the prediction residual 120 obtained from the first task i , and then by advancing to the next partition 102 in the partition order 126 i+1The decoder can complete the first task of completely deriving the prediction residual 120 from the data stream 14 before starting the second task of using the prediction residual to perform prediction and prediction correction, or the decoder can perform the two tasks in parallel with the provided measures to ensure that a certain partition 102 i The prediction residuals of 120 i Ready when needed, i.e. when the partition 102 has been obtained using the intra prediction mode of the block i Specifically, during the first task or stage, the decoder may perform all inverse transforms on all non-zero partitions in parallel, i.e., on the signaled prediction residuals 120 i All inverse transforms are performed for all partitions 102 that are non-zero.
[0118] As indicated on the one hand, according to the above embodiment, the residual 120 of partition i i Being quantized in the transform domain, it may happen that the reconstructed samples of the partition may leave, i.e. exceed or go beyond, a certain allowed sample value range. As discussed above, they may serve as members of the reference samples 118j for partition j in order 126. According to an embodiment, these samples are left behind, since they are used for the purpose of predicting partition j in order 126, with the clipping of these samples of block 80 being performed as the final clipping step of the entire block 80, thereby increasing the friendliness of the implementation, for example, on the decoder side. Thus, in the case of partition 102, the clipping of the samples 118j may be performed for the purpose of predicting partition j in order 126. i In the derived predictor, according to the partition order 126 in this partition 102 i The reconstructed sample of the previous partition is one of the one or more reconstructed samples 118 i The reference for the current partition can be used in a state that has not been clipped, wherein after the sequential reconstruction has been performed, in the case of the last reconstruction of the predetermined block, the clipped reconstructed samples are clipped from a state that has not been clipped to a state that is clipped to the allowed sample value range. On the encoder side, clipping is performed only to obtain a reconstructed version of such samples to be used as a prediction reference for the subsequently encoded blocks in order to maintain synchronization with the reference of the decoder. However, this final clean-up type of clipping is only exemplary and can be replaced by performing clipping immediately, that is, clipping the reconstructed samples of partition i before they are used as a reference sample 118j for the subsequent processing of partition j.
[0119] In the embodiments discussed so far, one of them will be described below using a specific example. Specifically, according to an embodiment, the data stream 14 signals whether the intra-coded block 80 is encoded using the LIP or ISP scheme via the partition mode flag 160. The corresponding syntax element in the data stream 14 can be named intra_subpartitions_mode_flag. For example, if the flag is 1, the intra-coded block 80 can be encoded using the LIP or ISP scheme, otherwise the block 80 is encoded using normal intra prediction. For example, as long as one or more conditions are met, the LIP or ISP scheme can be used for the current intra-coded block 80. For example, the one or more conditions may include: for example, the intra-coded block 80 needs to be greater than a certain minimum size in terms of the number of samples of the block 80, and / or the intra-coded block 80 may not be allowed to exceed a certain size, at least in the horizontal and vertical directions, so as not to cause too large a transform size. More specifically, the LSP or ISP mode may only be available when the block 80 is less than or equal to the maximum transform-related size just mentioned in at least one direction, namely the horizontal or vertical direction. Therefore, the intra_subpartitions_mode_flag will only be present in the data stream if the block 80 meets the conditions just mentioned. Otherwise, the decoder will infer that the intra-coded block 80 is normally intra-coded. In the case where the partitioning mode flag, intra_subpartitions_mode_flag, indicates that the intra-coded block 80 is an LSP or ISP coded block, a partition dimension flag 114 may be further signaled for the intra-coded block 80. However, it is possible that the intra_subpartitions_mode_flag is not inevitably explicitly signaled, but is inferred in certain cases to indicate a certain partition dimension 104. For example, in the case where the width of the intra-coded block 80 exceeds the above-mentioned maximum transform size (but its height does not exceed), the partition dimension 104 can be forced to be horizontal, and in the case where the height of the block 80 exceeds the just-mentioned maximum transform size (but its width does not exceed), the dimension 104 can be forced to be vertical. In both cases, intra_subpartitions_split_flag will not be explicitly signaled in the data stream but inferred accordingly by the decoder.The intra coding mode 116 may be signaled in the data stream as described above, ie by using a list of most probable intra prediction modes built at the encoder and decoder side.Although for a LIP or ISP intra-coded block 80, the data stream 14 can signal the intra-coding mode via an MPM list pointer code, the MPM list pointer code inevitably points to a list of possible intra-prediction modes, the MPM list pointer being referred to as, for example, intra_luma_mpm_IDX, which in the case where the intra-coded block is not encoded in a LIP or ISP scheme, the pointer may precede the MPM flag in the data stream 14. If the MPM flag, for example, referred to as intra_luma_mpm_flag, has a specific flag state, instead of a pointer to a list of the most likely intra-prediction modes, a pointer code pointing to the remaining list of intra-prediction modes is signaled in the data stream. However, as described above, this is only an example, and for both normally encoded intra-prediction blocks and LIP or ISP intra-prediction blocks, the set of intra-prediction modes that can be signaled may be the same, i.e., covering all supported intra-prediction modes. For example, intra_luma_mpm_flag may be transmitted for both types of intra-coded blocks. Alternatively, for both types of intra-coded blocks, the pointer codes transmitted for both types of intra-prediction blocks can directly point to a complete list of supported intra-prediction modes without any MPM flags. If the intra-coded block 80 is encoded using the LIP or ISP scheme, the number of partitions 102 / 112 can be defined as follows. In particular, the encoder and decoder can determine the number of partitions based on the size of the block 80. No signal will be spent in the data stream. For small block sizes, the number can be two, otherwise the number of partitions 102 / 112 will be four. The order of partitions for performing intra-partition prediction and prediction residual coding in the data stream can be sequentially guided from the leftmost partition in the case of the horizontal direction n14 and from the top partition along the partition direction 104 to the farthest partition in the case of the vertical partition direction. This will not cost any signal either. As described above, residual transformation can be completed for each partition 102 / 112. That is, each partition can be transformed separately. In contrast, in the case of a normal intra-coded block 80, the number of transforms may depend on the size of the intra-coded block 80, as described below: If the intra-coded block is smaller than the above-mentioned maximum transform size in the horizontal and vertical directions, the residual of the intra-coded block 80 is encoded using one transform, i.e., the residual of the block 80 is completely subjected to one transform. In the case where the maximum transform size is exceeded in the horizontal direction, the intra-coded block 80 is horizontally divided into two halves or a corresponding number of transform blocks, such that the halves or transform blocks meet the maximum transform size, and the residual of the block 80 is subjected to one transform for each half / transform block. The same is true in the case where the block 80 exceeds the maximum transform size in the vertical direction.If the maximum transform size is exceeded in both the vertical and horizontal directions, four or a corresponding number of transforms are used to transform the residual of block 80 in the four quadrants of this block 80, or the residual of the conventional two-dimensional subdivision of the transform block 80 into a corresponding number of transform blocks. In addition, the processing of the normal intra-coded block 80 may deviate from the processing of the LIP or ISP coded intra-coded block 80, because the normal intra-coded block is predicted by the whole block. That is, it is not sub-divided. Further differences may involve the encoding of the transform of the prediction residual for the coding block 80. For each transform, a coded block flag 188, such as tu_cbf_luma, can be transmitted, but for the normal intra-coded block 80, it may be inevitable to encode this flag for each transform within the block 80. In the case where the block 80 is LIP or ISB coded and all previous CBFs of the previous transform are zero, this flag can be inferred to be the one for the last transform of the block 80. In addition, the choice of the size of the sub-block in each transform may differ between the normal intra-coded block 80 on the one hand and the LIP or ISP coded block 80 on the other hand. The details are as described above. However, alternatively, the transform 182 may be subdivided into sub-blocks equally for normal intra-coded blocks and LIP or ISP coded blocks. For example, let log2SbW and log2SbH be the logarithmic pairs of the width and height of these sub-blocks, respectively, and log2TbWidth and log2TbHeight be the width and height of the transform, respectively. Then, the sub-block size may be determined as follows:.
[0120]
[0121]
[0122] The pseudo code described above produces sub-blocks of the sizes listed in Table 1. It may be that, due to the inherent minimum size of the intra-coded block 80 and the non-sub-division of normal intra-coded blocks, the normal intra-coded block 80 only results in sub-blocks of 4×4 coefficients. Finally, it should be noted that the example just outlined can result in LIP or ISP intra-prediction blocks of different sizes, including blocks that are only divided into two partitions 102 / 112, but whether or not such LIP or ISP intra-prediction blocks exist, there are LIP or ISP intra-prediction blocks that are divided into more than two partitions.
[0123] Thus, the above description discloses, among other things, a block-based coding concept for an image 12 that involves signaling an intra-coding mode 116 for a predetermined block 80 of the image in a data stream 14 and partitioning the predetermined block 80 into a number of partitions 102. i / 112 iwherein the partitions of a predetermined block are to be reconstructed according to a predetermined partition order 126 which traverses the partitions sequentially, for a current partition and before continuing to a subsequent partition, by filling the current partition in a manner depending on one or more already reconstructed / coded samples adjacent to the current partition in a manner depending on the intra coding mode, deriving a predictor 122 for the current partition, and by using a prediction residual 120 signaled in the data stream i To correct the predictor 122 to reconstruct the current partition. As described above, the partitioning can be performed along the predetermined dimension 104 so that the partition is as wide as the predetermined block 80 in a direction perpendicular to the predetermined dimension 104, and the width of the partition measured along the predetermined dimension 104 can be selected by the encoder and decoder depending on the data stream, such as depending on the size of the predetermined block, from at least two different width settings, such as by selecting the number of partitions into which the predetermined block is divided, and the division is based on the size of the block dimension or the size of the block along the predetermined dimension. The prediction residual encoding of all partitions can be performed using any of the above-mentioned concepts, especially in terms of context selection and / or coding syntax. In addition, any concept for mode transmission including or excluding MPM list construction can be used.
[0124] Although some aspects have been described in the context of an apparatus, it is apparent that these aspects also represent a description of a corresponding method, wherein a block or device corresponds to a method step or a feature of a method step. Similarly, the aspects described in the context of a method step also represent the description of a corresponding block or item or feature of a corresponding device. Some or all of the method steps can be performed by (or using) hardware devices, such as microprocessors, programmable computers or electronic circuits. In certain embodiments, one or more of the most important method steps can be performed by such devices.
[0125] The data stream of the present invention may be stored on a digital storage medium, or may be transmitted on a transmission medium such as a wireless transmission medium or a wired transmission medium such as the Internet.
[0126] According to the requirements of certain implementations, embodiments of the present invention may be implemented in hardware or software. The implementation may be performed using a digital storage medium, such as a floppy disk, DVD, Blu-ray, CD, ROM, PROM, EPROM, EEPROM or flash memory, which has electronically readable control signals stored thereon, which cooperate (or can cooperate) with a programmable computer system to perform the corresponding method. Therefore, the digital storage medium may be computer readable.
[0127] Some embodiments according to the invention comprise a data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system, such that one of the methods described herein is performed.
[0128] Generally speaking, the embodiments of the present invention can be implemented as a computer program product with a program code, when the computer program product runs on a computer, the program code can be operated to perform one of the methods. The program code can, for example, be stored on a machine readable carrier.
[0129] Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.
[0130] 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.
[0131] Therefore, a further embodiment of the inventive method is a data carrier (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for performing one of the methods described herein. The data carrier, the digital storage medium, or the recorded medium is typically tangible and / or non-transitory.
[0132] A further embodiment of the inventive method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein.The data stream or the sequence of signals may, for example, be configured to be transmitted via a data communication connection, for example via the Internet.
[0133] 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.
[0134] A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
[0135] A further embodiment according to the invention comprises an apparatus or a system configured to transmit (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 or the like. The apparatus or the system may, for example, comprise a file server for transmitting the computer program to the receiver.
[0136] In some embodiments, a programmable logic device (e.g., a field programmable gate array) can be used to perform some or all of the functions in the method described herein. In some embodiments, the field programmable gate array can collaborate with a microprocessor to perform one of the methods described herein. Generally speaking, the method is preferably performed by any hardware device.
[0137] The apparatus described herein may be implemented using a hardware device, or using a computer, or using a combination of a hardware device and a computer.
[0138] The apparatus described herein, or any component of an apparatus described herein, may be implemented at least partially in hardware and / or software.
[0139] The methods described herein may be implemented using a hardware device, or using a computer, or using a combination of a hardware device and a computer.
[0140] The methods described herein, or any component of the apparatus described herein, may be implemented at least partially in hardware and / or software.
[0141] The above embodiments are merely used to illustrate the principles of the present invention. It should be understood that modifications and variations to the arrangements and details described herein will be apparent to those skilled in the art. Therefore, it is intended that the present invention be limited only by the scope of the appended patent claims, and not by the specific details presented by the present embodiment description and explanation.
Claims
1. A method for decoding an image (12) from a data stream (14), the method comprising: decoding a partitioning mode flag of a block (80) of the image (12) from the data stream (14), wherein the block (80) is a leaf block subdivided from a tree root block using recursive multi-tree subdivision; determining an intra-coding mode for the block; In response to determining that the partition mode flag indicates a first partition mode: determining a number of partitions into which the block is divided, wherein a width of the partitions measured along a partition dimension is determined from at least two different width settings using implicit signaling; as well as sequentially reconstructing each partition of the block according to a partition order (126) based on an intra-coding mode of the block; as well as In response to determining that the partition mode flag indicates a second partition mode, reconstructing the block using spatial intra prediction based on the intra coding mode (80), Wherein, reconstructing the block (80) using spatial intra prediction comprises: further subdividing the block (80) into leaf blocks of a hierarchical multi-tree subdivision of the block along horizontal and vertical subdivision leaf block boundaries, and The leaf blocks of the block (80) are sequentially reconstructed according to a leaf block order that sequentially traverses the leaf blocks of the block.
2. The method according to claim 1, wherein: When the partition mode flag indicates the first partition mode, sequentially reconstructing each partition of the block according to a partition order (126), comprising: For the current partition and before subsequent partitioning: deriving a predictor for the current partition based on one or more reconstructed samples adjacent to the current partition using the intra coding mode of the block; and The predictor is combined with a prediction residual for a current partition indicated in the data stream.
3. The method according to claim 2, further comprising: decoding the prediction residual from the data stream in a transform domain; as well as The prediction residual is retransformed into the spatial domain for combination with the predictor.
4. The method according to claim 2, further comprising: decoding the prediction residual from the data stream in a transform domain using the transform for each partition, The transform is selected based on at least one of an intra prediction mode, a dedicated syntax element, or the partition size.
5. The method according to claim 1, further comprising: The partition width is determined based on the intra-coding mode.
6. The method according to claim 1, further comprising: identifying an index associated with the block represented in the data stream, the index indicating the at least two different width settings; as well as The partition width is determined based on the index.
7. The method according to claim 1, further comprising: decoding a partition dimension flag (114) for the block from the data stream, and A determination is made based on the partition dimension flag whether the partition dimension (104) is horizontal or vertical.
8. The method according to claim 7, further comprising: The partition dimension flag (114) is decoded using context dependent entropy decoding, wherein the context is based on the intra coding mode.
9. The method according to claim 8, wherein: When the intra-coding mode is a non-angle mode, the context is a first context, When the intra-coding mode is the horizontal mode, the context is the second context, or When the intra-coding mode is a vertical mode, the context is a third context.
10. The method according to claim 1, further comprising: The partition order (126) is set according to the intra-coding mode.
11. An apparatus for decoding an image (12) from a data stream (14), wherein: The device comprises: The processor is configured as: decoding a partitioning mode flag of a block (80) of the image (12) from the data stream (14), wherein the block (80) is a leaf block subdivided from a tree root block using recursive multi-tree subdivision; determining an intra-coding mode for the block; In response to determining that the partition mode flag indicates a first partition mode: determining a number of partitions into which the block is divided, wherein a width of the partitions measured along a partition dimension is determined from at least two different width settings using implicit signaling; and sequentially reconstructing each partition of the block according to a partition order (126) based on an intra-coding mode of the block; and In response to determining that the partition mode flag indicates a second partition mode, reconstructing the block using spatial intra prediction based on the intra coding mode (80), Wherein, in order to reconstruct the block using spatial intra prediction, the processor is further configured to: further subdividing the block (80) into leaf blocks of a hierarchical multi-tree subdivision of the block along horizontal and vertical subdivision leaf-block boundaries, and The leaf blocks of the block (80) are sequentially reconstructed according to a leaf block order that sequentially traverses the leaf blocks of the block.
12. The device according to claim 11, wherein In order to sequentially reconstruct each partition of the block according to a partition order (126) when the partition mode flag indicates the first partition mode, the processor is further configured to: For the current partition and before subsequent partitioning: Using the intra coding mode of the block, deriving a predictor for the current partition based on one or more reconstructed samples adjacent to the current partition; as well as The predictor is combined with a prediction residual for a current partition indicated in the data stream.
13. The device according to claim 12, wherein: The processor is further configured to: decoding the prediction residual from the data stream in a transform domain; and The prediction residual is retransformed into the spatial domain for combination with the predictor.
14. The device according to claim 12, wherein: The processor is further configured to: decoding the prediction residual from the data stream in a transform domain using the transform for each partition, The transform is selected based on at least one of an intra prediction mode, a dedicated syntax element, or the partition size.
15. The device according to claim 11, wherein The processor is further configured to determine the partition width based on the intra-coding mode.
16. The device according to claim 11, wherein The processor is further configured to: identifying an index associated with the block represented in the data stream, the index indicating at least two different width settings; and The partition width is determined based on the index.
17. The device according to claim 11, wherein: The processor is further configured to: decoding a partition dimension flag (114) for the block from the data stream, and A determination is made based on the partition dimension flag whether the partition dimension (104) is horizontal or vertical.
18. The device according to claim 17, wherein: The processor is further configured to: The partition dimension flag (114) is decoded using context dependent entropy decoding, wherein the context is based on the intra coding mode.
19. The device according to claim 18, wherein: When the intra-coding mode is a non-angle mode, the context is a first context, When the intra-coding mode is the horizontal mode, the context is the second context, or When the intra-coding mode is a vertical mode, the context is a third context.
20. The device according to claim 11, wherein The processor is further configured to set the partition order according to the intra-coding mode (126).
21. A non-transitory computer-readable medium storing instructions which, when executed by a processor of an electronic device, cause the processor to: Decoding a partition mode flag of a block (80) like (12) from a data stream (14), wherein the block (80) is a leaf block subdivided from a tree root block using recursive multi-tree subdivision; determining an intra-coding mode for the block; In response to determining that the partition mode flag indicates a first partition mode: determining a number of partitions into which the block is divided, wherein a width of the partitions measured along a partition dimension is determined from at least two different width settings using implicit signaling; as well as sequentially reconstructing each partition of the block according to a partition order (126) based on an intra-coding mode of the block; as well as In response to determining that the partition mode flag indicates a second partition mode, reconstructing the block using spatial intra prediction based on the intra coding mode (80), Wherein the instructions that, when executed, cause the at least one processor to reconstruct the block (80) using spatial intra prediction include instructions that, when executed, cause the at least one processor to perform the following operations: further subdividing the block (80) into leaf blocks of a hierarchical multi-tree subdivision of the block along horizontal and vertical subdivision leaf block boundaries, and The leaf blocks of the block (80) are sequentially reconstructed according to a leaf block order that sequentially traverses the leaf blocks of the block.
22. The non-transitory computer readable medium of claim 21, wherein: The instructions that when executed cause the at least one processor to sequentially reconstruct each partition of the block according to a partition order (126) when the partition mode flag indicates a first partition mode include instructions that when executed cause the at least one processor to: For the current partition and before subsequent partitioning: Using the intra coding mode of the block, deriving a predictor for the current partition based on one or more reconstructed samples adjacent to the current partition; as well as The predictor is combined with a prediction residual for a current partition indicated in the data stream.
23. The non-transitory computer readable medium of claim 22, further comprising instructions that when executed cause the at least one processor to: decoding the prediction residual from the data stream in a transform domain; and The prediction residual is retransformed into the spatial domain for combination with the predictor.
24. The non-transitory computer readable medium of claim 22, further comprising instructions that, when executed, cause the at least one processor to: decoding the prediction residual from the data stream in a transform domain using the transform for each partition, The transform is selected based on at least one of an intra prediction mode, a dedicated syntax element, or the partition size.
25. The non-transitory computer readable medium of claim 21, further comprising instructions that when executed cause the at least one processor to: determine the partition width based on the intra-encoding mode.
26. The non-transitory computer readable medium of claim 21, further comprising instructions that, when executed, cause the at least one processor to: identifying an index associated with the block represented in the data stream, the index indicating at least two different width settings; and The partition width is determined based on the index.
27. The non-transitory computer readable medium of claim 21, further comprising instructions that, when executed, cause the at least one processor to: decoding a partition dimension flag (114) for the block from the data stream, and A determination is made based on the partition dimension flag whether the partition dimension (104) is horizontal or vertical.
28. The non-transitory computer readable medium of claim 27, further comprising instructions that, when executed, cause the at least one processor to: The partition dimension flag (114) is decoded using context-dependent entropy decoding, wherein: The context is based on the intra-coding mode.
29. The non-transitory computer readable medium of claim 28, wherein: When the intra-coding mode is a non-angle mode, the context is a first context, When the intra-coding mode is the horizontal mode, the context is the second context, or When the intra-coding mode is a vertical mode, the context is a third context.
30. The non-transitory computer readable medium of claim 21, further comprising instructions that when executed cause the at least one processor to: set the partition order according to the intra-encoding mode (126).
31. A method of encoding an image (12) into a data stream (14), the method comprising: encoding a partitioning mode flag of a block (80) of the image (12) into the data stream (14), wherein the block (80) is a leaf block subdivided from a tree root block using recursive multi-tree subdivision; determining an intra-coding mode for the block; In response to determining that the partition mode flag indicates a first partition mode: determining the number of partitions into which the block is to be divided, partitioning the block of the image into the number of partitions, wherein a partition width measured along a partition dimension is determined from at least two different width settings using implicit signaling; and sequentially processing each partition of the block according to a partition order (126) based on the intra-coding mode; and In response to determining that the partition mode flag indicates a second partition mode, processing the block using spatial intra prediction based on the intra coding mode (80), Wherein, processing the block (80) using spatial intra prediction comprises: further subdividing the block (80) into leaf blocks of a hierarchical multi-tree subdivision of the block along horizontal and vertical subdivision leaf block boundaries, and The leaf blocks of the block (80) are processed sequentially according to a leaf block order that sequentially traverses the leaf blocks of the block.
32. An apparatus for encoding an image (12) into a data stream (14), wherein: The device comprises: The processor is configured as: encoding a partitioning mode flag of a block (80) of the image (12) into the data stream (14), wherein the block (80) is a leaf block subdivided from a tree root block using recursive multi-tree subdivision; determining an intra-coding mode for the block; In response to determining that the partition mode flag indicates a first partition mode: determining the number of partitions into which the block is to be divided, partitioning the block of the image into the number of partitions, wherein a partition width measured along a partition dimension is determined from at least two different width settings using implicit signaling; and sequentially processing each partition of the block according to a partition order (126) based on the intra-coding mode; and In response to determining that the partition mode flag indicates a second partition mode, processing the block using spatial intra prediction based on the intra coding mode (80), Wherein, processing the block (80) using spatial intra prediction comprises: further subdividing the block (80) into leaf blocks of a hierarchical multi-tree subdivision of the block along horizontal and vertical subdivision leaf block boundaries, and The leaf blocks of the block (80) are processed sequentially according to a leaf block order that sequentially traverses the leaf blocks of the block.
33. A non-transitory computer-readable medium storing instructions which, when executed by a processor of an electronic device, cause the processor to: encoding a partitioning mode flag of a block (80) of the image (12) into the data stream (14), wherein the block (80) is a leaf block subdivided from a tree root block using recursive multi-tree subdivision; determining an intra-coding mode for the block; In response to determining that the partition mode flag indicates a first partition mode: determining the number of partitions into which the block is to be divided, partitioning the block of the image into the number of partitions, wherein a partition width measured along a partition dimension is determined from at least two different width settings using implicit signaling; and sequentially processing each partition of the block according to a partition order (126) based on the intra-coding mode; and In response to determining that the partition mode flag indicates a second partition mode, processing the block using spatial intra prediction based on the intra coding mode (80), wherein the instructions that, when executed, cause at least one processor to process the block (80) using spatial intra prediction include instructions that, when executed, cause the at least one processor to: further subdividing the block (80) into leaf blocks of a hierarchical multi-tree subdivision of the block along horizontal and vertical subdivision leaf block boundaries, and The leaf blocks of the block (80) are processed sequentially according to a leaf block order that sequentially traverses the leaf blocks of the block.
