Partition-based intra coding concept enabling high efficiency

By dividing the intra prediction block into transform partitions and performing intra prediction and reconstruction of multiple partitions in the same loop, the problem of low intra encoding efficiency in the prior art is solved, and more efficient and flexible encoding is achieved Way.

CN119484810APending Publication Date: 2025-02-18FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411144609.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2019-03-12
Filing Date
2020-03-11
Publication Date
2025-02-18

AI Technical Summary

Technical Problem

The prior art is difficult to effectively improve encoding efficiency in intra-coding, especially in terms of the selection of intra-prediction modes and signaling overhead.

Method used

By dividing the intra prediction block into transform partitions and intra prediction and reconstruction of multiple partitions in the same loop, more flexible and efficient intra encoding is achieved.

Benefits of technology

This method can improve the efficiency and accuracy of intra-frame encoding while maintaining low signaling overhead, and is suitable for various block sizes and partitioning methods.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119484810A_ABST
    Figure CN119484810A_ABST
Patent Text Reader

Abstract

A decoder for block-based decoding of a picture from a data stream is configured to decode an intra coding mode and a partition dimension flag for a predetermined block of the picture, and set a partition dimension to be horizontal or vertical according to the partition dimension flag. The decoder is configured to divide a predetermined block into transform partitions along a predetermined dimension, the transform partitions being as wide as the predetermined block in a direction perpendicular to the predetermined dimension. Further, the decoder is configured to decode a transform of the prediction residual for each transform partition; performing intra-frame prediction on the predetermined block according to one or more reconstructed samples adjacent to the predetermined block in a mode depending on an intra-frame coding mode so as to obtain a predictor of the predetermined block; and reconstructing the predetermined block by correcting the predictor in each transform partition using the transform of the prediction residual decoded for the corresponding transform partition.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the Chinese patent application "Realizing Efficient Partition-Based Intra-Frame Coding Concept" (application number: 202080028297.6) with a filing date of March 11, 2020. Technical Field

[0002] The present application relates to intra-coding concepts for use in block-based codecs, such as hybrid video codecs. Background Art

[0003] Given a block, intra prediction is performed in HEVC by extrapolating the decoded boundary samples of neighboring blocks following certain patterns (i.e., 33 angular modes and DC and planar modes [1]). One intra prediction mode that minimizes the rate-distortion cost is then signaled to the decoder. Although known codecs support many intra prediction modes (IPMs), the intra prediction implemented thereby remains a subject of development to find better intra predictors that lead to higher coding efficiency. This applies not only to HEVC, but also to other block-based codecs that use intra prediction. Finding a set of intra prediction modes that are suitable for efficiently encoding the interior of a block requires taking into account the cost of signaling the intra prediction modes in terms of signaling overhead and the resulting quality of the predictors obtained by these intra prediction modes, due to the fact that more accurate predictors reduce the prediction residuals, thereby reducing the signaling overhead associated with encoding the prediction residuals. In order to keep the signaling overhead associated with intra prediction modes 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 due to the higher average sample distance of samples inside the intra prediction block (i.e. the samples to be predicted) to decoded / encoded samples adjacent to the block (i.e. the reference samples). HEVC alleviates this dilemma somewhat (catch-22) by allowing transform residual blocks to inherit the intra prediction mode of their corresponding coding units, forming leaf blocks with respect to the corresponding coding units into which the coding units are subdivided by multi-tree subdivision. However, this still requires signaling overhead for signaling from the encoder to the decoder the subdivision of individual intra-coded coding units into transform blocks.

[0004] In the newly developed Versatile Video Coding (VVC) standard, the intra sub-partitioning (ISP) coding mode proposes a newly developed intra-frame coding concept, but here the implementation efficiency needs to be improved.

[0005] Therefore, it is currently advantageous to further improve the efficiency of implementing intra-frame coding at comparable coding efficiency. Summary of the invention

[0006] It is therefore an object of the present invention to provide a more efficient concept for intra-frame coding.

[0007] This object is achieved by the subject-matter of the independent claims of the present application.

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

[0009] According to a first aspect of the invention, the inventors of the present application have recognized that one problem encountered when using fine partitioning in conjunction with intra coding is that the number of sub-partitions for each block for which prediction is performed individually should be limited, taking into account the resulting sub-partition size, the required minimum throughput (e.g. 16 samples per cycle) and / or the minimum coding width advance per coding cycle (e.g. a minimum of 4 sample width advance per prediction). These considerations led to the idea of ​​constructing a flag-controlled intra prediction mode / decision for an intra-coded (predetermined) block, which leads to partitioning of the predetermined block in terms of prediction residual transform, and fine partitioning in terms of intra prediction, i.e. whether the predetermined block is intra predicted in a holistic manner (all at once), or whether the transform partition is used for intra prediction in a sequential and partitioned manner using prediction residuals in between, and the correction of the sub-partition just intra-predicted is also used for intra prediction of the next sub-partition, or whether such a transform partition group of predicted sub-partitions can be freely implemented as needed, for example presenting the latter option according to the target block size, for example, to avoid intra prediction resulting in too few samples per performed intra prediction or too few intra prediction width advances. Note that the encoding and decoding of transform partitions can be done independently between transform partitions, i.e. the transform partitions can be encoded / decoded in parallel, thereby not causing any minimum samples per cycle or width advance issues per cycle. This enables the intra-prediction block to be partitioned into partitions with, for example, less than 16 samples, since more than one partition can be intra-predicted and reconstructed in the same cycle. It is advantageous if all sub-partitions encoded or decoded in the same cycle together comprise at least 16 samples. Likewise, according to the variants described herein, the encoding supports many block sizes, and depending on the size of the predetermined intra-prediction block and / or on its width and / or height, the decoder and encoder set the partitioning in terms of prediction to produce one of the following options:

[0010] 1) Global intra prediction of a block, i.e. all (at once) or as a whole (in other words, for example predicting the entire predetermined block at once, or even in other words, predicting all samples within the predetermined block based on neighboring samples located exclusively outside the predetermined block, and processing transform partitions of the predetermined block independently (i.e. performing transform by region within each transform partition)), and / or

[0011] 2) sequential intra prediction in units of transform partitions, which then also serve as predicted sub-partitions (in other words, for example, predicting a transform partition, encoding / decoding the prediction residual of the transform partition, while obtaining reconstructed samples within the transform partition, then using the reconstructed samples obtained for the previous transform partition to predict the next transform partition in a predetermined block, encoding / decoding the prediction residual of the next transform partition, etc.), and / or

[0012] 3) Sequential intra-frame prediction in units of transform partition groups (each transform partition belongs to exactly one partition group) (in other words, for example, predicting a transform partition group (i.e., a prediction sub-partition) based on neighboring samples located exclusively outside the prediction sub-partition, encoding / decoding a prediction residual of the prediction sub-partition, and obtaining reconstructed samples within the prediction sub-partition in units of transform partitions within the prediction sub-partition (i.e., performing transform by region within each transform partition), and then using the reconstructed samples to predict the next transform partition group (i.e., the next prediction sub-partition) in a predetermined block, the reconstructed samples include samples obtained for the previous prediction sub-partition but do not include samples located inside the next prediction sub-partition, encoding / decoding a prediction residual of the next prediction sub-partition in units of transform partitions, and so on).

[0013] Therefore, according to a first aspect of the present application, a decoder for decoding a picture on a block basis from a data stream is configured to decode an intra-frame coding mode of a predetermined block of a picture from a data stream. The decoder is configured to decode a division dimension flag of a predetermined block of a picture from a data stream, and set the division dimension to horizontal or vertical according to the division dimension flag. In other words, the division dimension flag indicates whether the division dimension is horizontal or vertical. The decoder is configured to divide the predetermined block into transform partitions along a predetermined dimension (i.e., along the division dimension), and the transform partition is as wide as the predetermined block in a direction perpendicular to the predetermined dimension. If the division dimension is vertical, the transform partition can be associated with a horizontal block stacked vertically, and if the division dimension is horizontal, the transform partition can be associated with a vertical block arranged side by side horizontally. For each transform partition, the decoder is configured to decode the transform of the prediction residual from the data stream. Furthermore, the decoder is configured to intra-predict the predetermined block based on one or more reconstructed samples adjacent to the predetermined block in a manner that depends on the intra-coding mode to obtain a predictor for the predetermined block, and to reconstruct the predetermined block by correcting the predictor within each transform partition using a transform of a prediction residual decoded for the corresponding transform partition.

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

[0015] According to a second alternative option, the decoder is configured to perform intra-frame prediction of the predictor for each transform partition and, for each transform partition, decode the transform of the prediction residual from the data stream. The decoder is then configured to correct the predictor by using the transform of the prediction residual decoded for the corresponding transform partition to reconstruct the predetermined block. Thus, all predictors are first intra-frame predicted and all transforms of the prediction residual are decoded, and then the predictor within each transform partition is corrected by using the transform of the prediction residual decoded for the corresponding transform partition to reconstruct all transform partitions. Thus, for example, in one step, all predictors are corrected.

[0016] In contrast, according to the first option, the transform partitions are reconstructed one by one. In other words, according to the first option, for the current transform partition, the predictor is intra predicted and corrected, and then for the subsequent transform partition, the new predictor is intra predicted and corrected.

[0017] According to a third alternative option, the decoder is configured to perform intra-frame prediction on the entire predetermined block in one step to obtain a prediction signal (i.e., a predictor), and to divide the prediction signal into predictors, for example, for transform partitions of the predetermined block. According to an embodiment, each predictor is associated with a different transform partition. For example, the transform partitions are processed independently by the decoder. Thus, for example, the decoder is configured to decode the transform of the prediction residual from the data stream for each transform partition, and to correct the predictor by using the transform of the prediction residual decoded for the corresponding transform partition to reconstruct the predetermined block. Alternatively, this is not performed once for the entire block, but for sub-partitions of the predetermined block that can be further divided into transform partitions. In this case, for example, the decoder is configured to perform intra-frame prediction on the sub-partitions of the predetermined block in one step to obtain a prediction signal (i.e., a predictor), and to divide the prediction signal into predictors, for example, for transform partitions of the sub-partitions of the predetermined block.

[0018] According to an embodiment, the decoder is configured to divide the predetermined block into sub-partitions according to the block size, wherein a minimum prediction width of 4 is established to reduce the hardware implementation complexity. The present invention is not limited by the following examples of different partitions performed by the decoder. It is clear that other sub-partitions and / or transform partitions can also be implemented by the decoder.

[0019] 4×4 blocks (Example 1)

[0020] o Horizontal partitioning: one 4×4 PU (Prediction Unit) and four independent 4×1 TUs (Transform Units).

[0021] o Vertical partitioning: one 4×4 PU and four independent 1×4 TUs. In other words, predict the entire 4×4 block at once and then divide it into four transform partitions to be processed independently.

[0022] 8×4 blocks (Example 2)

[0023] o Horizontal partition: two 8×2 PUs and four 8×1 TUs. The second PU is predicted using the reconstructed samples of the second TU.

[0024] o Vertical partitioning: two 4x4 PUs and four 2x4 TUs. The second PU is predicted using the reconstructed samples of the second TU. In other words, the 8x4 block is divided into two sub-partitions (i.e., PUs), and each sub-partition is divided into two transform partitions for independent processing.

[0025] 4×8 blocks (Example 3)

[0026] o Horizontal partition: two 4×4 PUs and four 4×2 TUs. The second PU is predicted using the reconstructed samples of the second TU.

[0027] o Vertical split: one 4×8 PU and four independent 1×8 TUs.

[0028] In other words, when partitioned horizontally, the 4×8 block is divided into two sub-partitions (i.e., PUs), and each sub-partition is divided into two transform partitions for independent processing. When partitioned vertically, the entire 4×8 block is predicted at once and then divided into four transform partitions for independent processing.

[0029] 4×8 blocks (Example 3'; alternative to Example 3)

[0030] o Horizontal partitioning (no modification compared to the process of sub-partitioning in terms of prediction and transform residual coding / decoding): Two 4x4 PUs are used, which together form two 4x4 TUs. The reconstructed samples of the first PU are used to predict the second PU.

[0031] o Vertical Split (modified): one 4×8 PU and two independent 2×8 TUs.

[0032] In other words, when partitioned horizontally, the 4×8 block is divided into two sub-partitions (i.e., PUs), each of which eventually becomes a transform partition, and when partitioned vertically, the entire 4×8 block is predicted at once and then divided into two transform partitions for independent processing.

[0033] 4×M blocks (Example 4)

[0034] The entire 4×M block is predicted at once and then divided into four 1×M transform partitions to be processed independently.

[0035] 4×M blocks (Example 4'; where M>8)

[0036] oHorizontal partitioning (no modification compared to subpartitioning in terms of prediction and transform residual encoding / decoding): 4×M blocks are predicted with four 4×(M / 4) PUs, each of which is simultaneously one of the four transform partitions

[0037] o Vertical partitioning: predict the entire 4×M block at once, then divide it into four 1×M transform partitions to be processed independently.

[0038] 8×N blocks (Example 5)

[0039] The 8xN block is divided into two 4xN sub-partitions, which can be further divided into four 1xN transform partitions.

[0040] 8×N blocks (Example 5'; where N>4)

[0041] o Horizontal partitioning (no modification compared to the processing of subpartitioning in terms of prediction and transform residual encoding / decoding): Divide the 8×N block into four 8×(N / 4) subpartitions (for prediction and transform residual encoding / decoding).

[0042] o Vertical partitioning: Divide the 8xN block into two 4xN partitions (for prediction), which can be further divided into two 2xN transform partitions.

[0043] The examples outlined above relate to different block sizes and can be applied to the codec according to the corresponding embodiment (i.e., to the decoder and the encoder, respectively) individually, completely, or in combination of two or more of them. It can be seen that, according to the embodiment, for at least one predetermined block size (e.g., compare examples 3 to 5), the decision on how to select among the above options 1 to 3 (two of 1 to 3) can be different depending on the partition direction: while one option is selected for horizontal partitioning, such as option 2, in which each TU is also a PU, and the number of PUs and the number of TUs are therefore the same, a different option can be selected for vertical partitioning, such as option 1, in which the entire block acts as a PU, but is divided into several TUs, and the number of PUs and the number of TUs are therefore different, or option 3, in which the predetermined block is divided into PUs, each PU is divided into TUs, and the number of PUs and the number of TUs are therefore different. Additionally or alternatively, for another block size (compare example 2), the decision can ultimately be the same option regardless of the partition direction. Therefore, the selection of the dependency on the partition direction among the options just mentioned can therefore avoid the block size direction already mentioned, but naturally, it can be applied without the latter.

[0044] An embodiment according to the present invention relates to an encoder for encoding a picture into a data stream based on a block, and is configured to encode an intra-frame coding mode of a predetermined block of a picture into the data stream. The encoder is configured to encode a division dimension flag of a predetermined block of a picture into the data stream, and the division dimension flag signals that the division dimension will be set to horizontal or vertical. In other words, the division dimension flag indicates whether the division dimension is horizontal or vertical. The encoder is configured to divide the predetermined block into transform partitions along a predetermined dimension (i.e., along the division dimension), and the transform partition is as wide as the predetermined block in a direction perpendicular to the predetermined dimension. If the division dimension is vertical, the transform partition can be associated with a horizontal block stacked vertically, and if the division dimension is horizontal, the transform partition can be associated with a vertical block arranged side by side horizontally. In addition, the encoder is configured to perform intra-frame prediction on the predetermined block according to one or more reconstructed samples adjacent to the predetermined block in a manner depending on the intra-frame coding mode to obtain a predictor of the predetermined block. For each transform partition, the encoder is configured to encode a transform of the prediction residual into the data stream such that a predetermined block can be reconstructed by correcting the predictor within each transform partition using the transform of the prediction residual encoded for the corresponding transform partition.

[0045] The data stream generated by the encoder as above and the method performed by any encoder and decoder described herein and the method performed by any encoder described herein is based on the same consideration as the decoder as described above. By the way, these methods can be completed with all features and functions, which are also described about decoder and / or encoder. BRIEF DESCRIPTION OF THE DRAWINGS

[0046] The preferred embodiments of the present application are described below with reference to the accompanying drawings, in which:

[0047] Figure 1 A block diagram of an apparatus for predictive encoding of a picture is shown as an example of an encoder capable of implementing the ISP concept;

[0048] Figure 2 A block diagram of an apparatus for predictive decoding of a picture is shown, suitable for Figure 1 , as an example of a decoder capable of implementing the ISP concept;

[0049] Figure 3 A schematic diagram illustrating an example of a relationship between a prediction residual signal, a prediction signal and a reconstructed signal is shown in order to illustrate the possibility of setting subdivisions for coding mode selection, transform selection and transform performance, respectively;

[0050] Figure 4A schematic diagram illustrating the partitioning process of an intra-frame coding block according to an ISP variant is shown, wherein the ISP variant allows selection between different partitioning dimensions (i.e., horizontal partitioning and vertical partitioning);

[0051] Figure 5 A schematic diagram illustrating sequential processing of partitions of an ISP coding block is shown;

[0052] Figure 6 A schematic diagram illustrating the prediction derivation of the population process of a partition is shown;

[0053] Figure 7 An example of an ISP block partitioned according to a horizontal partitioning mode and a vertical partitioning mode, respectively, and having two different intra prediction modes associated therewith, respectively, is illustrated in order to illustrate the possibility of presenting a relevant determination of a partitioning order on an intra prediction mode associated with an intra prediction block;

[0054] Figure 8 A schematic diagram illustrating possible signaling of an intra-prediction block 80 processed using a partitioning option is shown;

[0055] Fig. 9 shows a schematic diagram illustrating a possible way of sending prediction residuals for a partition;

[0056] Fig.10 shows a schematic diagram illustrating the determination of a partial sum of coding costs associated with partitioning of intra prediction modes in order to be able to abort the test when it is clear that it will not become better than any normal intra prediction mode; and

[0057] Fig.11 A flow chart showing the mode or operation of an encoder for performing a partition mode test; and

[0058] Fig.12 A schematic diagram illustrating a decoder for block-based decoding of a picture implementing the ISP concept of the present invention is shown;

[0059] Fig.13 shows a schematic diagram illustrating the use of a last position syntax element;

[0060] Fig.14 A schematic diagram illustrating an encoder for block-based decoding of a picture implementing the ISP concept of the present invention is shown;

[0061] Figures 15a to 15d A schematic diagram illustrating intra prediction of each transform partition of a vertically partitioned 4×4 block is shown;

[0062] Figures 16a to 16d A schematic diagram illustrating intra prediction of individual transform partitions of a horizontally partitioned 4×4 block is shown;

[0063] Fig.17 A schematic diagram illustrating intra prediction of each transform partition of a vertically partitioned 4×8 block is shown;

[0064] Fig.18 A schematic diagram illustrating intra prediction of individual transform partitions of a horizontally partitioned 8×4 block is shown;

[0065] Fig.19a shows the vertical partitioning of 4×M blocks (M>8) in the ISP design in VVC draft 5 (left) and the proposed version (right); and

[0066] Fig.19b Shown is the vertical partitioning of an 8×N block (N>4) in the ISP design in VVC draft 5 (left) and the proposed version (right);

[0067] The drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention. DETAILED DESCRIPTION

[0068] The following description of the drawings starts with the presentation of a description of an encoder and a decoder of a block-based prediction codec for encoding pictures of a video in order to form an example of a coding framework in which an embodiment of an intra-frame prediction codec may be built. Figures 1 to 3 The following describes the variants of the ISP concept and discusses how to implement these concepts into Figure 1 The encoder and Figure 2 The decoder description is presented together, although using Figure 4 and Figure 4 The concept described in the following figure can also be used to form Figure 1 The encoder and Figure 2 The encoder and decoder operate under the coding framework of the decoder. Later, an embodiment using ISP but with improved implementation efficiency will be described. In addition, an embodiment using a variant of partition-based intra-frame coding is described.

[0069] Figure 1 An apparatus is shown for predictive encoding of a picture 12 into a data stream 14, exemplarily using transform-based residual coding. The apparatus or encoder is indicated with reference numeral 10. Figure 2 A corresponding decoder 20 is shown, i.e. an apparatus 20 configured to predictively decode a picture 12' from a data stream 14 also using transform-based residual decoding, wherein a prime sign has been used to indicate that the picture 12' reconstructed by the decoder 20 deviates from the picture 12 originally encoded by the apparatus 10 in terms of coding losses introduced by quantization of the prediction residual signal. Figure 1 and Figure 2Transform-based prediction residual coding is used illustratively, although the embodiments of the present application are not limited to such prediction residual coding. Figure 1 and Figure 2 The same is true for the other details of the description, which will be outlined below.

[0070] The encoder 10 is configured to perform a spatial to spectral transform on the prediction residual signal and encode the prediction residual signal obtained thereby into the 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 transform on the prediction residual signal obtained thereby.

[0071] Internally, the encoder 10 may include a prediction residual signal former 22, which generates a prediction residual 24 in order to measure the deviation of the prediction signal 26 from the original signal (i.e., the picture 12). The prediction residual signal former 22 may, for example, be a subtractor, which subtracts the prediction signal from the original signal (i.e., the picture 12). The encoder 10 then also includes a transformer 28, which performs a spatial to spectral transform on the prediction residual signal 24 to obtain a spectral domain prediction residual signal 24', which is then quantized by a quantizer 32 also included in the encoder 10. The thus quantized prediction residual signal 24" is encoded into the bitstream 14. To this end, the encoder 10 may optionally include an entropy encoder 34, which entropy encodes the transformed and quantized prediction residual signal into the data stream 14. The prediction residual 24 is generated by a prediction stage 36 of the encoder 10 based on the prediction residual signal 24" encoded into the data stream 14 and decodable from the data stream 14. To this end, as Figure 1 As shown, the prediction stage 36 may internally include an inverse quantizer 38, which performs inverse quantization on the prediction residual signal 24" to obtain a spectral domain prediction residual signal 24"' corresponding to the signal 24' except for the quantization loss. The prediction stage 36 then includes an inverse transformer 40, which performs an inverse transformation on the latter prediction residual signal 24"', i.e., a spectrum-to-spatial transformation, to obtain a prediction residual signal 24"" corresponding to the original prediction residual signal 24 except for the quantization loss. Then, the combiner 42 of the prediction stage 36 recombine the prediction signal 26 and the prediction residual signal 24"" by, for example, addition, to obtain a reconstructed signal 46, i.e., a reconstruction of the original signal 12. The reconstructed signal 46 may correspond to the signal 12'. Then, the prediction module 44 of the prediction stage 36 generates the prediction signal 26 based on the signal 46 by using, for example, spatial prediction (i.e., intra-frame prediction) and / or temporal prediction (i.e., inter-frame prediction).

[0072] 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 the quantized spectral domain prediction residual signal 24″ from the data stream, whereupon the inverse quantizer 52, inverse transformer 54, combiner 56 and prediction module 58 interconnected and cooperating in the manner described above with reference to the modules of the prediction stage 36 recover the reconstructed signal based on the prediction residual signal 24″, such that Figure 2 As shown, the output of combiner 56 produces a reconstructed signal, picture 12'.

[0073] Although not specifically described above, it is easy to understand that the encoder 10 can set some encoding parameters, including, for example, prediction modes, motion parameters, etc., according to some optimization schemes, such as in a manner to optimize some rate-distortion criteria. For example, the encoder 10 and the decoder 20 and the corresponding modules 44 and 58 can support different prediction modes, such as intra-frame coding mode and inter-frame coding mode, respectively. The granularity at which the encoder and the decoder switch between these prediction mode types can correspond to the subdivision of the pictures 12 and 12' into coding segments or coding blocks, respectively. For example, in units of these coding segments, the pictures can be subdivided into intra-frame coding blocks and inter-frame coding blocks. As outlined in more detail below, the intra-frame coding blocks are predicted based on the spatially encoded / decoded neighborhoods of each block. There can be several intra-frame coding modes, including directional or angular intra-frame coding modes, and the intra-frame coding mode is selected for each intra-frame coded segment, according to which the sample values ​​of the neighborhood are extrapolated into the corresponding intra-frame coded segment along a direction specific to each directional intra-frame coding mode to fill each segment. The intra coding mode may also, for example, comprise one or more other modes, such as a DC coding mode and / or a plane intra coding mode, according to which the prediction of the respective intra coding block assigns a DC value to all samples within the respective intra coding segment, according to which the prediction of the respective block is approximated or determined as a spatial distribution of sample values ​​at sample positions of the respective intra coding block described by a two-dimensional linear function, wherein the slope and offset of the plane defined by the two-dimensional linear function are derived based on neighboring samples. In contrast, inter coding blocks may, for example, be predicted temporally. For inter coding blocks, a motion vector may be signaled in the data stream, the motion vector indicating the spatial offset of a portion of a previously coded picture of the video to which the picture 12 belongs, at which position the previously coded / decoded picture is sampled in order to obtain a prediction signal for the respective inter coding block. This means that, in addition to the residual signal encoding comprised by the data stream 14, such as the entropy encoded transform coefficient levels representing the quantized spectral domain prediction residual signal 24", the data stream 14 may encode therein coding mode parameters for assigning coding modes to individual blocks, prediction parameters for some blocks (e.g. motion parameters for inter-frame coded segments), and optionally other parameters (e.g. parameters for controlling and signaling the subdivision of the pictures 12 and 12', respectively, into segments). The decoder 20 uses these parameters to subdivide the pictures in the same way as the encoder, assign the same prediction modes to the segments, and perform the same prediction to produce the same prediction signals.

[0074] Figure 3The relationship between the reconstructed signal, i.e. the reconstructed picture 12', on the one hand, and the combination of the prediction residual signal 24"" and the prediction signal 26 signaled in the data stream on the other hand is illustrated. As mentioned above, the combination may be additive. The prediction signal 26 is Figure 3 In FIG. 1 , it is shown that the picture region is subdivided into intra-frame coding blocks schematically indicated by hatching and inter-frame coding blocks schematically indicated by non-hatching. The subdivision may be any subdivision, such as a regular subdivision of the picture region into a plurality of rows and columns of blocks or blocks, or a multi-tree subdivision of the picture 12 into leaf blocks of different sizes, such as a quadtree subdivision into blocks, etc., wherein in Figure 3 A mixture of these is shown in , where the picture region is first subdivided into multiple rows and columns of tree root blocks, and then the multiple rows and columns of tree root blocks are further subdivided according to a recursive multi-tree subdivision. Similarly, the data stream 14 may be encoded with an intra-coding mode for an intra-coded block 80, and one of several supported intra-coding modes is assigned to the corresponding intra-coded block 80. Further details are described below. For the inter-coded block 82, one or more motion parameters may be encoded in the data stream 14. In general, the inter-coded block 82 is not limited to being encoded in time. Alternatively, the inter-coded block 82 can be any block predicted from a previously encoded part other than the current picture 12 itself (for example, a previously encoded picture of the video to which the picture 12 belongs, or in the case where the encoder and decoder are scalable encoders and decoders, respectively, a picture of another view or lower layer). Figure 3 The prediction residual signal 24"" in is also shown to subdivide the picture 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 respectively subdivide the picture 12 and the picture 12' into blocks using two different subdivisions, namely one subdivision into coding blocks 80 and 82 respectively, and another subdivision into blocks 84. The two subdivisions may be the same, that is, each coding block 80 and 82 can also form a transform block 84, but Figure 3The following situation is shown, in which, for example, the subdivision into a transform block 84 forms an extension of the subdivision into coding blocks 80, 82, so that any border between two blocks of blocks 80 and 82 overlaps a border between two blocks 84, or in other words, each block 80 / 82 either coincides with one of the transform blocks 84 or with a cluster of transform blocks 84. However, the subdivision can also be determined or selected independently of each other, so that the transform block 84 can alternatively cross the block border between blocks 80 / 82. As far as the subdivision into the transform block 84 is concerned, similar statements are therefore correct as those proposed with respect to the subdivision into blocks 80, 82, i.e. the block 84 can be the result of a regular subdivision of the picture area into blocks / multiple blocks (arranged in rows and columns), the result of a recursive multi-tree subdivision of the picture area, or a combination thereof or any other type of blockation. By the way, it should be noted that the blocks 80, 82 and 84 are not limited to square, rectangular or any other shape.

[0075] Figure 3 It is illustrated that the combination of the prediction signal 26 and the prediction residual signal 24"" directly produces the reconstructed signal 12'. However, it should be noted that according to alternative embodiments more than one prediction signal 26 may be combined with the prediction residual signal 24"" to produce the picture 12'.

[0076] exist Figure 3 In the present invention, the transform segment 84 shall have the following meanings. The transformer 28 and the inverse transformer 54 perform their transforms in units of these transform segments 84. For example, many codecs use some kind of DST or DCT for all transform blocks 84. Some codecs allow skipping of transforms, so that for some transform segments 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 such a way that they support several transforms. For example, the transforms supported by the encoder 10 and the decoder 20 may include:

[0077] оDCT-II (or DCT-III), where DCT stands for Discrete Cosine Transform

[0078] оDST-IV, where DST stands for discrete sine transform

[0079] оDCT-IV

[0080] оDST-VII

[0081] оIdentity Transformation (IT)

[0082] Naturally, the transformer 28 should support all forward transform versions of these transforms, while the decoder 20 or inverse transformer 54 should support their corresponding backward or inverse versions:

[0083] o Inverse DCT-II (or Inverse DCT-III)

[0084] о Inverse DST-IV

[0085] о Inverse DCT-IV

[0086] оInverse DST-VII

[0087] оIdentity Transformation (IT)

[0088] 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 only include transforms such as one spectral to spatial transform or a spatial to spectral transform.

[0089] As mentioned above, it has been presented Figures 1 to 3 As an example, the intra-frame prediction concept described further below may be implemented. In this regard, Figure 1 The encoder and Figure 2 The decoders respectively represent possible implementations of the encoder and decoder described below. As will be outlined in more detail below, the embodiments for intra-frame prediction according to the present application explained later are built into Figure 1 The encoder and Figure 2 When in the decoder, Figure 1 The encoder and Figure 2 The decoder supports at least one option to process the intra prediction block 80 in a manner outlined in more detail below. Therefore, the embodiments described below refer to Figure 1 The encoder 10 is equivalent to the encoder, Figure 1 The encoder 10 processes the intra-coded block 80 in a manner outlined in more detail below, and is also applicable to Figure 2 The decoder, Figure 2 The decoder of thus 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 Figure 2 However, the encoder according to the embodiment of the present application can use the concept outlined in more detail below to perform block-based encoding of picture 12, and is similar to the following aspects, for example: Figure 1 The encoder is different: it is not a video encoder, does not support inter-frame prediction, or is encoded with Figure 3 The subdivision into blocks 80 may be performed in different ways, or, depending on the embodiment, even if the encoder does not use transform prediction residual coding when encoding the prediction residual, for example, instead, directly in the spatial domain. Similarly, a decoder according to an embodiment of the present application may perform block-based decoding of a picture 12' from a data stream 14 using the intra-frame prediction coding concept further outlined below, but may be different from the following aspects, for example Figure 2 The decoder 20 is different: it is not a video decoder but a still picture decoder, does not support intra-frame prediction, or uses the same frame as the reference frame. Figure 3 The described approaches subdivide the picture 12 ′ into blocks in different ways and / or derive the prediction residual from the data stream 14 not in the transform domain but in the spatial domain.

[0090] As mentioned above, the following description first focuses on the description of intra prediction based on ISP. According to ISP intra prediction, it is allowed to convert intra prediction blocks (such as Figure 4 The block 80 in the intra-frame is divided into one-dimensional horizontal partitions or one-dimensional vertical partitions. The availability of processing blocks in this way can be provided for intra-frame prediction blocks 80 of any size, or it can be limited to blocks 80 of block sizes within a predefined range, such as blocks larger than a certain size. "One-dimensional" refers to the fact that when it comes to partitions that are the result of a partition, the partition is only one sample wide along the partitioning dimension. However, the one-dimensionality of the partitioning pattern discussed in this article refers to the fact that the partitioning occurs along a certain dimension, and the resulting partitions are similar to strips that extend completely in the block along a direction transverse to the partitioning direction. See, for example Figure 4 , Figure 4 On the left side, an intra-prediction block 80 is shown, i.e., a block to be decoded or a block to be encoded. Its size is W×H. That is, it is a block of size W×H, where H and W are the height and width of the block 80 measured in samples, respectively. Figure 4 There are two available splitting or partitioning options, namely horizontal splitting 100, according to which the block 80 is split or partitioned into a plurality of partitions 1021, 1022, 1023 and 1024 along a vertical axis (i.e., partitioning dimension 104). Figure 4 , which is an example used in the following description, as indicated by the double-headed arrow 106, each partition 1021 to 1024 is one sample wide, so that the number of partitions 1021 to 1024 obtained from block 80 is equal to H, that is, the height of block 80 in units of samples 108 of block 80, but it should be clear that the encoder and the decoder can also perform the division according to different ways agreed between the encoder and the decoder, for example, the partitions 1021 to 1024 can be divided into a predefined number of partitions 1021 to 1024. i The partitioning of the blocks 80 along the dimension 104 is completed in a manner such that the predefined number is greater than two, or a mixture thereof, and the size of the blocks 80 is evenly distributed to the predefined number of partitions along the partitioning dimension.

[0091] Figure 4 Another encoding option depicted in FIG. 8 and indicated by reference numeral 110 corresponds to dividing the block 80 into vertical partitions 1121, 1122, ... 1128. That is, according to option 110, the block 80 is divided into partitions 112 along the horizontal axis (i.e., the horizontal partitioning dimension 104).i In the case of option 100, each partition 102 i The same width as block 80, i.e., the width W of the block, and partition 112 i Assuming the height H of block 80, i.e., having a height H. In summary, in a manner similar to the description of option 100, vertical partitioning 110 can partition block 80 into a number W of partitions 112 i , W represents the horizontal width of block 80 measured in units of samples 108, so that each partition 112 i In the horizontal direction it is one sample wide, however, the division according to option 110 may also be performed in another way agreed between the encoder and the decoder.

[0092] 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 divide the block 80 into W H×1 partitions 112 according to the vertical partition option 110 i , and the segmentation option selected by the encoder for the block 80 may be signaled in the data stream 14 for the block 80, for example by a corresponding partitioning 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 use only one of the options 100 and 110 by default without the flag 114 in the data stream. Further, in other examples, the flag 114 may be transmitted in the data stream 80 depending on the intra-coding mode 116 signaled from the encoder to the decoder in the data stream 14 for the block 80. As outlined above, the intra-coding mode may indicate one of a set of available / supported intra-coding modes, the set 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 alternative embodiments not further discussed below, the flag 114 may be transmitted in the data stream 14 in a conditional manner depending on the intra-coding mode 116. According to the embodiment described below, for block 80, the flag 114 is present in the data stream 14 independently of the intra-coding mode 116 signaled in the data stream 14 for block 80. However, there may be a dependency on the flag switching between the partitioning process of the intra-coded block 80 just discussed and the different ways of processing the intra-coding of the block 80 to be outlined below.

[0093] According to the ISP, 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 divided, and in this manner, the process of intra prediction loops on the partitions 102 / 112 into which the block 80 has been divided. Figure 5 The intra-frame prediction block 80 partitioned according to option 100 is shown as an example. Each partition 1021 to 1024 of the block 80 is predicted, that is, the corresponding partition 102 is derived. i The encoder performs the determination of the prediction residual as a prediction residual related task, including, for example, transformation and quantization, and the use of the prediction residual to correct the predictor, i.e., in order to keep the prediction loop synchronized with the decoder by filling the decoded picture buffer in the encoder with the reconstruction of the picture. The tasks just mentioned, i.e., prediction and residual processing, are performed for partitions 1021 to 1024 individually and sequentially between 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 partitioning order is exemplarily shown using three arrows 126 in FIG.

[0094] Figure 5 It shows that the partition including the upper leftmost pixel of block 80 should be processed first before continuing to process the adjacent partition 1022 immediately below, etc., corresponding to Figure 5 The indexes of the partitions 1021 to 1024 are assigned in this order, but this order is merely an example and, as will become clear from the following description, the partition order can be selected in a manner that depends on other settings (such as the intra-frame coding mode and / or the size of the block 80, the former relevance being discussed below).

[0095] In the example discussed further below, the partition order 126 is such that immediately succeeding partitions are adjacent to each other in a manner that varies only between those orders that traverse the partitions 102 / 112, such that in the case of the partition type 100, the partition order is from top to bottom or from bottom to top, respectively, and in the case of the partition type 110, the partition order is 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 manner that the partitions are scanned in the adjacent order just outlined in two scans, and in the first scan, from top to bottom, from bottom to top, from left to right, or from right to left (as applicable), every other partition is processed once, and then the remaining partitions between them are processed in the same sequential direction or in the opposite sequential direction.

[0096] in any case, Figure 5 It is shown that the first partition 1021 is to be processed first and is the partition currently being processed. For the first partition, exemplified here as 1021, a set 1181 of neighboring samples for forming a predictor of the partition 1021 can be selected based only on samples located outside the border of the block 80, because when processing the first partition of the block 80, the samples of the block 80 have not yet been processed, i.e., 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 sent in the data stream. They belong to previously encoded / decoded picture blocks and can be inter-coded or intra-coded or any other coded blocks. The number and exact position of the samples of the set 1181 of neighboring samples for forming the predictor of the first partition 1021 also depends on the intra-coding mode assigned to the block 80. The intra-coding mode is used jointly, or similarly, for processing each partition of the block 80, as will be discussed below. To complete the processing of the first partition 1021, the partition 1021 is populated according to one or more reconstructed / encoded samples in the set 1181, the predictor of the partition 1021 is derived in the decoder and the encoder, i.e. its prediction residual is determined by transformation and quantization as described above, and then the prediction residual (in the version sent in the data stream, i.e. including quantization losses) is used to correct the predictor by using the prediction residual in the data stream 14 to reconstruct the partition 1021. For example, Figure 5 The prediction residuals for partition 1021 are shown, illustrated at 1201. That is, 1201 includes transform coefficients corresponding to a transform of the prediction residuals for partition 1021, wherein a description of data 1201 will be discussed in more detail below.

[0097] Now go to the next partition in the partition order, i.e. Figure 5The situation has changed, since the set of neighboring reconstructed / coded samples used to derive the predictor for partition 1022 can now consist of samples located outside block 80 and / or samples within block 80, i.e., those samples located in any of the already processed partitions, here Figure 5 The current partition 1021 in the example of , since for these samples the prediction residual has already been determined and is already available in the data stream 14. That is, the encoder and the decoder derive the predictor for this partition 1022, respectively, and then proceed to the prediction residual determination in the encoder and use the prediction residual to correct the predictor in the encoder and the decoder. The process then continues one by one with the next partition, i.e. the next partition in the partition order, thereby sequentially processing all the partitions of the block 80.

[0098] As already mentioned above, the partition order 126 can be selected in another way than traversing the partitions, so that directly consecutive partitions are immediately adjacent partition neighbors. That is, the partition order can jump from one partition to the next. This means that for i To derive the adjacent sample set 118 of the corresponding predictor i Not limited to Figure 5 This also involves the selection of the start of the partition order 126. For example, suppose that partition 1024 is the first partition in the partition order. Then, the adjacent sample neighborhood of the corresponding partition shown in FIG. 1184 can be obtained by selecting the start of the partition order 126. Figure 5 The partition 1024 is filled with samples (not shown in FIG. 1 ) to derive its predictor, the set 1184 collecting samples located along the periphery of the block 80, to the left and to the top of the block 80. Some samples in the set 1184 will not be immediately adjacent to the partition 1024. Incidentally, this would correspond to the case where the last sample row is filled in the usual intra prediction filling of the block 80 as a whole. The possibility just mentioned is also true for any subsequently processed partitions, i.e. the second partition and further partitions in the partition order. That is, their neighboring sample sets 1184 are i It may also include data not corresponding to the partition 102. i And further, without restricting the order of partitions to traverse the partitions in a manner such that consecutive partitions are adjacent to each other, then any second partition or subsequently processed partition 102 i A collection of reference samples 118 i It is possible to collect not only the i The samples on the left and top of the block 80 may also be collected, depending on whether any partition of the block 80 is processed earlier than the partition 1021 according to the partition order. That is, the collection 180 i may include a partition 102 iMore than the samples on both sides.

[0099] In short, Figure 5 The sequential processing of the partitions 102 / 112 of the block 80 is shown here by way of example with respect to the horizontal partitions, but the same description also applies with respect to the vertical partitions 112. i The vertical pattern 110. For each partition 102 i , the corresponding prediction residual 102 i The data 1201 to 1204 together form the prediction residual 120 of the block 80. It should be noted 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 directly signaled in the data stream 14 (e.g. in the spatial domain). In this case, the data 1201 to 1204 of the respective partitions 1021 to 1024 may not contain Figure 5 The data stream 14 shown in FIG. 1 is partitioned into separate fields, wherein each data portion 120 i Indicates that it is used for the corresponding partition 102 i Instead, in that case, the prediction residual 120 of block 80 may form a field of data 14. In this alternative embodiment, the decoder will process a certain partition 102 i When collecting information about the partition 102 from the field 120 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.

[0100] therefore, Figure 5 It is shown that in the encoder and the decoder, for each partition 102 i Two tasks are performed, namely: 1) prediction derivation task 122, generating a prediction or prediction sub-task for the corresponding partition 1021, i.e., for the corresponding partition 102 i 1) the predicted sample value for each sample of , and 2) the prediction residual related tasks performed thereafter, namely the prediction residual derivation at the encoder, including quantization of the prediction residual for encoding it into the data stream 14, and the corresponding partitioning 102 by combining or correcting the prediction residual and the predictor i Reconstruction of the sample to obtain the partition 102 i To predict the derived task, the following reconstructed samples can be used as the subsequent processing partition 102 following the partition order 126 j The adjacent sample set 118 j reserves.

[0101] Before going on to describe the details of the ISP concept possibilities, Figure 6shows that by filling the partition 102 currently being processed i The process of prediction derivation 122 is performed, wherein it should be noted that the description regarding the horizontal partition 102 is only illustratively selected and the same description also relates to the vertical partition 112. Figure 6 The currently processed partition 102 is shown i and its corresponding set of reconstructed / encoded adjacent samples 118 i As mentioned above about Figure 5 As already pointed out, collection 118 i Not limited to partition 102 i directly adjacent or neighboring samples 128. However, due to the partitioning, when all samples of block 80 are averaged, partition 102 i Samples and collections 118 i The average distance 130 between samples 128 is lower than when performing intra prediction of block 80, such as known from H.264 or HEVC. Figure 5 As described, using the intra prediction mode associated with block 80, for each partition 102 i Predictor derivation or filling 122 is performed, the mode indicating one of a set of available intra prediction modes. The set may include angles or directional modes that differ from each other in angle or direction 132, along which the adjacent sample set 118 is placed. i Copy the sample content to partition 102 i In order to perform the copy, the sample 134 can be based on the set 118 i The partition 102 is derived by the number of neighboring samples 134 that are located in a direction opposite to the direction 132 relative to the sample 134. i The number of predictions for each sample 134 is, for example, determined by the method used to derive the sample set 118 i The kernel of the interpolation filter is defined at the pixel locations between samples 128. For example, Figure 6 shows the use of collection 118 i Three samples 128 are used to calculate the currently processed partition 102 i The prediction of a sample 134 in . Due to the relatively small average distance 130, partition 102 i The number of reference samples 134 for each sample 134 can be kept low. More details will be described below. However, for the sake of completeness, it should be noted that the set of available intra prediction modes can also include a DC mode, according to which a DC value is assigned to the partition 102. i All samples 134 of the , by performing a collection of adjacent samples 118 iThe DC value is derived by averaging. In addition, there may be a plane mode, according to which the DC value is obtained by partitioning 102. i The predicted value of sample 134 is defined by a linear function at the sample position within the range, based on the neighboring samples 118 i To derive the slope and offset of the linear function. In addition, it should be noted that the neighboring set 118 i It may differ depending on the intra prediction mode selected for block 80, and may specifically differ, for example, between angular mode and non-angular mode (DC / planar).

[0102] For example, in the state-of-the-art JEM decoder, there are 67 intra prediction modes available: 65 of them are angular modes and two model non-directional textures, namely DC and planar. The 1D partitioning (referred to as 1D partitioning mode in short) mode (i.e. the predictor derivation 122 performed for the partitions 102 / 112 outlined above and below) can be combined with any of them, or in other words, can be implemented using any of them, according to which the block 80 is divided / split into partitions along the dimension 104, the resulting partitions extending across the full width of the block transverse to the dimension 104 and being one sample wide or more than one sample wide along the direction 104. As described with respect to Figure 5 As described above, all partitions 102 / 112 (eg, coding units CU) of a block 80 use the same associated intra prediction mode of the block 80 , thereby avoiding excessive signaling overhead since the intra prediction mode 116 for the block 80 only needs to be sent once in the data stream 14 .

[0103] That is, the prediction 122 can be performed in the same manner as the two-dimensional case outlined in the JEM decoder. However, for the currently processed partition 102 / 112, only one line (whether horizontal or vertical) is calculated, so that the prediction process 122 is adjusted accordingly compared to JEM. In the case of selecting a partition order for traversing the partitions in a manner that makes consecutive partitions adjacent to each other, the prediction process 122 can correspond to the two-dimensional case of JEM, but only for the first row, that is, the row closest to the reconstructed / encoded neighborhood. In some cases, both HEVC and JEM allow certain filters to be applied to the reference sample 128 or to the resulting predictor. This is useful in the two-dimensional case for better predicting samples far from the reference sample 128 within the prediction block 80 to reduce boundary discontinuities. However, by using the division into partitions 102 / 112, it is possible and should be the goal to exploit the high correlation between nearby pixels.

[0104] That is, a reduced average distance 130 should be used. Excessive smoothing will degrade the quality. Therefore, if the encoder or decoder is able to perform both types of intra prediction, i.e., using Figures 4 to 6and the partitioned intra-frame prediction outlined below, the intra-frame filters (i.e. the filters involved in the predictor derivation 122) are either disabled or at least the number of contributing samples 134 of each partition sample 134 is reduced relative to the number of samples contributing to one sample in the two-dimensional case, in which the intra-frame prediction of the block 80 is performed on the block or according to HEVC, i.e. decomposed into leaf blocks of a hierarchical quadtree, subdividing the block 80 into rectangular blocks.

[0105] As can be clearly seen 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 currently processed partition and performs an inverse transform (e.g., a spectral to spatial transform) on the transform in order to produce a prediction residual, which is then used to correct the predictor obtained at 122 by combining / adding. The same is done in the encoder in order to maintain a prediction loop synchronized with the decoder. In addition, for the currently processed partition, the encoder performs a transform on the prediction error using the predictor determined at 122, transforms the prediction error (e.g., a spatial to spectral transform), then quantizes the transform coefficients, and then encodes the transform into the data stream 14 to obtain the currently processed partition 102. i Corresponding data 120 i Regarding the transform, the same transform can be used to process all partitions 102 / 112 within the block 80. The transform can be DCT-II except in the case of planar mode, in which case DCT-VII can be used, for example. For this purpose, if the block 80 is based on the Figures 4 to 7 As well as the partitioning scheme further outlined below, if encoded using intra-prediction modes, all tools related to transforms and inverse transforms that the encoder and decoder can use for other blocks can be disabled, such as transform skip (i.e., encoding in the spatial domain), EMT (EMT = explicit multi-core 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, dedicated syntax elements, and a predetermined partition order.

[0106] Some ink has been expended on the partition order 126 by which the partitions 102 / 112 of the current processing block 80 are sequentially processed. It should be emphasized that this embodiment is merely an example, and according to alternative embodiments, the partition order may be static or may vary in different ways according to the examples set forth below. Figure 7 By using Figure 5 The inscribed numbers indicated by arrows 126 in indicate a possible partitioning / processing order. Here, the order follows the inscribed numbers in ascending order. Figure 5The example of representing the order 126 starts with the partition containing the top left pixel / sample 140 of the block 80 and goes down to the lowest partition. Similarly, if the partition type is vertical, the processing order will start from the leftmost partition containing the top left pixel / sample and go right again. However, this is not the best case for all existing intra prediction modes. This is in Figure 7 As an example, Figure 7 Also shown are the vertical and horizontal partitions of block 80 for the diagonal mode, i.e. the copy angle / direction 132 is directed from the lower left to the upper right at 45°, and 34, i.e. the copy angle / direction 132 is directed from the upper left to the lower right at -45°. In the former case, if the partitioning is horizontal, starting from the upper left corner of block 80 will produce a partition whose reconstructed samples will not have any influence on the prediction of the subsequent partitions. Therefore, it is 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 partition order. However, as can be observed in the above figure, in the vertical partitioning, this is not necessary. On the other hand, in the case of horizontal and vertical partitioning of the given samples from both sides, mode 34 does not have any of these problems. Therefore, the normal processing order can be adopted in both partitions.

[0107] Table 1 shows a complete list of the processing order according to intra prediction mode and partition type.

[0108]

[0109] Table 1: Processing order according to intra mode and segmentation type. HOR_DIR and VER_DIR are horizontal and vertical modes respectively, and VDIA_DIR is vertical diagonal mode

[0110] refer to Figure 8 , summarizes the ISP concepts described so far with respect to signaling overhead. Figure 8 1 shows the content transmitted for block 80 according to an embodiment of the present application. Specifically, there is intra-prediction mode signaling 116 to signal which intra-prediction mode is to be applied to block 80. Thus, signaling 116 indicates, for example, one of the angle modes, or one of the available modes including angle modes and non-angle modes (e.g., DC and planar). In addition to this signaling 116, there is a partition flag 160 for block 80, which is encoded by the encoder into the data stream 14 and decoded by the decoder from the data stream 14, indicating whether the block 80 will be applied according to the intra-prediction mode. Figures 4 to 7 The partitioning process is applied to the block 80, or whether the block 80 is processed "normally", such as in its entirety or in a single piece or in two dimensions, i.e., only samples outside the block 80 are used to form the reference sample reserve 118 to predict each sample within the block 80. Alternatively, the marker 160 may be related to Figures 4 to 7The partitioning process discussed herein switches between decomposing the block 80 into transform blocks using a quadtree subdivision and then processing the transform blocks sequentially, however the disadvantage is that the decomposition must be signaled in the data stream 14. Figure 4 The data stream 14 includes a partition dimension flag 114 for the block 80, which is Figure 4 The discussed partition types 100 and 110 are switched. Then, for each partition of the block 80 (a partition into which the block 80 is subdivided / partitioned), if the partition flag 160 indicates this partition option, the data stream 14 comprises signaling / data 1201 with the prediction residual of the corresponding partition encoded into, for example, the transform domain as indicated above.

[0111] about 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 partition / coding order 126. As described above, the latter may be uniquely determined by the intra-prediction mode indicated by the signaling 116. However, an alternative is that the partition order 126 is determined at least in part based on optional additional signaling in the data stream 14.

[0112] Another alternative to the description proposed herein is that signaling 116 may be used alternatively to indicate the fact whether a partitioning option is used. In other words, one syntax element may share the responsibility for the signaling of 116 and 160. Such a syntax element will take a value in a range of values, each value corresponding to a combination of an intra-prediction mode and an indication of whether block partitioning is used. In this case, the inventors are also able to provide partitioning options only for a subset of intra-prediction modes. Finally, it should be noted that the partitioning 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 takes a certain subset of the available intra-prediction modes.

[0113] Fig. 9 The example shows a partition 102 / 112 i The prediction residual data 120 i How it should look. Fig. 9 , 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 through the transform 180, and the decoder derives the prediction residual in the spatial domain through the inverse transform 184. Fig. 9 For example, transform coefficients 186 corresponding to transform 182 and different spectral frequencies f are shown. i It may include a coded block flag CBF, data 120 iA 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 completely 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 192 of the significant transform coefficients (ie, non-zero transform coefficients 186) along increasing spectral frequencies (see axis 194), starting from the lowest or DC coefficient 196. The data 120 may then be i Signaling 198 is included to signal the transform coefficients from 196 to 192.

[0114] That is to say, Fig. 9 Each partition 102 is shown i / 112 i Its prediction residual may be encoded into the data stream 14 via the CBF 188, LP 190, and transform coefficient data 198. That is, for a block 80 having n partitions 102 / 112, there are n CBFs 188, one LP 190 for each partition having a non-zero CBF 188, and transform coefficient data 198 only for those partitions having a non-zero CBF 188 associated therewith. The coefficient data 198 may be encoded in the same manner as is done for a normally processed intra-predicted block (i.e., a block 80 for which the partition flag 160 indicates a non-partition option), with the following exceptions: if the partition is one sample wide, only one coordinate is required for each LP 190 (otherwise 2 coordinates are required as usual), i.e., x for a horizontal partition 100 and y for a vertical partition 110. However, in the case of a two-dimensional partition, the LP 190 indicates the last position along the scan direction or path, using an order 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 are associated with different shapes. That is, the transform 182 also has different shapes. Figure 4 In the case of the one-dimensional partition discussed, the transform 182 is a one-dimensional transform. That is, the transform 182 may be a W / H-long vector of transform coefficients 186, depending on the partition type 100 or 110.

[0115] about Figure 8With regard to the flags 160 and 114 and their encoding, note the following. The flag 160 indicating whether the block 80 is divided into the partitions 102 / 112 defines a condition to be checked for the block 80 whether the flag 114 is transmitted in the data stream 14. Specifically, if the flag 160 indicates a division into the partitions 102 / 112, the flag 114 is present in the data stream 14 and is sent to the decoder to signal which type of segmentation 100 / 110 is to be performed, i.e., horizontal or vertical. Just like the flag CBF, the flag 114 can also be encoded using context-dependent entropy coding / decoding. Depending on the intra-frame 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.

[0116] Although Fig. 9 It is shown that the CBF 188 may appear once in each partition i of the current block 80, but additionally or alternatively, the transforms 182 of the partitions 120i of the current block may each be divided into one or more sub-blocks, and a coded sub-block flag is signaled for each sub-block within the data 120i, indicating whether the transform coefficients 186 within the sub-block are all zero or at least one of its coefficients is non-zero. Therefore, only the coefficients 186 within the sub-blocks where the coded sub-block flag signals the presence of non-zero coefficients will be encoded. The other coefficients within 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 120i is transformed separately, the sub-blocks belonging to one partition differ in the spectral components of the transform 182 of the partition and in the transform coefficients 186 they include in the transform. For example, the sub-blocks may be arranged so that as long as the corresponding partition 102 i / 112 i The x dimension (partition width) and y dimension (partition height) of are equal to or greater than four samples 140, then they are 4×4 coefficient blocks, so as long as the corresponding partition 102 i / 112 iThe x and y dimensions of the transform 180 are both equal to or greater than 4 coefficients 186. In the case of a 4×N partition, the subblocks form columns 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 rows of m 4×4 subblocks, where m*4=N and m is an integer. For a wider partition, a 4×4 array of subblocks arranged in rows and columns can be generated. However, depending on the embodiment, such partitions wider than 4 samples and / or as wide as 4 samples may not occur. Regardless of whether they occur, for a narrower partition, 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, a subblock division of its transform 180 into subblocks can be completed, each subblock collecting a different set of coefficients of the transform 180, so that in all possible cases for the size of the current block, the subblock has a minimum number of coefficients M. That is, the partition can be set to be as large as the block width N along one dimension, and divided along another dimension 104. Thus, the size of the transform 180 for each partition may be 1×N, 2×N, N×1 or N×2. In fact, the transform 180 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 then form columns 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 rows 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 then form columns 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 rows of m (M / 2)×2 subblocks, where m*(M / 2)=N and m is an integer. This is exemplarily shown in Table 2 for the exemplary case of a minimum number of coefficients M=16.

[0117] Table 2: Entropy coding coefficient group size

[0118]

[0119] Although Fig. 9 It is shown that the CBF 188 may exist once for each partition i of the current block 80, 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. Therefore, if n is the number of sub-partitions and the first n-1 sub-partitions in the coding order have produced zero CBFs, the CBF of the nth partition will be inferred to be 1. Therefore, it does not need to be decoded and is not encoded. Therefore, the CBF of the data 120n will be lost, and the data 1201 to 120 n-1 The CBF in signals non-zeroness, and the decoder infers that the CBF signals the presence of at least one non-zero coefficient in the transform of the partition.

[0120] With respect to the intra-coding mode signaling 116, the following may be true. The coding mode signaling 116 can be sent as a pointer or index to one of the most probable modes (MPM) lists. The subsequent MPM list can then be determined in the same manner by the encoder and decoder based on the intra-prediction modes used for previously encoded / decoded intra-prediction blocks (e.g., spatially and / or temporally adjacent intra-prediction modes). Therefore, the MPM list may represent an appropriate subset of available / supported intra-prediction modes, i.e., one or more of the aforementioned angular modes and / or DC and planar modes. As described above, in addition to the blocks of classical intra-prediction, there may be intra-prediction blocks using LIP or ISP schemes, such as block 80 (i.e., a whole block) in the figure or such intra-prediction blocks may be divided into blocks in units of transform blocks using recursive quadtree partitioning. Two types of intra-prediction blocks may support the same set of available / supported intra-prediction modes. For subsequent normal / classic intra-frame prediction blocks, an MPM flag can be signaled in the data stream (the decoder decodes the flag and the encoder encodes the flag), which indicates whether the mode of the block is selected from the MPM list. In this case, a pointer / index pointing to the MPM list is sent (the decoder decodes the pointer / index and the encoder encodes the pointer / index). In the case of intra-frame prediction blocks using LIP or ISP schemes (such as block 80), the MPM flag should be inferred to signal the MPM list restriction. If for a normal / classic intra-frame prediction block, the MPM flag signals that no MPM mode is used, there is no index / pointer for the block in the data stream. Instead, an alternative pointer / index pointing to the remaining list of intra-frame prediction modes is sent for the block in the data stream. The remaining list can also be a proper subset of the set of available / supported intra-frame prediction modes, and specifically can be a supplementary set of the MPM list compared with the set of available / supported intra-frame prediction modes, that is, each member of the set of available / supported intra-frame prediction modes is either a member of the MPM list or a member of the remaining set. Pointers / indexes into the MPM list may be VLC encoded, while pointers / indexes into the remaining set may be encoded using a fixed-length code. Naturally, the MPM flag is sent even for intra-predicted blocks for LIP or ISP schemes, and the encoder will be free to select any mode from the set of available / supported intra-prediction modes, where the MPM flag is set depending on whether the selected mode is in the MPM list or in the remaining set.

[0121] For normal / classic intra-prediction blocks and for ISP / LIP intra-prediction blocks, the MPM list may be the same, i.e., may be determined by the encoder and the encoder in the same way. However, regardless of whether restrictions on the MPM list and inference of the MPM flag are applied to signal the use of the MPM list for ISP / LIP intra-prediction blocks, the MPM list may alternatively be determined differently for ISP / LIP intra-prediction blocks to accommodate the statistics of the ISP / LIP mode. For example, it may be changed to exclude the DC intra-frame mode from the MPM list, and to prioritize the horizontal intra-frame mode for ISP horizontal partitioning (i.e., horizontal direction 104), and to prioritize the vertical intra-frame mode for vertical partitioning (i.e., vertical direction 104). That is, for normal / classic intra-frame prediction blocks, the MPM list may form an appropriate subset of the set of available / supported intra-frame prediction modes, and the modes may be selected and sorted according to a certain 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 without DC mode or without DC and planar modes, i.e., an appropriate subset of angular modes in the set of available / supported intra prediction modes. The MPM list constructed based on previously used intra prediction modes previously encoded / decoded may prefer angular modes that are closer to the horizontal dimension in the angular intra prediction direction in the case where the flag 114 indicates that the partition direction 104 is horizontal, and prefer angular modes that are closer to the vertical dimension in the angular intra prediction direction in the case where the flag 114 indicates that the partition direction 104 is vertical.

[0122] With respect to the description just presented, it is again noted that the juxtaposition between the normally processed intra-prediction modes and the intra-prediction modes processed using the partitioning outlined herein need not be so. That is, the encoder and decoder may inevitably process the intra-prediction block 80 using the partitioning proposed herein, and then, accordingly, the partitioning flag 160, for example, becomes obsolete. However, if the partitioning option signaled by the flag 160 is available as a decision for the encoder, the following description reveals how the encoder can perform a decision or find out whether the partitioning mode is applied to a certain block 80, and which partitioning type (i.e., horizontal or vertical) is the best possibility. In order to perform this operation, the encoder should test two options for different intra-prediction modes for each block. Compared to the case where the encoder only has one option (e.g., the normal option), the encoder will therefore be slower due to having to test more options. In order to reduce this effect, the partitioning mode signaled by the flag 160 can be tested by encoding according to the following strategy, in which reference is made to Fig.10 and Fig.11 .

[0123] 1) 1D partition mode is the last intra mode to be tested.

[0124] 2) When testing the 1D partition mode, set C min is the minimum cost so far.

[0125] 3) Select the combination of intra mode and segmentation type to test.

[0126] 4) Split the block into N 1D partitions, and let i denote the index of each of these partitions, where i = [1, N].

[0127] 5) After encoding each partition, calculate its sub-cost J i Therefore, the inventor can know the sum of all sub-costs available after partition i has been encoded, that is, The process Fig.10 described in Fig.10 The accumulation of 1D partition sub-costs is shown to obtain the final cost for the entire block.

[0128] 6) After processing each partition, evaluate the expression S i <C min If true, continue encoding the partition to the end. Otherwise, it is guaranteed that this test pattern will not produce more than C min Lower RD cost, so the process is interrupted and we will proceed to the next combination of intra mode and segmentation type.

[0129] 7) If all 1D partitions are encoded, the test mode is the best mode and C is updated accordingly min .

[0130] The advantage of this process is that it avoids processing unnecessary 1D partitions, because it is well known that a 1D partition pattern 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 as follows Fig.11 As shown in the flowchart.

[0131] Note again that all the above ISP examples illustrate partitioning as being done in one sample wide stripes transverse to direction 104, alternatively the partitioning may be done in a way that results in wider partitions, thus resulting in two-dimensional partitions. Further alternatives for partitioning are listed below.

[0132] In a specific ISP example, the width along the partition direction 104 is defined based on: 1) whether the intra prediction mode is angular mode or non-angular mode, and 2) the width of the intra prediction block along that direction 104 .

[0133] 1) A block 80 of W×H (where W and H are assumed to be powers of 2) may be divided horizontally or vertically (e.g., indicated by a syntax element 114 sent to the decoder) into K equal partitions 102 / 112 of size w×h, where the values ​​of w and h are described in Table 3. According to Table 3, a block of W=16, H=8 predicted using non-angular intra mode and partitioned vertically (i.e., direction 104 is vertical) may be partitioned into, for example, 4 partitions 102, all of which have a size of w=16 and h=2. If the same block 80 is predicted using angular intra mode, the block 80 may be partitioned into 8 partitions 102, each of which has a size of w=16 and h=1.

[0134]

[0135] Table 3: Values ​​of w, h, and K for Additional Layout Example 1

[0136] 2) Alternatively, the block 80 of W×H (where W and H are assumed to be powers of 2) may be divided horizontally or vertically (e.g., indicated by a syntax element 114 sent to the decoder) into K equal partitions of size w×h, where the value of K is not fixed (and therefore sent 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 vertical partitioning and height for horizontal partitioning). The values ​​of w and h are obtained as described in Table 4.

[0137] variable Vertical Split Split Horizon w W / K W h H H / K

[0138] Table 4: Values ​​of w and h for Additional Layout Example 2

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

[0140] 3) Alternatively, the W×H (where W and H are assumed to be powers of 2) block 80 may be divided horizontally or vertically (e.g. indicated by syntax element 114 sent to the decoder) into blocks of size w i ×h i K partitions of (where K depends on W and H), where i = 1, 2, ..., K. If the partition is horizontal, then let S = h, s i =h i , if it is vertical, then let S = W, s i =w i For measuring the width S of block 80 along dimension 104 and measuring the width s of partition i along dimension 104 i Table 5 describes the different values ​​of s i Various options for the value of .

[0141]

[0142] Table 5: s for different partition layouts i Value

[0143] The options used by the decoder are either fixed or determined implicitly based on the values ​​of existing parameters on the decoder side.

[0144] 4) Alternatively, the W×H (where W and H are assumed to be powers of 2) block 80 may be divided horizontally or vertically (e.g. indicated by syntax element 114 sent to the decoder) into blocks of size w i ×h i K partitions of (where K depends on W and H), where i = 1, 2, ..., K. If the partition is horizontal, then let S = H, s i =h i , if it is vertical, then 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 proposed in Example 3) is to be used for dividing the block into sub-partitions.

[0145] Therefore, as illustrated in Examples 1 to 4 above, the partitioning can be done along a dimension 104 so that the partition is as wide as the predetermined block in a direction 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. Explicit or implicit signaling concepts can be used to keep the selection synchronization between the encoder and the decoder. Therefore, the selection is such that although the partitioning can vary between blocks of the same size and shape, the overhead associated with such a change is kept at a fairly low level. For example, the selection can be done according to the intra-frame coding mode of the predetermined block, for example, depending on whether the intra-frame coding mode of the predetermined block is an angle mode. The selection can also be made according to an index in the data stream for the predetermined block, which is used to index one of the at least two different width settings shown in Example 4. The partition can be one or more sample widths 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 sample domain.

[0146] As for residual coding, as described above, the residual coding can be accomplished 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 sent to the decoder. Therefore, for a block 80 (e.g., a CU) with K sub-partitions 102 / 112, 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 value of the CBF of a previously encoded sub-partition within the same block (e.g., along the order 126). In addition, another syntax element not yet mentioned can be sent to the decoder in the data stream to indicate whether the ISP concept is used for each block, or to indicate at a range corresponding to the entire data stream or a certain picture or for a slice of a certain picture, for example, whether the partitioned intra-frame prediction concept described in this article is used on each intra-frame prediction block 80 within the range, or whether to signal that some intra-frame prediction blocks are treated as one piece, that is, as if they were divided into only one partition.

[0147] Likewise, it has been described above that each sub-partition can be transformed individually using a transform, thereby obtaining a transform for each partition 102 / 112 that is not quantized to all zeros. As a transform for a certain partition 102 / 112, a 2-D transform can be used, unless one of the dimensions of the partition 102 / 112 is 1, in which case a 1-D transform will be applied. The transform kernel 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, a transform can be selected based on a combination of an intra-frame mode, a sub-partition index and a sub-partition dimension or some subset of the following parameters. The transform can also be directly signaled to the decoder, or in other words, in the form of an additional syntax element sent, for example, for all partitions within a block 80 or individually for each partition 102 / 112 of a block 80.

[0148] One aspect that has also been discussed above is the fact that the residuals of the partitions 102 / 112 of the block 80 can be further transformed losslessly or (albeit reversibly) after quantization in the spatial or some intermediate transform domain by performing a partition-individual transform of the prediction residuals of each partition and then quantizing the transform coefficients. Thus, the decoder will be able to obtain the transform coefficient levels of the transform of the entire block 80, inversely transforming the transform coefficient levels losslessly to obtain, for each partition 102 / 112, the prediction residuals in the spatial domain or in the intermediate transform domain, the prediction residuals in the spatial domain being obtained by re-transforming each partition 102 / 112.

[0149] Furthermore, it has been discussed above that the prediction residuals of the various partitions of block 80 are sequentially quantized and encoded into the data stream, partition by partition, in an alternative manner to the individual intra predictions of these partitions. Figure 5 and about 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 individual partitions by combining intra predictions on the one hand and prediction residuals on the other hand. That is, when decoding a certain block 80, the decoder can separate the decoding of the prediction residuals 120 for the individual partitions from the actual reconstruction process including the individual intra predictions for the individual partitions. See Figure 5 : The decoder can decode the prediction residuals 120 of all partitions, i.e., the prediction residuals 1201 to 1204 of block 80, from the data stream 14 according to one processing task, and the decoder can use the prediction residuals 1201 to 1204 of partition 102 according to another task. i The prediction residuals of 120 i , so as to reconstruct the interior of block 80 partition by partition according to the partition order 126. To this end, the decoder uses the intra-frame prediction mode of block 80 for each partition 120 in the second task. i Perform intra prediction and then add the prediction residual 120 obtained from the first task i , and then proceed to the next partition 120 by following the partition order 126 i+1 The decoder may completely perform the first task of deriving the prediction residual 120 from the data stream 14 before starting the second task of performing prediction and using the prediction residual for prediction correction, or the decoder may perform these two tasks in parallel while providing measures to ensure that a certain partition 102 i The prediction residuals of 120 i Be ready when needed, that is, when the partition 102 i When the prediction result of has been obtained using the intra prediction mode of the block and needs to be corrected. Specifically, during the first task or stage, the decoder can perform parallel correction on all non-zero partitions (ie, signaling the prediction residual 120 i All inverse transforms are performed for all partitions 102) that are non-zero.

[0150] On the one hand, note that when the residual of partition i is 120 iWhen quantized in the transform domain, it occurs that the reconstructed samples of these partitions may deviate from (i.e. exceed or inherit) a certain allowed sample value range. As described above, they can be used as members of the reference samples 118j for the subsequent partitions j in the order 126. According to the ISP variant, for the purpose of predicting the subsequent partitions j in the order 126, these samples are kept as is, while the cropping of these samples of the block 80 is performed as a final cropping step for the entire block 80, thereby increasing implementation friendliness, for example on the decoder side. Therefore, in deriving the partitions 102 i When the prediction sub-area is used, the partition order 126 can be used in the partition 102 i One or more reconstructed samples 118 of the previous partition used as reference for the current partition i , wherein, after performing the sequential reconstruction, the reconstructed samples are finally clipped from the unclipped state to the state of the allowed sample value range to finally reconstruct the predetermined block. 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 subsequent encoded block in order to maintain synchronization with the reference of the decoder. However, this final clean-up type of clipping is only an example, and alternatively, the clipping can be performed immediately, that is, before the reconstructed samples of the partition i are used as reference samples 118j of the partition j that is subsequently processed.

[0151] An ISP example is specifically illustrated below. Specifically, according to this example, for the intra-coded block 80, the data stream 14 uses the segmentation mode flag 160 to signal whether it is encoded using the ISP scheme. 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-frame prediction. For example, the LIP or ISP scheme can be used for the current intra-coded block 80 only if one or some conditions are met. For example, one or more conditions may include: in terms of, for example, the number of samples of the block 80, the intra-coded block 80 needs to be larger than some minimum size, and / or the intra-coded block 80 may not be allowed to exceed a certain size (at least not in the horizontal and vertical directions), so as not to cause too large a transform size, for example. More precisely, the LSP or ISP mode may only be available if the block 80 is less than or equal to the maximum transform-related size just mentioned in at least one direction (i.e., the horizontal or vertical direction). Therefore, intra_subpartitions_mode_flag may be present in the data stream only if the block 80 satisfies the conditions just mentioned. Otherwise, the decoder may infer that the intra-coded block 80 is normally intra-coded. In case the partitioning mode flag intra_subpartitions_mode_flag indicates that the intra-coded block 80 is an LSP or ISP coded block, a partitioning dimension flag 114 may be further signaled for the intra-coded block 80. However, it may not be inevitable to explicitly signal this intra_subpartitions_mode_flag, but in some cases it may be inferred to indicate a certain partitioning dimension 104. For example, in case the width of the intra-coded block 80 exceeds the above-mentioned maximum transform size (but the height does not exceed), then the partitioning dimension 104 may have to be horizontal, and in case the height of the block 80 exceeds the just-mentioned maximum transform size (but the width does not exceed), then the dimension 104 may have to be vertical. In both cases, the intra_subpartitions_split_flag is not explicitly signaled in the data stream, but is inferred accordingly by the decoder. The intra-coding mode 116 may be signaled in the data stream as described above, i.e. by using a list of most probable intra-prediction modes constructed at the encoder and decoder side. Whereas for a LIP or ISP intra-coded block 80, the data stream 14 may signal the intra-coding mode via an MPM list pointer, which pointer, for example called intra_luma_mpm_IDX, inevitably points to a list of possible intra-prediction modes, which pointer may be preceded by an MPM flag in the data stream 14 in case the intra-coded block is not coded in an ISP scheme.If the MPM flag (e.g., called intra_luma_mpm_flag) has a certain flag state, instead of a pointer to the most probable intra prediction mode list, a pointer to the remaining list of intra prediction modes is signaled in the data stream. However, as mentioned above, this is only an example, and the set of intra prediction modes that can be signaled may be the same for both normally encoded intra prediction blocks and ISP intra prediction blocks, i.e., covering all supported intra prediction modes. For example, intra_luma_mpm_flag can be sent for two types of intra-coded blocks. Alternatively, the pointers sent for the two types of intra-coded blocks can point directly to the complete list of supported intra prediction modes without any MPM flags for the two types of intra-coded blocks. If the intra-coded block 80 is encoded using the ISP scheme, the number of partitions 102 / 112 can be defined as follows. Specifically, the encoder and decoder can determine the number of partitions based on the size of the block 80. No signal is consumed in the data stream. For smaller block sizes, the number can be 2, otherwise the number of partitions 102 / 112 is 4. The order of partitions for performing intra prediction of partitions and encoding of prediction residuals in the data stream can be directed from the leftmost partition order to the farthest partition along the division direction 104 in the case of the horizontal direction n14, and from the top partition order to the farthest partition in the case of the vertical partition direction. Signaling will not be consumed for this. As described above, the residual transform 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 can depend on the size of the intra-coded block 80 as follows: 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, that is, the residual of the block 80 is completely transformed. In the case of exceeding the maximum transform size in the horizontal direction, the intra-coded block 80 is divided into two halves or a corresponding number of transform blocks in the horizontal direction, so that the two halves or transform blocks meet the maximum transform size, and the residual of the block 80 is transformed for each half / transform block. The same applies to the case where the block 80 exceeds the maximum transform size in the vertical direction. If the maximum transform size is exceeded in both vertical and horizontal directions, four or a corresponding number of transforms are used, and the residual of the block 80 is transformed into a corresponding number of transform blocks in four quadrants of the block 80 or a regular two-dimensional subdivision of the block 80. In addition, the processing of the normal intra-coded block 80 may deviate from the LIP or ISP coded intra-coded block 80 in the following aspects: The normal intra-coded block is intra-predicted in its entirety. That is, the normal intra-coded block is not subdivided. Further differences may relate to the coding used in the transform to encode the prediction residual of the block 80.For each transform, a coded block flag 188, such as tu_cbf_luma, may be sent, but for a normal intra-coded block 80, it may be unavoidable to encode the flag for each transform within the block 80, and in the case where the block 80 is ISB encoded and all previous CBFs of previous transforms are zero, the flag may be inferred to be 1 for the last transform of the block 80. Furthermore, the choice of the size of the sub-blocks within each transform may differ between normal intra-coded blocks 80 on the one hand and ISP coded blocks 80 on the other hand. Details are as above. Alternatively, however, the subdivision of the transform 182 into sub-blocks may be done similarly for normal intra-coded blocks and ISP coded blocks. For example, let log2SbW and log2SbH be the logarithmic dual of the sub-block width and height, respectively, and log2TbWidth and log2TbHeight be the width and height of the transform, respectively. The sub-block size may then be determined as follows:.

[0152] log2SbW=(Min(log2TbWidth,log2TbHeight)<2?1:2)

[0153] log2SbH=log2SbW

[0154] if(log2TbWidth<2){

[0155] log2SbW=log2TbWidth

[0156] log2SbH=4-log2SbW

[0157] }else if(log2TbHeight<2){

[0158] log2SbH=log2TbHeight

[0159] log2SbW=4-log2SbH

[0160] }

[0161] The pseudo code above obtains subblocks of the sizes listed in Table 2. Due to the inherent minimum size of the intra-coded block 80 and the non-subdivision of normal intra-coded blocks, only subblocks of 4×4 coefficients are generated for the normal intra-coded block 80. Finally, it should be noted that the example just outlined can result in ISP intra-prediction blocks of different sizes, including blocks divided into only two partitions 102 / 112, but regardless of whether such ISP intra-prediction blocks exist, there are ISP intra-prediction blocks that are divided into more than two partitions.

[0162] This is the starting point for the description of the implementation efficiency improvement embodiment proposed below. Note that the description is proposed as an alternative way to process certain sized ISP blocks (e.g. 4×4, 8×4, 4×8 blocks) while processing larger ISP blocks as described above, but even further alternative embodiments can be achieved by transferring the following partition-based intra-coding concepts to a block-based codec without the ISP processing of blocks outlined so far.

[0163] Fig.12 A decoder 20 for decoding a picture on a block basis from a data stream 14 according to an embodiment is shown. Thus, a predetermined block 80 may be decoded, whereby the predetermined block may be divided into sub-blocks, which may be understood as transform partitions 300. The data stream 14 may include an encoded intra-coding mode 116, an encoded partitioning dimension flag 114 and several encoded transforms 120 of prediction residuals. For the predetermined block 80, the intra-coding mode 116 and the partitioning dimension flag 114 are signaled, for example. Conversely, for each transform partition of the predetermined block 80, for example, the transforms 120 of the prediction residuals are signaled.

[0164] The decoder 20 is configured to decode the partition dimension flag 114 of the predetermined block 80 of the picture from the data stream 14, and set the partition dimension 104 to horizontal 1041 or vertical 1042 according to the partition dimension flag 114. For example, the partition dimension 104 indicates the decoder 20 to divide the predetermined block 80 105 in a direction.

[0165] According to an embodiment, the decoder 20 is configured to decode the split dimension flag 114 by using context-dependent entropy decoding, which uses a context that depends on the intra-coding mode 116. According to an embodiment, the decoder 20 is configured to decode the split dimension flag 114 by using context-dependent entropy decoding, which uses one of three contexts including: an intra-coding mode to signal a non-angular mode, an intra-coding mode to signal a horizontal mode, and an intra-coding mode to signal a vertical mode.

[0166] If the partitioning dimension 1041 is horizontal, the predetermined block 80 is, for example, partitioned or divided into vertical transform partitions 300. 1b Up to 300 6b , which spans the entire vertical height of the predetermined block 801. Alternatively, if the partitioning dimension 1042 is vertical, the predetermined block is, for example, partitioned or divided into horizontal transform partitions 300 1a Up to 300 4a, which spans the entire horizontal width of the predetermined block 802. In other words, the decoder is configured to divide the predetermined block 80 into transform partitions 300 along the predetermined dimension 1041 or 1042, and the transform partitions are as wide as the predetermined block 80 in the direction 1031 or 1032 perpendicular to the predetermined dimension 1041 or 1042. The predetermined dimension is, for example, the partitioning dimension 104.

[0167] The number of transform partitions 300 is, for example, greater than 2 and / or the transform partitions 300 are one sample wide 1011 or 1012 along the predetermined dimension 1041 or 1042. Alternatively, the transform partitions 300 may be two or more samples wide along the predetermined dimension 1041 or 1042.

[0168] According to an embodiment, the decoder 20 is configured to set the width 101 of the transform partition 300 measured along the predetermined dimension 104 depending on: the size 101a of the predetermined block 80 along the predetermined dimension 104, and / or the intra-frame coding mode 116 of the predetermined block 80, and / or whether the intra-frame coding mode 116 of the predetermined block 80 is an angular mode.

[0169] According to an embodiment, a predetermined block 80 of width W and height H, i.e., size W×H, is, for example, divided horizontally or vertically into K transform partitions of the same size, and for horizontal partitioning (along the vertical partitioning dimension), the size of each transform partition is W×H / K, and for vertical partitioning (along the horizontal partitioning dimension), the size of each transform partition is W / K×H.

[0170] The decoder 20 is configured to reconstruct 123 the predetermined block 80 based on: the reconstructed samples 118 neighboring the predetermined block 80, the intra coding mode 116 and the transform 120 of the prediction residual.

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

[0172] according to Fig.12In the illustrated embodiment, for each transform partition 300, a coded transform partition flag 188 is optionally encoded in the data stream 14, and based on the coded transform partition flag 188, the decoder 20 is configured to, for the transform partition 300, either decode the transform 120 of the prediction residual, or infer that the prediction residual is zero and the decoder 20 does not have to decode the transform 120 for the transform partition. Alternatively, the decoder does not decode the coded transform partition flag 188, and instead, the decoder is configured to, for each transform partition 300, directly decode the transform 120 of the prediction residual or decode one transform of the entire predetermined block 80.

[0173] According to an embodiment, the decoder 20 is configured to sequentially decode the coded transform partition flags 188 of the transform partitions 300 from the data stream 14, and infer the last transform partition (e.g., the transform partition 300) in the partition order 210 if all previous coded transform partition flags 188 are not set. 4a Or transform partition 300 6b )'s encoding transformation partition flag 188 is set.

[0174] According to an embodiment, the decoder 20 is configured to decode the corresponding transform partition (eg, the second transform partition 300) from the data stream 14 by using context-dependent entropy decoding. 2a or 300 2b ), the context-dependent entropy decoding uses a context that depends on the previous transform partition (e.g., the first transform partition 300) that precedes the corresponding transform partition according to the predetermined transform partition order 210. 1a or 300 1b )Decoded coding transformation partition flag 1881.

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

[0176] The decoder 20 is configured to intra-predict 122 the predetermined block 80 from one or more reconstructed samples 118 neighboring the predetermined block 80 in a manner that depends on the intra-coding mode 116 to obtain a predictor for the predetermined block 80. According to an embodiment, the decoder 20 is configured to intra-predict 122 a predictor for each transform partition 300.

[0177] According to a first option, the transformed partitions 300 are sequentially reconstructed by the decoder 20. Therefore, the decoder is configured to reconstruct the first transformed partition 300. 1a or 300 1b The predictor performs intra prediction 1221 and uses the first transform partition 300 1a or 300 1bThe decoded prediction residual is transformed 1201 to correct the predictor, and then the second transform partition 300 is performed 2a or 3002 b The predictor performs intra prediction 1222 and uses the prediction for the second transform partition 300 2a or 300 2b The decoded prediction residual is transformed 1202 to correct the predictor. Fig.12 The predetermined blocks 801 and 802 are divided as shown, and the subsequent transformation partition 300 of the block 802 3a and 300 4a and the subsequent transformation partition 300 of block 801 3b , 300 4b , 300 5b and 300 6b is intra predicted and corrected accordingly.

[0178] According to a second option, the transform partitions 300 are reconstructed in one step. Thus, the decoder 20 is configured to decode, for each transform partition 300, the transform 120 of the prediction residual from the data stream 14 and, for each transform partition 300, intra-predict 122 the predictor. For example, the decoding of the transform 120 is performed independently of the intra-prediction. According to an embodiment, at the reconstruction 123 of the predetermined block 80, all transforms 120 of the prediction residual are decoded by the decoder 20 and all predictors are intra-predicted by the decoder 20. In other words, at the reconstruction 123 of the predetermined block 80, for each transform partition 300, the transform 120 of the prediction residual decoded for the respective transform partition 300 and the predictor associated with the respective transform partition 300 are available.

[0179] According to an embodiment, the decoder 20 is configured to re-transform the transform 120 into the spatial domain for each transform partition 300 for correcting the predictor within the corresponding transform partition 300. In other words, an inverse transform may be applied to the transform coefficients of the transform 120 of the prediction residual to obtain the prediction residual in the spatial domain.

[0180] According to an embodiment, when the intra prediction mode (i.e., the intra coding mode 116) is not a plane mode, the transform 120 is a DCT transform, and when the intra prediction mode is a plane mode, the transform 120 is a DST transform, or a linear transform, the type of which is selected based on the intra prediction mode, the block size of the predetermined block 80, and / or a dedicated syntax element. Therefore, the decoder is configured to determine the transform type of the transform 120 of the prediction residual based on the intra coding mode, for example. For the above-mentioned re-transformation, the decoder uses, for example, an inverse transform type.

[0181] According to an embodiment, the decoder 20 is configured to decode a partitioning mode flag 160 of a predetermined block 80 of a picture from a data stream 14. If the partitioning mode flag 160 indicates a first partitioning mode, the decoder 20 is configured to perform decoding of a partitioning dimension flag 114, a partitioning 105, and a decoding of a transform 120 for each transform partition. If the partitioning mode flag 160 indicates a second partitioning mode, the decoder 20 is configured to decode one transform 120 of a prediction residual within the predetermined block 80, instead of performing decoding of a partitioning dimension flag 114, a partitioning 105, and a decoding of a transform 120 for each transform partition 300. In other words, the first partitioning mode indicates decoding of the predetermined block 80 based on the transform partitions, while the second partitioning mode indicates decoding of the entire predetermined block 80 without the partitions 105. Therefore, in the second partitioning mode, the decoder 20 does not use any transform partitions, and for example, for the predetermined block 80, the partitioning dimension flag 114 associated with the transform partitions, the encoded transform partition flag 188, and the separate transform 120 of the prediction residual are not encoded in the data stream 14.

[0182] Fig.13 It shows that it can be Fig.12 1 shows an embodiment of a transform 120 for decoding a prediction residual of a transform partition 300 from a data stream 14 performed by the decoder. According to an embodiment, the decoder 20 is configured to decode the prediction residual of the transform partition 300 for a predetermined transform partition 300. 3a or 300 3b (This embodiment is shown as follows: for the predetermined block 802, the partition is made along the vertical partition dimension 1042; for the predetermined block 801, the partition is made along the horizontal partition dimension 1041). The predetermined transform partition 300 is decoded from the data stream 14 by decoding the last position indication 1903 from the data stream 14. 3a or 300 3b The last position indication 1903 indicates the last transform coefficient position 191 of the transform 1203 along the predetermined scanning order 193, and the predetermined scanning order 193 scans the transform coefficients 120 of the one-dimensional transform 1203. 31 Up to 120 36 (with transform partition 300 3a associated) or 120 31 To 120 34 (with transform partition 300 3b In addition, the decoder 20 is configured to transform the partition 300 for a predetermined 3a or 300 3b , decoding a predetermined transform partition 300 from the data stream 14 by the following operation 3a or 300 3bTransform 1203 of the prediction residual: Decode the transform coefficients 120 in the transform 1203 from the data stream 14 along the predetermined scan order 193 until the last transform coefficient position 191 31 Up to 120 33 (with transform partition 300 3b associated) or 120 31 Up to 120 33 (with transform partition 300 3b 191 ), and infers that the transform coefficients 120 in the transform 120 are beyond the last transform coefficient position 191 along the predetermined scan order 193 34 Up to 120 36 (with transform partition 300 3a associated) or 120 34 (with transform partition 300 3b associated) is zero.

[0183] According to an embodiment, in addition to the encoding transformation partition mark 188, a last position indication 190 may be encoded in the data stream 14, for example, Fig. 9 Alternatively, only the last position indication 190 is encoded in the data stream 14, and the encoding change partition marker 188 is not encoded.

[0184] According to an embodiment, the transform partition 300 is one sample wide along the predetermined dimension 104 and the transform 120 is a one-dimensional transform.

[0185] Fig.14 An embodiment of an encoder 10 for encoding a picture into a data stream 14 on a block basis is shown, the encoder 10 being configured to encode a partitioning dimension flag 114 of a predetermined block 80 of a picture into the data stream 14, the partitioning dimension flag 114 signaling that the partitioning dimension 104 is to be set to horizontal 1041 or vertical 1042. The encoder 10 determines 200 whether the predetermined block 80 should be partitioned, and if the predetermined block 80 is to be partitioned, which partitioning dimension 104 should be selected, for example based on the block size of the predetermined block 80 and / or one or more partitioning decisions 200 of the encoder on one or more previously encoded blocks of the picture.

[0186] The encoder 10 is configured to divide 105 the predetermined block 80 into transform partitions 300 along a predetermined dimension 104, the transform partitions 300 being as wide 103 as the predetermined block in a direction perpendicular to the predetermined dimension. The predetermined dimension is, for example, the partitioning dimension 104. Thus, the encoder 10 is configured to perform a vertical partition if the partitioning dimension 1041 is horizontal, and to perform a horizontal partition if the partitioning dimension 1042 is vertical. Optionally, in the context of the decoder, as in the context of the decoder Fig.12 and Fig.13As described and / or with respect to FIGS. 15 to Fig.18 The described execution partitioning.

[0187] The encoder 10 is configured to intra-predict the predetermined block 80 from one or more reconstructed samples 118 adjacent to the predetermined block 80 in a manner that depends on the intra-coding mode 116 to obtain a predictor of the predetermined block 80. This is performed, for example, by the prediction module 44 of the prediction stage 36, which generates the prediction signal 26 by using the intra-prediction mode 116. According to an embodiment, the encoder 10 is configured to perform intra-prediction 300 separately for each transform partition of the predetermined block. The transform partitions 300 are, for example, sequentially intra-predicted, transformed 28, quantized 32 and encoded 34 into the data stream 14.

[0188] According to an embodiment, the encoder 10 is configured to encode an intra-coding mode 116 of a predetermined block 80 of a picture into the data stream 14. The encoder 10 is configured to use, for example, the same intra-coding mode 116 for the entire predetermined block 80 to obtain a prediction residual 24 for each transformed partition of the predetermined block 80, which can be transformed 28, quantized 32 and encoded 34 into the data stream 14.

[0189] The encoder 10 is configured to encode, for each transform partition 300, a transform 120 of the prediction residual into the data stream 14, such that the predictor within each transform partition 300 is corrected by using the transform 120 of the prediction residual encoded for the corresponding transform partition 300 to reconstruct the predetermined block 80. In other words, the encoder 10 is configured to, for each transform partition 300, transform 28 the prediction residual 24 in the corresponding transform partition 300 into the spectral domain for correcting the predictor within the corresponding transform partition 300.

[0190] According to an embodiment, the number of transform partitions is greater than 2 and / or the transform partitions are one sample wide along a predetermined dimension.

[0191] According to an embodiment, the encoder 10 is configured to encode the transform 120 into the data stream 14 for each partition 300 by encoding the coded transform partition flag 188 into the data stream 14. If the coded transform partition flag 188 is not set, the coded transform partition flag 188 is selected to signal that the prediction residual 24 of the corresponding transform partition 300 is zero, and if the coded transform partition flag 188 is set, the encoder is configured to encode the transform coefficients of the transform 120 of the prediction residual 24 of the corresponding transform partition 300 into the data stream 14. For example, if the coded transform partition flag 188 is zero, the coded transform partition flag 188 is not set.

[0192] According to an embodiment, the encoder 10 is configured to store all transform partitions except the last transform partition in the transform partition order 210 (eg, for vertical partitioning, the transform partition 300 8b , or for horizontal partitioning, transform partition 300 4b ), the coding transform partition flag 188 of the transform partition 300 is sequentially encoded into the data stream 14, and if all previous coding transform partition flags (for example, for vertical partition, all previous coding transform partition flags 1881 to 1887, or for horizontal partition, all previous coding transform partition flags 1881 to 1883) are not set, it is inferred that the coding transform partition flag of the last transform partition is set.

[0193] According to an embodiment, the encoder 10 is configured to encode the encoded transform partition flag 188 of the corresponding transform partition 300 into the data stream 14 by using context-dependent entropy coding, and the context-dependent entropy coding uses a context that depends on the encoded transform partition flag 188 encoded for the previous transform partition 300 that precedes the corresponding transform partition 300 in the predetermined transform partition order 210.

[0194] According to an embodiment, the encoder 10 is configured to encode, for a predetermined transform partition 300, a transform 120 of a prediction residual for the predetermined partition 300 into the data stream 14 by encoding, into the data stream 14, a last position indication 190 indicating a last transform coefficient position of the transform along a predetermined scan order, the predetermined scan order scanning transform coefficients of the one-dimensional transform. Furthermore, the encoder is configured to encode, for a predetermined transform partition 300, a transform 120 of a prediction residual for the predetermined partition 300 into the data stream 14 by encoding into the data stream transform coefficients along the predetermined scan order up to the last transform coefficient position in the transform, wherein transform coefficients beyond the last transform coefficient position in the transform along the predetermined scan order are inferred to be zero. This may be performed similarly to a decoder, such as Fig.13 described.

[0195] For example, the transform partition is one sample wide along the predetermined dimension 104 and the transform is a one-dimensional transform.

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

[0197] According to an embodiment, the encoder 10 is configured to encode a partition mode flag 160 of a predetermined block 80 of a picture into the data stream 14. If the partition mode flag indicates a first partition mode, the encoder is configured to perform encoding of a partition dimension flag 114, partitioning, and encoding of a transform 120 for each transform partition 300. If the partition mode flag indicates a second partition mode, the encoder is configured to encode one transform 120 of a prediction residual within the predetermined block without performing encoding of a partition dimension flag 114, partitioning, and encoding of a transform 120 for each transform partition 300.

[0198] According to an embodiment, the encoder is configured to encode the split dimension flag 114 by using context-dependent entropy coding, the context depending on the intra-coding mode.

[0199] According to an embodiment, the encoder is configured to encode the partition dimension flag 114 by using context-dependent entropy coding, and the context-dependent entropy coding uses a context including one of the following three contexts: an intra-frame coding mode 116 to signal a non-angular mode, an intra-frame coding mode 116 to signal a horizontal mode, and an intra-frame coding mode 116 to signal a vertical mode.

[0200] According to an embodiment, the encoder is configured to set the width of the transform block 300 measured along the predetermined dimension 104 depending on: the size of the predetermined block 80 along the predetermined dimension 104, and / or the intra-frame coding mode 116 of the predetermined block 80, and / or whether the intra-frame coding mode 116 of the predetermined block 80 is an angular mode.

[0201] The following describes and is motivated by the extension of the intra-frame sub-partitioning (ISP) coding mode to 4×4 and the number of sub-partitions for 4×8 and 8×4 blocks. In order to maintain a worst-case throughput of 16 samples / cycle, there are sub-partitions that are independent of each other. The experimental results show that for the AI ​​configuration, the gains of CTC and F classes are 0.1% and 0.47%, respectively, while in the RA case, the gains of CTC and F classes are 0.01% and 0.25%, respectively. The impact on the encoding runtime is 102% in the AI ​​case and 100% in the RA case.

[0202] Additional test results are provided on the impact of extending the ISP concept to all ISP blocks that produce sub-partitions with width less than 4. The experimental results show gains of 0.05% and 0.44% for CTC and F classes respectively for AI configuration, and 0.24% for F class in the case of RA (CTC is unchanged).

[0203] On the other hand, the impact of completely removing sub-partitions with a width less than 4 of the current ISP design has been tested. The additional information shows that for the AI ​​configuration, the losses for CTC and F classes are 0.14% and 0.31%, respectively, while in the RA case, the losses for CTC and F classes are 0.04% and 0.23%, respectively.

[0204] 1 Introduction

[0205] As proposed in [1], the intra sub-partitioning (ISP) coding mode divides the luma intra prediction block vertically or horizontally into 2 or 4 equally sized sub-partitions depending on the CU size. Table 6 shows the different possibilities.

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

[0207]

[0208] Each subpartition is predicted, transformed, quantized, and the entropy coded coefficients are sent to the decoder. The reconstructed samples of a subpartition are then used to generate a prediction for the next subpartition, but the intra mode used is shared between all subpartitions.

[0209] Since this process is in the intra prediction critical path (in general, a subpartition cannot be decoded before reconstructed samples from the previous subpartition are obtained), it is necessary to enforce a minimum of 16 samples in each subpartition, which guarantees a worst-case throughput of 16 samples / cycle. This is actually the reason why 4×8 and 8×4 blocks have two subpartitions (instead of four), and 4×4 blocks cannot be subdivided.

[0210] The following description proposes an extension of ISP that allows its use on 4×4 blocks and modifies the number of subpartitions in the case of 4×8 and 8×4 blocks while keeping the throughput limit of 16 samples / cycle. This goal can be achieved by generating subpartitions that are independent of each other, i.e., not using the reconstructed samples of a subpartition to predict the next subpartition.

[0211] The division and reconstruction of the predetermined block 80 as described below, for example, with respect to FIGS. 15 to 16 Fig.18 , for 4×8 and 8×4 blocks, it can be obtained by Fig.12 and Fig.13 The decoder described or by Fig.14 The described encoder is implemented.

[0212] Note that the subsequent presentation of specific modifications to the ISP is merely a presentation of possible embodiments, and variations thereof are readily available. For example, less complex or more straightforward variations are listed in Section 6 below.

[0213] 2ISPs expand to new block sizes

[0214] The ISP modifications introduced in this contribution affect 4×4, 8×4 and 4×8 blocks.

[0215] 2.1 4×4 Block

[0216] According to the embodiment shown in Figures 15 and 16, the predetermined block 80 is divided into four 4×1 (horizontal partition) or 1×4 (vertical partition) partitions. However, the prediction signal 122 of each of them is generated using the adjacent samples 118 of the CU boundary as reference samples. Therefore, each sub-partition (i.e., transform partition 300) is independent of each other, and all sub-partitions can be processed in parallel in a single step. In other words, and reusing the terms applied above, the block 80 is not divided or retained as a partition 112, and the reference samples 118 used for intra-frame prediction or prediction derivation are all located outside the block 80. Instead, the partitioning is applied to transform-based residual coding as described below. Here, a partition 112 (i.e., a block) is divided into transform partitions 300, and each transform partition is transformed separately, resulting in a corresponding transform 182 encoded in the manner described above with respect to the data structure 120.

[0217] Figures 15a to 15d An embodiment of a vertical partitioning of a 4x4 block is shown, i.e. the partitioning is performed along the horizontal partitioning dimension. The reference samples 118 used to generate each 1x4 prediction are only CU boundary samples. Note that the prediction is the same as for the non-ISP case.

[0218] Note that the prediction samples for all transform partitions 300 are identical to those generated for blocks not using ISP (excluding reference samples and PDPC filtering operations which are disabled for all ISP blocks). The difference between a 4×4 block using ISP and a 4×4 block not using ISP is the transform (there are four 1-D transforms in the ISP case and a single 4×4 transform in the non-ISP case) and the entropy coding of the coefficients.

[0219] 2.2 8×4 and 4×8 blocks

[0220] According to Fig.17 or Fig.18 In the embodiment shown, the ISP design is changed so that the number of transform partitions 300 is 4, wherein the number of sub-partitions 1121 and 1122 is 2. Each sub-partition 1121 and 1122 is subdivided into two transform partitions 300. The prediction signals 122 of transform partitions 2 and 4 cannot be generated using the reconstructed samples of transform partitions 1 and 3, respectively. Fig.171 or 18. Thus, transform partition 2 is independent of transform partition 1, and similarly, transform partition 4 is independent of transform partition 3. Thus, a 4×8 or 8×4 block can be processed in 2 cycles, which is equivalent to a throughput of 16 samples / cycle. The figure shows the case for this horizontal and vertical partitioning.

[0221] Fig.17 An embodiment of a vertical partitioning of a predetermined block 80 is shown. The predetermined block 80 is, for example, a 4×M block divided into four 1×M transform partitions 300, where M≥8, an 8×N block divided into four 2×N transform partitions 300, where N≥4, or a 16×O block divided into four 4×O transform partitions 300, where O≥1. Reconstructed samples from transform partition 2 can be used to predict transform partition 3, but reconstructed samples from transform partitions 1 and 3 cannot be used to predict transform partitions 2 and 4, respectively. Vertical partitioning corresponds to partitioning along the horizontal partitioning dimension.

[0222] Fig.18 An embodiment of a horizontal partitioning of a predetermined block 80 is shown. The predetermined block 80 is, for example, an M×4 block divided into four M×1 transform blocks, where M≥8, an N×8 block divided into four N×2 transform partitions 300, where N≥4, or an O×16 block divided into four O×4 transform partitions 300, where O≥4. Reconstructed samples from transform partition 2 can be used to predict transform partition 3, but reconstructed samples from transform partitions 1 and 3 cannot be used to predict transform partitions 2 and 4, respectively. Horizontal partitioning corresponds to partitioning along the vertical partitioning dimension.

[0223] like Fig.17 and Fig.18 As shown, the decoder described herein may be configured to perform intra prediction 122 for a predetermined block 80 according to one or more reconstructed samples 1181 adjacent to the predetermined block 80 in a manner depending on the intra coding mode by the following operations to obtain a predictor for the predetermined block, and to correct the predictor within each transform partition 300 by using a transform of a prediction residual decoded for the corresponding transform partition 300 to reconstruct the predetermined block 80: by performing intra prediction 122 for a current sub-partition (e.g., Fig.17 The sub-partition 1121 shown in or Fig.18 1021) and continues to process subsequent sub-partitions (e.g., Fig.17 Subpartition 1122 or Fig.18 1022) shown in FIG. 1024) to sequentially reconstruct the transformed partition 300 groups according to the predetermined sub-partition order 126, the transformed partitions 300 of the predetermined block 80 are grouped into the transformed partition groups to form sub-partitions for each transformed partition 300 group (e.g., Fig.17 1121 and 1122 shown in FIG. Fig.18 1021 and 1022 shown), the predetermined sub-partition order 126 sequentially traverses the sub-partitions 102 / 112 along the predetermined dimension 104. The decoder is configured to derive 122 a predictor for the current sub-partition by filling the current sub-partition according to one or more reconstructed samples 1181 adjacent to the current sub-partition in a manner that depends on the intra-coding mode. In addition, the decoder is configured to reconstruct the current sub-partition by correcting the predictor within each transform partition 300 included by the transform partition group forming the current sub-partition using the transform of the corresponding transform partition 300.

[0224] like Fig.17 and Fig.18 As shown, the encoder described herein is similar to the decoder, for example, configured to perform intra-frame prediction 122 on a predetermined block 80 according to one or more reconstructed samples 1181 adjacent to the predetermined block 80 in a manner depending on the intra-frame coding mode to obtain a predictor of the predetermined block 80, and determine a prediction residual of the predetermined block 80 for correcting the predictor within each transform partition 300 using a transform of the prediction residual to be encoded for the corresponding transform partition 300 by filling the current sub-partition according to one or more reconstructed samples 1181 adjacent to the current sub-partition in a manner depending on the intra-frame coding mode, and sequentially predicting the transform partition 300 group according to a predetermined sub-partition order 126 to derive the current sub-partition (for example, Fig.17 1121 as shown, or Fig.18 1021), the transform partitions 300 of the predetermined block 80 are grouped into transform partition 300 groups to form sub-partitions (eg, Fig.17 1121 and 1122 as shown, or Fig.18 1021 and 1022), the predetermined sub-partition order 126 sequentially traverses the sub-partitions 102 / 112 along the predetermined dimension 104, and continues with the subsequent sub-partitions (e.g., Fig.17 1122 as shown, or Fig.18 1022), before determining the transform of the prediction residual within each transform partition 300 included in the transform partition group forming the current sub-partition 102 / 112, so as to be used to correct the prediction sub within each transform partition 300 included in the transform partition group forming the current sub-partition 102 / 112 by using the transform of the corresponding transform partition to reconstruct the current sub-partition.

[0225] according to Fig.17 and Fig.18 , the decoder and / or encoder is, for example, configured to use reconstructed samples 1181 adjacent to the predetermined block 80 to predict 122 grouped together to form a first sub-partition (eg, Fig.17Sub-partition 1121 or Fig.18 The predictors of the first and second transform partitions 300 of the sub-partition 1021 shown are grouped together for prediction 122 to form the second sub-partition (eg, Fig.17 Sub-partition 1122 or Fig.18 For predictors of the third and fourth transform partitions 300 of the subpartition 1022 shown in FIG. 1 ), the decoder uses, for example, reconstructed samples 1182 adjacent to the predetermined block 80 and / or reconstructed samples 1182 of the second transform partition 300 adjacent to the third transform partition 300. In other words, for predicting 122 the predictor of the transform partition 300 of the second subpartition 1122 / 1022, the decoder is, for example, configured to use reconstructed samples 1182 adjacent to the second subpartition 1122 / 1022, wherein at least some of the reconstructed samples may be associated with reconstructed samples of previous subpartitions, for example Fig.17 Sub-partition 1121 or Fig.18 Subpartition 1021 is shown.

[0226] According to an embodiment, the sub-partitions of the predetermined block 80 are reconstructed or encoded sequentially. In other words, the first sub-partition (e.g. Fig.17 Sub-partition 1121 or according to Fig.18 The sub-partition 1021 of is reconstructed or encoded in a first cycle, and then the second sub-partition (e.g., according to Fig.17 Sub-partition 1122 or according to Fig.18 The sub-partition 1022 of FIG. 15 is reconstructed or encoded in the second loop. Therefore, all transform partitions of the same sub-partition are reconstructed or encoded in the same loop. In other words, the transform partitions associated with the same sub-partition can be reconstructed or encoded in parallel. Therefore, according to an embodiment, the complete predetermined block 80 in FIG. 15 or FIG. 16 can be understood as one partition (i.e., a sub-partition) because all transform partitions 300 are reconstructed in parallel.

[0227] According to an embodiment, the decoder and / or the encoder is configured such that the number of transform partitions 300 per subpartition 102 / 112 depends on the size of the predetermined block 80 .

[0228] According to an embodiment, the decoder and / or encoder is configured such that the number of transform partitions 300 for each sub-partition 102 / 112 is 1 when the size of the predetermined block 80 exceeds a predetermined threshold, and is greater than 1 when the size of the predetermined block 80 does not exceed the predetermined threshold. If the predetermined block exceeds a certain size, it is advantageous to avoid further dividing the sub-partitions to improve the decoding run time or the encoding run time. The predetermined threshold is, for example, a block size of 64×64 samples. In other words, the use of the ISP is limited to the case where the size of the predetermined block 80 does not exceed the predetermined threshold.

[0229] According to an embodiment, the decoder and / or the encoder is configured such that the number of sub-partitions 102 / 112 in a predetermined block depends on the size of the predetermined block and / or the predetermined dimension.

[0230] According to an embodiment, the decoder and / or the encoder is configured so that the number of sub-partitions 102 / 112 in the predetermined block 80 is 1 when the size of the predetermined block 80 is lower than another predetermined threshold, and is greater than 1 when the size of the predetermined block 80 is not lower than another predetermined threshold. The other predetermined threshold is, for example, determined so that the predetermined block 80 includes at least 16 samples. The other predetermined threshold is, for example, a case where the size of the predetermined block 80 is greater than 4×4 samples, 8×2 samples, 2×8 samples, 1×16 samples, or 16×1 samples. In the case of 4×4 samples, as shown in FIG. 15 or FIG. 16, the predetermined block 80 includes, for example, one sub-partition having four 1×4 transform partitions or four 4×1 transform partitions. In the case of 2×8 samples, the predetermined block 80 includes, for example, one sub-partition having two 1×8 transform partitions, and in the case of 8×2 samples, the predetermined block 80 includes, for example, one sub-partition having two 8×1 transform partitions. In the case where the size of the predetermined block is 1×16 or 16×1 samples, the entire block is both a sub-partition and a transform partition. If the predetermined block 80 comprises only one sub-partition, the sub-partition is, for example, equal to the entire predetermined block 80. Fig.17 and Fig.18 As shown, a larger size of the predetermined block 80 may result in 2 or more sub-partitions, which include 2 or more transform partitions.

[0231] According to an embodiment, the decoder and / or the encoder is configured so that the number of sub-partitions in the predetermined block depends on the size of the predetermined block in the following aspects: when the dimension of the predetermined block adopts a first width and a first height, the number is equal to the first number, and when the dimension of the predetermined block adopts a second width equal to the first height and a second height equal to the first width, the number is equal to a second number different from the first number. As shown in Figures 15 to 18, blocks with the same width and height have different numbers of sub-partitions compared to blocks with the same width but different heights. For example, a predetermined block 80 of 4×4 size is not divided, that is, the entire block represents a partition (i.e., sub-partition) with four transform partitions. On the contrary, a predetermined block of 4×8 size or 8×4 size is divided into two sub-partitions. This also applies to larger blocks. For example, a predetermined block 80 of 128×128 size is not divided, but a predetermined block 80 of 128×64 size can be divided vertically (along the horizontal partitioning dimension) into four sub-partitions.

[0232] 3 Experimental results

[0233] The proposed method is evaluated for intra-only (AI), random access (RA), and low latency b (LDB) configurations using VTM-4.0.1 software according to common test conditions [2]. The corresponding simulations are performed on an Intel Xeon cluster (E5-2697A v4, AVX2 on, turbo boost off) with Linux operating system and GCC 7.2.1 compiler.

[0234] Table 7: Results of AI configuration

[0235]

[0236] Table 8: Results of RA configuration

[0237]

[0238] Table 9: Results of LDB configuration

[0239]

[0240]

[0241] 4 Additional Information

[0242] 4.1 Use of subpartitions with width less than 4

[0243] Using subpartitions with a width less than 4 has been mentioned in the JVET reflection as a potential hardware issue, given that samples are typically allocated in a raster scan manner, and that some implementations write the output of the reconstructed samples into 4×1 groups. So, for example, 1×N or 2×N subpartitions may cause problems. Prediction from the 1×N subpartitions is not a big problem, writing out the 1×N subpartition data becomes a problem, because the data is typically written out horizontally 4 or 8 samples per cycle. In order for this to work, it is necessary to keep 4×N intermediate buffers (registers) to store this data, and then write, for example, 4 samples at a time to memory (e.g. for deblocking). The same problem occurs when reading the 1×N inverse transform output for reconstruction. This will increase latency and will also require double buffering. For this reason, additional information is provided below to evaluate the impact of using these subpartitions.

[0244] 4.1.1 Remove subpartitions with width less than 4

[0245] This modification affects the vertical partitioning of 4×N and 8×N blocks as follows:

[0246] 4×N: There is no vertical partitioning anymore, i.e. along the horizontal dimension. Therefore, whenever ISP is used on one of these blocks, the decoder or encoder infers that horizontal partitioning is used, and therefore does not have to parse the partition flag syntax element. So, for example, 4×1 transform partitioning is used instead of 1×N transform partitioning.

[0247] 8×N: Vertical partitioning produces two sub-partitions instead of four. Thus the predetermined block 80 is divided into 4×N sub-partitions instead of 1×N or 2×N sub-partitions, for example.

[0248] Note that this modified ISP approach was proposed as Test 1.1.2 in [1] at CE3 in Marrakech in January 2019. The results of this approach on VTM-4.0.1 are presented in Tables 10, 11, and 12.

[0249] Table 10: Results for AI configuration without subpartitions with width less than 4

[0250]

[0251]

[0252] Table 11: Results for RA configuration with no sub-partitions with width less than 4

[0253]

[0254] Table 12: Results for LDB configuration without subpartitions with width less than 4

[0255]

[0256] 4.1.2 Extending ISP of independent subpartitions to subpartitions with width less than 4

[0257] In this case, subpartitions with width less than 4 are not removed from the ISP structure. Instead, the same design as for 4×4, 8×4, and 4×8 introduced in Section 2 is applied to them. Two different cases are distinguished:

[0258] The vertical partitioning of a 4×N block is handled in the same way as the vertical partitioning of 4×4 explained in Section 2.1. For example, a 4×32 block can be divided vertically into four independent 1×32 transform partitions 300, which form a partition 112.

[0259] The vertical partitioning of 8×N blocks is handled in the same way as the vertical partitioning of 8×4 blocks explained in Section 2.2. For example, an 8×16 block can be divided into four 2×16 transform partitions 300, where transform partitions 1 and 2 form partition 1121, transform partitions 3 and 4 form partition 1122, and transform partitions 2 and 4 cannot use the reconstructed samples of transform partitions 1 and 3, respectively, to generate their corresponding prediction signals.

[0260] This method allows writing reconstructed samples in groups of at least 4×4 samples in all vertical partitioning cases (in case of horizontal partitioning, the minimum is still 16×1). The results of this method (using independent transform partitioning on 4×4, 4×8, 8×4 and vertical partitioning of 4×N and 8×N blocks) on VTM-4.0.1 are presented in Tables 13, 14 and 15.

[0261] Thus, according to an embodiment, the decoder is configured to divide the predetermined block into 16×M sub-blocks, where M≥1, or alternatively into 4×N sub-blocks or N×4 sub-blocks, where N≥4. As described above, the sub-blocks are optionally divided into two or more smaller transform partitions.

[0262] Table 13: Results for AI configuration using independent sub-partitioning on 4×4, 4×8, 8×4 and vertical partitioning of 4×N and 8×N blocks

[0263]

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

[0265]

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

[0267]

[0268] 5 Conclusion

[0269] The reported results show gains for CTC and F classes, with little (AI) or no impact (RA and LDB) on encoding runtime.

[0270] Regarding the proposed additional information, experimental results show that removing subpartitions with width less than 4 produces a noticeable penalty, especially in the case of classes C and E in AI and class F in all configurations. Moreover, this penalty has a negligible reduction in encoding runtime. On the other hand, the new ISP design extending the blocks to produce subpartitions with width less than 4 has better performance in terms of BD-Rate gain than completely removing these subpartitions, since it does not produce any penalty, it produces a significant gain in class F, and has a very small impact on encoding runtime.

[0271] 6. Reduction of complexity of ISP partition structure

[0272] As mentioned above, there are variations of the above outlined concept, one of which is presented here. As mentioned above, in a typical decoder hardware implementation, one of the most critical aspects affecting the top-level system pipeline is processing dependencies. In the case of ISP, the minimum 16 sample constraint ensures that loop dependencies present in intra prediction are not a problem in terms of throughput, because the smallest luma block in VVC has a 4×4 size, i.e., 16 samples.

[0273] However, ISP introduces new very narrow shapes in the VVC design, namely 1×N, 2×N, M×2, and M×1. In the case of 1×N and 2×N subpartitions, handling dependencies can become a problem because pixels are usually allocated in an internal line buffer memory in a raster scan manner, accessing samples in groups of 4×1. For this reason, filling this buffer is inefficient for all subpartitions with a width less than 4. The impact of this problem can be reduced through different hardware implementations (such as modifying the way pixels are allocated or using transposed memories), but in any case, it still means an increase in the complexity of the hardware implementation.

[0274] Fig.19a and Fig.19b Examples of different sub-partitions 112 / P and transform partitions 300 / T for different block sizes of a predetermined block 80 are shown, wherein the left example shows a conventional partitioning and the right example shows a proposed partitioning according to the invention described herein. Fig.19a The decoding and / or encoding of the predetermined block 80 on the right side may be similar to or as in Figures 15a to 15d is performed as described in , and Fig.19a The decoding and / or encoding of the predetermined block 80 on the right side may be similar to or as Fig.17 Execute as described in .

[0275] To reduce the complexity of hardware implementation, a minimum prediction width of 4 is established (the transform size remains unchanged). This affects the vertical partitioning of 4×M (M>4) and 8×N (N>4) blocks in the following way:

[0276] 4×M: The entire block is predicted at once like a non-ISP block, and a 4×M residual signal is computed. The residual is then split into four independently processed 1×M (or two 2×8, for M=8) transform subpartitions.

[0277] 8×N: The block is divided into two 4×N prediction subpartitions P1 and P2. After the prediction for P1 is calculated, a 4×N residual signal is generated and divided into two 2×N transform subpartitions T1 and T2, which are processed separately. The same process is then repeated similarly for P2, T3, and T4. However, in this case, the prediction signal can use the reconstructed samples of the P1 region.

[0278] 7 References

[0279] [1] S. De-Luxán-Hernández, V. George, J. Ma, T. Nguyen, H. Schwarz, D. Marpe and T. Wiegand, "CE3: Intra Sub-Partitions Coding Mode (Tests1.1.1and 1.1.2)," Document JVET-M0102, Marrakech, MA, 2019.

[0280] [2] F. Bossen, J. Boyce, X. Li, V. Seregin and K. Sühring, "JVET common testconditions and software reference configurations for SDR video," document JVET-M1010, Marrakech, MA, 2019.

[0281] Although some aspects have been described in the context of an apparatus, it will be clear that these aspects also represent the description of the 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 the feature of a corresponding block or item or a corresponding apparatus. Some or all of the method steps may be performed by (or using) a hardware device (such as a microprocessor, a programmable computer or an electronic circuit). In some embodiments, one or more of the most important method steps may be performed by such an apparatus.

[0282] 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 (eg, the Internet).

[0283] Depending on certain implementation requirements, embodiments of the present invention may be implemented in hardware or in software. Implementation may be performed using a digital storage medium (e.g., a floppy disk, DVD, Blu-ray, CD, ROM, PROM, EPROM, EEPROM, or flash memory) having stored thereon electronically readable control signals that cooperate (or are capable of cooperating) with a programmable computer system to perform the corresponding method. Thus, the digital storage medium may be computer readable.

[0284] 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.

[0285] Generally, embodiments of the present invention can be implemented as a computer program product with a program code, the program code being operative for performing one of the methods when the computer program product runs on a computer.The program code may, for example, be stored on a machine readable carrier.

[0286] Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.

[0287] 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.

[0288] A further embodiment of the inventive method is, therefore, a data carrier (or a digital storage medium or a computer-readable medium) on which is recorded 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.

[0289] Therefore, another embodiment of the inventive method is 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 (eg, via the Internet).

[0290] 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.

[0291] A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.

[0292] Another embodiment according to the invention comprises an apparatus or system configured to transmit a computer program to a receiver (e.g. electronically or optically), the computer program being used to perform one of the methods described herein. The receiver may be, for example, a computer, a mobile device, a storage device, etc. The apparatus or system may, for example, comprise a file server for transmitting the computer program to the receiver.

[0293] In some embodiments, a programmable logic device (e.g., a field programmable gate array) can be used to perform some or all of the functions of the methods described herein. In some embodiments, a field programmable gate array can collaborate with a microprocessor to perform one of the methods described herein. Typically, the method is preferably performed by any hardware device.

[0294] The devices described herein may be implemented using hardware devices, or using computers, or using a combination of hardware devices and computers.

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

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

[0297] Any component of a method described herein or an apparatus described herein may be performed at least in part by hardware and / or by software.

[0298] The above embodiments are merely illustrative of the principles of the present invention. It should be understood that modifications and variations of the arrangements and details described herein will be apparent to other persons skilled in the art. Therefore, it is intended that the scope of the present invention be limited only by the scope of the appended patent claims and not by the specific details given by way of the description and explanation of the embodiments herein.

Claims

1. A method for decoding a block (80) of a picture, the method comprising: Decoding an intra-frame coding mode (116) of the block (80) from a data stream, wherein the block (80) is divided into four equally sized transform partitions (300) based on a partition dimension flag (114) and a size of the block; determining a plurality of prediction partitions into which the block (80) is divided based on a size of the block (80), wherein each prediction partition of the plurality of prediction partitions includes two transform partitions of the four transform partitions (300); deriving (122) a predictor for a prediction partition (102, 112) of the plurality of prediction partitions using at least one reconstructed sample adjacent to the prediction partition (102, 112) and the intra-coding mode (116); After deriving the predictor of the prediction partition, deriving a prediction residual (130) for each of two transform partitions (300) included in the prediction partition; and The predictor of the prediction partition (102, 112) and the prediction residual (130) for each of the two transform partitions (300) included in the prediction partition (102, 112) are combined to reconstruct the prediction partition.

2. The method according to claim 1, further comprising: The block (80) is reconstructed using the reconstructed prediction partition, the prediction residual (130) for each of the four transform partitions (300), and the predictor for each additional prediction partition (102, 112) of the plurality of prediction partitions.

3. The method according to claim 1, further comprising: Decoding the partition dimension flag (114) from the data stream, the partition dimension flag (114) indicating a partition direction for partitioning the block (80); as well as Determine that the block (80) is divided into the four transform partitions (300) of equal size along the division direction indicated by the division dimension flag (114), wherein, when the division direction is horizontal, each transform partition in the transform partitions (300) spans the vertical height of the block (80), or when the division direction is vertical, each transform partition in the transform partitions (300) spans the horizontal width of the block (80).

4. The method according to claim 3, wherein: The first dimension of each transform partition in the transform partitions (300) is the same as the first dimension of the block (80), while the second dimension of the transform partition (300) is different from the second dimension of the block (80).

5. The method according to claim 1, wherein: in, When the size of the block (80) is 8 x 4 or 4 x 8, the method includes determining that the block (80) is divided into two transform partitions (300) of equal size.

6. The method according to claim 1, wherein: The method further comprises: decoding the partition dimension flag (114) from the data stream, the partition dimension flag (114) indicating a partition direction for partitioning the block (80); When the partition dimension flag (114) indicates that the partition direction of the block is horizontal, the method comprises: determining that the size of each transform partition in the transform partition (300) is defined as as well as When the partition dimension flag (114) indicates that the partition direction of the block is vertical, the method comprises: determining that the size of each transform partition in the transform partition (300) is defined as Where W is the width of the block, H is the height of the block, and K is 4.

7. The method according to claim 1, wherein: The intra-coding mode (116) is one of a set of supported intra-coding modes, the set of supported intra-coding modes comprising an angular mode and at least one non-angular mode, The prediction partition (102, 112) includes at least 16 samples, Each of the four transform partitions (300) has a first size, and The prediction partition (102, 112) has a second size different from the first size.

8. The method according to claim 1, wherein: Deriving a prediction residual (130) for each of the four transform partitions (300) includes: decoding a transform of the prediction residual from the data stream (120), or Infer values ​​for the prediction residuals.

9. The method according to claim 1, wherein: The number of the plurality of prediction partitions is two.

10. The method according to claim 1, further comprising: A predictor for each additional prediction partition (102, 112) of the plurality of prediction partitions is derived (122) using at least one reconstructed sample and the intra-coding mode (116).

11. The method according to claim 10, wherein: The at least one reconstructed sample used to predict each additional prediction partition (102, 112) is: reconstructed samples outside the block (80) and adjacent to the block (80), or Reconstructed samples that are respectively outside each of the additional prediction partitions and adjacent to each of the additional prediction partitions.

12. The method of claim 1, wherein: reconstructed samples at a position corresponding to one of four transform partitions (300) included in the reconstructed prediction partitions (102, 112) are not used to derive a predictor corresponding to another prediction partition (102, 112) of the plurality of prediction partitions, and Reconstructed samples located at a position corresponding to another transform partition among the four transform partitions (300) included in the reconstructed prediction partitions (102, 112) are used to derive a predictor corresponding to another prediction partition (102, 112) among the plurality of prediction partitions.

13. The method of claim 1, wherein: The prediction residual for each of the four transform partitions is derived after deriving the predictor for the prediction partition (102, 112).

14. A decoder for decoding a block (80) of a picture, the decoder being configured to: The intra-frame coding mode (116) of the block (80) is decoded from the data stream, wherein: Dividing the block (80) into four transform partitions (300) of equal size based on a partition dimension flag (114) and a size of the block; Determining a plurality of prediction partitions (102, 112) into which the block (80) is divided based on a size of the block (80), wherein each prediction partition of the plurality of prediction partitions includes two transform partitions of the four transform partitions (300); deriving (122) a predictor for a prediction partition (102, 112) of the plurality of prediction partitions using at least one reconstructed sample adjacent to the prediction partition (102, 112) and the intra-coding mode (116); After deriving the predictor of the prediction partition, deriving a prediction residual (130) for each of two transform partitions (300) included in the prediction partition; and The predictor of the prediction partition (102, 112) and the prediction residual (130) for each of the two transform partitions (300) included in the prediction partition (102, 112) are combined to reconstruct the prediction partition.

15. The decoder according to claim 14, further configured to: The block (80) is reconstructed using the reconstructed prediction partition, the prediction residual (130) for each additional transform partition in the four transform partitions (300), and the predictor for each additional prediction partition (102, 112) in the plurality of prediction partitions.

16. The decoder according to claim 14, further configured to: Decoding the partition dimension flag (114) from the data stream, the partition dimension flag (114) indicating a partition direction for partitioning the block (80); and Determine that the block (80) is divided into four transform partitions (300) of equal size along the division direction indicated by the division dimension flag (114), wherein: When the partitioning direction is horizontal, each of the transform partitions (300) spans the vertical height of the block (80), or when the partitioning direction is vertical, each of the transform partitions (300) spans the horizontal width of the block (80).

17. The decoder of claim 16, wherein: The first dimension of each transform partition in the transform partitions (300) is the same as the first dimension of the block (80), while the second dimension of the transform partition (300) is different from the second dimension of the block (80).

18. The decoder of claim 14, wherein: in, When the size of the block (80) is 8 x 4 or 4 x 8, the decoder is configured to determine that the block (80) is divided into two transform partitions (300) of equal size.

19. The decoder of claim 14, wherein: The decoder is further configured to: decode the partition dimension flag (114) from the data stream, the partition dimension flag (114) indicating a partition direction for partitioning the block (80); When the partition dimension flag (114) indicates that the partition direction of the block is horizontal, the decoder is configured to: determine that the size of each transform partition in the transform partition (300) is defined as as well as When the partition dimension flag (114) indicates that the partition direction of the block is vertical, the decoder is configured to: determine that the size of each transform partition in the transform partition (300) is defined as Where W is the width of the block, H is the height of the block, and K is 4.

20. The decoder of claim 14, wherein: The intra-coding mode (116) is one of a set of supported intra-coding modes, the set of supported intra-coding modes comprising an angular mode and at least one non-angular mode, The prediction partition (102, 112) includes at least 16 samples, Each of the four transform partitions (300) has a first size, and The prediction partition (102, 112) has a second size different from the first size.

21. The method according to claim 14, wherein: To derive a prediction residual (130) for each of the four transform partitions (300), the decoder is configured to: decoding a transform of the prediction residual from the data stream (120), or Infer values ​​for the prediction residuals.

22. The decoder of claim 14, wherein: The number of the plurality of prediction partitions is two.

23. The decoder of claim 14, further configured to: A predictor for each additional prediction partition (102, 112) of the plurality of prediction partitions is derived (122) using at least one reconstructed sample and the intra-coding mode (116).

24. The decoder of claim 23, wherein: The at least one reconstructed sample used to predict each additional prediction partition (102, 112) is: reconstructed samples outside the block (80) and adjacent to the block (80), or Reconstructed samples that are respectively outside each of the additional prediction partitions (102, 112) and adjacent to each of the additional prediction partitions (102, 112).

25. The decoder of claim 14, wherein: reconstructed samples at a position corresponding to one of four transform partitions (300) included in the reconstructed prediction partitions (102, 112) are not used to derive a predictor corresponding to another prediction partition (102, 112) of the plurality of prediction partitions, and Reconstructed samples located at a position corresponding to another transform partition among the four transform partitions (300) included in the reconstructed prediction partitions (102, 112) are used to derive a predictor corresponding to another prediction partition (102, 112) among the plurality of prediction partitions.

26. The decoder of claim 14, wherein: The prediction residual for each of the four transform partitions is derived after deriving the predictor for the prediction partition (102, 112).

27. A non-transitory computer-readable medium comprising instructions for decoding a block (80) of a picture, the instructions, when executed, causing at least one processor to: The intra-frame coding mode (116) of the block (80) is decoded from the data stream, wherein: Dividing the block (80) into four transform partitions (300) of equal size based on a partition dimension flag (114) and a size of the block; Determining a plurality of prediction partitions (102, 112) into which the block (80) is divided based on a size of the block (80), wherein each prediction partition of the plurality of prediction partitions includes two transform partitions of the four transform partitions (300); deriving (122) a predictor for a prediction partition (102, 112) of the plurality of prediction partitions using at least one reconstructed sample adjacent to the prediction partition (102, 112) and the intra-coding mode (116); After deriving the predictor of the prediction partition, deriving a prediction residual (130) for each of two transform partitions (300) included in the prediction partition; and The predictor of the prediction partition (102, 112) and the prediction residual (130) for each of the two transform partitions (300) included in the prediction partition (102, 112) are combined to reconstruct the prediction partition.

28. A method for encoding a block (80) of a picture, the method comprising: encoding an intra-frame coding mode (116) of the block (80) into a data stream, wherein the block (80) is divided into four transform partitions (300) of equal size according to a partition dimension flag (114) and the size of the block; Determining a plurality of prediction partitions (102, 112) into which the block (80) is divided based on a size of the block (80), wherein each prediction partition of the plurality of prediction partitions includes two transform partitions of the four transform partitions (300); deriving (122) a predictor for a prediction partition (102, 112) of the plurality of prediction partitions using at least one reconstructed sample adjacent to the prediction partition (102, 112) and the intra-coding mode (116); After deriving the predictor of the prediction partition, deriving a prediction residual (130) for each of two transform partitions (300) included in the prediction partition; and A predictor of the prediction partition (102, 112) and a prediction residual (130) for each of two transform partitions (300) included in the prediction partition are encoded into the data stream.

29. An encoder for encoding a block (80) of a picture, the encoder being configured to: The intra-frame coding mode (116) of the block (80) is encoded into a data stream, wherein: Dividing the block (80) into four transform partitions (300) of equal size according to the partition dimension flag (114) and the size of the block; Determining a plurality of prediction partitions (102, 112) into which the block (80) is divided based on a size of the block (80), wherein each prediction partition of the plurality of prediction partitions includes two transform partitions of the four transform partitions (300); deriving (122) a predictor for a prediction partition (102, 112) of the plurality of prediction partitions using at least one reconstructed sample adjacent to the prediction partition (102, 112) and the intra-coding mode (116); After deriving the predictor of the prediction partition, deriving a prediction residual (130) for each of two transform partitions (300) included in the prediction partition; and A predictor of the prediction partition (102, 112) and a prediction residual (130) for each of two transform partitions (300) included in the prediction partition are encoded into the data stream.

30. A non-transitory computer-readable medium comprising instructions for encoding a block (80) of a picture, the instructions when executed causing at least one processor to: The intra-frame coding mode (116) of the block (80) is encoded into a data stream, wherein: Dividing the block (80) into four transform partitions (300) of equal size according to the partition dimension flag (114) and the size of the block; Determining a plurality of prediction partitions (102, 112) into which the block (80) is divided based on a size of the block (80), wherein each prediction partition of the plurality of prediction partitions includes two transform partitions of the four transform partitions (300); deriving (122) a predictor for a prediction partition (102, 112) of the plurality of prediction partitions using at least one reconstructed sample adjacent to the prediction partition (102, 112) and the intra-coding mode (116); After deriving the predictor of the prediction partition, deriving a prediction residual (130) for each of two transform partitions (300) included in the prediction partition; and A predictor of the prediction partition (102, 112) and a prediction residual (130) for each of two transform partitions (300) included in the prediction partition are encoded into the data stream.