Coding of intra prediction mode

By forming a most likely intra prediction mode list based on the predicted modes of adjacent blocks, the selection of intra prediction modes is optimized, which solves the problem of low coding efficiency in the prior art and reduces the probability of transmitting additional syntax elements.

CN114128269BActive Publication Date: 2025-09-23FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080050899.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-06-14
Filing Date
2020-06-10
Publication Date
2025-09-23
Estimated Expiration
2040-06-10

AI Technical Summary

Technical Problem

In the prior art, the generated most probable mode list is not effectively optimized, resulting in unlikely prediction modes occupying valuable list positions, affecting coding efficiency and increasing the probability of transmitting additional syntax elements.

Method used

The intra prediction mode selection process is optimized by forming a most probable intra prediction mode list based on the predicted modes of neighboring blocks, omitting unlikely intra prediction modes, and introducing set-selective syntax elements for DC intra prediction mode and angular prediction mode.

Benefits of technology

The coding efficiency is improved, the possibility of unnecessary intra-prediction modes occupying positions is reduced, and the probability of transmitting additional syntax elements is reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114128269B_ABST
    Figure CN114128269B_ABST
Patent Text Reader

Abstract

The present invention discloses a technique for efficiently performing block-based prediction on blocks of an image, such as an apparatus (3000) for decoding a predetermined block (18) of an image (10) using intra prediction, the apparatus being configured to derive from a data stream (12) a set-selective syntax element (522) indicating whether the predetermined block (18) is to be predicted using one of a first set (508) of intra prediction modes including a DC intra prediction mode (506) and an angular prediction mode (500). If the set-selective syntax element (522) indicates that the predetermined block (18) is to be predicted using one of the first set (508) of intra-prediction modes, the apparatus is configured to form a list (528) of most probable intra-prediction modes based on the intra-prediction modes (3050) used to predict neighboring blocks (524, 526) adjacent to the predetermined block (18), derive an MPM list index (534) in the list (528) of most probable intra-prediction modes pointing to a predetermined intra-prediction mode (3100) from the data stream (12), and intra-predict the predetermined block (18) using the predetermined intra-prediction mode (3100). If the set-selective syntax element (522) indicates that one of the first set (508) of intra prediction modes is not to be used to predict the predetermined block (18), the apparatus is configured to derive from the data stream (12) a further index (540; 546) indicating a predetermined matrix-based intra prediction mode (3200) from the second set (520) of matrix-based intra prediction modes (510), calculate a matrix-vector product (512) between a vector (514, 400, 402) derived from reference samples (17) in a neighborhood of the predetermined block (18) and a predetermined prediction matrix (516) associated with the predetermined matrix-based intra prediction mode (3200) to obtain a prediction vector (518), and predict samples of the predetermined block (18) based on the prediction vector (518). A list (528) of most probable intra-prediction modes is formed based on the intra-prediction modes (3050) used to predict neighboring blocks (524, 526) adjacent to the predetermined block (18), such that when the neighboring blocks (525, 526) are predicted by any one of the angular intra-prediction modes (500), the list (528) of most probable intra-prediction modes does not include the DC intra-prediction mode (506).
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of intra-prediction. Embodiments relate to advantageous ways to generate a most probable pattern list. Background Art

[0002] Currently, there are different ways to generate the most probable mode list. However, there is still a high probability that the last used intra prediction mode is not in this list, requiring the transmission of additional syntax elements.

[0003] Therefore, one is faced with the problem of optimizing the generation of the most probable mode list and / or improving the coding efficiency. Summary of the Invention

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

[0005] Further embodiments according to the invention are defined by the subject matter of the dependent claims of the present application.

[0006] According to the first aspect of the present invention, the inventors of the present application recognized that one problem encountered when forming a most probable intra-prediction mode list is that unlikely prediction modes occupy valuable list position, thereby adversely affecting coding efficiency and increasing the likelihood that the intra-prediction mode last used to predict a predetermined block is not in the list. According to the first aspect of the present application, this difficulty is overcome by forming a list of most probable intra-prediction modes based on already predicted neighboring blocks adjacent to the predetermined block. Consequently, unlikely intra-prediction modes can be omitted. A high probability of the intra-prediction mode for the predetermined block being similar to the intra-prediction mode of the neighboring blocks can be expected. In particular, when at least one of the neighboring blocks is predicted using any angular intra-prediction mode, the list does not contain a DC intra-prediction mode. This allows a list of most probable intra-prediction modes with a wide variety of angular intra-prediction modes to increase the likelihood that the intra-prediction mode to be used for the predetermined block is in the list. Furthermore, the matrix-based intra-prediction modes form, for example, a separate second set of intra-prediction modes that is not considered in the list of most probable intra-prediction modes and therefore does not compete with the intra-prediction modes in the first set of intra-prediction modes for position in the list of most probable intra-prediction modes.

[0007] Therefore, according to a first aspect of the present application, an apparatus for decoding a predetermined block of an image using intra prediction is configured to derive from a data stream a set-selective syntax element indicating whether one of a first set of intra prediction modes, including a DC intra prediction mode and an angular prediction mode, is used to predict the predetermined block. Optionally, the first set of intra prediction modes may include a planar intra prediction mode in addition to or in place of the DC intra prediction mode. If the set-selective syntax element indicates that one of the first set of intra prediction modes is used to predict the predetermined block, the apparatus is configured to form a list of most probable intra prediction modes based on the intra prediction modes used when predicting neighboring blocks adjacent to the predetermined block, derive from the data stream an MPM (i.e., most probable mode) list index pointing to a predetermined intra prediction mode in the list of most probable intra prediction modes, and perform intra prediction on the predetermined block using the predetermined intra prediction mode. In other words, in this case, the apparatus is configured to form a list of most probable intra prediction modes based on the intra prediction modes used to predict neighboring blocks adjacent to the predetermined block. If the set-selective syntax element indicates that one of the first set of intra prediction modes is not to be used to predict the predetermined block, the apparatus is configured to derive from the data stream a further index indicating a predetermined matrix-based intra prediction mode from a second set of matrix-based intra prediction modes (i.e., a second set of intra prediction modes including matrix-based intra prediction modes, i.e., block-based intra prediction modes) by calculating a matrix-vector product between a vector derived from reference samples in a neighborhood of the predetermined block and a predetermined prediction matrix associated with the predetermined matrix-based intra prediction mode to obtain a prediction vector and predicting samples of the predetermined block based on the prediction vector. In this case, for example, the prediction is similar to or equal to the prediction matrix with respect to Figures 5 to 11 The ALWIP prediction described in the embodiment of the present invention is performed. The device is configured to form a list of most probable intra prediction modes based on the intra prediction mode used when predicting neighboring blocks adjacent to the predetermined block, so that when the neighboring block is predicted by any one of the angular intra prediction modes, the list of most probable intra prediction modes does not contain the DC intra prediction mode. In other words, the device is configured to form a list of most probable intra prediction modes based on the intra prediction mode used when predicting neighboring blocks adjacent to the predetermined block, so that when the neighboring block is predicted exclusively by any one of the angular intra prediction modes, the list of most probable intra prediction modes does not contain the DC intra prediction mode. Therefore, the DC intra prediction mode does not occupy a position in the list of most probable intra prediction modes, and if the probability is small, the DC intra prediction mode is selected for the predetermined block.

[0008] By this arrangement, an advantageous and efficient way of determining an intra prediction mode for a predetermined block is introduced. In particular, an advantageous analysis of predicted neighboring blocks adjacent to the predetermined block for forming a list of most probable intra prediction modes is proposed, wherein the neighboring blocks have already been predicted.

[0009] According to an embodiment, the apparatus is configured to perform forming a list of most probable intra prediction modes based on intra prediction modes used when predicting neighboring blocks adjacent to a predetermined block, such that the list of most probable intra prediction modes is populated with the DC intra prediction mode only when, for each of the neighboring blocks, the corresponding neighboring block predicted using any one of at least one non-angular intra prediction mode within a first set including the DC intra prediction mode or using any one of the block-based intra prediction modes (which are used to form the list of most probable intra prediction modes by mapping from a second set of block-based intra prediction modes to intra prediction modes within the first set) is mapped to any one of the at least one non-angular intra prediction mode. In other words, when all neighboring blocks, for example two neighboring blocks, are predicted using any one of the at least one non-angular intra prediction mode within the first set of intra prediction modes, the list of most probable intra prediction modes includes the DC intra prediction mode. Alternatively, in the case where all neighboring blocks, for example two neighboring blocks, are predicted using any one of the block-based intra prediction modes from the second set of intra prediction modes, the list of most probable intra prediction modes includes a DC intra prediction mode, wherein the block-based intra prediction mode is mapped from the second set of block-based intra prediction modes to a non-angular intra prediction mode from the first set. According to one embodiment, the apparatus is configured to position the DC intra prediction mode before any angular intra prediction mode in the list of most probable intra prediction modes. This is based on the idea that, in the case described above, the DC intra prediction mode is the most probable mode for a predetermined block, and this positioning thereby improves coding efficiency.

[0010] According to one embodiment, the apparatus is configured to derive an MPM syntax element from the data stream and to form a list of most probable intra prediction modes only if the MPM syntax element indicates that a predetermined intra prediction mode from the first set of intra prediction modes is within the list of most probable intra prediction modes. This feature improves coding efficiency because the list of most probable intra prediction modes is formed only when necessary or advantageous.

[0011] If the predetermined block is predicted using one of the second set of intra prediction modes, then according to one embodiment, the apparatus is configured to form a list of most probable block-based intra prediction modes. In this case, the apparatus is, for example, configured to derive from the data stream an additional MPM list index that points to a predetermined matrix-based intra prediction mode, i.e., a predetermined block-based intra prediction mode, in the list of most probable block-based intra prediction modes. Optionally, this list of most probable block-based intra prediction modes is formed only if the additional MPM syntax element derived from the data stream indicates that the predetermined block-based intra prediction mode is in the list of most probable block-based intra prediction modes.

[0012] Thus, for example, the apparatus is configured to form different MPM lists for the first set of intra-prediction modes and the second set of intra-prediction modes. The list of most probable intra-prediction modes includes, for example, intra-prediction modes from the first set of intra-prediction modes, and the list of most probable block-based intra-prediction modes includes, for example, intra-prediction modes from the second set of intra-prediction modes, i.e., the second set of block-based intra-prediction modes. This makes it possible that the block-based intra-prediction mode does not need to compete with the intra-prediction modes from the first set of intra-prediction modes, such as the DC intra-prediction mode and the angular prediction mode, for a position in the overall MPM list. Due to this separation, the intra-prediction mode for a predetermined block is actually more likely to be in the corresponding MPM list.

[0013] An embodiment relates to an apparatus for encoding a predetermined block of an image using intra prediction, the apparatus being configured to signal in a data stream a set-selective syntax element indicating whether one of a first set of intra prediction modes, including a DC intra prediction mode and an angular prediction mode, is used to predict the predetermined block. Optionally, the first set of intra prediction modes may include a planar intra prediction mode in addition to or instead of the DC intra prediction mode. If the set-selective syntax element indicates that the predetermined block is predicted using one of the first set of intra prediction modes, the apparatus is configured to form a list of most probable intra prediction modes based on the intra prediction modes used when predicting neighboring blocks adjacent to the predetermined block, signal in the data stream an MPM list index pointing to a predetermined intra prediction mode in the list of most probable intra prediction modes, and perform intra prediction on the predetermined block using the predetermined intra prediction mode. In other words, in this case, the apparatus is configured to form a list of most probable intra prediction modes based on the intra prediction modes used to predict the neighboring blocks adjacent to the predetermined block. If the set-selective syntax element indicates that one of the first set of intra prediction modes is not to be used to predict the predetermined block, the apparatus is configured to signal in the data stream a further index indicating a predetermined matrix-based intra prediction mode from a second set of matrix-based intra prediction modes (i.e., a second set of intra prediction modes including matrix-based intra prediction modes, i.e., block-based intra prediction modes) by calculating a matrix-vector product between a vector derived from reference samples in a neighborhood of the predetermined block and a predetermined prediction matrix associated with the predetermined matrix-based intra prediction mode to obtain a prediction vector and predicting samples of the predetermined block based on the prediction vector. In this case, for example, the prediction is similar to or equal to the prediction matrix with respect to Figures 5 to 11ALWIP prediction is described in the embodiment of the present invention. A list of most probable intra prediction modes is formed based on the intra prediction modes used when predicting neighboring blocks adjacent to the predetermined block, such that when the neighboring blocks are predicted by any one of the angular intra prediction modes, the list of most probable intra prediction modes does not include the DC intra prediction mode. In other words, a list of most probable intra prediction modes is formed based on the intra prediction modes used when predicting neighboring blocks adjacent to the predetermined block, such that when the neighboring blocks are predicted exclusively by any one of the angular intra prediction modes, the list of most probable intra prediction modes does not include the DC intra prediction mode.

[0014] Embodiments relate to a method for decoding a predetermined block of an image using intra prediction, comprising deriving from a data stream a set-selective syntax element indicating whether to use one of a first set of intra prediction modes, including a DC intra prediction mode and an angular prediction mode, to predict the predetermined block. If the set-selective syntax element indicates that the predetermined block is to be predicted using one of the first set of intra prediction modes, the method comprises forming a list of most probable intra prediction modes based on intra prediction modes used when predicting neighboring blocks adjacent to the predetermined block, deriving from the data stream an index to a predetermined intra prediction mode in the list of most probable intra prediction modes, and intra-predicting the predetermined block using the predetermined intra prediction mode. If the set-selective syntax element indicates that the predetermined block is not to be predicted using one of the first set of intra prediction modes, the method comprises deriving from the data stream an additional index indicating a predetermined matrix-based intra prediction mode from a second set of matrix-based intra prediction modes by computing a matrix-vector product between a vector derived from reference samples in a neighborhood of the predetermined block and a predetermined prediction matrix associated with the predetermined matrix-based intra prediction mode to obtain a prediction vector, and predicting samples of the predetermined block based on the prediction vector. A list of most probable intra prediction modes is formed based on the intra prediction modes used when predicting neighboring blocks adjacent to the predetermined block, such that when the neighboring blocks are predicted by any one of the angular intra prediction modes, the list of most probable intra prediction modes does not include a DC intra prediction mode. In other words, a list of most probable intra prediction modes is formed based on the intra prediction modes used when predicting neighboring blocks adjacent to the predetermined block, such that when the neighboring blocks are predicted exclusively by any one of the angular intra prediction modes, the list of most probable intra prediction modes does not include a DC intra prediction mode.

[0015] Embodiments relate to a method for encoding a predetermined block of an image using intra prediction, comprising signaling in a data stream a set-selective syntax element indicating whether to use one of a first set of intra prediction modes, including a DC intra prediction mode and an angular prediction mode, to predict the predetermined block. If the set-selective syntax element indicates that the predetermined block is to be predicted using one of the first set of intra prediction modes, the method comprises forming a list of most probable intra prediction modes based on intra prediction modes used when predicting neighboring blocks adjacent to the predetermined block, signaling in the data stream an MPM list index pointing to a predetermined intra prediction mode in the list of most probable intra prediction modes, and intra-predicting the predetermined block using the predetermined intra prediction mode. If the set-selective syntax element indicates that the predetermined block is not to be predicted using one of the first set of intra prediction modes, the method comprises signaling in the data stream an additional index of a predetermined matrix-based intra prediction mode from a second set of matrix-based intra prediction modes by computing a matrix-vector product between a vector derived from reference samples in a neighborhood of the predetermined block and a predetermined prediction matrix associated with the predetermined matrix-based intra prediction mode to obtain a prediction vector, and predicting samples of the predetermined block based on the prediction vector. A list of most probable intra prediction modes is formed based on the intra prediction modes used when predicting neighboring blocks adjacent to the predetermined block, such that when the neighboring blocks are predicted by any one of the angular intra prediction modes, the list of most probable intra prediction modes does not include a DC intra prediction mode. In other words, a list of most probable intra prediction modes is formed based on the intra prediction modes used when predicting neighboring blocks adjacent to the predetermined block, such that when the neighboring blocks are predicted exclusively by any one of the angular intra prediction modes, the list of most probable intra prediction modes does not include a DC intra prediction mode.

[0016] An embodiment relates to a data stream having images which are encoded into the data stream using the method for encoding described herein.

[0017] An exemplary embodiment relates to a computer program having a program code for performing the method described herein when the program code runs on a computer. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] The accompanying drawings are not necessarily drawn to scale, emphasis instead generally being placed upon illustrating the principles of the invention. In the following description, various embodiments of the invention are described with reference to the following drawings, in which:

[0019] Figure 1 An embodiment of encoding into a data stream is shown;

[0020] Figure 2 An embodiment of an encoder is shown;

[0021] Figure 3 An embodiment showing reconstruction of an image;

[0022] Figure 4 An embodiment of a decoder is shown;

[0023] Figure 5 A schematic diagram illustrating prediction of a block for encoding and / or decoding according to an embodiment;

[0024] Figure 6 Matrix operations for prediction of blocks for encoding and / or decoding according to an embodiment are shown;

[0025] Figure 7.1 shows prediction of a block with a downscaled sample value vector according to an embodiment;

[0026] Figure 7.2 shows prediction of a block using interpolation of samples according to an embodiment;

[0027] Figure 7.3 shows the prediction of a block with a downscaled sample value vector according to an embodiment, where only some boundary samples are averaged;

[0028] Figure 7.4 shows prediction of a block with a downscaled sample value vector according to an embodiment, wherein groups of four boundary samples are averaged;

[0029] Figure 8 illustrates matrix operations performed by an apparatus according to an embodiment;

[0030] Figures 9a to 9c shows detailed matrix operations performed by the apparatus according to one embodiment;

[0031] Figure 10 illustrates detailed matrix operations performed by a device using offset and scaling parameters according to an embodiment;

[0032] Figure 11 illustrates detailed matrix operations performed by a device using offset and scaling parameters according to various embodiments;

[0033] Figure 12 A schematic diagram illustrating an apparatus for decoding a predetermined block according to an embodiment;

[0034] Figure 13 A schematic diagram illustrating details regarding decoding and encoding a predetermined block according to an embodiment;

[0035] Figure 14 A schematic diagram illustrating an apparatus for encoding a predetermined block according to an embodiment;

[0036] Figure 15 A block diagram illustrating a method for decoding a predetermined block according to an embodiment; and

[0037] Figure 16 A block diagram illustrating a method for encoding a predetermined block according to an embodiment. DETAILED DESCRIPTION

[0038] Even if the same or equivalent components or components having the same or equivalent functionality appear in different drawings, the one or more components are denoted by the same or equivalent reference numerals in the following description.

[0039] In the following description, numerous details are set forth to provide a more thorough explanation of the embodiments of the present invention. However, it will be apparent to those skilled in the art that the embodiments of the present invention can be practiced without these specific details. In other instances, known structures and devices are shown in block diagram form rather than in detail to avoid obscuring the embodiments of the present invention. Furthermore, unless specifically indicated otherwise, features of the different embodiments described below may be combined with each other.

[0040] 1 Introduction

[0041] In the following, various examples, embodiments, and aspects of the present invention will be described. At least some of these examples, embodiments, and aspects particularly relate to methods and / or apparatus for video encoding and / or for performing intra-prediction (e.g., using linear or affine transformations and neighboring sample reduction) and / or for optimizing video delivery (e.g., broadcasting, streaming, file playback, etc.), such as for video applications and / or for virtual reality applications.

[0042] Furthermore, examples, embodiments, and aspects may refer to High Efficiency Video Coding (HEVC) or a successor. And, other embodiments, examples, and aspects are defined by the following claims.

[0043] It should be noted that any embodiment, example and aspect as defined by the claims may be supplemented by any of the details (features and functionalities) described in the following sections.

[0044] Furthermore, the embodiments, examples and aspects described in the following sections may be used accordingly and may also be supplemented by any of the features in another section or by any of the features included in the claims.

[0045] Furthermore, it should be noted that the individuals, examples, embodiments, and aspects described herein can be used in conjunction or in combination. Therefore, details can be added to each of the respective aspects without adding details to another of the examples, embodiments, and aspects.

[0046] It should also be noted that this disclosure explicitly or implicitly describes features of decoding and / or encoding systems and / or methods.

[0047] Furthermore, any features and functionalities disclosed herein with respect to a method may also be used in an apparatus. Furthermore, any features and functionalities disclosed herein with respect to an apparatus may also be used in a corresponding method. In other words, the method disclosed herein may be supplemented by any of the features and functionalities described with respect to an apparatus.

[0048] Furthermore, any of the features and functionalities described herein may be implemented in hardware or software, or using a combination of hardware and software, as will be described in the section “Implementation Alternatives”.

[0049] Furthermore, in some examples, embodiments or aspects, any of the features described in brackets ("(...)" or "[...]") may be considered optional.

[0050] 2Encoder and Decoder

[0051] Below, various examples are described that can help achieve more efficient compression when using block-based prediction. Some examples achieve high compression efficiency by using a set of intra prediction modes. The latter intra prediction modes can be added to other intra prediction modes, such as those designed exploratory ones, or provided exclusively. Other examples even utilize the two special cases just discussed. However, as a variation of these embodiments, intra prediction can be converted to inter prediction by using reference samples from another image.

[0052] In order to facilitate understanding of the following examples of the present application, the present description starts by presenting possible encoders and decoders suitable therefor, within which the subsequently outlined examples of the present application can be constructed. Figure 1 An apparatus for encoding an image 10 block by block into a data stream 12 is shown. The apparatus is indicated by reference numeral 14 and may again be an image encoder or a video encoder. In other words, when the encoder 14 is configured to encode a video 16 including the image 10 into the data stream 12 or the encoder 14 may specifically encode the image 10 into the data stream 12, the image 10 may be the current image in the video 16.

[0053] As mentioned, the encoder 14 performs encoding in a block-by-block manner or on a block basis. To this end, the encoder 14 subdivides the image 10 into blocks, which the encoder 14 encodes into the data stream 12 in units of blocks. Examples of possible subdivisions of the image 10 into blocks 18 are described in more detail below. In general, the subdivision may result in blocks 18 of constant size, such as an array of blocks arranged in rows and columns, such as by using a hierarchical multi-tree subdivision, or may result in blocks 18 of varying block sizes, where the multi-tree subdivision starts with the entire image area of ​​the image 10 or begins with a pre-division of the image 10 into an array of tree-shaped blocks, wherein these examples should not be considered to exclude other possible ways of subdividing the image 10 into blocks 18.

[0054] Furthermore, the encoder 14 is a predictive encoder configured to predictively encode the image 10 into the data stream 12. For a certain block 18, this means that the encoder 14 determines a prediction signal for the block 18 and encodes a prediction residual (i.e., a prediction error of the prediction signal from the actual image content within the block 18) into the data stream 12.

[0055] Encoder 14 can support different prediction modes to derive prediction signals for a block 18. The prediction mode of interest in the following example is intra-prediction mode, according to which the interior of block 18 is spatially predicted from neighboring coded samples of image 10. The encoding of image 10 into data stream 12, and therefore the corresponding decoding process, can be based on a coding order 20 defined within block 18. For example, coding order 20 can traverse block 18 in a raster scan order (such as from top to bottom, row by row), traversing each row from left to right, for example. In the case of a hierarchical multi-tree-based subdivision, raster scan ordering can be applied within each hierarchical level, where a depth-first traversal order can be applied, i.e., leaf nodes within a block at a certain hierarchical level can precede blocks with the same parent block at the same hierarchical level, according to coding order 20. Depending on coding order 20, neighboring coded samples of block 18 can generally be located on one or more sides of block 18. In the case of the examples presented herein, the adjacent coded samples of, for example, block 18 are located at the top and to the left of block 18 .

[0056] Intra-prediction mode may not be the only prediction mode supported by encoder 14. In the case where encoder 14 is a video encoder, for example, encoder 14 may also support inter-prediction mode, according to which block 18 is temporally predicted based on previously encoded pictures of video 16. This inter-prediction mode may be a motion-compensated prediction mode, according to which a motion vector is signaled to this block 18, indicating the relative spatial offset of the portion from which the prediction signal for block 18 is to be derived as a copy. Additionally or alternatively, other non-intra-prediction modes may also be available, such as inter-prediction mode in the case where encoder 14 is a multi-view encoder, or a non-predictive mode, according to which the interior of block 18 is encoded as is (i.e., without any prediction).

[0057] Before we begin to focus the description of this application on the intra-prediction mode, Figure 2 More specific examples of possible block-based encoders (i.e., possible implementations of encoder 14) are described, followed by presentation of examples suitable for Figure 1 and Figure 2 Two corresponding examples of decoders for .

[0058] Figure 2 Show Figure 1A possible implementation of the encoder 14 is one in which the encoder is configured to use transform coding for encoding the prediction residual, but this is an approximate example and the application is not limited to this type of prediction residual coding. Figure 2 The encoder 14 includes a subtractor 22 configured to subtract the corresponding prediction signal 24 from the incoming signal (i.e., image 10) or, on a block basis, from the current block 18 to obtain a prediction residual signal 26, which is then encoded into the data stream 12 by a prediction residual encoder 28. The prediction residual encoder 28 is composed of a lossy encoding stage 28a and a lossless encoding stage 28b. The lossy stage 28a receives the prediction residual signal 26 and includes a quantizer 30, which quantizes the samples of the prediction residual signal 26. As mentioned above, the present embodiment uses transform coding of the prediction residual signal 26, and therefore the lossy encoding stage 28a includes a transform stage 32 connected between the subtractor 22 and the quantizer 30 to transform the spectrally decomposed prediction residual 26, wherein the quantizer 30 quantizes the transformed data representing the residual signal 26. The transform can be a DCT, a DST, an FFT, a Hadamard transform, or the like. The transformed and quantized prediction residual signal 34 is then losslessly coded by a lossless coding stage 28b, which is an entropy encoder that entropy codes the quantized prediction residual signal 34 into the data stream 12. The encoder 14 further comprises a prediction residual signal reconstruction stage 36, which is connected to the output of the quantizer 30 in order to reconstruct the prediction residual signal from the transformed and quantized prediction residual signal 34 in a manner that can also be used at the decoder, i.e., taking into account the coding losses of the quantizer 30. To this end, the prediction residual reconstruction stage 36 comprises an inverse quantizer 38, which performs the inverse operation of the quantization of the quantizer 30, and then an inverse transformer 40, which performs an inverse transform relative to the transform performed by the transformer 32, such as the inverse operation of the spectral decomposition, such as the inverse operation of any of the specific transform examples mentioned above. The encoder 14 comprises an adder 42, which adds the reconstructed prediction residual signal output by the inverse transformer 40 to the prediction signal 24 in order to output a reconstructed signal, i.e., reconstructed samples. This output is fed into the predictor 44 of the encoder 14, which then determines the prediction signal 24 based on the output. The predictor 44 supports the prediction signal 24 already discussed above. Figure 1 All prediction models discussed. Figure 2 It is also noted that in the case where the encoder 14 is a video encoder, the encoder 14 may also include an in-loop filter 46 that fully filters the reconstructed picture which, after having been filtered, forms the reference picture for the predictor 44 with respect to the inter-predicted blocks.

[0059] As mentioned above, encoder 14 operates on a block basis. For the remainder of the description, the block basis of interest is the subdivision of image 10 into blocks, for which an intra-prediction mode is selected from a set or multiple intra-prediction modes supported by predictor 44 or encoder 14, respectively, and the selected intra-prediction mode is executed accordingly. However, other types of block subdivision of image 10 are also possible. For example, whether image 10 is inter-coded or intra-coded, the aforementioned decisions can be made at a granular level, or in units of blocks deviating from block 18. For example, the inter / intra mode decision can be made at the level of the coding blocks into which image 10 is subdivided, with each coding block being subdivided into prediction blocks. Prediction blocks for coding blocks for which intra-prediction has been decided are each subdivided into an intra-prediction mode decision. To this end, for each of these prediction blocks, a decision is made as to which supported intra-prediction mode should be used for the corresponding prediction block. These prediction blocks will form block 18 of interest here. Prediction blocks within coding blocks associated with inter-prediction are handled differently by predictor 44. The prediction block is inter-predicted from the reference image by determining a motion vector and copying the prediction signal for this block from the location in the reference image pointed to by the motion vector. Another block subdivision involves subdivision into transform blocks, with the transformer 32 and the inverse transformer 40 performing the transform in units of transform blocks. The transformed block can, for example, be the result of a further subdivision of the coding block. Of course, the examples described herein should not be considered limiting, and other examples exist. For the sake of completeness, it should be noted that the subdivision into coding blocks can, for example, use a multi-tree subdivision, and that the prediction blocks and / or transform blocks can also be obtained by further subdividing the coding block using a multi-tree subdivision.

[0060] Figure 3 Suitable for depiction Figure 1 A decoder 54 or means for block-by-block decoding of the encoder 14. This decoder 54 acts inversely to the encoder 14, i.e. it decodes the picture 10 from the data stream 12 in a block-by-block manner and supports a plurality of intra prediction modes for this purpose. For example, the decoder 54 may include a residual provider 156. Figure 1All other possibilities discussed are also valid for decoder 54. To this end, decoder 54 can be a still image decoder or a video decoder, and all prediction modes and prediction possibilities are also supported by decoder 54. The difference between encoder 14 and decoder 54 lies primarily in the fact that encoder 14 selects coding decisions based on a certain optimization, for example, to minimize a certain cost function that may depend on coding rate and / or coding distortion. One of these coding options or coding parameters may involve a list of intra-prediction modes to be used for current block 18 among available or supported intra-prediction modes. The selected intra-prediction mode can then be signaled by encoder 14 for current block 18 within data stream 12, with decoder 54 reselecting it using this signaling in data stream 12 for block 18. Similarly, the subdivision of image 10 into blocks 18 can be optimized within encoder 14, and corresponding subdivision information can be transmitted within data stream 12, with decoder 54 resuming the subdivision of image 10 into blocks 18 based on the subdivision information. In summary, the decoder 54 may be a predictive decoder operating on a block basis, and in addition to the intra prediction mode, the decoder 54 may also support other prediction modes, such as the inter prediction mode if the decoder 54 is a video decoder. Figure 1 The coding order 20 discussed, and since this coding order 20 is followed both at the encoder 14 and at the decoder 54, the same adjacent samples are available for the current block 18 at both the encoder 14 and the decoder 54. Therefore, in order to avoid unnecessary repetition, the description of the mode of operation of the encoder 14, with respect to the subdivision of the image 10 into blocks, for example with respect to the prediction and with respect to the coding of the prediction residual, should also apply to the decoder 54. The difference lies in the fact that the encoder 14 selects some coding options or coding parameters by optimization and signals the coding parameters within the data stream 12 or inserts them into the data stream 12, which are then derived from the data stream 12 by the decoder 54 for re-prediction, subdivision, etc.

[0061] Figure 4 Show Figure 3 A possible implementation of the decoder 54 is suitable for Figure 1 The implementation of the encoder 14 is implemented as Figure 2 As shown in . Figure 4 Many components of the encoder 54 are related to Figure 2 The components are identical to those that appear in the corresponding encoder of Figure 4 The same reference symbols with primes are used in order to indicate these components. In detail, the adder 42', the optional in-loop filter 46' and the predictor 44' are used in conjunction with the Figure 2is connected to the prediction loop in the same way as in the encoder of FIG. 4 . The reconstructed, i.e. dequantized and retransformed prediction residual signal applied to the adder 42 'is derived via a sequence of: an entropy decoder 56 which inversely transforms the entropy coding of the entropy encoder 28b; followed by a residual signal reconstruction stage 36 ', which consists of an inverse quantizer 38 ' and an inverse transformer 40 ', exactly as in the case on the encoding side. The output of the decoder is a reconstruction of the image 10. The reconstruction of the image 10 can be obtained directly at the output of the adder 42 'or alternatively at the output of the in-loop filter 46 '. Some post filters can be arranged at the output of the decoder in order to subject the reconstruction of the image 10 to a certain post filtering in order to improve the image quality, but Figure 4 This option is not depicted in .

[0062] Likewise, about Figure 4 , the above about Figure 2 The description proposed for Figure 4 should also be valid, except that only the encoder performs the optimization tasks and the associated decisions about coding options. However, all descriptions of block subdivision, prediction, inverse quantization and re-transformation are for Figure 4 The decoder 54 is also effective.

[0063] 3Affine Linear Weighted Intra Predictor (ALWIP)

[0064] Some non-limiting examples of ALWIPs are discussed herewith, even though an ALWIP does not always have to embody the techniques discussed herein.

[0065] The present application relates in particular to an improved block-based prediction mode concept for block-by-block image coding, such as may be used in video codecs such as HEVC or any successor to HEVC. The prediction mode may be an intra prediction mode, but in principle the concepts described herein may also be transferred to an inter prediction mode, where the reference sample is part of another image.

[0066] A block-based prediction concept is sought that allows for an efficient implementation such as a hardware-friendly implementation.

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

[0068] Intra-prediction mode is widely used in image and video coding. In video coding, intra-prediction mode competes with other prediction modes, such as inter-prediction mode and motion-compensated prediction mode. In intra-prediction mode, the current block is predicted based on neighboring samples, i.e., samples that have already been encoded at the encoder and decoded at the decoder. The values ​​of the neighboring samples are extrapolated to the current block to form a prediction signal for the current block, with the prediction residual being transmitted in the data stream for the current block. The better the prediction signal, the lower the prediction residual, and therefore the fewer bits are required to encode the prediction residual.

[0069] To be effective, several aspects should be considered to form an efficient framework for intra prediction in a block-by-block picture coding environment. For example, the greater the number of intra prediction modes supported by the codec, the greater the information rate overhead of signaling the selection to the decoder. On the other hand, the set of supported intra prediction modes should be able to provide a good prediction signal, that is, a prediction signal that produces low prediction residuals.

[0070] In the following, a device (encoder or decoder) for decoding an image block by block from a data stream is disclosed - as a comparative embodiment or basic example -, said device supporting at least one intra prediction mode, according to which an intra prediction signal for a block of a predetermined size of the image is determined by applying a first template of samples neighboring the current block to an affine linear predictor, said affine linear predictor to be referred to hereinafter as an affine linear weighted intra predictor (ALWIP).

[0071] The apparatus may have at least one of the following properties (which may be applicable, for example, to a method or another technology implemented in a non-transitory storage unit storing instructions that, when executed by a processor, cause the processor to implement the method and / or function as the apparatus):

[0072] 3.1 Predictors can complement other predictors

[0073] The intra prediction modes that may form the subject of the improvements described further below may be complementary to other intra prediction modes of the codec. Thus, the intra prediction modes may be complementary to the DC prediction mode, planar prediction mode, and angular prediction mode defined in the HEVC codec, respectively, in the JEM reference software. The following three types of intra prediction modes will henceforth be referred to as known intra prediction modes. Therefore, for a given block in an intra mode, a flag needs to be parsed by the decoder to indicate whether one of the intra prediction modes supported by the device will be used.

[0074] 3.2 More than one proposed prediction model

[0075] The device may contain more than one ALWIP mode. Therefore, in the case where the decoder knows that one of the ALWIP modes supported by the device is to be used, the decoder needs to parse additional information indicating which of the ALWIP modes supported by the device is to be used.

[0076] The signaling of supported modes may have the following properties: the encoding of some ALWIP modes may require fewer bits than other ALWIP modes. Which of these modes requires fewer bits and which requires more bits may depend on information that can be extracted from the decoded bitstream, or may be fixed in advance.

[0077] 4 Some aspects

[0078] Figure 2 A decoder 54 is shown for decoding an image from a data stream 12. The decoder 54 may be configured to decode a predetermined block of the image 18. In detail, the predictor 44 may be configured to map a set of P neighboring samples adjacent to the predetermined block 18 to a set of Q predicted values ​​for the samples of the predetermined block using a linear or affine linear transform [e.g., ALWIP].

[0079] like Figure 5 As shown in , a predetermined block 18 includes Q values ​​to be predicted (which will be "predicted values" at the end of the operation). If block 18 has M rows and N columns, then Q=M·N. The Q values ​​of block 18 can be in the spatial domain (e.g., pixels) or in the transform domain (e.g., DCT, discrete wavelet transform, etc.). The Q values ​​of block 18 can be predicted based on P values ​​obtained from neighboring blocks 17a to 17c that are generally adjacent to block 18. The P values ​​of neighboring blocks 17a to 17c can be in the position closest to (e.g., adjacent to) block 18. The P values ​​of neighboring blocks 17a to 17c have been processed and predicted. The P values ​​are indicated as values ​​in portions 17'a to 17'c to distinguish the portions from the blocks of which they are a part (in some examples, 17'b is not used).

[0080] like Figure 6As shown in , in order to perform the prediction, it is possible to operate together with a first vector 17P having P entries (each of which is associated with a specific position in the neighboring parts 17'a to 17'c), a second vector 18Q having Q entries (each of which is associated with a specific position in the block 18) and a mapping matrix 17M (each row is associated with a specific position in the block 18, and each column is associated with a specific position in the neighboring parts 17'a to 17'c). Thus, the mapping matrix 17M performs the prediction of the P values ​​of the neighboring parts 17'a to 17'c into values ​​of the block 18 according to a predetermined pattern. The entries in the mapping matrix 17M can therefore be understood as weighting factors. In the following paragraphs, the symbols 17a to 17c will be used instead of 17'a to 17'c to refer to the neighboring parts of the boundary.

[0081] In the art, several known modes are known, such as DC mode, planar mode, and 65 directional prediction modes. For example, 67 modes may be known.

[0082] However, it is noted that it is also possible to utilize a different mode, which is referred to herein as a linear or affine linear transform. A linear or affine linear transform includes P·Q weighting factors, of which at least 1 / 4P·Q weighting factors are non-zero weighting values, and includes, for each of the Q predicted values, a series of P weighting factors associated with the corresponding predicted value. When arranged one after another according to a raster scan order among the samples of a predetermined block, the series forms an omnidirectional nonlinear envelope.

[0083] It is possible to map P positions of neighboring values ​​17'a to 17'c (templates), Q positions of neighboring samples 17'a to 17'c, and to perform the mapping at the values ​​of P*Q weighting factors of the matrix 17M. A plane is an example of an envelope of a series for DC conversion (it is a plane for DC conversion). The envelope is clearly planar and is therefore excluded from the definition of linear or affine linear transformation (ALWIP). Another example is a matrix that generates an angular pattern simulation: the envelope will be excluded from the ALWIP definition and, frankly, will look like a hill that slopes down from top to bottom along a direction in the P / Q plane. The planar mode and the 65 directional prediction modes will have different envelopes, but they will be linear in at least one direction, i.e., for all directions of the exemplified DC and for the hill direction, for example, for the angular mode.

[0084] In contrast, the envelope of a linear or affine transformation will not be linear in all directions. It is understood that in some cases such a transformation may be optimal for performing the prediction of block 18. It is noted that preferably, at least 1 / 4 of the weighting factors are different from zero (i.e., at least 25% of the P*Q weighting factors are different from 0).

[0085] According to any conventional mapping rule, the weighting factors may be unrelated to each other. Therefore, the matrix 17M can be such that the values ​​of its entries have no obvious identifiable relationship. For example, the weighting factors cannot be described by any analytical or differential function.

[0086] In an example, the ALWIP transformation is performed such that the mean of the maximum values ​​of the cross-correlations between the first set of weighting factors associated with the respective predicted values ​​and the second set of weighting factors associated with the predicted values ​​other than the respective predicted values, or the inverted versions of the second set (whichever results in a higher maximum value), can be below a predetermined threshold (e.g., 0.2, 0.3, 0.35, or 0.1, e.g., a threshold within a range between 0.05 and 0.035). For example, for each pair of rows (i1, i2) of the ALWIP matrix 17M, a cross-correlation can be calculated by multiplying the P values ​​of the i1th row by the P values ​​of the i2th row. For each obtained cross-correlation, a maximum value can be obtained. Thus, a mean (average) can be obtained for the entire matrix 17M (i.e., averaging the maximum values ​​of the cross-correlations across all combinations). The threshold can then be, for example, 0.2, 0.3, 0.35, or 0.1, e.g., a threshold within a range between 0.05 and 0.035.

[0087] The P adjacent samples of blocks 17a to 17c may be located along a one-dimensional path that extends along a boundary (e.g., 18c, 18a) of the predetermined block 18. For each of the Q predicted values ​​of the predetermined block 18, a series of P weighting factors associated with the corresponding predicted value may be sorted in a manner that traverses the one-dimensional path in a predetermined direction (e.g., from left to right, from top to bottom, etc.).

[0088] In an example, the ALWIP matrix 17M may be non-diagonal or non-block diagonal.

[0089] An example of an ALWIP matrix 17M for predicting a 4×4 block 18 from 4 predicted neighboring samples may be:

[0090] {

[0091] {37,59,77,28},

[0092] {32,92,85,25},

[0093] {31,69,100,24},

[0094] {33,36,106,29},

[0095] {24,49,104,48},

[0096] {24,21,94,59},

[0097] {29,0,80,72},

[0098] {35,2,66,84},

[0099] {32,13,35,99},

[0100] {39,11,34,103},

[0101] {45,21,34,106},

[0102] {51,24,40,105},

[0103] {50,28,43,101},

[0104] {56,32,49,101},

[0105] {61,31,53,102},

[0106] {61,32,54,100}

[0107] }.

[0108] (Here, {37, 59, 77, 28} is the first row of matrix 17M; {32, 92, 85, 25} is the second row; and {61, 32, 54, 100} is the 16th row.) Matrix 17M has dimensions 16×4 and includes 64 weighting factors (since 16*4=64). This is because matrix 17M has dimensions Q×P, where Q=M*N, which is the number of samples in block 18 to be predicted (block 18 is a 4×4 block), and P is the number of samples that have been predicted. Here, M=4, N=4, Q=16 (since M*N=4*4=16), and P=4. The matrix is ​​non-diagonal and non-block diagonal and is not described by a particular rule.

[0109] As can be seen, less than 1 / 4 of the weighting factors are 0 (in the case of the matrix shown above, one weighting factor out of sixty-four is zero). The envelope formed by these values ​​forms an omnidirectional nonlinear envelope when arranged one after another according to raster scan order.

[0110] Even though the above interpretation is primarily discussed with reference to a decoder (eg, decoder 54), the interpretation may be performed at an encoder (eg, encoder 14).

[0111] In some examples, for each block size (in the set of block sizes), ALWIP transforms of intra-prediction modes within the second set of intra-prediction modes for the corresponding block size are different from each other. Additionally or alternatively, the cardinality of the second set of intra-prediction modes for the block sizes in the set of block sizes may be consistent, but the associated linear or affine linear transforms of the intra-prediction modes within the second set of intra-prediction modes for different block sizes may not be convertible into each other by scaling.

[0112] In some examples, an ALWIP transform may be defined in such a way that it shares “nothing” with a known transform (eg, an ALWIP transform may share “nothing” with a corresponding known transform even if the transform is already mapped by one of the above mappings).

[0113] In an example, the ALWIP mode is used for both the luma component and the chroma components, but in other examples, the ALWIP mode is used for the luma component but not for the chroma components.

[0114] 5 Affine linear weighted intra prediction mode with encoder acceleration (e.g., test CE3-1.2.1)

[0115] 5.1 Description of method or device

[0116] The affine linear weighted intra prediction (ALWIP) mode tested in CE3-1.2.1 may be the same as the mode proposed in JVET-L0199 under test CE3-2.2.2, except for the following changes:

[0117] • Coordination with Multiple Reference Line (MRL) intra prediction (especially encoder estimation and signaling), ie MRL is not combined with ALWIP and transmission of MRL indices is restricted to non-ALWIP blocks.

[0118] · Subsampling is now mandatory for all blocks with W×H ≥ 32×32 (previously it was optional for 32×32); therefore,

[0119] The additional test for sending subsampling flag at the encoder has been removed.

[0120] · ALWIP for 64xN and Nx64 blocks (where N≤32) has been added by downsampling 32xN and Nx32 respectively and applying the corresponding ALWIP modes.

[0121] Additionally, test CE3-1.2.1 includes the following encoder optimizations for ALWIP:

[0122] • Combined mode estimation: Known and ALWIP modes use a shared Hadamard candidate list for full RD estimation, ie ALWIP mode candidates are added to the same list as known (and MRL) mode candidates based on Hadamard cost.

[0123] • Support for Intra-EMT Fast and Intra-PB Fast for combined pattern lists, with additional optimization to reduce the number of full RD checks.

[0124] Following the same approach as the known mode, only the available MPMs of the left and above blocks are added to the list for full RD estimation of ALWIP.

[0125] 5.2 Complexity Assessment

[0126] In test CE3-1.2.1, excluding the computation of the discrete cosine transform, a maximum of 12 multiplications are required per sample to generate the prediction signal. Furthermore, a total of 136,492 parameters are required, each with 16 bits. This corresponds to 0.273 megabytes of memory.

[0127] 5.3 Experimental Results

[0128] The evaluation was performed on the common test conditions JVET-J1010 [3] for both Intra-only (AI) and Random Access (RA) configurations with VTM software version 3.0.1. The corresponding simulations were performed on an Intel Xeon cluster (E5-2697A v4, AVX2 enabled, Intel Turbo Boost disabled) with Linux OS and GCC 7.2.1 compiler.

[0129] Table 1. Results for CE3-1.2.1 for VTM AI configuration

[0130] Y U V Coding Time Decoding time Type A1 -2,08% -1,68% -1,60% 155% 104% Type A2 -1,18% -0,90% -0,84% 153% 103% Type B -1,18% -0,84% -0,83% 155% 104% Type C -0,94% -0,63% -0,76% 148% 106% Type E -1,71% -1,28% -1,21% 154% 106% total -1,36% -1,02% -1,01% 153% 105% Type D -0,99% -0,61% -0,76% 145% 107% Type F (optional) -1,38% -1,23% -1,04% 147% 104%

[0131] Table 2. Results for CE3-1.2.1 for VTM RA Configuration

[0132]

[0133]

[0134] 5.4 Affine Linear Weighted Intra-Prediction with Reduced Complexity (e.g., Test CE3-1.2.2)

[0135] The technique tested in CE2 is related to the “affine linear intra prediction” described in JVET-L0199 [1], but is simplified in terms of memory requirements and computational complexity:

[0136] There can be only three different sets of prediction matrices (e.g., S0, S1, S2, see also below) and bias vectors (e.g., for providing offset values) covering all block shapes. Thus, the number of parameters is reduced to 14,400 10-bit values, which is less than the memory required to store them in a 128×128 CTU.

[0137] The input and output sizes of the predictor are further reduced. In addition, instead of transforming the boundaries via DCT, averaging or downsampling can be performed on the boundary samples, and the generation of the prediction signal can use linear interpolation instead of inverse DCT. Therefore, to generate the prediction signal, up to four multiplications may be required per sample.

[0138] 6. Examples

[0139] Here we discuss how to call ALWIP prediction to perform some predictions (for example, Figure 6 ).

[0140] In principle, reference Figure 6 In order to obtain Q=M*N values ​​of the M×N block 18 to be predicted, the Q*P samples of the Q×PALWIP prediction matrix 17M are multiplied by the P samples of the P×1 neighboring vector 17P. Therefore, in general, in order to obtain each of the Q=M*N values ​​of the M×N block 18 to be predicted, at least P=M+N value multiplications are required.

[0141] These multiplications have a highly undesirable effect. In general, the size P of the boundary vector 17P depends on the number M+N of boundary samples (bits or pixels) 17a, 17c that are adjacent (e.g., neighboring) to the M×N block 18 to be predicted. This means that if the size of the block 18 to be predicted is larger, the number M+N of boundary pixels (17a, 17c) is correspondingly larger, thus increasing the size P=M+N of the P×1 boundary vector 17P and the length of each row of the Q×P ALWIP prediction matrix 17M, and accordingly also the number of necessary multiplications (in general, Q=M*N=W*H, where width (W) is the other sign of N and height (H) is the other sign of M; in the case where the boundary vector is formed by only one row and / or column of samples, P is P=M+N=H+W).

[0142] Generally speaking, this problem is exacerbated by the fact that in microprocessor-based systems (or other digital processing systems), multiplication is generally a power-consuming operation. As can be imagined, a large number of multiplications performed on a very large number of samples for a large number of blocks will result in a waste of computing power, which is generally undesirable.

[0143] Therefore, it is preferable to reduce the number Q*P of multiplications necessary to predict the M×N block 18 .

[0144] It is understood that it is possible to somewhat reduce the computational power required for each intra prediction of each block 18 to be predicted by intelligently selecting alternative multiplications and more manageable operations.

[0145] Specifically, referring to Figures 7.1 to 7.4 , it is understood that an encoder or a decoder can use multiple neighboring samples (e.g., 17a, 17c) to predict a predetermined block (e.g., 18) of an image by

[0146] reducing (e.g., at step 811) (e.g., by averaging or downsampling) the multiple neighboring samples (e.g., 17a, 17c) to obtain a set of reduced sample values that is lower in the number of samples than the multiple neighboring samples,

[0147] performing (e.g., at step 812) a linear or affine-linear transformation on the set of reduced sample values to obtain a predicted value for a predetermined sample of the predetermined block.

[0148] In some cases, a decoder or an encoder can also derive predicted values for other samples of a predetermined block, for example, by interpolation, based on the predicted values for the predetermined sample and the multiple neighboring samples. Thus, an upsampling strategy can be obtained.

[0149] In an example, it is possible to perform (e.g., at step 811) some averaging on the samples of the boundary 17 in order to obtain a set of reduced samples 102 with a reduced number of samples ( Figures 7.1 to 7.4 )(at least one of the samples of the reduced number of samples 102 can be an original boundary sample or an average of two samples in a series of original boundary samples). For example, if the original boundary has P = M + N samples, the set of reduced samples can have P red = M red + N red , where M red < M and N red < N, at least one of them, such that P red < P. Thus, the boundary vector 17P that will actually be used for prediction (e.g., at step 812b) will not have P × 1 terms but will have P red × 1 terms, where P red < P. Similarly, the ALWIP prediction matrix 17M selected for prediction will not have a Q × P size but will have a Q × P red (or Q red × P red , see below), which has a reduced number of elements of the matrix, at least because P red < P (by virtue of M red < M and N red < N, at least one of them).

[0150] In some examples (e.g., Figure 7.2 , Figure 7.3 ), it may even be possible to further reduce the number of multiplications if the block obtained by ALWIP (at step 812) is a reduced block of size M r ′ ed ×N r ′ ed where M r ′ ed <M and / or N r ′ ed <N (i.e., the samples directly predicted by ALWIP are fewer in number than the samples of the block 18 actually to be predicted). Thus, setting Q red = M′ r ed *N′ red , this will obtain the ALWIP prediction by using Q red *P red multiplications instead of Q*P red multiplications (where Q red *P red <Q*P red <Q*P). This multiplication will predict the reduced block, which has dimensions M r ′ ed ×N r ′ ed . Nevertheless, it will be possible to perform (e.g., at subsequent step 813) an upsampling from the reduced M r ′ ed ×N r ′ ed prediction block to the final M×N prediction block (e.g., obtained by interpolation).

[0151] These techniques can be advantageous since although matrix multiplication involves a reduced number of multiplications (Q red *P red or Q*P red ), both the initial reduction (e.g., averaging or downsampling) and the final transformation (e.g., interpolation) can be performed by reducing (or even avoiding) multiplications. For example, downsampling, averaging, and / or interpolation can be performed by using computationally less demanding binary operations such as addition and shift (e.g., at steps 811 and / or 813).

[0152] Also, the addition is a very easy operation that can be easily performed without a large amount of computational work.

[0153] This shift operation can be used, for example, to average two boundary samples and / or to interpolate (or from the boundary) two samples (support values) of a reduced predicted block to obtain the final predicted block. (For interpolation, there must be two sample values. Within the block, there are always two predetermined values, but for interpolating samples along the left and upper boundaries of the block, there is only one predetermined value, as Figure 7.2 in, and thus the boundary samples are used as support values for interpolation.)

[0154] A two-step procedure can be used, such as:

[0155] First, sum the values of the two samples;

[0156] Then, halve the value of the sum (e.g., by shifting right).

[0157] Alternatively, it is possible:

[0158] First, halve each of the samples (e.g., by shifting left);

[0159] Then, sum the values of the two halved samples.

[0160] When downsampling (e.g., at step 811), an even easier operation can be performed because only one sample needs to be selected from a group of samples (e.g., samples adjacent to each other).

[0161] Therefore, it is now possible to define techniques for reducing the number of multiplications to be performed. Some of these techniques can be particularly based on at least one of the following principles:

[0162] Even if the actually predicted block 18 has a size of M×N, the block can be reduced (in at least one of the two dimensions) and an ALWIP matrix with a reduced size of Q red xP red can be applied (where Q red = M′ red *N′ red , P red = N red + M red , and M r ′ ed <M and / or N r ′ ed <N and / or M​​​​​​​​​​​​​​

[0163] P red ×1 boundary vector 17P can be easily obtained from the original boundary 17, for example:

[0164] by downsampling (e.g., by selecting only some samples of the boundary); and / or

[0165] by averaging multiple samples of the boundary (the boundary can be easily obtained by addition and shift without using multiplication).

[0166] Alternatively or in addition, instead of predicting all Q = M*N values of the block 18 to be predicted by multiplication, it is possible to predict only a reduced block with a reduced size (e.g., Q red = M′ red *N′ red where M′ red < M and / or N′ red < N). The remaining samples of the block 18 to be predicted will be obtained by interpolation, e.g., using the Q red samples as support values for the remaining Q - Q red values.

[0167] According to Figure 7.1 an example illustrated in, a 4×4 block 18 (M = 4, N = 4, Q = M*N = 16) will be predicted, and the neighborhoods 17 (neighborhoods 17a and 17c can be jointly indicated by 17) of the previously repeatedly predicted samples 17a (a vertical row with four already predicted samples) and 17c (a horizontal row with four already predicted samples) have been predicted. A priori, by using the equation shown in Figure 6 , the prediction matrix 17M should be a Q×P = 16×8 matrix (by virtue of Q = M*N = 4*4 and P = M + N = 4 + 4 = 8), and the boundary vector 17P should have an 8×1 size (by virtue of P = 8). However, this would drive the necessity of performing 8 multiplications for each of the 16 samples of the 4×4 block 18 to be predicted, thus resulting in the necessity of performing a total of 16*8 = 128 multiplications. (It should be noted that the average number of multiplications per sample is a good assessment of the computational complexity. For known intra prediction, four multiplications are required per sample, and this increases the computational effort involved. Therefore, this can be used as an upper limit for ALWIP, which will ensure that the complexity is reasonable and does not exceed the complexity of known intra prediction.) [

[0168] Nevertheless, it has been understood that by using the techniques of the present invention, it is possible to reduce the number of samples 17a and 17c adjacent to the block 18 to be predicted from P to P red < P at step 811. Specifically, it has been understood that it is possible to average (e.g., at Figure 7.1100 in FIG1 , the boundary samples (17a, 17c) adjacent to each other are selected to obtain a reduced boundary 102 having two horizontal rows and two vertical columns, since this uses a 2×2 block as block 18 (the reduced boundary is formed by averaging). Alternatively, it is possible to perform downsampling, so that two samples are selected for row 17c and two samples for column 17a. Thus, instead of the horizontal row 17c having four original samples being processed to have two samples (e.g., averaged samples), the vertical column 17a, which originally had four samples, is processed to have two samples (e.g., averaged samples). It is also possible to understand that after subdividing the rows 17c and columns 17a in each group 110 of two samples, a single sample is maintained (e.g., an average of the samples of the group 110 or a simple selection among the samples of the group 110). Thus, a so-called reduced set of sample values ​​102 (M ) is obtained by means of a set 102 having only four samples. red =2, N red =2,P red =M red +N red =4, where P red <P)。

[0169] It is understood that it is possible to perform operations such as averaging or downsampling 100 without having to perform too many multiplications at the processor level: the averaging or downsampling 100 performed in step 811 can simply be obtained by direct and computationally non-power consuming operations such as additions and shifts.

[0170] It is understood that at this point, the downscaled sample value set 102 may be subjected to a linear or affine linear (ALWIP) transform 19 (e.g., using a method such as Figure 6 In this case, the ALWIP transform 19 directly maps the four samples 102 onto the sample values ​​104 of the block 18. In the present case, no interpolation is required.

[0171] In this case, the ALWIP matrix 17M has dimensions Q×P red =16×4: This follows from the fact that all Q=16 samples of the block 18 to be predicted are directly obtained by ALWIP multiplication (no interpolation is required).

[0172] Therefore, at step 812a, a matrix with size Q×P is selected. red The selection may be based at least in part on, for example, signaling from the data stream 12. The selected ALWIP matrix 17M may also call the A k , where k can be understood as an index, which can be signaled in the data stream 12 (in some cases, the matrix is ​​also indicated as See below.) The selection may be performed according to the following scheme: for each size (e.g. a height / width pair of the block 18 to be predicted), an ALWIP matrix 17M is selected among, for example, one of three sets S0, S1, S2 of matrices (each of the three sets S0, S1, S2 may group a plurality of ALWIP matrices 17M having the same size, and the ALWIP matrix to be selected for the prediction will be one of them).

[0173] At step 812b, the selected Q×P red ALWIP matrix 17M (also indicated as A k ) and P red ×1 multiplication between boundary vectors 17P.

[0174] At step 812c, the offset value (e.g., b k ) is added to all obtained values ​​104 of the vector 18Q obtained, for example, by ALWIP. The offset value (b k Or in some cases also call instructions, see below) can be used with a specific selected ALWIP matrix (A k ) and may be based on an index (which may be signaled in the data stream 12, for example).

[0175] Therefore, the comparison between using the technology of the present invention and not using the technology of the present invention is resumed here:

[0176] Without the technology of the present invention:

[0177] a block 18 to be predicted, said block having dimensions M=4, N=4;

[0178] Q = M*N = 4*4 = 16 values ​​to be predicted;

[0179] P = M + N = 4 + 4 = 8 boundary samples

[0180] P = 8 multiplications for each of the Q = 16 values ​​to be predicted

[0181] Total number P*Q=8*16=128 multiplications;

[0182] In the context of the present invention, the following is achieved:

[0183] a block 18 to be predicted, said block having dimensions M=4, N=4;

[0184] Q = M*N = 4*4 = 16 values ​​to be predicted at the end;

[0185] Reduced size of the boundary vector: P red =Mred +N red =2+2=4;

[0186] P for each of the Q=16 values ​​to be predicted by ALWIP red = 4 multiplications,

[0187] Total number P red * Q = 4 * 16 = 64 multiplications (half of 128!)

[0188] The ratio between the number of multiplications and the number of final values ​​to be obtained is P red *Q / Q=4, which is less than half of the P=8 multiplications used for each sample to be predicted!

[0189] As can be appreciated, it is possible to obtain appropriate values ​​at step 812 by relying on straightforward and computationally inexpensive operations such as averaging (and, in the case of addition and / or shifting and / or downsampling).

[0190] refer to Figure 7.2 , the block 18 to be predicted is here an 8×8 block of 64 samples (M=8, N=8). Here, a priori, the prediction matrix 17M should have a size Q×P=64×16 (Q=64, by virtue of Q=M*N=8*8=64, M=8 and N=8 and by virtue of P=M+N=8+8=16). Therefore, a priori, P=16 multiplications will be required for each of the Q=64 samples of the 8×8 block 18 to be predicted, resulting in 64*16=1024 multiplications for the entire 8×8 block 18!

[0191] However, if Figure 7.2 As can be seen in FIG. 8 , a method 820 can be provided according to which, instead of using all 16 samples of the boundary, only 8 values ​​are used (e.g., 4 in the horizontal boundary row 17 c and 4 in the vertical boundary column 17 a between the original samples of the boundary). From the boundary row 17 c, 4 samples can be used instead of 8 samples (e.g., 4 samples can be a two-by-two average and / or one sample is selected from two samples). Therefore, the boundary vector is not a P×1=16×1 vector, but only a P×1=16×1 vector. red ×1=8×1 vector (P red =M red +N red =4+4). It is understood that it is possible to select or average (eg, two by two) the samples of the horizontal rows 17c and the samples of the vertical columns 17a to have only P red = 8 boundary values ​​instead of the original P = 16 samples, thereby forming a reduced sample value set 102. This reduced set 102 will allow obtaining a reduced version of the block 18, the reduced version having Q red =Mred *N red = 4*4 = 16 samples (instead of Q = M*N = 8*8 = 64). It is possible to apply the ALWIP matrix for predicting samples with size M red ×N red =4×4 blocks. The reduced version of block 18 is included in Figure 7.2 The samples indicated by gray are called in the scheme 106: the samples indicated by gray squares (including samples 118' and 118") are called to form a 4x4 reduced block having a Q obtained in step 812. red = 16 values. The 4x4 reduced block is obtained by applying the linear transformation 19 when performing step 812. After obtaining the values ​​of the 4x4 reduced block, it is possible to obtain the values ​​of the remaining samples (samples indicated by white samples in scheme 106) by interpolation, for example.

[0192] about Figure 7.1 The method 810 may further comprise deriving the residual QQ for the M×N=8×8 block 18 to be predicted, for example by interpolation. red =64-16=48 samples (white squares) of the predicted value in step 813. The remaining QQ red = 64-16 = 48 samples can be interpolated from Q red = 16 directly obtained samples (the interpolation can also use the values ​​of the boundary samples, for example). Figure 7.2 As can be seen in FIG, although samples 118′ and 118″ have been obtained at step 812, sample 108′ (which is intermediate between samples 118′ and 118″ and indicated by a white square) is obtained at step 813 by interpolation between samples 118′ and 118″. It is understood that interpolation can also be obtained by operations similar to those used for averaging, such as shifting and adding. Therefore, in Figure 7.2 In the example, value 108' may generally be determined as a midpoint (which may be an average) between the value of sample 118' and the value of sample 118".

[0193] By performing interpolation, it is also possible at step 813 to obtain a final version of the M×N=8×8 block 18 based on the plurality of sample values ​​indicated in 104 .

[0194] Therefore, the comparison between using the technology of the present invention and not using the technology of the present invention is:

[0195] Without the technology of the present invention:

[0196] a block 18 to be predicted, said block having dimensions M=8, N=8, and Q=M*N=8*8=64 samples in the block 18 to be predicted;

[0197] P = M + N = 8 + 8 = 16 samples in boundary 17;

[0198] P = 16 multiplications for each of the Q = 64 values ​​to be predicted,

[0199] Total number P*Q=16*64=1028 multiplications

[0200] The ratio between the number of multiplications and the number of final values ​​to be obtained is P*Q / Q=16

[0201] With the technology of the present invention:

[0202] The block 18 to be predicted has dimensions M=8, N=8

[0203] Q = M*N = 8*8 = 64 values ​​to be predicted at the end;

[0204] But will use Q red ×P red ALWIP matrix, where P red =M red +N red , Q red =M red *N red , M red =4, N red = P in 4 boundaries red =M red +N red =4+4=8 samples, where P red <P

[0205] Q for the 4×4 downscaled block to be predicted (formed by the grey squares in scheme 106) red = P for each of the 16 values red = 8 multiplications,

[0206] Total number P red *Q red =8*16=128 multiplications (much smaller than 1024!)

[0207] The ratio between the number of multiplications and the number of final values ​​to be obtained is P red *Q red / Q = 128 / 64 = 2 (much smaller than the 16 obtained without the present technique!).

[0208] Therefore, the technology presented hereby requires 8 times less power than the previous technology.

[0209] Figure 7.3Shows another example (which may be based on method 820), where the block 18 to be predicted is a rectangular 4×8 block (M = 8, N = 4), which has Q = 4*8 = 32 samples to be predicted. The boundary 17 is formed by a horizontal row 17c with N = 8 samples and a vertical column 17a with M = 4 samples. Thus, a priori, the boundary vector 17P will have dimensions P×1 = 12×1, and the predicted ALWIP matrix should be a Q×P = 32×12 matrix, thus requiring Q*P = 32*12 = 384 multiplications.

[0210] However, it is possible to, for example, average or downsample at least 8 samples of the horizontal row 17c to obtain a reduced horizontal row with only 4 samples (e.g., averaged samples). In some examples, the vertical column 17a will remain as it is (e.g., not averaged). Overall, the reduced boundary will have dimensions P red = 8, where P red < P. Thus, the boundary vector 17P will have dimensions P red ×1 = 8×1. The ALWIP prediction matrix 17M will be a matrix with dimensions M*N red *P red = 4*4*8 = 64. The 4×4 reduced block (formed by the gray columns in scheme 107) directly obtained when performing step 812 will have size Q red = M*N red = 4*4 = 16 samples (instead of Q = 4*8 = 32 of the original 4×8 block 18 to be predicted). Once the reduced 4×4 block is obtained by ALWIP, it is possible to add an offset value b k (step 812c) and perform interpolation. As can be seen at step 813 in Figure 7.3 , the reduced 4×4 block is amplified to the 4×8 block 18, where the values 108' not obtained at step 812 are obtained at step 813 by interpolating the values 118' and 118” (gray squares) obtained at step 812.

[0211] Therefore, the comparison between using the technology of the present invention and not using it is:

[0212] In the case of not having the technology of the present invention:

[0213] The block 18 to be predicted, the block having dimensions M = 4, N = 8 [[ID=三十一]]

[0214] Q = M*N = 4*8 = 32 values to be predicted;

[0215] P = M + N = 4 + 8 = 12 samples in the boundary;

[0216] P = 12 multiplications for each of the Q = 32 values to be predicted,

[0217] Total number of multiplications P*Q = 12*32 = 384

[0218] The ratio between the number of multiplications and the number of final values ​​to be obtained is P*Q / Q=12

[0219] With the technology of the present invention:

[0220] The block to be predicted 18 has a size of M=4, N=8

[0221] Q = M * N = 4 * 8 = 32 values ​​to be predicted at the end;

[0222] But you can use Q red ×P red =16×8 ALWIP matrix, where M=4, N red =4,Q red =M*N red =16, P red =M+N red =4+4=8

[0223] P in the boundary red =M+N red =4+4=8 samples, where P red <P

[0224] Q for the reduced block to be predicted red = P for each of the 16 values red = 8 multiplications,

[0225] Total number Q red *P red = 16 * 8 = 128 multiplications (less than 384!)

[0226] The ratio between the number of multiplications and the number of final values ​​to be obtained is P red *Q red / Q = 128 / 32 = 4 (much smaller than the 12 obtained without the present technique!).

[0227] Therefore, with the technology of the present invention, the computing work is reduced to one-third.

[0228] Figure 7.4 Shown is the case of a block 18 with dimensions M×N=16×16 to be predicted and Q=M*N=16*16=256 values ​​to be predicted at the end, with P=M+N=16+16=32 boundary samples. This will result in a prediction matrix with dimensions Q×P=256×32, which will imply 256*32=8192 multiplications!

[0229] However, by applying the method 820, it is possible to reduce the number of boundary samples at step 811 (e.g., by averaging or downsampling), for example, from 32 to 8: for example, for each group 120 of four consecutive samples of row 17a, there is still a single sample (e.g., selected from four samples, or the average of the samples). Also for each group 120 of four consecutive samples of column 17c, there is still a single sample (e.g., selected from four samples, or the average of the samples).

[0230] Here, the ALWIP matrix 17M is Q red ×P red =64×8 matrix: This is due to the selection of P red =8 (by using 8 averaged or selected samples of the 32 samples from the boundary) and the fact that the reduced block to be predicted at step 812 is an 8x8 block (in scheme 109 the grey square is 64).

[0231] Thus, once the 64 samples of the downscaled 8×8 block are obtained at step 812 , it is possible to derive the remaining QQ of the block 18 to be predicted at step 813 red =256-64=192 values ​​104.

[0232] In this case, for performing the interpolation, it has been chosen to use all samples of the boundary columns 17a and to replace only the samples in the boundary rows 17c. Other choices can be made.

[0233] With the method of the invention, the ratio between the number of multiplications and the number of values ​​finally obtained is Q red *P red / Q = 8*64 / 256 = 2, which is much smaller than the 32 multiplications for each value without the present technique!

[0234] The comparison between using the technology of the present invention and not using the technology of the present invention is:

[0235] Without the technology of the present invention:

[0236] The block to be predicted 18 has a size of M=16, N=16

[0237] Q = M * N = 16 * 16 = 256 values ​​to be predicted;

[0238] P = M + N = 16 * 16 = 32 samples in the boundary;

[0239] P = 32 multiplications for each of the Q = 256 values ​​to be predicted,

[0240] Total number P*Q=32*256=8192 multiplications;

[0241] The ratio between the number of multiplications and the number of final values ​​to be obtained is P*Q / Q=32

[0242] With the technology of the present invention:

[0243] The block to be predicted 18 has a size of M=16, N=16

[0244] Q = M * N = 16 * 16 = 256 values ​​to be predicted at the end;

[0245] But will use Q red ×P red =64×8ALWIP matrix, where M red =4, N red =4, to be predicted by ALWIP

[0246] Q red =8*8=64 samples, P red =M red +N red =4+4=8

[0247] P in the boundary red =M red +N red =4+4=8 samples, where P red <P

[0248] Q for the reduced block to be predicted red = P for each of the 64 values red = 8 multiplications,

[0249] Total number Q red *P red = 64 * 4 = 256 multiplications (less than 8192!)

[0250] The ratio between the number of multiplications and the number of final values ​​to be obtained is P red *Q red / Q = 8*64 / 256 = 2 (much smaller than the 32 obtained without the present technique!).

[0251] Therefore, the computing power required by the technology of the present invention is 16 times smaller than that of traditional technology!

[0252] Therefore, it is possible to predict a predetermined block (18) of an image using a number of neighboring samples (17) by the following operation

[0253] reducing (100, 813) the plurality of adjacent samples to obtain a reduced set of sample values ​​(102) that is less in number of samples than the plurality of adjacent samples (17),

[0254] The reduced set of sample values ​​(102) is subjected (812) to a linear or affine linear transformation (19, 17M) to obtain predicted values ​​for predetermined samples (104, 118', 188") of a predetermined block (18).

[0255] In detail, it is possible to perform the reduction (100, 813) by downsampling the plurality of neighboring samples to obtain a reduced set of sample values ​​(102) that is less in number of samples than the plurality of neighboring samples (17).

[0256] Alternatively, it is possible to perform the reduction (100, 813) by averaging a plurality of adjacent samples to obtain a reduced set of sample values ​​(102) that is fewer in number of samples than the plurality of adjacent samples (17).

[0257] Additionally, it is possible to derive (813) a predicted value of another sample (108, 108') of the predetermined block (18) by interpolation based on predicted values ​​of the predetermined sample (104, 118', 118") and a plurality of neighboring samples (17).

[0258] A plurality of adjacent samples (17a, 17c) may be arranged along two sides of a predetermined block (18) (e.g., Figures 7.1 to 7.4 The predetermined samples (e.g., the samples obtained by ALWIP in step 812) may also be arranged in rows and columns, and along at least one of the rows and columns, the predetermined samples may be located at every n-th position starting from the samples (112) adjacent to both sides of the predetermined block 18 of the predetermined sample 112.

[0259] Based on the plurality of adjacent samples (17), it is possible to determine, for each of at least one of the rows and columns, a support value (118) of one position (118) of the plurality of adjacent positions aligned to a corresponding one of the at least one of the rows and columns. It is also possible to derive predicted values ​​118 of other samples (108, 108') of the predetermined block (18) by interpolating the predicted value based on the predetermined sample (104, 118', 118") and the support values ​​of the adjacent samples (118) aligned to the at least one of the rows and columns.

[0260] The predetermined samples (104) may be located along the rows at every n-th position starting from the samples (112) adjacent to both sides of the predetermined block 18, and along the columns at every m-th position starting from the samples (112) adjacent to both sides of the predetermined block (18), where n, m>1. In some cases, n=m (e.g., in Figure 7.2 and Figure 7.3, where samples 104 , 118 ′, 118 ″ indicated by grey squares are obtained at 812 and called directly via ALWIP, alternating along rows and columns to samples 108 , 108 ′ subsequently obtained at step 813 ).

[0261] Along at least one of the rows (17c) and columns (17a), it is possible to perform the determination of the support value, for example, by downsampling or averaging (122) for each support value a group of adjacent samples (120) within a plurality of adjacent samples comprising the adjacent sample (118) for which the corresponding support value is determined. Figure 7.4 In step 813 , it is possible to obtain the value of the sample 119 by using the predetermined sample 118 ′″ (previously obtained at step 812 ) and the values ​​of the neighboring samples 118 as support values.

[0262] The plurality of adjacent samples may extend one-dimensionally along two sides of the predetermined block (18). It is possible to perform the reduction (811) by grouping the plurality of adjacent samples (17) into one or more groups (110) of consecutive adjacent samples and performing downsampling or averaging on each of the one or more groups (110) of adjacent samples having two or more adjacent samples.

[0263] In an example, a linear or affine linear transformation may include P red *Q red or P red *Q weighting factor, where P red is the number of sample values ​​(102) in the reduced set of sample values, and Q red Or Q is the number of predetermined samples in a predetermined block (18). At least 1 / 4P red *Q red or 1 / 4P red *Q weighting factor is a non-zero weight value. red *Q red or P red *Q weighting factor can be applied to Q or Q red Each of the predetermined samples includes a series of P red Weighting factors, wherein the series forms an omnidirectional nonlinear envelope when arranged one below another among predetermined samples of a predetermined block (18) according to a raster scan order. red *Q or P red *Q redThe weighting factors may be uncorrelated with each other via any conventional mapping rule. The average of the maximum values ​​of the cross-correlations between the weighting factors for the first series of corresponding predetermined samples and the weighting factors for the second series of predetermined samples other than the corresponding predetermined samples, or the inverse versions of the latter series (whichever produces the higher maximum value) is below a predetermined threshold. The predetermined threshold may be 0.3 [or 0.2 or 0.1 in some cases]. red Neighboring samples (17) may be located along a one-dimensional path extending along two sides of a predetermined block (18), and for Q or Q red For each of the predetermined samples, P of the series with respect to the corresponding predetermined sample red The weighting factors are ordered in such a way that a one-dimensional path is traversed in a predetermined direction.

[0264] 6.1 Description of methods and apparatus

[0265] To predict samples of a rectangular block of width W (also indicated by N) and height H (also indicated by M), affine linear weighted intra prediction (ALWIP) can use as input a column of H reconstructed neighboring boundary samples to the left of the block and a column of W reconstructed neighboring boundary samples above the block. If reconstructed samples are not available, they can be generated as in known intra prediction.

[0266] Generating a prediction signal (e.g., a value for a complete block 18) may be based on at least some of the following three steps:

[0267] 1. Among the boundary samples 17 , samples 102 (eg, four samples in the case of W=H=4 and / or eight samples in other cases) may be extracted by averaging or downsampling (eg, step 811 ).

[0268] 2. A matrix-vector multiplication may be performed using the averaged samples (or samples remaining from downsampling) as input, followed by addition of the offsets. The result may be a scaled prediction signal for the subsampled set of samples in the original block (e.g., step 812).

[0269] 3. The prediction signals at the remaining positions may be generated from the prediction signals for the subsampled set, for example by upsampling, for example by linear interpolation (eg, step 813).

[0270] Due to steps 1.(811) and / or 3.(813), the total number of multiplications required when computing the matrix-vector product can be such that the number is always less than or equal to 4*W*H. Furthermore, the averaging of the boundaries and the linear interpolation of the reduced prediction signal are performed using only additions and bit shifts. In other words, in this example, for the ALWIP mode, at most four multiplications are required per sample.

[0271] In some examples, the matrix (e.g., 17M) and offset vector (e.g., b) required to generate the prediction signal are k ) can be taken from a set (e.g., three sets) of matrices that can be stored, for example, in memory units of the decoder and encoder, such as S 0、 S 1、 S2.

[0272] In some examples, the set S0 may include n0 (eg, n0=16 or n0=18 or another number) matrices (e.g., consisting of), each of the matrices may have 16 rows and 4 columns and 18 offset vectors each having a size of 16 Based on Figure 7.1 The technique is performed. This set of matrices and offset vectors is for a block 18 of size 4×4. Once the boundary vector has been reduced to P red = 4 vectors (for Figure 7.1 811), it is possible to convert the P of the reduced sample set 102 red =4 samples are directly mapped to Q=16 samples of the 4×4 block 18 to be predicted.

[0273] In some examples, set S1 may include n1 (eg, n1=8 or n1=18 or another number) matrices Each of the matrices may have 16 rows and 8 columns and 18 offset vectors each having a size of 16. Based on Figure 7.2 or Figure 7.3 The described technique is performed. The matrices and offset vectors of this set S1 can be used for blocks of size 4×8, 4×16, 4×32, 4×64, 16×4, 32×4, 64×4, 8×4, and 8×8. In addition, it can also be used for blocks of size W×H (where max(W,H)>4 and min(w,H)=4), that is, for blocks of size 4×16 or 16×4, 4×32 or 32×4, and 4×64 or 64×4. The 16×8 matrix refers to a reduced version of block 18 (which is a 4×4 block), as shown in Figure 7.2 and Figure 7.3 Obtained in.

[0274] Additionally or alternatively, the set S2 may include n2 (eg, n2=6 or n2=18 or another number) matrices (e.g., consisting of), each of the matrices may have 64 rows and 8 columns and 18 offset vectors of size 64 The 64×8 matrix refers to a scaled-down version of block 18 (which is an 8×8 block), such as in Figure 7.4 obtained. The matrices and offset vectors of this set can be used for blocks having sizes 8×16, 8×32, 8×64, 16×8, 16×16, 16×32, 16×64, 32×8, 32×16, 32×32, 32×64, 64×8, 64×16, 64×32, 64×64.

[0275] The matrices and offset vectors of this set or portions of these matrices and offset vectors can be used for all other block shapes.

[0276] 6.2 Average or downsampling of the boundaries

[0277] Here, features regarding step 811 are provided.

[0278] As explained above, the boundary samples (17a, 17c) can be averaged and / or downsampled (e.g., from P samples to P red < P samples).

[0279] In a first step, the input boundaries bdry top (e.g., 17c) and bdry left (e.g., 17a) can be reduced to smaller boundaries and to obtain the reduced set 102. Here, and both consist of 2 samples in the case of 4×4 blocks and 4 samples in other cases.

[0280] In the case of 4×4 blocks, it is possible to define

[0281]

[0282] and similarly define Thus, is the average obtained, for example, using shift operations.

[0283] In all other cases (e.g., for blocks having a width or height different from 4), if the block width W is given as W = 4 * 2 k , then for 0 ≤ i < 4, define <000108�>

[0284]

[0285] and similarly define

[0286] In still other cases, it is possible to downsample the boundary (e.g., by selecting a specific boundary sample from a group of boundary samples) to obtain a reduced number of samples. For example, it is possible to select from bdry top[0] and bdry top [1] and You can choose from bdry top [2] and bdry top [3]. It is also possible to define similarly

[0287] Two reduced boundaries and Can be concatenated to the reduced boundary vector bdry red (associated with the reduced set 102), also indicated by 17P. Reduced boundary vector bdry red So we can have a size of four for a block of shape 4×4 (P red =4)( Figure 7.1 example) and with blocks of size eight for all other shapes (P red =8)( Figures 7.2 to 7.4 for example).

[0288] Here, if mode < 18 (or the number of matrices in the matrix set), it is possible to define

[0289]

[0290] If mode≥18, which corresponds to the transposed mode of mode-17, then it is possible to define

[0291]

[0292] Therefore, depending on the specific state (one state: mode<18; another state: mode≥18), it is possible to scan along different scan orders (for example, one scan order: A scanning sequence: Assigns the predicted value of the output vector.

[0293] Other strategies may be implemented. In other examples, the mode index "mode" need not be in the range of 0 to 35 (other ranges may be defined). Furthermore, it is not necessary for each of the three sets S0, S1, and S2 to have 18 matrices (thus, instead of an expression such as mode ≥ 18, mode ≥ n0, n1, n2 is possible, with the mode being the number of matrices in each matrix set S0, S1, and S2, respectively). Furthermore, the sets may each have a different number of matrices (e.g., S0 may have 16 matrices, S1 may have eight matrices, and S2 may have six matrices).

[0294] The mode and transposed information are not necessarily stored and / or transmitted as a combined mode index "mode": in some examples, it is possible to signal it explicitly as a transposed flag and matrix index (0-15 for S0, 0-7 for S1, and 0-5 for S2).

[0295] In some cases, the combination of the transposed flag and the matrix index may be interpreted as an index set. For example, there may be one bit that operates as a transposed flag and some bits that indicate a matrix index, which are collectively indicated as a "set index."

[0296] 6.3 Generating Reduced Prediction Signals by Matrix-Vector Multiplication

[0297] Here, features regarding step 812 are provided.

[0298] From the reduced input vector bdry red (boundary vector 17P), can generate a reduced prediction signal pred red The latter signal can be a signal with width W red and height H red Here, w red and H red It can be defined as:

[0299] W red =4,H red =4; if max(W,H)≤8,

[0300] W red =min(W,8),H red =min(H,8); otherwise.

[0301] The reduced prediction signal pred can be calculated by calculating the matrix-vector product and adding the offset red :

[0302] pred red =A·bdry red +b.

[0303] Here, A is a matrix (e.g., prediction matrix 17M), which may have W red *H red rows and has 4 columns when W=H=4 and 8 columns in all other cases, and b may have size W red *H red vector.

[0304] If W=H=4, then A may have 4 columns and 16 rows and thus 4 multiplications per sample may be required in this case to compute pred red。In all other cases, A can have 8 columns and it can be verified that in these cases, 8*W red *H red ≤4*W*H, that is, also in these cases, each sample requires at most 4 multiplications to compute pred red 。

[0305] Matrix A and vector b can be obtained from one of the following sets S0, S1, S2. Define the index idx = idx(W,H) by setting idx(W,H)=0 if W = H = 4; define the index idx(W,H)=1 if max(W,H)=8; and define the index idx(W,H)=2 in all other cases. Further, let m = mode if mode < 18, otherwise m = mode - 17. Then, if idx ≤ 1 or idx = 2 and min(W,H)>4, let and In the case where idx = 2 and min(W,H)=4, make A the matrix produced by omitting each row which, in the case of W = 4, corresponds to the odd x - coordinates in the down - sampled block, or in the case of H = 4, corresponds to the odd y - coordinates in the down - sampled block. If mode ≥ 18, then replace the reduced prediction signal with its transposed signal. In an alternative example, different strategies can be implemented. For example, instead of reducing the size of the larger matrix ("omitting"), use the smaller matrix S1 (idx = 1), where W red = 4 and H red = 4. That is, now assign such blocks to S1 instead of S2.

[0306] Other strategies can be implemented. In other examples, the mode index "mode" does not have to be in the range from 0 to 35 (other ranges can be defined). Further, each of the three sets S0, S1, S2 does not have to have 18 matrices (thus, instead of an expression like mode < 18, mode < n0,n1,n2 is possible, where the modes are the number of matrices of each matrix set S0, S1, S2 respectively). Further, the sets can each have a different number of matrices (e.g., S0 can have 16 matrices, S1 can have eight matrices, and S2 can have six matrices).

[0307] 6.4 Linear interpolation for generating the final prediction signal

[0308] Here, the features regarding step 812 are provided.

[0309] Regarding the interpolation of the subsampled prediction signal for a larger block, a second version of the averaging boundary may be required. That is, if min(W,H)>8 and W≥H, then W = 8*2l , and for 0≤i<8, define

[0310]

[0311] If min(W,H)>8 and H>W, then similarly define

[0312] Additionally or alternatively, it is possible to "hard downsample" where equal

[0313]

[0314] And, we can define similarly

[0315] In the production of pred red At the sample positions that are omitted when , the final prediction signal can be obtained by linear interpolation from pred red Produce (for example, Figures 7.2 to 7.4 In some examples, if W=H=4, this linear interpolation may be unnecessary (e.g., Figure 7.1 for example).

[0316] Linear interpolation can be given as follows (although other examples are possible). Assume W ≥ H. Then, if H>H red , you can execute pred red In this case, pred red You can extend a column to the top as follows. If W = 8, then pred red May have a width W red = 4 and can be obtained by averaging the boundary signal Extend to the top, e.g. as defined above. If W>8, then pred red With width W red = 8 and by averaging the boundary signal Extend to the top, e.g. as defined above. For pred red The first column of pred red [x][-1]. Then, with width W red and height 2*H red The signal on the block Can be given as

[0317]

[0318] where 0≤x <W red and 0≤y <H red The latter process can be performed k times, up to 2k *H red =H. Thus, if H=8 or H=16, the process can be performed at most once. If H=32, the process can be performed twice. If H=64, the process can be performed three times. Next, the horizontal upsampling operation can be applied to the result of the vertical upsampling. The latter upsampling operation can use the full boundary on the left of the prediction signal. Finally, if H>W, the process can be continued similarly by first upsampling in the horizontal direction (if necessary) and then in the vertical direction.

[0319] This is an example of interpolation using scaled-down boundary samples for the first interpolation (horizontally or vertically) and the original boundary samples for the second interpolation (vertically or horizontally). Depending on the block size, only the second interpolation is required or no interpolation is required. If both horizontal and vertical interpolation are required, the order depends on the width and height of the block.

[0320] However, different techniques may be implemented: for example, the original boundary samples may be used for both the first and second interpolation, and the order may be fixed, such as first horizontal then vertical (in other cases, first vertical then horizontal).

[0321] Therefore, the interpolation order (horizontal / vertical) and use of downscaled / original boundary samples may vary.

[0322] 6.5 Example of the entire ALWIP process

[0323] against Figures 7.1 to 7.4 The different shapes in illustrate the overall process of averaging, matrix-vector multiplication, and linear interpolation. It should be noted that the remaining shapes are considered as one of the depicted cases.

[0324] 1. Given a 4×4 block, ALWIP can be implemented by using Figure 7.1 Instead of using two average values ​​along each axis of the boundary, the four input samples are fed into a matrix-vector multiplication. The matrix is ​​taken from the set S0. After adding the offset, this can produce 16 final prediction samples. No linear interpolation is required to generate the prediction signal. Therefore, a total of (4*16) / (4*4)=4 multiplications are performed for each sample. See, for example Figure 7.1 .

[0325] 2. Given an 8×8 block, ALWIP can take four averages along each axis of the boundary. The resulting eight input samples are obtained using Figure 7.2The technique involves matrix-vector multiplication. The matrix is ​​taken from set S1. This results in 16 samples at odd positions in the prediction block. Therefore, a total of (8*16) / (8*8)=2 multiplications are performed per sample. After adding the offset, these samples can be interpolated vertically, for example, by using the top boundary and horizontally, for example, by using the left boundary. See, for example Figure 7.2 .

[0326] 3. Given an 8×4 block, ALWIP can be implemented by using Figure 7.3 Instead, the four average values ​​along the horizontal axis of the boundary and the four original boundary values ​​on the left boundary are used. The resulting eight input samples enter the matrix-vector multiplication. The matrix is ​​taken from the set S1. This produces 16 samples at odd horizontal positions and every vertical position of the prediction block. Therefore, a total of (8*16) / (8*4)=4 multiplications are performed for each sample. After adding the offset, these samples are interpolated horizontally, for example, by using the left boundary. See, for example Figure 7.3 .

[0327] The transposed case is handled accordingly.

[0328] 4. Given a 16×16 block, ALWIP can take four averages along each axis of the boundary. The resulting eight input samples are obtained using Figure 7.2 The technique involves matrix-vector multiplication. The matrix is ​​taken from the set S2. This results in 64 samples at odd positions in the prediction block. Therefore, a total of (8*64) / (16*16)=2 multiplications are performed per sample. After adding the offset, the samples are interpolated vertically using the top boundary and horizontally using the left boundary, for example. See e.g. Figure 7.2 . See for example Figure 7.4 .

[0329] For larger shapes, the procedure can be essentially the same, and it is easy to check that the number of multiplications per sample is less than two.

[0330] For Wx8 blocks, only horizontal interpolation is necessary since samples are given at odd horizontal positions and every vertical position.Thus, at most (8*64) / (16*8)=4 multiplications are performed per sample in these cases.

[0331] Finally, for W×4 blocks (where W>8), let A k is a matrix that appears by omitting each row corresponding to an odd-numbered entry along the horizontal axis of the downsampled block. Thus, the output size can be 32 and, again, only horizontal interpolation remains to be performed. At most (8*32) / (16*4)=4 multiplications can be performed per sample.

[0332] The transposed case can be handled accordingly.

[0333] 6.6 Evaluation of the number and complexity of required parameters

[0334] The parameters required for all possible proposed intra-prediction modes can be represented by the genus set S 0、 S 1、 The matrices and offset vectors of S2 are included. All matrices are numbers and offset vectors can be stored as 10-bit values. Therefore, according to the above description, the proposed method may require a total number of 14,400 parameters, each with a precision of 10 bits. This corresponds to 0.018 megabytes of memory. It is indicated that, currently, a CTU with a size of 128×128 in standard 4:2:0 chroma subsampling consists of 24,576 values, each of which is 10 bits. Therefore, the memory requirements of the proposed intra-prediction tool do not exceed the memory requirements of the current image reference tool adopted at the last meeting. Furthermore, it is indicated that due to the 4-tap interpolation filter of the PDPC tool or the angular prediction mode with fractional angular positions, the known intra-prediction mode requires four multiplications per sample. Therefore, in terms of operational complexity, the proposed method does not exceed the known intra-prediction mode.

[0335] 6.7 Signaling of the Proposed Intra-Prediction Mode

[0336] For luma blocks, for example, 35 ALWIP modes are proposed (another number of modes may be used). For each coding unit (CU) in intra mode, a flag is sent in the bitstream indicating whether ALWIP mode is applied on the corresponding prediction unit (PU). The signaling of the latter index can be reconciled with the MRL in the same manner as the first CE test. If ALWIP mode is applied, the index of the ALWIP mode, predmode, can be signaled using an MPM list with 3 MPMs.

[0337] Here, the derivation of MPM can be performed using the intra mode of the upper and left PUs as follows. There may be, for example, three fixed tables map_angular_to_alwip idx , idx∈{0,1,2} etc., which can assign ALWIP mode to each known intra prediction mode predmode Angular

[0338] predmode ALWIP =map_angular_to_alwip idx [predmode angular ].

[0339] For each PU with width W and height H, define and index

[0340] idx(PU)=idx(W,H)∈{0,1,2}

[0341] It indicates from which of the three sets the ALWIP parameters are obtained, as described in Section 4 above. above Available, belongs to the same CTU as the current PU and is in intra mode, if idx(PU)=idx(PU above ), and if in ALWIP mode Apply ALWIP to PU above , then

[0342]

[0343] If the above PU is available, belongs to the same CTU as the current PU and is in intra mode, and if the intra prediction mode is known Applied to the above PU, it makes

[0344]

[0345] In all other cases,

[0346]

[0347] This means that this mode is not available. The mode is derived in the same way but without the restriction that the left PU must belong to the same CTU as the current PU.

[0348]

[0349] Finally, three fixed default lists are provided idx , idx∈{0,1,2}, each of which contains three different ALWIP modes. idx(PU) and mode and Among them, three different MPMs are constructed by replacing -1 with default values ​​and excluding duplicates.

[0350] The embodiments described herein are not limited by the above-described signaling of the proposed intra-prediction mode.According to an alternative embodiment, the MPM and / or mapping table is not used for MIP (ALWIP).

[0351] 6.8 Adapted MPM List Derivation for Traditional Luma and Chroma Intra Prediction Modes

[0352] The proposed ALWIP mode can be reconciled with MPM-based coding of known intra prediction modes as follows: The luma and chroma MPM list derivation process for known intra prediction modes can use a fixed table map_lwip_to_angular idx, idx∈{0,1,2}, sets the ALWIP mode predmode on the given PU LWIP Mapped to one of the known intra prediction modes

[0353] predmode Angular =map_lwip_to_angular idx(PU) [predmode LWIP ].

[0354] For the brightness MPM list export, whenever the ALWIP mode predmode is used LWIP When the adjacent luma block is sized, this block can be processed as if it is using the known intra prediction mode predmode Angular For chroma MPM list derivation, whenever the current luma block uses LWIP mode, the same mapping can be used to convert ALWIP mode to a known intra prediction mode.

[0355] It is clear that ALWIP mode can also be reconciled with known intra prediction modes without using MPM and / or mapping tables. For example, for chroma blocks, whenever the current luma block uses ALWIP mode, ALWIP mode may be mapped to planar intra prediction mode.

[0356] 7. Implement efficient implementation examples

[0357] The above examples are briefly outlined, as they may form the basis for further developing the embodiments described herein below.

[0358] In order to predict a predetermined block 18 of the image 10, where a plurality of adjacent samples are used, 17a, 17c are used.

[0359] A reduction 100 of a plurality of adjacent samples by averaging is performed to obtain a reduced set of sample values ​​102 having a smaller number of samples than the plurality of adjacent samples. This reduction is optional in the embodiments herein and results in a so-called sample value vector referred to below. The reduced set of sample values ​​is subjected to a linear or affine linear transformation 19 to obtain predicted values ​​for predetermined samples 104 of a predetermined block. This transformation is hereinafter indicated using a matrix A and an offset vector b, which have been obtained by machine learning (ML), and should be an efficient pre-formed implementation.

[0360] By interpolation, the predicted values ​​for the other samples 108 of the predetermined block are derived based on the predicted values ​​for the predetermined sample and a plurality of neighboring samples. It should be noted that, in theory, the results of the affine / linear transformation can be associated with non-full-pixel sample positions of the block 18, so that according to alternative embodiments, all samples of the block 18 can be obtained by interpolation. Interpolation is also not required at all.

[0361] A plurality of adjacent samples may extend in one dimension along two sides of the predetermined block, the predetermined samples being arranged in rows and columns and along at least one of the rows and columns, wherein the predetermined sample may be located at each n-th position starting from a sample (112) of the predetermined sample adjacent to the two sides of the predetermined block. Based on the plurality of adjacent samples, for each of at least one of the rows and columns, a support value for one position (118) of the plurality of adjacent positions may be determined that is aligned to a corresponding one of the at least one of the rows and columns, and by interpolation, a predicted value for other samples 108 of the predetermined block may be derived based on the predicted value for the predetermined sample and the support value for the adjacent sample aligned to at least one of the rows and columns. The predetermined sample may be located at each n-th position along the row starting from a sample 112 of the predetermined sample adjacent to the two sides of the predetermined block, and the predetermined sample may be located at each m-th position along the column starting from a sample 112 of the predetermined sample adjacent to the two sides of the predetermined block, where n, m>1. It is possible that n=m. Along at least one of the rows and columns, the support value may be determined by averaging 122 a group 120 of neighboring samples within a plurality of neighboring samples (including the neighboring sample 118 for which the corresponding support value is determined). The plurality of neighboring samples may extend one-dimensionally along two sides of the predetermined block and may be reduced by grouping the plurality of neighboring samples into groups 110 of one or more consecutive neighboring samples and performing averaging on each of the one or more groups of neighboring samples having more than two neighboring samples.

[0362] For a predetermined block, a prediction residual can be transmitted in the data stream. The prediction residual can be derived from the data stream at the decoder, and the predetermined block can be reconstructed using the prediction residual and the predicted value for the predetermined sample. At the encoder, the prediction residual is encoded into the data stream at the encoder.

[0363] The image may be subdivided into a plurality of blocks of different block sizes, the plurality of blocks comprising the predetermined block. The linear or affine linear transform for the block 18 may then be selected depending on the width W and height H of the predetermined block, such that the linear or affine linear transform selected for the predetermined block is selected among a first set of linear or affine linear transforms as long as the width W and height H of the predetermined block are within the first set of width / height pairs and a second set of linear or affine linear transforms as long as the width W and height H of the predetermined block are within the second set of width / height pairs that do not intersect the first set of width / height pairs. Again, it will become clear later that the affine / linear transform is represented by means of other parameters, namely the weights of C and, optionally, offset and scale parameters.

[0364] The decoder and the encoder may be configured to: subdivide the image into a plurality of blocks having different block sizes, which include a predetermined block; and select a linear or affine linear transform depending on a width W and a height H of the predetermined block, such that the linear or affine linear transform selected for the predetermined block is selected among

[0365] The first set of linear or affine linear transformations, as long as the width W and height H of the predetermined block are within the first set of width / height pairs,

[0366] A second set of linear or affine linear transformations, as long as the width W and height H of the predetermined block are within the second set of width / height pairs that do not intersect the first set of width / height pairs, and

[0367] A third set of linear or affine linear transformations is performed as long as the width W and height H of the predetermined block are within a third set of one or more width / height pairs that do not intersect the first and second sets of width / height pairs.

[0368] The third set of one or more width / height pairs includes only one width / height pair W', H', and each linear or affine linear transform within the first set of linear or affine linear transforms is used to transform N' sample values ​​into W'*H' predicted values ​​for a W'×H' array of sample positions.

[0369] Each of the first and second sets of width / height pairs may include W p Not equal to H p The first width / height pair W p 、H p , and H q =W p And W q =H p The second width / height pair W q 、H q .

[0370] Each of the first and second sets of width / height pairs may additionally include W p Equal to H p And H p >H q The third width / height pair W p 、H p .

[0371] For a predetermined block, an index may be transmitted in the data stream indicating which linear or affine linear transform is selected for the block 18 among a set of predetermined linear or affine linear transforms.

[0372] The plurality of adjacent samples may extend in one dimension along two sides of the predetermined block and may be reduced by, for a first subset of the plurality of adjacent samples adjoining the first side of the predetermined block, grouping the first subset into a first group 110 of one or more consecutive adjacent samples and, for a second subset of the plurality of adjacent samples adjoining the second side of the predetermined block, grouping the second subset into a second group 110 of one or more consecutive adjacent samples and performing averaging on each of the first and second groups of one or more adjacent samples having more than two adjacent samples to obtain a first sample value from the first group and to obtain a second sample value for the second group. Then, a linear or affine linear transform can be selected from a set of predetermined linear or affine linear transforms depending on the set index, so that two different states of the set index result in the selection of one of the linear or affine linear transforms of the predetermined set of linear or affine linear transforms, and in the case where the set index adopts a first state of the two different states in the form of a first vector, the reduced sample value set can be subjected to the predetermined linear or affine linear transform to produce an output vector of predicted values, and the predicted values ​​of the output vector are distributed to predetermined samples of the predetermined block along a first scan order, and in the case where the set index adopts a second state of the two different states in the form of a second vector, the first and second vectors are different, so that a component filled by one of the first sample values ​​in the first vector is filled by one of the second sample values ​​in the second vector, and a component filled by one of the second sample values ​​in the first vector is filled by one of the first sample values ​​in the second vector, so as to produce an output vector of predicted values, and the predicted values ​​of the output vector are distributed to predetermined samples of the predetermined block along a second scan order, wherein the predetermined block is transposed relative to the first scan order.

[0373] Each linear or affine linear transform within the first set of linear or affine linear transforms may be used to transform N1 sample values ​​into w1*h1 predicted values ​​for a w1×h1 array of sample positions, and each linear or affine linear transform within the second set of linear or affine linear transforms may be used to transform N2 sample values ​​into w2*h2 predicted values ​​for a w2×h2 array of sample positions, wherein for a first predetermined width / height pair in the first set of width / height pairs, w1 may exceed the width of the first predetermined width / height pair or h1 may exceed the height of the first predetermined width / height pair, and for a second predetermined width / height pair in the first set of width / height pairs, w1 may not exceed the width of the second predetermined width / height pair, and h1 may not exceed the height of the second predetermined width / height pair. A plurality of adjacent samples may then be downscaled (100) by averaging to obtain a set of downscaled sample values ​​(102), such that the set of downscaled sample values ​​102 has N1 sample values ​​if the predetermined block has a first predetermined width / height pair and if the predetermined block has a second predetermined width / height pair, and the set of downscaled sample values ​​may be subjected to a selected linear or affine linear transformation along the width dimension if w1 exceeds the width of one width / height pair or along the height dimension if h1 exceeds the height of one width / height pair if the predetermined block has the first predetermined width / height pair, and the set of downscaled sample values ​​may be subjected to a selected linear or affine linear transformation along the width dimension if w1 exceeds the width of one width / height pair if the predetermined block has the first predetermined width / height pair, or along the height dimension if h1 exceeds the height of one width / height pair if the predetermined block has the second predetermined width / height pair, and the set of downscaled sample values ​​may be subjected to a selected linear or affine linear transformation entirely if the predetermined block has the second predetermined width / height pair.

[0374] Each linear or affine linear transform within the first set of linear or affine linear transforms can be used to transform N1 sample values ​​into w1*h1 predicted values ​​for the w1×h1 array of sample positions where w1=h1, and each linear or affine linear transform within the second set of linear or affine linear transforms is used to transform N2 sample values ​​into w2*h2 predicted values ​​for the w2×h2 array of sample positions where w2=h2.

[0375] All of the above-described embodiments are merely illustrative, as they may form the basis for the embodiments described herein below. That is, the above concepts and details should be used to understand the following embodiments and should serve as a repository for possible extensions and modifications of the embodiments described herein below. In particular, many of the details described above are optional, such as the averaging of adjacent samples, the fact that adjacent samples are used as reference samples, etc.

[0376] More generally, the embodiments described herein assume that a prediction signal for a rectangular block is generated from reconstructed samples, such as an intra prediction signal for a rectangular block generated from adjacent reconstructed samples to the left and above the block. The generation of the prediction signal is based on the following steps.

[0377] 1. Among the reference samples, currently referred to as boundary samples, but without excluding the possibility of transferring the description to reference samples located elsewhere, samples can be extracted by averaging. Here, averaging is performed for boundary samples on the left and top of the block, or for boundary samples on only one of the two sides. If averaging is not performed on one side, the samples on that side remain unchanged.

[0378] 2. Perform a matrix-vector multiplication, optionally followed by adding an offset, where the input vector to the matrix-vector multiplication is the concatenation of the averaged boundary samples on the left side of the block and the original boundary samples above the block if averaging is applied only on the left side, or the concatenation of the original boundary samples on the left side of the block and the averaged boundary samples above the block if averaging is applied only on one side, or the concatenation of the averaged boundary samples on the left side of the block and the averaged boundary samples above the block if averaging is applied only on both sides of the block. Again, there will be alternatives, such as not using averaging at all.

[0379] 3. The result of the matrix-vector multiplication and optional offset addition may optionally be a scaled-down prediction signal for the subsampled set of samples in the original block. The prediction signals at the remaining positions may be generated from the prediction signal for the subsampled set by linear interpolation.

[0380] The computation of the matrix-vector product in step 2 should preferably be performed in integer arithmetic. Thus, if x = (x1, ..., x n ) denotes the input for the matrix-vector product, i.e., x denotes the concatenation of the (averaged) boundary samples to the left and above the block, then in x, the (reduced) prediction signal calculated in step 2 should be calculated using only bit shifts, addition of offset vectors, and multiplication with integers. Ideally, the prediction signal in step 2 would be given as Ax+B, where b is an offset vector which may be zero and where A is derived by some machine learning-based training algorithm. However, such training algorithms typically only produce a matrix A=A given in floating point precision. float Thus, we are faced with specifying integer operations in the aforementioned sense so that the expression A is best approximated using these integer operations. float Here, it is important to mention that these integer operations do not have to be chosen so that they approximate the expression A assuming a uniform distribution of the vector x float x but usually considering the expression A float The input vector x will be approximated as (averaged) boundary samples from a natural video signal, where the components x of x can be expected to bei Some correlations between them.

[0381] Figure 8 1 shows improved ALWIP prediction. Samples for a predetermined block can be predicted based on a matrix-vector product between a matrix A 1100 derived by a machine learning-based training algorithm and a sample value vector 400. Optionally, an offset b 1110 can be added. To achieve an integer or fixed-point approximation of this matrix-vector product, the sample value vector can undergo a reversible linear transformation 403 to determine another vector 402. A second matrix-vector product between another matrix B 1200 and the other vector 402 can be equal to the result of the matrix-vector product.

[0382] Due to the characteristics of the additional vector 402, the second matrix-vector product can be an integer approximated by the matrix-vector product 404 between the predetermined prediction matrix C 405 and the additional vector 402 plus the additional offset 408. The additional vector 402 and the additional offset 408 can be composed of integers or fixed-point values. For example, all components of the additional offset are identical. The predetermined prediction matrix 405 can be a quantized matrix or a matrix to be quantized. The result of the matrix-vector product 404 between the predetermined prediction matrix 405 and the additional vector 402 can be understood as a prediction vector 406.

[0383] In the following, more details about this integer approximation are provided.

[0384] Possible solution based on example I: Subtract and add the average

[0385] Expression A can be used in the above situation float One possible incorporation of an integer approximation of x is to replace the i0th component of x (ie, the sample value vector 400) by the mean value mean(x) of the components of x (ie, the predetermined value 1400) That is, the predetermined component 1500 and this average value is subtracted from all other components. In other words, the definition is as follows Figure 9a The reversible linear transformation 403 shown in FIG403 is such that the predetermined component 1500 of the further vector 402 becomes a, and each of the other components of the further vector 402 (except the predetermined component 1500) is equal to the corresponding component of the sample value vector minus a, where a is a predetermined value 1400, which is, for example, the average value, such as the arithmetic mean or the weighted average value, of the components of the sample value vector 400. This operation on the input is given by the reversible transformation T403, which has an obvious integer implementation, in particular when the dimension n of x is a power of two.

[0386] Because A float =(A float T -1)T, if this transformation is performed on the input x, then an integer approximation to the matrix-vector product By must be found, where B = (A float T -1 ) and y=Tx. Since the matrix-vector product A float x represents the prediction for a rectangular block, i.e. a predetermined block, and since x includes the (e.g. averaged) boundary samples of the block, it should be expected that if all sample values ​​of x are equal, i.e. for all x i =mean(x), the predicted signal A float Each sample value in x should be close to mean(x) or exactly equal to mean(x). This means that the i0th column, i.e., the column corresponding to the predetermined component of B, should be expected to be very close to or equal to the column consisting of only ones. Therefore, if M(i0), i.e., the integer matrix 1300, is a matrix whose i0th column consists of ones and all other columns are zeros, written as By = Cy + M(i0)y, where C = BM(i0), then the i0th column of C, i.e., the predetermined prediction matrix 405, should actually be expected to have small entries or be zero, as shown in FIG. Figure 9b Furthermore, since the components of x are correlated, it can be expected that for each i≠i0, the i-th component of y i =x i -mean(x) often has a much smaller absolute value than the i-th component of x. Since the matrix M(i0) is an integer matrix, the integer approximation of By is achieved given the integer approximation of Cy, and from the above variables, it can be expected that the quantization error generated by quantizing each item of C in a suitable way should respond to A float x and only slightly affects the resulting quantized error of By.

[0387] The predetermined value 1400 is not necessarily the mean value mean(x). float The integer approximation of x described herein may also be achieved by the following alternative definition of the predetermined value 1400:

[0388] In expression A float Another possibility for the integer approximation of x is to incorporate the i0th component of x remain unchanged and subtract the same value from all other components that is, and For each i≠i 0. In other words, the predetermined value 1400 may be a component of the sample value vector 400 corresponding to the predetermined component 1500.

[0389] Alternatively, the predetermined value 1400 is a default value or a value signaled in a data stream in which the image is encoded.

[0390] The predetermined value 1400 is equal to, for example, 2bitdepth-1 In this case, the additional vector 402 may be represented by y0=2 bitdepth-1 and y i =x i -x0 is defined where i>0.

[0391] Alternatively, the predetermined component 1500 becomes a constant minus the predetermined value 1400. The constant is equal to, for example, 2 bitdepth-1 According to one embodiment, the predetermined component of the additional vector y 402 1500 is equal to 2 bitdepth-1 Subtract the component of the sample value vector 400 corresponding to the predetermined component 1500 And all other components of the further vector 402 are equal to the corresponding components of the sample value vector 400 minus the component of the sample value vector 400 corresponding to the predetermined component 1500 .

[0392] For example, it is advantageous for the predetermined value 1400 to have a small deviation from the predicted value of the samples of the predetermined block.

[0393] According to one embodiment, the apparatus 1000 is configured to include a plurality of reversible linear transformations 403, each of which is associated with a component of the further vector 402. In addition, the apparatus is configured, for example, to select a predetermined component 1500 from among the components of the sample value vector 400 and to use the reversible linear transformation 403 associated with the predetermined component 1500 from among the plurality of reversible linear transformations as the predetermined reversible linear transformation. This is, for example, due to the different positions of the i0-th row (i.e., the row of the reversible linear transformation 403 corresponding to the predetermined component), which depends on the position of the predetermined component in the further vector. If, for example, the first component of the further vector 402, i.e., y1, is the predetermined component, then the i0-th row is the predetermined component. o The row will replace the first row of the reversible linear transformation.

[0394] like Figure 9b As shown in FIG, the matrix components 414 of the prediction matrix C 405 within the column 412 (i.e., the i0-th column) of the predetermined prediction matrix 405 (which correspond to the predetermined components 1500 of the further vector 402) are, for example, all zero. In this case, the apparatus is configured, for example, to calculate the matrix-vector product 404 by performing a multiplication 407 between the reduced prediction matrix C′405 resulting from discarding the columns 412 of the predetermined prediction matrix C 405 and the further vector 410 resulting from discarding the predetermined components 1500 of the further vector 402, as shown in FIG. Figure 9c As shown in , the prediction vector 406 can therefore be calculated with fewer multiplications.

[0395] like Figure 8 、 Figure 9b and Figure 9cAs shown in , the apparatus 1000 may be configured to calculate the sum of each component of the prediction vector 406 and a (i.e., a predetermined value 1400) when predicting samples of a predetermined block based on the prediction vector 406. This summation may be represented by the sum of the prediction vector 406 and the vector 409, where all components of the vector 409 are equal to the predetermined value 1400, as shown in FIG. Figure 8 and Figure 9c Alternatively, the summation may be represented by the sum of the matrix-vector products 1310 between the prediction vector 406 and the integer matrix M1300 and the further vector 402, as shown in FIG. Figure 9b As shown in , the matrix components of the integer matrix 1300 are 1s in a column of the integer matrix 1300 , namely the i0-th column, which corresponds to the predetermined components 1500 of the further vector 402 , and all other components are, for example, all zeros.

[0396] The result of summing the predetermined prediction matrix 405 and the integer matrix 1300 is equal to or approximately equal to, for example Figure 8 Another matrix 1200 is shown in .

[0397] In other words, the matrix resulting from summing each matrix component of the predetermined prediction matrix C 405 within the column 412 (i.e., the i0-th column) of the predetermined prediction matrix 405 (which corresponds to the predetermined component 1500 of the further vector 402) with one (i.e., the matrix B) multiplied by the reversible linear transformation 403, i.e., the further matrix B 1200, corresponds to, for example, a quantized version of the machine learning prediction matrix A 1100, as shown in FIG. Figure 8 、 Figure 9a and Figure 9b The sum of each matrix component of the predetermined prediction matrix C 405 in the i0-th column 412 and one may correspond to the sum of the predetermined prediction matrix 405 and the integer matrix 1300, as shown in FIG. Figure 9b As shown in Figure 8 As shown in , the machine learning prediction matrix A 1100 can be equal to the result of multiplying another matrix 1200 by the reversible linear transformation 403. This is because A·x=BT·yT -1 The predetermined prediction matrix 405 is, for example, a quantized matrix, an integer matrix and / or a fixed-point matrix, thereby enabling a quantized version of the machine learning prediction matrix A1100 to be implemented.

[0398] Matrix multiplication using only integer operations

[0399] For a low complexity implementation (in terms of the complexity of adding and multiplying scalar values, and in terms of the storage required for the entries of the matrices involved), it is desirable to perform the matrix multiplication 404 using only integer arithmetic.

[0400] To calculate the approximation z = Cy, that is,

[0401]

[0402] In the case of using only integer arithmetic, according to one embodiment, the real value C i,j Must map to an integer value This can be quantified, for example, by a uniform scalar, or by considering the value y i Integer values ​​represent, for example, fixed-point numbers, which can each be stored with a fixed number of bits n_bit, for example, n_bit=8.

[0403] A matrix-vector product 404 with a matrix of size m×n (i.e., a predetermined prediction matrix 405) can then be performed as shown in this pseudo-program code, where <<, >> are arithmetic binary left and right shift operations, and +, -, and * only operate on integer values. (1)

[0405] final_offset=1<<(right_shift_result-1);

[0406] for i in 0…m-1

[0407] {

[0408] accumulator=0

[0409] for j in 0…n-1

[0410] {

[0411] accumulator:=accumulator+y[j]*C[i,j]

[0412] }

[0413] z[i]=(accumulator+final_offset)>>right_shift_result;

[0414] }

[0415] Here, the array C, ie the predetermined prediction matrix 405, stores fixed-point numbers as integers. The final addition of final_offset and the right shift operation of right_shift_result reduce the precision by truncation to obtain the required fixed-point format at the output.

[0416] To allow for an increased range of real values ​​that can be represented by integers in C, two additional matrices offset can be used i,j and scale i,j ,like Figure 10 and Figure 11 As shown in the example, the following matrix vector product y j Each of the numbers b i,j

[0417]

[0418] Given by the following formula

[0419]

[0420] value offset i,j and scale i,j For example, these integers may represent fixed-point numbers, which may each be represented by a fixed number of bits (e.g., 8 bits) or by the same number of bits, e.g., n_bit, which are used to store the value ) to store.

[0421] In other words, the apparatus 1000 is configured to use prediction parameters (eg integer values) and the value offset i,j and scale i,j ) represents a predetermined prediction matrix 405 and calculates a matrix-vector product 404 by performing multiplications and summing on the components of the further vector 402 and prediction parameters and intermediate results generated therefrom, wherein the absolute values ​​of the prediction parameters can be represented by an n-bit fixed-point number representation, wherein n is equal to or lower than 14, or alternatively equal to or lower than 10, or alternatively equal to or lower than 8. For example, the components of the further vector 402 are multiplied by the prediction parameters to produce products as intermediate results, which are in turn summed or form addends of the summation.

[0422] According to one embodiment, the prediction parameters include weights, each of which is associated with a corresponding matrix component of the prediction matrix. In other words, the predetermined prediction matrix is ​​replaced or represented by the prediction parameters, for example. The weights are, for example, integers and / or fixed-point values.

[0423] According to one embodiment, the prediction parameters further include one or more scaling factors, such as the value scale i,j , each of the one or more scaling factors is an integer value corresponding to the value used to scale the weight (e.g. ), the weights are associated with one or more corresponding matrix components of the predetermined prediction matrix 405. Additionally or alternatively, the prediction parameters include one or more offsets, such as the value offset i,j , each of which is an integer value associated with a weight (e.g. ) is associated with one or more corresponding matrix components of the predetermined prediction matrix 405 offset, and the weights are associated with one or more corresponding matrix components of the predetermined prediction matrix 405.

[0424] To reduce the offset i,j and scale i,j The amount of storage required, whose value can be chosen to be constant for a particular set of indices i, j. For example, its entry can be constant for each column, and it can be constant for each row, or it can be constant for all i, j, as Figure 10 As shown in .

[0425] For example, in a preferred embodiment, offset i,j and scale i,j All values ​​of the matrix for a prediction mode are constant, such as Figure 11 Therefore, when there are K prediction modes, where k=0 … K-1, only a single value o is required k and a single value s k to compute the prediction for mode k.

[0426] According to one embodiment, offset i,j and / or scale i,j is constant, i.e. the same, for all matrix-based intra prediction modes. Additionally or alternatively, offset i,j and / or scale i,j It is possible for the block size to be constant, ie the same, for all blocks.

[0427] In the offset representation o k And the scaling represents s k In the case of , the calculation in (1) can be modified as follows: (2)

[0429] final_offset = 0;

[0430] for i in 0…n-1

[0431] {

[0432] final_offset:=final_offset-y[i];

[0433] }

[0434] final_offset*=final_offset*offset*scale;

[0435] final_offset+=1<<(right_shift_result-1);

[0436] for i in 0…m-1

[0437] {

[0438] accumulator=0

[0439] for j in 0…n-1

[0440] {

[0441] accumulator:=accumulator+y[j]*C[i,j]

[0442] }

[0443] z[i]=(accumulator*scale+final_offset)>>right_shift_result;

[0444] }

[0445] Extended embodiments resulting from this solution

[0446] The above solutions refer to the following embodiments:

[0447] 1. As in Part I, the prediction method in step 2 of Part I, performs the following operation for integer approximation of the matrix-vector products involved: at the (averaged) boundary samples x = (x1, ..., x n ), for a fixed i0 (where 1≤i0≤n), calculate the vector y=(y1,…,y n ), where y i =x i -mean(x) (for i≠i0) and where and where mean(x) denotes the mean of x. The vector y then serves as input for the matrix-vector product Cy (an integer implementation of the matrix-vector product), so that the (downsampled) prediction signal pred from step 2 of part I is given by pred = Cy + meanpred(x). In these equations, meanpred(x) denotes the signal for each sample position in the domain of the (downsampled) prediction signal that is equal to mean(x). (See e.g. Figure 9b )

[0448] 2. As in Part I, the prediction method in step 2 of Part I performs the following operation for integer approximation of the matrix-vector products involved: n) Among them, for a fixed i0 (where 1 ≤ i0 ≤ n), calculate the vector y = (y1, …, y n-1 ), where y i = x i - mean(x) (for i < i0) and where y i = x i+1 - mean(x) (for i ≥ i0) and where mean(x) represents the mean of x. The vector y then serves as the input for the matrix - vector product Cy (integer implementation of the matrix - vector product), such that the (downsampled) prediction signal pred from step 2 of Part I is given by pred = Cy+meanpred(x). In these equations, meanpred(x) represents the signal equal to mean(x) for each sample position in the domain of the (downsampled) prediction signal. (See, for example Figure 9c )

[0449] 3. As the prediction method in Part I, where the integer implementation of the matrix - vector product Cy is given by using the matrix - vector product z i = ∑ j b i,j *y j where the are numbers given. (See, for example Figure 10 )

[0450] 4. As the prediction method in Part I, where step 2 uses one of K matrices, such that multiple prediction patterns can be calculated, each using a different matrix (where k = 0…K - 1), where the integer implementation of the matrix - vector product C k y is given by using the matrix - vector product z i = ∑ j b i,j *y j where the are numbers given. (See, for example Figure 11 )

[0451] That is, according to an embodiment of the present application, the encoder and decoder operate as follows to predict a predetermined block 18 of image 10, see Figure 8 . For prediction, multiple reference samples are used. As outlined above, embodiments of the present application will not be limited to intra - coding and thus, the reference samples will not be limited to neighboring samples, that is, samples adjacent to block 18 in image 10. Specifically, the reference samples will not be limited to reference samples configured along the outer edge of block 18, such as samples adjacent to the outer edge of the block. However, this case is of course an embodiment of the present application.

[0452] To perform prediction, a sample value vector 400 is formed from reference samples such as reference samples 17a and 17c. Possible formations have been described above. The formation may involve averaging, thereby reducing the number of samples 102 or the number of components of vector 400 compared to the reference samples 17 that contributed to the formation. As described above, the formation may also depend to some extent on the size or dimensions of block 18, such as its width and height.

[0453] This vector 400 must be affinely or linearly transformed in order to obtain a prediction for block 18. Different nomenclatures have been used above. Using the more recent nomenclature, the prediction is performed by applying vector 400 to matrix A by means of a matrix-vector product within the summation of offset vector b. Offset vector b is optional. The affine or linear transformation determined by A or A and B can be determined by the encoder and decoder, or more precisely, for the purpose of prediction based on the size and dimensions of block 18, as already described above.

[0454] However, to achieve the computational efficiency improvements outlined above, or to make prediction more efficient in terms of implementation, the affine or linear transform is quantized, and the encoder and decoder, or their predictors, use the aforementioned C and T to represent and perform the linear or affine transform, where C and T, applied in the manner described above, represent quantized versions of the affine transform. Specifically, instead of applying vector 400 directly to matrix A, the predictors in the encoder and decoder apply vector 402, which is generated from the sample value vector 400 by mapping it through a predetermined reversible linear transform T. The transform T used here can be the same as long as vector 400 has the same size, i.e., it does not depend on the block dimensions, i.e., width and height, or at least is the same for different affine / linear transforms. In the above, vector 402 has been denoted as y. The exact matrix used to perform the affine / linear transform, as determined by machine learning, would be B. However, instead of performing B exactly, prediction in the encoder and decoder is performed using an approximation or quantized version thereof. In detail, the representation is done by appropriately representing C in the manner outlined above, where C+M represents a quantized version of B.

[0455] Therefore, prediction in the encoder and decoder is further performed by computing a matrix-vector product 404 between vector 402 and a predetermined prediction matrix C, appropriately represented and stored at the encoder and decoder in the manner described above. The vector 406 resulting from this matrix-vector product is then used to predict the samples 104 of block 18. As described above, for prediction purposes, each component of vector 406 may be summed with parameter a, as indicated at 408, to compensate for the corresponding definition of C. The optional summation of vector 406 with an offset vector b may also be involved in deriving the prediction for block 18 based on vector 406. As described above, each component of vector 406, and thus each component of the sum of vector 406, the vector of all a's indicated at 408, and the optional vector b, may directly correspond to a sample 104 of block 18 and thus indicate a predicted value for the sample. It is also possible to predict only a subset of the samples 104 of a block in this manner and derive the remaining samples of block 18, such as 108, by interpolation.

[0456] As described above, there are different embodiments for setting a. For example, it can be the arithmetic mean of the components of vector 400. For this case, see Figure 9a The reversible linear transformation T can be expressed as Figure 9a . i0 are respectively predetermined components of the sample value vector and the vector 402, which are replaced by a. However, as also indicated above, there are other possibilities. However, as far as the representation of C is concerned, it has also been indicated above that C can be embodied in different ways. For example, the matrix-vector product 404 can end up in its actual calculation with the actual calculation of a smaller matrix-vector product with a lower dimension. In detail, as indicated above, due to the definition of C, the entire i0-th column 412 of C can become 0, so that the actual calculation of the product 404 can be performed by a reduced version of the vector 402, which is obtained by omitting the component That is, vector 402 is generated by multiplying this reduced vector 410 by the reduced matrix C′, which is generated from C by omitting the i0-th column 412.

[0457] The weights of C or C', i.e., the components of this matrix, can be represented and stored in fixed-point representation. However, these weights 414 can also be stored in a manner associated with different scaling and / or offsets as described above. The scaling and offset can be defined for the entire matrix C, i.e., all weights 414 for the matrix C or the matrix C' are equal, or can be defined in a way that all weights 414 for the same row or all weights 414 for the same column of the matrix C and the matrix C', respectively, are constant or equal. Figure 10In this context, the calculation of the matrix-vector product (ie the result of the product) can actually be performed slightly differently, ie, for example, by shifting the multiplication with the scaling toward vector 402 or 404 , thereby reducing the number of further multiplications that must be performed. Figure 11 This illustrates the case where one scale and one offset are used for all weights 414 for C or C', such as performed in calculation (2) above.

[0458] According to an embodiment, the apparatus described herein for predicting a predetermined block of an image may be configured to use matrix-based intra-sample prediction comprising the following features:

[0459] The apparatus is configured to form a sample value vector pTemp[x] 400 from a plurality of reference samples 17. Assuming that pTemp[x] is 2*boundarySize, pTemp[x] may be filled by, for example, directly copying the adjacent sample located at the top of the predetermined block (redT[x] of x=0 ... boundarySize-1) followed by the adjacent sample located to the left of the predetermined block (redL[x] of x=0 ... boundarySize-1) (for example in the case of isTransposed=0) (or vice versa in the case of transposed processing (for example in the case of isTransposed=1)) or by subsampling or merging the above samples.

[0460] The input value p[x] of x=0…inSize-1 is derived, i.e. the apparatus is configured to derive a further vector p[x] from the sample value vector pTemp[x], to which the sample value vector pTemp[x] is mapped by a predetermined reversible linear transformation (or more specifically, a predetermined reversible affine linear transformation) as follows:

[0461] - If mipSizeId is equal to 2, the following applies:

[0462] p[x]=pTemp[x+1]-pTemp[0]

[0463] Otherwise (mipSizeId is less than 2), the following applies:

[0464] p[0]=(1<<(BitDepth-1))-pTemp[0]

[0465] p[x]=pTemp[x]-pTemp[0], where x=1…inSize-1

[0466] Here, the variable mipSizeId indicates the size of the predetermined block. That is, according to this embodiment, the reversible transformation used to derive the further vector from the sample value vector depends on the size of the predetermined block. The dependency may be given by

[0467] mipSizeId boundarySize predSize 0 2 4 1 4 4 2 4 8

[0468] Here, predSize indicates the number of predicted samples within the predetermined block, and according to inSize = (2*boundarySize) - (mipSizeId == 2) ? 1:0, 2*boundarySize indicates the size of the sample value vector and is related to inSize (i.e., the size of the additional vector). More precisely, inSize indicates the number of components of the additional vector that actually participate in the calculation. inSize is the same size as the sample value vector for smaller block sizes, with one component being smaller for larger block sizes. In the former case, one component, namely the component corresponding to the predetermined component of the additional vector, can be disregarded, as the corresponding vector component's contribution in the subsequently calculated matrix-vector product will yield zero anyway and therefore need not actually be calculated. In an alternative embodiment, the dependency on block size can be ignored, wherein only one of the two alternatives is unavoidably used, namely, regardless of block size (the option corresponding to mipSizeId less than 2 or the option corresponding to mipSizeId equal to 2).

[0469] In other words, for example, a predetermined reversible linear transformation is defined such that a predetermined component of the further vector p becomes a, while all other components correspond to the components of the sample value vector minus a, where for example a=pTemp[0]. In the case of the first option corresponding to mipSizeId being equal to 2, this is easily seen and further consideration is given to the components of the further vector formed in a differential manner. That is, in the case of the first option, the further vector is actually {p[0…inSize]; pTemp[0]}, where pTemp[0] is a, and the actually calculated part of the matrix-vector multiplication used to produce the matrix-vector product, that is, the result of the multiplication is limited to the inSize components of the further vector and the corresponding columns of the matrix, because the matrix has zero columns that do not need to be calculated. In other cases corresponding to mipSizeId being less than 2, a=pTemp[0] is selected as all components of the further vector other than p[0], that is, the other components p[x] (where x=1) of the further vector p other than the predetermined component p[0]. … Each of the inSize-1) is equal to the corresponding component of the sample value vector pTemp[x] minus a, but p[0] is selected to be a constant minus a. Then the matrix vector product is calculated. The constant is the mean of the representable values, that is, 2x-1 (i.e. 1<<(BitDepth-1)) where x denotes the bit depth of the calculated representation used. It should be noted that if p[0] had instead been chosen to be pTemp[0], the calculated product would deviate from the one calculated using p[0] as indicated above (p[0]=(1<<(BitDepth-1))-pTemp[0]) by only a constant vector, which can be taken into account when predicting an intra block based on said product, i.e. the prediction vector. The value a is therefore a predetermined value, e.g. pTemp[0]. The predetermined value pTemp[0] is in this case, for example, the component of the sample value vector pTemp that corresponds to the predetermined component p[0]. It can be the neighboring sample closest to the top left corner of the predetermined block or to the left of the predetermined block.

[0470] For an intra sample prediction process according to, for example, a specified intra prediction mode, predModeIntra, the apparatus is configured to apply the following steps, for example, perform at least the first step:

[0471] 1. The matrix-based intra-prediction samples predMip[x][y], where x=0…predSize-1 and y=0…predSize-1, are derived as follows:

[0472] -The variable modeId is set equal to predModeIntra.

[0473] The weight matrix mWeight[x][y] where x=0...inSize-1, y=0...predSize*predSize-1 is derived by calling the MIP weight matrix derivation process using mipSizeld and modeld as input.

[0474] - The matrix-based intra prediction samples predMip[x][y], where x=0...predSize-1, y=0...predSize-1 are derived as follows:

[0475]

[0476] In other words, the device is configured to calculate the matrix-vector product between the further vector p[i] or, in the case of mipSizeId equal to 2, {p[i]; pTemp[0]} and a predetermined prediction matrix mWeight or, in the case of mipSizeId less than 2, the prediction matrix mWeight with an additional zero weight column corresponding to the omitted components of p, in order to obtain the prediction vector, which has here been assigned to the array of block positions {x, y} distributed in the interior of the predetermined block to produce the array predMip[x][y]. The prediction vector will correspond to the concatenation of the rows of predMip[x][y] or the columns of predMip[x][y], respectively.

[0477] According to one embodiment, or according to a different interpretation, only the component is understood as a prediction vector, and the device is configured to calculate, for each component of the prediction vector, the sum of the corresponding component and a (eg pTemp[0]) when predicting samples of a predetermined block based on the prediction vector.

[0478] Optionally, the apparatus may be configured to generate a prediction vector based on a prediction vector such as predMip or The following steps are additionally performed when predicting samples of a predetermined block.

[0479] 2. The matrix-based intra prediction samples predMip[x][y] where x=0...predSize-1 and y=0...predSize-1 are, for example, pruned as follows:

[0480] predMip[x][y]=Clip1(predMip[x][y])

[0481] 3. When isTransposed is equal to TRUE, the predSize×predSize array predMip[x][y] (where x=0…predSize-1, y=0…predSize-1) is transposed, for example, as follows:

[0482] predTemp[y][x]=predMip[x][y]

[0483] predMip=predTemp

[0484] 4. The predicted samples predSamples[x][y] (where x=0...nTbW-1, y=0...nTbH-1) are derived as follows:

[0485] -If nTbW, which specifies the transform block width, is greater than predSize or nTbH, which specifies the transform block height, is greater than predSize, then the MIP prediction upsampling process is called with as input the input block size predSize, the matrix-based intra prediction samples predMip[x][y] (where x=0…predSize-1, y=0…predSize-1), the transform block width nTbW, the transform block height nTbH, the top reference samples refT[x] (where x=0…nTbW-1) and the left reference samples refL[y] (where y=0…nTbH-1), and the output is the predicted sample array predSamples.

[0486] Otherwise, predSamples[x][y], where x=0...nTbW-1, y=0...nTbH-1, is set equal to predMip[x][y].

[0487] In other words, the device is configured to predict samples predSamples of a predetermined block based on the prediction vector predMip.

[0488] 8. Embodiments using block-based intra prediction mode and other intra prediction modes

[0489] All of the above descriptions should be considered as optional implementation details of the presently described embodiments. Note that in the following, the term block-based intra prediction is used to denote intra prediction modes that can be embodied by or are equal to those indicated by ALWIP above.

[0490] Figure 12 An embodiment of an apparatus 3000 for decoding a predetermined block 18 of an image 10 using intra prediction is shown. The apparatus 3000 is configured to derive, from a data stream 12, a set-selective syntax element 522 indicating whether the predetermined block 18 was predicted using one of a first set 508 of intra prediction modes, including a DC intra prediction mode 506 and an angular prediction mode 500. The data stream 12 may include different syntax elements and / or indices indicating the functionality of the apparatus 3000.

[0491] If the set-selective syntax element 522 indicates that the predetermined block 18 was predicted using one of the first set 508 of intra-prediction modes, the apparatus 3000 is configured to form a list 528 of most probable intra-prediction modes based on the intra-prediction modes 3050 used when predicting neighboring blocks 524, 526 adjacent to the predetermined block 18. In other words, the intra-prediction modes 506, 500 in the first set 508 of intra-prediction modes are positioned / configured in the list 528 of most probable intra-prediction modes based on the intra-prediction modes 3050 used to predict the neighboring blocks 524 and 526. For example, the apparatus 3000 is configured to save the prediction mode used for the predicted block and obtain the prediction mode 3050 for the neighboring blocks 524 and 526 from the saved prediction mode or to analyze the neighboring blocks 524 and 526 to obtain the prediction mode 3050 for the neighboring blocks 524 and 526. According to an embodiment, the apparatus 3000 is configured to search for intra prediction modes that are identical or similar to the prediction modes 3050 for the neighboring blocks 524 and 526 in the first set 508 of intra prediction modes and form a list 528 of most likely intra prediction modes from these identical or similar intra prediction modes.

[0492] The list of most probable intra prediction modes 528 is formed such that, if the neighboring blocks 524 and 526 are predicted exclusively by any one of the angular intra prediction modes 500, the list of most probable intra prediction modes 528 does not include the DC intra prediction mode 506. Therefore, the availability of the DC intra prediction mode 506 depends only on the neighboring blocks 524 and 526 of the predetermined block 18, and not on other blocks of the image 10. If at least one of the neighboring blocks 524 or 526 is predicted using the angular intra prediction mode 500, the DC intra prediction mode 506 is not located / configured in the list of most probable intra prediction modes 528. If both neighboring blocks 524 and 526 are predicted using the angular intra prediction mode 500, the list of most probable intra prediction modes 528 may also not include the DC intra prediction mode 506.

[0493] Furthermore, the apparatus is configured to derive an MPM list index 534 from the data stream if the set selectivity syntax element 522 indicates that the predetermined block 18 is to be predicted using one of the first set 508 of intra prediction modes. The MPM list index 534 points to the predetermined intra prediction mode in the list 528 of most probable intra prediction modes. The apparatus 3000 is configured to perform intra prediction on the predetermined block 18 using the predetermined intra prediction mode 3100.

[0494] If the set-selective syntax element 522 indicates that one of the first set 508 of intra prediction modes is not to be used to predict the predetermined block 18, the apparatus 3000 is configured to derive from the data stream 12 a further index 540 indicating a predetermined matrix-based intra prediction mode, i.e., a predetermined block-based intra prediction mode 3200, from the second set 520 of matrix-based intra prediction modes, i.e., block-based intra prediction modes 510. In other words, the predetermined block-based intra prediction mode 3200 is selected from the second set 520 of block-based intra prediction modes for predicting the predetermined block 18 based on the further index 540. If the set-selective syntax element 522 indicates that a predetermined block 18 is not to be predicted using one of the first set 508 of intra-prediction modes, the apparatus 3000 is configured to calculate a matrix-vector product 512 between a vector 514 derived from a reference sample 17 in a neighborhood of the predetermined block 18 and a predetermined prediction matrix 516 associated with a predetermined matrix-based intra-prediction mode 3200 to obtain a prediction vector 518, and to predict samples of the predetermined block 18 based on the prediction vector 518.

[0495] The data stream 12 includes an MPM list index 534 or another index 540 based on the set selective syntax element 522 .

[0496] The apparatus 3000 may include, for example, Figure 13 The features and or functionality described.

[0497] Therefore, in the following text, Figure 13 The described embodiments relate to a decoder and encoder supporting intra prediction for decoding / encoding a predetermined block 18, wherein different intra prediction modes are supported. An angular intra prediction mode 500, based on reference samples 17 adjacent to the predetermined block 18, is used to fill the predetermined block 18 to obtain an intra prediction signal for the predetermined block 18. Specifically, reference samples 17 arranged along the boundaries of the predetermined block 18, such as along the top and left edges of the predetermined block 18, represent image content that is extrapolated or copied into the interior of the predetermined block 18 along a predetermined direction 502. Prior to extrapolation or copying, the image content represented by the adjacent samples 17 may be interpolated or, in other words, derived from the adjacent samples 17 by means of an interpolation filter. The angular intra prediction modes 500 differ from one another in their intra prediction direction 502. Each angular intra prediction mode 500 may have an associated index, wherein the correlation between the index and the angular intra prediction mode 500 may cause the direction 500 to rotate monotonically clockwise or counterclockwise when the angular intra prediction modes 500 are sorted according to the associated mode index.

[0498] There may also be, for example, non-angular intra prediction modes 504, Figure 13The intra-plane prediction modes optionally included in the set 508 are described, according to which a two-dimensional linear function defined by a horizontal slope, a vertical slope, and an offset is derived based on neighboring samples 17, and by which the predicted sample values ​​of the predetermined block 18 are defined. The horizontal slope, the vertical slope, and the offset are derived based on the neighboring samples 17. According to one embodiment, the first set of intra-prediction modes 508 includes the intra-plane prediction mode 504.

[0499] A specific non-angular intra prediction mode, DC mode, included in set 508 is illustrated at 506. Here, one value, a quasi-DC value, is derived based on neighboring samples 17 and this one DC value is attributed to all samples of a predetermined block 18 in order to obtain an intra prediction signal. Although two examples of non-intra prediction modes are shown, there may be only one example or more than two examples.

[0500] The intra prediction modes 500, 504, and 506 form a set 508 of intra prediction modes supported by the encoder and decoder, which compete with the block-based intra prediction modes (examples of which are discussed above using the abbreviation ALWIP), generally indicated using the reference symbol 510, in terms of rate / distortion optimization. As described above, according to these block-based intra prediction modes 510, a matrix-vector product 520 is performed between a vector 514 derived from neighboring samples 17 on the one hand and a predetermined prediction matrix 516 on the other hand. The result of the multiplication 512 is a prediction vector 518 for predicting the samples of the predetermined block 18. The block-based intra prediction modes 510 differ from each other in the prediction matrix 516 associated with the respective mode.

[0501] Therefore, in brief, the encoder and decoder according to the embodiments described herein include a set 508 of intra-prediction modes, i.e. a first set of intra-prediction modes and a set 520 of block-based intra-prediction modes, i.e. a second set of matrix-based intra-prediction modes, and the sets compete with each other.

[0502] According to an embodiment of the present application, a predetermined block 18 is encoded / decoded using intra prediction in the following manner. Specifically, a set selection syntax element 522 is first generated to predict the predetermined block 18 using either a set of intra prediction modes 508 or a set of block-based intra prediction modes 520. If the set selection syntax element indicates that the predetermined block 18 should be predicted using any mode in the set 508, i.e., the first set of intra prediction modes, then a list 528 of most likely candidates from the set 508 is interpreted / formed at the decoder and encoder based on the intra prediction modes used to predict neighboring blocks adjacent to block 18, illustratively indicated at 524 and 526. Neighboring blocks 524 and 526 can be determined in a predetermined manner, such as by determining the positions of those neighboring blocks relative to the predetermined block 18 that overlap certain neighboring samples of block 18 (such as the sample on top of the top-left sample of block 18) and block 526 containing samples to the left of the corner sample just mentioned. This is, of course, merely an example. The same applies to the number of neighboring blocks used for mode prediction, which is not limited to two for all embodiments. More than two or only one neighboring block may be used. If either of these blocks 524 and 526 is lost, the default intra prediction mode may be used as a default substitute for the intra prediction mode of the lost neighboring block. This also applies if either of blocks 524 and 526 was already using inter prediction mode, such as through motion-compensated predictive encoding / decoding.

[0503] The list of modes from the set 508, i.e. the list 528 of most probable intra prediction modes, is constructed as follows. The list length of the list 528, i.e. the number of most probable modes therein, can be fixed by default. The length can be as follows: Figure 13, or may be different, such as five or six. The latter applies to the specific example described below. An index in the data stream, described later, may indicate a pattern from list 528 to be used for predetermined block 18. Indexing is performed along a list order or sequence 530, where, for example, the list index, which may be of variable length, is encoded so that the length of the index monotonically increases along sequence 530. Therefore, initially, list 528 is populated with only the most likely patterns from set 508, and it is advantageous to place more likely patterns upstream along sequence 530 relative to patterns with a lower probability of being suitable for block 18. The patterns in list 528 are derived based on the patterns used for blocks 524 and 526, i.e., neighboring blocks adjacent to predetermined block 18. If either block 524 or 526 has already been intra-predicted using a block-based pattern 510 from set 520, the mapping from such "ALWIP" or block-based pattern 510 to a pattern within set 508 (e.g., a non-ALWIP mode) described above is used. The latter mapping may, for example, map most (ie, more than half) of the block-based modes 510 to the DC mode 506 (or either the DC mode 506 or the planar mode 504).

[0504] According to one embodiment, the list 528 of most probable intra prediction modes is populated with the plane intra prediction mode 504 in a manner independent of the intra prediction mode used when predicting the neighboring blocks. Thus, for example, depending on the intra prediction mode used for the prediction of the neighboring blocks 524 and 526, only the DC intra prediction mode 506 and the angular intra prediction mode 500 are populated in the list 528. For example, the plane intra prediction mode 504 is positioned at the first position in the list 528 of most probable intra prediction modes, independent of the intra prediction mode used when predicting the neighboring blocks 524 and 526.

[0505] In a manner exemplarily explained in more detail below, the list construction of the list of most probable intra prediction modes 528 is performed in such a way that if the neighboring blocks 524 and 526 have been predicted exclusively by any of the angular intra prediction modes 500, then the list

[0506] 528 does not include the DC intra prediction mode 506. If a neighboring block 524 is predicted by any angular intra prediction mode 500 or

[0507] 526 and / or if the two neighboring blocks 524 and 526 are predicted by any angular intra prediction mode 500, the DC intra prediction mode

[0508] 506 is not in the list of most probable intra prediction modes 528. According to an embodiment explained below, for example, the list 528 is populated with the DC mode 506 only if the following situation is true for all neighboring blocks 524 and 526: a block that has been coded using any of the non-angular intra prediction modes 504 and 506 or has been predicted using any of the block-based intra prediction modes 510 (which is mapped to any of the non-angular intra prediction modes 504 and 506 by means of the aforementioned mapping from block-based intra prediction modes 510 to modes in the set 508). Only in said case is the DC intra prediction mode 506 located in the list

[0509] 528. In this case, the DC intra prediction mode can be positioned in order 530 above any angle intra prediction mode.

[0510] 500 before, as can be seen from the subsequent examples.

[0511] In other words, for example, the list 528 of most probable intra prediction modes is populated with the DC intra prediction mode 506 only in the following case: for each of the neighboring blocks 524 and 526, the corresponding neighboring block predicted using any one of the at least one non-angular intra prediction modes 504 and 506 within the first set 508 including the DC intra prediction mode 506 or using any one of the block-based intra prediction modes 510 (which is used for the formation of the list 528 of most probable intra prediction modes by means of a mapping from the second set 520 of block-based intra prediction modes 510 to the intra prediction modes within the first set 508) is mapped to any one of the at least one non-angular inter prediction modes 500.

[0512] Thus, resuming the description of how the predetermined block 18 is encoded into the data stream 12, if the set selectivity syntax element 522 indicates that the predetermined block 18 is encoded by any mode from the first set 508, then the data stream 12 optionally contains an MPM syntax element 532 indicating whether the intra-prediction mode to be used for the predetermined block 18 is within the list 528, and if so, then the data stream 12 includes an MPM list index 534 in the list 528 indicating the mode to be used for the predetermined block 18 from the list 528 by indexing the modes along the order 530. However, if the mode from the set 508 is not within the list 528 as indicated by the MPM syntax element 532, then the data stream 12 includes, for the block 18, another syntax element 536 indicating which mode from the set 508 (i.e., the predetermined intra-prediction mode) is to be used for the block 18. Another syntax element 536 may indicate the mode by distinguishing between only those modes from the set 508 that are not included in the list 528 .

[0513] In other words, for example, if the set selectivity syntax element 522 indicates that the predetermined block 100 is predicted using one of the first set 508 of intra prediction modes, the apparatus 3000 is configured to derive, from the data stream, an MPM syntax element 532 indicating whether the predetermined intra prediction mode in the first set 508 of intra prediction modes is within the list 528 of most probable intra prediction modes. If the MPM syntax element 532 indicates that the predetermined intra prediction mode in the first set 508 of intra prediction modes is within the list 528 of most probable intra prediction modes, the apparatus 3000 is configured, for example, to form the list 528 of most probable intra prediction modes based on the intra prediction modes used when predicting neighboring blocks 524, 526 adjacent to the predetermined block 100 and to derive, from the data stream 12, an MPM list index 534 pointing to the predetermined intra prediction mode in the list 528 of most probable intra prediction modes. If the MPM syntax element 532 from the data stream 12 indicates that the predetermined intra prediction mode from the first set 508 of intra prediction modes is not in the list 528 of most probable intra prediction modes, the apparatus 3000 is configured to derive from the data stream an additional list index 536 indicating the predetermined intra prediction mode from the first set of intra prediction modes. Thus, based on the MPM syntax element 532, the data stream 12 includes the MPM list index 534 or the additional list index 536 for predicting the predetermined block 18.

[0514] By removing the situation where list 528 includes the DC intra-prediction mode 506, the following advantages are achieved. Specifically, the inventors of the present application discovered that "occupying" a valuable list position in list 528 by a DC intra-prediction mode 506 from set 508 (as indicated by syntax element 522, i.e., a set-selective syntax element) for encoding / decoding a predetermined block 18 that should use any of the intra-prediction modes in set 508 would adversely affect coding efficiency because this DC intra-prediction mode 506 from set 508 would anyway compete with the block-based intra-prediction mode 510. Therefore, "occupying" a list position in list 528 by this DC intra-prediction mode 506 from set 508 would increase the likelihood that the intra-prediction mode that will ultimately be used for the predetermined block 18, i.e., the predetermined intra-prediction mode, is not in list 528, resulting in a syntax element 536, i.e., an additional list index, needing to be transmitted in the data stream 12.

[0515] In detail, since the syntax element 522 already indicates for block 18 that either one of the modes within the set 508 or any one of the block-based modes 510 in the set 520 should be used to predict the block, it appears that if the syntax element 522 indicates that a mode within the set 508 is better for block 18, and therefore the block-based mode 510 is not used for block 18, then the likelihood that the DC prediction mode 506 from the set 508 can be suitable for block 18 is so low that the appearance of the DC prediction mode in the list 528 should be limited to the cluster of modes used for the neighboring blocks 524 and 526, that is, the extremely restricted set of clusters set forth above.

[0516] In another case, that is, when the set-selective syntax element 522 indicates that any one of the block-based intra prediction modes 510 is used to predict the predetermined block 18, encoding of the block 18 into the data stream 12 and decoding thereof can be performed in the manner explained above. For this purpose, indexing can be used to index one of the block-based intra prediction modes 510 selected from the set 520 (that is, the second set of block-based intra prediction modes) or to indicate which of the block-based intra prediction modes is to be used. The further MPM syntax element 538 may indicate whether the block-based intra prediction mode 510 to be used for block 18 is indexed by an index 540, i.e., by a further MPM list index (which indicates the block-based intra prediction mode 510 to be used for block 18 from a list 542 of the most probable block-based intra prediction modes 510, i.e., by indexing along a list order 544), or whether the block-based intra prediction mode 510 to be used for block 18 is indicated by another syntax element 546, i.e., by a further list index (which indicates a block-based intra prediction mode 510 from the set 520), wherein the latter syntax element 546 may, for example, distinguish only those modes 510 within the set 520 that are not already contained in the list 542. The list construction of the list 542 may be performed based on the modes used to predict blocks 524 and 526. If either of the blocks 524 and 526 is unavailable due to being outside the picture or due to being inter-predicted, a default intra prediction mode, such as one from the set 508, may be used instead. For each block 524 and 526, where intra prediction has been performed using a mode from set 508 instead of set 520, the mapping from modes in set 508 to modes from set 520 described above is used to obtain the intra prediction mode 510 for the corresponding block, i.e., the predetermined block 18, i.e., the predetermined block-based intra prediction mode, and list 542 is interpreted based on the block-based intra prediction modes generated for blocks 524 and 526.

[0517] According to an embodiment, if the set-selective syntax element 522 indicates that one of the first set 508 of intra prediction modes is not to be used to predict the predetermined block 18, the apparatus 3000 is configured to derive from the data stream 12 an additional MPM syntax element 538 indicating whether a predetermined block-based intra prediction mode from the second set 520 of block-based intra prediction modes 510 is within the list 542 of most probable block-based intra prediction modes. If the additional MPM syntax element 538 indicates that the predetermined block-based intra prediction mode from the second set 520 of block-based intra prediction modes 510 is within the list 542 of most probable block-based intra prediction modes, the apparatus 3000 is configured, for example, to form the list 542 of most probable block-based intra prediction modes based on the intra prediction modes used when predicting neighboring blocks 524, 526 adjacent to the predetermined block 18, and to derive from the data stream 12 an additional MPM list index 540 pointing to the predetermined block-based intra prediction mode in the list 542 of most probable block-based intra prediction modes. If the further MPM syntax element 538 indicates that the predetermined block-based intra prediction mode from the second set 520 of block-based intra prediction modes is not in the list 542 of most probable block-based intra prediction modes, the apparatus 3000 is configured to derive from the data stream 12 a further list index 546 indicating the predetermined block-based intra prediction mode from the second set 520 of block-based intra prediction modes. Therefore, based on the further MPM syntax element 538, the data stream 12 includes the further MPM list index 540 or the further list index 546 for predicting the predetermined block 18.

[0518] Although the additional MPM syntax element 538, the additional MPM list index 540 and the further list index 546 are in Figure 13 536, but it is apparent that data stream 12 includes further MPM syntax elements 538 and indices associated with further MPM syntax elements 538, such as further MPM list index 540 or further list index 546, or MPM syntax elements 532 and indices associated with MPM syntax elements 532, such as MPM list index 534 or further list index 536. Which of these syntax elements and indices data stream 12 includes depends, for example, on the set-selective syntax element 522.

[0519] An example of a syntax element portion of the data stream 12 written as pseudo program code may be as follows, where reference symbols indicate as to which syntax elements correspond to the syntax elements discussed previously.

[0520]

[0521]

[0522]

[0523]

[0524]

[0525]

[0526]

[0527]

[0528]

[0529]

[0530] The list structure of list 528 can be defined as follows: where candIntraPredModeA / B indicates the intra prediction mode used for either block 524 or 526, such as A for block 524 and B for block 526, if the corresponding block 524 or 526 was intra-predicted using any of the block-based intra prediction modes 510, or indicates to which mode in set 508 the intra prediction mode is mapped. INTRA_DC is used to indicate mode 506, and angular mode 500 is indicated by INTRA_ANGULAR#, where the number (#) indicates, as exemplarily described above, that the angular modes are ordered such that the angular direction 502 is monotonically decreasing or monotonically increasing with increasing number. The ordering of the modes in set 508 can be defined as shown in the following table, where INTRA_PLANAR indicates mode 504.

[0531] It should be noted that in the above example, the index 534 is actually distributed over syntax elements 534′ and 534″: the syntax element 534′ is specifically for the first position of the list 528 in the order 530, and according to this example, the INTRA PLANAR pattern 504 is inevitably located at that position. The syntax element 534″ points to any of the subsequent positions of the list 528, and as described, the DC pattern 506 is included at that position only in the described special case.

[0532] Furthermore, in the above example, where syntax element 522 indicates the use of any mode from set 508 of intra-prediction modes, other syntax elements are included in data stream 12 that parameterize, to some extent, the intra-prediction modes within set 508. For example, syntax element 600 parameterizes or changes the region in which reference samples 17 are located based on which modes in set 508 intra-predict the interior of block 18, such as in terms of distance toward the outer perimeter of block 18. Additionally or alternatively, syntax element 602 parameterizes or changes whether the modes in set 508 use the reference samples 17 for intra-prediction of the interior of block 18 globally or within a block, or for intra-prediction of segments or portions into which block 18 is subdivided, the segments or portions being sequentially intra-predicted so that prediction residuals from the data stream 12 encoded for one portion can be used to supplement new reference samples for intra-prediction of a subsequent portion. Controlled by the syntax element, a coding option is only available if syntax element 600 has a predetermined state corresponding to, for example, the region where reference sample 17 is located being adjacent to block 18 (and the corresponding syntax element may only be present in the data stream). The portion may be defined by subdividing the block along a predetermined direction, such as horizontally (thus causing the portion to be as tall as block 18) or vertically (thus causing the portion to be as wide as block 18). If partitioning is signaled as active, which controls which splitting direction is used, syntax element 604 may be present in the data stream. As can be seen, the position reserved for INTRA_PLANAR mode in list 528 may only be available if the mode is specifically parameterized via the parameterized syntax element just mentioned, such as only if syntax element 600 has a predetermined state corresponding to, for example, the region where reference sample 17 is located being adjacent to block 18, and / or if the portion-by-portion intra prediction mode, as signaled by syntax element 602, is not active.

[0533] All syntax elements shown in the table and not specifically mentioned above are optional and not discussed further herein.

[0534] - If candIntraPredModeB is equal to candIntraPredModeA and candIntraPredModeA is greater than INTRA_DC, then candModeList[x] (where x=0) is derived as follows … 4):

[0535] candModeList[0]=candIntraPredModeA

[0536] candModeList[1]=2+((candIntraPredModeA+61)%64)

[0537] candModeList[2]=2+((candIntraPredModeA-1)%64)

[0538] candModeList[3]=2+((candIntraPredModeA+60)%64)

[0539] candModeList[4]=2+(candIntraPredModeA%64)

[0540] Otherwise, if candIntraPredModeB is not equal to candIntraPredModeA and either candIntraPredModeA or candIntraPredModeB is greater than INTRA_DC, then the following applies:

[0541] - The variables minAB and maxAB are derived as follows:

[0542] minAB=Min(candIntraPredModeA,candIntraPredModeB)

[0543] maxAB=Max(candIntraPredModeA,candIntraPredModeB)

[0544] - If both candIntraPredModeA and candIntraPredModeB are greater than INTRA_DC, then candModeList[x] (where x=0) is derived as follows … 4):

[0545] candModeList[0]=candIntraPredModeA

[0546] candModeList[1]=candIntraPredModeB

[0547] If maxAB - minAB is equal to 1, the following applies:

[0548] candModeList[2]=2+((minAB+61)%64)

[0549] candModeList[3]=2+((maxAB-1)%64)

[0550] candModeList[4]=2+((minAB+60)%64)

[0551] Otherwise, if maxAB - minAB is greater than or equal to 62, the following applies:

[0552] candModeList[2]=2+((minAB-1)%64)

[0553] candModeList[3]=2+((maxAB+61)%64)

[0554] candModeList[4]=2+(minAB%64)

[0555] Otherwise, if maxAB - minAB is equal to 2, the following applies:

[0556] candModeList[2]=2+((minAB-1)%64)

[0557] candModeList[3]=2+((minAB+61)%64)

[0558] candModeList[4]=2+((maxAB-1)%64)

[0559] - Otherwise, the following applies:

[0560] candModeList[2]=2+((minAB+61)%64)

[0561] candModeList[3] = 2 + ( ( minAB - 1 ) % 64 ) (8-36)

[0562] candModeList[4]=2+(((maxAB+61))%64)

[0563] - Otherwise (candIntraPredModeA or candIntraPredModeB is greater than INTRA_DC), candModeList[x] (where x=0) is derived as follows … 4):

[0564] candModeList[0]=maxAB

[0565] candModeList[1]=2+((maxAB+61)%64)

[0566] candModeList[2] = 2 + ( ( maxAB - 1 ) % 64 ) (8-41)

[0567] candModeList[3]=2+((maxAB+60)%64)

[0568] candModeList[4]=2+(maxAB%64)

[0569] - Otherwise, the following applies:

[0570] candModeList[0]=INTRA_DC

[0571] candModeList[1]=INTRA_ANGULAR50(

[0572] candModeList[2]=INTRA_ANGULAR18

[0573] candModeList[3]=INTRA_ANGULAR46

[0574] candModeList[4]=INTRA_ANGULAR54

[0575] Internal prediction mode Associated name 0 INTRA_PLANAR 1 INTRA_DC 2…66 INTRA_ANGULAR2…INTRA_ANGULAR66

[0576] Where the set selective syntax element 522 indicates that the predetermined block 18 is not to be predicted using one of the first set 508 of intra prediction modes, the means for decoding the predetermined block 18 and / or the means for encoding the predetermined block 18 may include one or more of the following features.

[0577] According to an embodiment, the apparatus is configured to form a vector of sample values, e.g. from a plurality of reference samples 17 relative to Figures 6 to 9a - Figure 9c The sample value vector 400 described in one embodiment of the present invention is used, and a vector 514 is derived from the sample value vector so that the sample value vector is mapped to the vector 514 by a predetermined reversible linear transformation. In this case, the vector 514 can be understood as another vector. For example, as compared to Figures 8 to 11 In one of the embodiments of , vector 514 is determined and / or defined as described for further vector 402 .

[0578] According to one embodiment, the device is configured to form a sample value vector from multiple reference samples 17 by adopting one reference sample from multiple reference samples as the corresponding component of the sample value vector for each component of the sample value vector and / or averaging two or more components of the sample value vector to obtain the corresponding component of the sample value vector.

[0579] For example, a plurality of reference samples 17 are arranged in the image along the outer edge of the predetermined block 18 .

[0580] For example, the reversible linear transformation is defined such that a predetermined component of vector 514, for example, another vector, becomes a, and each of the other components of vector 514, except for the predetermined component, is equal to the corresponding component of the sample value vector minus a. For example, the value a is a predetermined value.

[0581] According to one embodiment, the predetermined value is one of an average value of the components of the sample value vector (such as an arithmetic mean or a weighted mean), a default value, a value signaled in a data stream encoded in an image, and a component of the sample value vector corresponding to the predetermined component.

[0582] For example, the reversible linear transformation is defined so that a predetermined component of vector 514, for example, another vector, becomes a, and each of the other components of vector 514, except for the predetermined component, is equal to the corresponding component of the sample value vector minus a, where a is the arithmetic mean of the components of the sample value vector.

[0583] For example, the reversible linear transformation is defined such that a predetermined component of vector 514, for example, another vector, becomes a, and each of the other components of vector 514, except for the predetermined component, is equal to the corresponding component of the sample value vector minus a, where a is the component of the sample value vector corresponding to the predetermined component. For example, the apparatus is configured to include a plurality of reversible linear transformations, each associated with a component of vector 514; select the predetermined component from among the components of the sample value vector; and use the reversible linear transformation associated with the predetermined component from among the plurality of reversible linear transformations as the predetermined reversible linear transformation.

[0584] According to one embodiment, the matrix components of the prediction matrix 516 within a column corresponding to the predetermined components of the vector 514, for example, another vector, are all zero. The apparatus is configured to calculate the matrix-vector product 512 by performing a multiplication between a reduced prediction matrix generated by discarding the column of the prediction matrix 516 and another vector generated by discarding the predetermined components of the vector 514.

[0585] According to an embodiment, the apparatus is configured to calculate, for each component of the prediction vector 518 , a sum of the corresponding component and a when predicting samples of the predetermined block 18 based on the prediction vector 518 .

[0586] The matrix 516 is generated by summing each matrix component of the prediction matrix 516 in a column corresponding to a predetermined component of the vector 514, such as another vector, and a matrix (ie, Figure 8The matrix B in ) multiplied by the reversible linear transformation corresponds to a quantized version of, for example, a machine learning prediction matrix.

[0587] According to an embodiment, the apparatus is configured to compute the matrix-vector product 512 using fixed-point arithmetic operations.

[0588] According to an embodiment, the apparatus is configured to compute the matrix-vector product 512 without using floating point arithmetic operations.

[0589] According to an embodiment, the apparatus is configured to store a fixed-point representation of the prediction matrix 516 .

[0590] According to an embodiment, the apparatus is configured to represent a prediction matrix 516 using prediction parameters and to calculate a matrix-vector product 512 by performing multiplications and summations on components of a vector 514, e.g., a further vector, and the prediction parameters and intermediate results generated therefrom, wherein the absolute values ​​of the prediction parameters may be represented by an n-bit fixed-point number representation, wherein n is equal to or lower than 14, or alternatively equal to or lower than 10, or alternatively equal to or lower than 8. This may be similar or as Figure 10 or Figure 11 Executed as described in .

[0591] For example, the prediction parameters include weights, each of which is associated with a corresponding matrix component of the prediction matrix 516.

[0592] For example, the prediction parameters further include one or more scaling factors, each of which is associated with one or more corresponding matrix components of the prediction matrix 516 for scaling the weights associated with the one or more corresponding matrix components of the prediction matrix 516; and / or one or more offsets, each of which is associated with one or more corresponding matrix components of the prediction matrix 516 for offsetting the weights associated with the one or more corresponding matrix components of the prediction matrix 516.

[0593] According to an embodiment, the device is configured to use interpolation when predicting samples of the predetermined block 18 based on the prediction vector 518 to calculate at least one sample position of the predetermined block 18 based on the prediction vector 518, each component of the prediction vector being associated with a corresponding position within the predetermined block 18.

[0594] Figure 14An apparatus 6000 is shown for encoding a predetermined block 18 of an image 10 using intra prediction, the apparatus being configured to signal a set-selective syntax element 522 in a data stream 12 indicating whether one of a first set 508 of intra prediction modes, including a DC intra prediction mode 506 and an angular prediction mode 500, was used to predict the predetermined block 18. If the set-selective syntax element 522 indicates that the predetermined block 18 was predicted using one of the first set 508 of intra prediction modes, the apparatus 6000 is configured to form a list 528 of most probable intra prediction modes based on the intra prediction modes used to predict neighboring blocks 524, 526 that are adjacent to the predetermined block 18; signal an MPM list index 534 in the data stream 12 that points to a predetermined intra prediction mode 3100 in the list 528 of most probable intra prediction modes; and intra-predict the predetermined block 18 using the predetermined intra prediction mode 3100. If the set-selective syntax element 522 indicates that a predetermined block 18 is not to be predicted using one of the first set 508 of intra-prediction modes, the apparatus 6000 is configured to signal a further index 540 in the data stream 12 indicating a predetermined matrix-based intra-prediction mode 3200 from the second set 520 of matrix-based intra-prediction modes 510 by calculating a matrix-vector product 512 between a vector 514 derived from a reference sample 17 in a neighborhood of the predetermined block 18 and a predetermined prediction matrix 516 associated with the predetermined matrix-based intra-prediction mode 3200 to obtain a prediction vector 518 and predicting samples of the predetermined block 18 based on the prediction vector 518.

[0595] A list 528 of most probable intra prediction modes is formed based on the intra prediction modes used to predict neighboring blocks 524, 526 adjacent to the predetermined block 18, such that the list of most probable intra prediction modes does not include the DC intra prediction mode 506 when at least one of the neighboring blocks 524, 526 is predicted by any one of the angular intra prediction modes 500.

[0596] For example, the first set of intra prediction modes 508 further includes the planar intra prediction mode 504 .

[0597] According to one embodiment, the apparatus 6000 may include a Figure 12 and / or Figure 13 Similarly, the apparatus 3000 may include the same features and / or functionality as described with respect to the apparatus 3000 in FIG. Figure 14 Similar features and / or functionality as described for device 6000 in FIG.

[0598] If the set-selective syntax element 522 indicates that the predetermined block 18 was predicted using one of the first set 508 of intra-prediction modes, the apparatus 6000 is configured, for example, to signal an MPM syntax element 532 in the data stream 12 indicating whether the predetermined intra-prediction mode 3100 in the first set 508 of intra-prediction modes is in the list 528 of most probable intra-prediction modes. If the MPM syntax element 532 indicates that the predetermined intra-prediction mode in the first set 508 of intra-prediction modes is in the list 528 of most probable intra-prediction modes, the apparatus 6000 is configured, for example, to perform formation of the list 528 of most probable intra-prediction modes based on the intra-prediction modes used to predict neighboring blocks 524, 526 that are adjacent to the predetermined block 18 and to perform signaling of an MPM list index 534 in the data stream 12 pointing to the predetermined intra-prediction mode 3100 in the list 528 of most probable intra-prediction modes. If the MPM syntax element 532 in the data stream 12 indicates that a predetermined intra-prediction mode 3100 from the first set 508 of intra-prediction modes is not in the list 528 of most probable intra-prediction modes, the device 6000 is, for example, configured to signal a further list index 536 in the data stream 12 indicating a predetermined intra-prediction mode 3100 from the first set 508 of intra-prediction modes.

[0599] If the set-selective syntax element 522 indicates that one of the first set 508 of intra-prediction modes will not be used to predict the predetermined block 18, the device 6000 is, for example, configured to signal a further MPM syntax element 538 in the data stream 12 indicating whether a predetermined block-based intra-prediction mode 3200 in the second set 520 of block-based intra-prediction modes is in the list 542 of most probable block-based intra-prediction modes (i.e., the second list of most probable block-based intra-prediction modes, e.g., the list 542 of most probable block-based intra-prediction modes in the second set 520 of block-based intra-prediction modes). If the further MPM syntax element 538 indicates that a predetermined block-based intra prediction mode 3200 from the second set 520 of block-based intra prediction modes is within the list 542 of most probable block-based intra prediction modes, the device 6000 is, for example, configured to form the list 542 of most probable block-based intra prediction modes based on the intra prediction mode 3050 used to predict the neighboring blocks 524, 526 adjacent to the predetermined block 18 and to signal the further MPM list index 540 in the data stream 12 pointing to the predetermined block-based intra prediction mode 3200 in the list 542 of most probable block-based intra prediction modes. If the further MPM syntax element 538 indicates that the predetermined block-based intra prediction mode 3200 from the second set 520 of block-based intra prediction modes is not in the list 542 of most probable block-based intra prediction modes, the device 6000 is, for example, configured to signal a further list index 546 in the data stream 12 indicating a predetermined block-based intra prediction mode 3200 from the second set 520 of block-based intra prediction modes.

[0600] According to one embodiment, the device 6000 is configured to perform the formation of a list of most probable intra-prediction modes, for example forming a list 528 of most probable intra-prediction modes in the first set 508 of intra-prediction modes based on the intra-prediction modes used to predict neighboring blocks 524, 526 adjacent to the predetermined block 18, so that the list 528 is populated with the DC intra-prediction mode 506 only in the following cases: for each of the neighboring blocks 524 and 526, the corresponding neighboring block predicted using any one of the at least one non-angular intra-prediction modes 504 and / or 506 within the first set 508 including the DC intra-prediction mode 506 or using any one of the block-based intra-prediction modes 510 (which is used for the formation of the list 528 of most probable intra-prediction modes by means of mapping from the second set 520 of block-based intra-prediction modes to the intra-prediction modes within the first set 508) is mapped to any one of the at least one non-angular intra-prediction modes 504 and / or 506.

[0601] According to an embodiment, the apparatus 6000 is configured to perform forming a list 528 of most probable intra prediction modes based on intra prediction modes used to predict neighboring blocks 524 and 526 adjacent to the predetermined block 18, such that for each of the neighboring blocks 524 and 526, if the corresponding neighboring block predicted using any one of the at least one non-angular intra prediction modes 504 and / or 506 within the first set 508 including the DC intra prediction mode 506 or using any one of the block-based intra prediction modes 510 (which is used for forming the list 528 of most probable intra prediction modes by means of mapping from the second set 520 of block-based intra prediction modes to the intra prediction modes within the first set 508) is mapped to any one of the at least one non-angular intra prediction mode 504 and / or 506, the DC intra prediction mode 506 is positioned before any angular intra prediction mode 500 in the list 528 of most probable intra prediction modes.

[0602] According to one embodiment, the device 6000 is configured to perform the formation of a list 528 of most likely intra-prediction modes based on the intra-prediction modes used to predict neighboring blocks 524, 526 adjacent to the predetermined block 18, so that the list 528 is filled with the plane intra-prediction mode 504 in a manner independent of the intra-prediction mode used to predict the neighboring blocks 524, 526.

[0603] According to one embodiment, the device 6000 is configured to perform the formation of a list 528 of most probable intra-prediction modes based on the intra-prediction modes used to predict neighboring blocks 524 and 526 adjacent to the predetermined block 18, so that the plane intra-prediction mode 504 is positioned at the first position in the list 528 of most probable intra-prediction modes independently of the intra-prediction modes used to predict the neighboring blocks 524 and 526.

[0604] Figure 15A block diagram shows a method 4000 for decoding 18 a predetermined block of an image using intra prediction, the method comprising deriving from a data stream a set-selective syntax element indicating whether to predict the predetermined block using one of a first set of intra prediction modes, including a DC intra prediction mode and an angular prediction mode (4100). If the set-selective syntax element indicates to predict the predetermined block using one of the first set of intra prediction modes (4150), the method 4000 comprises forming a list of most probable intra prediction modes based on intra prediction modes used to predict neighboring blocks adjacent to the predetermined block (4200), deriving from the data stream an MPM list index pointing to a predetermined intra prediction mode in the list of most probable intra prediction modes (4300), and intra predicting the predetermined block using the predetermined intra prediction mode (4400). If the set-selective syntax element indicates that one of the first set of intra prediction modes is not to be used to predict the predetermined block (4155), the method 4000 includes deriving from the data stream an additional index (4250) indicating a predetermined matrix-based intra prediction mode from a second set of matrix-based intra prediction modes by computing a matrix-vector product between a vector derived from reference samples in a neighborhood of the predetermined block and a predetermined prediction matrix associated with the predetermined matrix-based intra prediction mode to obtain a prediction vector (4350) and predicting samples of the predetermined block based on the prediction vector (4450). Forming a list of most probable intra prediction modes (4200) based on intra prediction modes used to predict neighboring blocks adjacent to the predetermined block, such that the list of most probable intra prediction modes does not include a DC intra prediction mode if at least one of the neighboring blocks is predicted by any of the angular intra prediction modes.

[0605] Figure 16A block diagram shows a method 5000 for encoding a predetermined block of an image using intra prediction, the method comprising signaling in a data stream a set-selective syntax element indicating whether to use one of a first set of intra prediction modes, including a DC intra prediction mode and an angular prediction mode, to predict the predetermined block (5100). If the set-selective syntax element indicates to use one of the first set of intra prediction modes to predict the predetermined block (5150), the method 5000 comprises forming a list of most probable intra prediction modes based on intra prediction modes used to predict neighboring blocks adjacent to the predetermined block (5200), signaling in the data stream an MPM list index pointing to a predetermined intra prediction mode in the list of most probable intra prediction modes (5300), and intra predicting the predetermined block using the predetermined intra prediction mode (5400). If the set-selective syntax element indicates that one of the first set of intra prediction modes is not to be used to predict the predetermined block (5155), the method 5000 includes signaling in the data stream an additional index (5250) indicating a predetermined matrix-based intra prediction mode from the second set of matrix-based intra prediction modes by computing a matrix-vector product between a vector derived from reference samples in a neighborhood of the predetermined block and a predetermined prediction matrix associated with the predetermined matrix-based intra prediction mode to obtain a prediction vector (5350) and predicting samples of the predetermined block based on the prediction vector (5450). A list of most probable intra prediction modes is formed (5200) based on intra prediction modes used to predict neighboring blocks adjacent to the predetermined block, such that the list of most probable intra prediction modes does not contain a DC intra prediction mode if at least one of the neighboring blocks is predicted by any of the angular intra prediction modes.

[0606] References

[0607] [1]P.Helle et al., "Non-linear weighted intra prediction", JVET-L0199, Macao, China, October 2018.

[0608] [2] F.Bossen, J.Boyce, K.Suehring, X.Li, V.Seregin, "JVET common testconditions and software reference configurations for SDR video", JVET-K1010, Ljubljana, SI, July 2018.

[0609] Further embodiments and examples

[0610] Generally, the examples can be implemented as a computer program product having program instructions, which, when the computer program product runs on a computer, are operative for performing one of the methods described. The program instructions may, for example, be stored on a machine-readable medium.

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

[0612] In other words, an example of the method is, therefore, a computer program having program instructions for performing one of the methods described herein, when the computer program runs on a computer.

[0613] Another example of a method is therefore a data carrier medium (or digital storage medium or computer-readable medium) comprising or having recorded thereon a computer program for performing one of the methods described herein. A data carrier medium, digital storage medium or recorded medium is tangible and / or non-transitory, rather than an intangible and transitory signal.

[0614] A further example of a method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein.The data stream or the sequence of signals can be transmitted, for example, via a data communication connection, for example via the Internet.

[0615] Another example comprises a processing means, for example a computer or a programmable logic device, which performs one of the methods described herein.

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

[0617] Another example includes an apparatus or system for transferring (for example, electronically or optically) a computer program for performing one of the methods described herein to a receiver. For example, the receiver may be a computer, a mobile device, a storage device, etc. The apparatus or system may, for example, include a file server for transferring the computer program to the receiver.

[0618] In some examples, a programmable logic device (e.g., a field programmable gate array) can be used to perform some or all of the functionality of the methods described herein. In some examples, a field programmable gate array can cooperate with a microprocessor to perform one of the methods described herein. Generally, the methods can be performed by any suitable hardware device.

[0619] The above examples are merely illustrative of the principles discussed above. It should be understood that modifications and variations of the configurations and details described herein will be readily apparent. Accordingly, it is intended that the scope of the appended claims be limited rather than by the specific details presented by way of description and explanation of the examples herein.

[0620] Even if the same or equivalent components or components having the same or equivalent functionality appear in different drawings, the one or more components are denoted by the same or equivalent reference numerals in the following description.

Claims

1. An apparatus (3000) for decoding a predetermined block (18) of an image (10) using intra prediction, the apparatus comprising a processor configured to A set-selective syntax element (522) is derived from a data stream (12), the set-selective syntax element indicating whether the predetermined block (18) is to be predicted using an intra-prediction mode from a first set (508) of intra-prediction modes including a DC intra-prediction mode (506) and an angular intra-prediction mode (500), wherein The predetermined block is a brightness block; If the set-selective syntax element (522) indicates that the predetermined block (18) is to be predicted using one of the first set (508) of intra-prediction modes, then forming a list (528) of most probable intra prediction modes using the intra prediction modes (3050) of neighboring blocks (524, 526) that predicted the predetermined block (18), wherein the list does not include a DC intra prediction mode (506) when one of the neighboring blocks (524, 526) is predicted by any of the angular intra prediction modes (500) and the other of the neighboring blocks (526, 524) is predicted by a non-angular intra prediction mode; deriving a most probable mode (MPM) list index (534) from the data stream (12), the MPM list index pointing to a predetermined intra-prediction mode (3100) in the list (528) of most probable intra-prediction modes, performing intra-prediction on the predetermined block (18) using the predetermined intra-prediction mode (3100), If the set-selective syntax element (522) indicates that one of the first set (508) of intra-prediction modes is not to be used to predict the predetermined block (18), then A further index (540; 546) is derived from the data stream (12), the further index indicating a predetermined matrix-based intra-prediction mode (3200) from a second set (520) of matrix-based intra-prediction modes (510): computing a matrix-vector product (512) between a vector (514, 400, 402) derived from a reference sample (17) in a neighborhood of the predetermined block (18) and a predetermined prediction matrix (516) associated with the predetermined matrix-based intra prediction mode (3200) to obtain a prediction vector (518), and Samples of the predetermined block (18) are predicted using the prediction vector (518).

2. The apparatus (3000) according to claim 1, configured to: If the set-selective syntax element (522) indicates that the predetermined block (18) is to be predicted using one of the first set (508) of intra-prediction modes, then deriving an MPM syntax element (532) from the data stream (12), the MPM syntax element indicating whether the predetermined intra-prediction mode (3100) in the first set (508) of intra-prediction modes is within the list (528) of most probable intra-prediction modes, If the MPM syntax element (532) indicates that the predetermined intra prediction mode (3100) of the first set (508) of intra prediction modes is within the list (528) of most probable intra prediction modes, forming the list (528) of most probable intra prediction modes including intra prediction modes (3050) of neighboring blocks (524, 526) used to predict the predetermined block (18) is performed, deriving the MPM list index (534) from the data stream (12), the MPM list index pointing from the list of most probable intra prediction modes (528) to the predetermined intra prediction mode (3100), if the MPM syntax element (532) from the data stream (12) indicates that the predetermined intra prediction mode (3100) in the first set (508) of intra prediction modes is not in the list (528) of most probable intra prediction modes, then A further list index (536) is derived from the data stream (12), the further list index indicating the predetermined intra-prediction mode (3100) from the first set (508) of intra-prediction modes.

3. The apparatus (3000) according to claim 1, configured to: If the set-selective syntax element (522) indicates that one of the first set (508) of intra-prediction modes is not to be used to predict the predetermined block (18), then deriving a further MPM syntax element (538) from the data stream (12), the further MPM syntax element indicating whether the predetermined block-based intra prediction mode (3200) of the second set (520) of block-based intra prediction modes (510) is within a list (542) of most probable block-based intra prediction modes (510), If the further MPM syntax element (538) indicates that the predetermined block-based intra prediction mode (3200) of the second set (520) of block-based intra prediction modes (510) is within the list (542) of most probable block-based intra prediction modes (510), then forming a list (542) of the most probable block-based intra-prediction modes (510) comprising intra-prediction modes (3050) used to predict neighboring blocks (524, 526) of the predetermined block (18), deriving a further MPM list index (540) from the data stream (12), the further MPM list index pointing to the predetermined block-based intra prediction mode (3200) in the list (542) of most probable block-based intra prediction modes (510), If the further MPM syntax element (538) indicates that the predetermined block-based intra prediction mode (3200) of the second set (520) of block-based intra prediction modes (510) is not in the list (542) of most probable block-based intra prediction modes (510), then A further list index (546) is derived from the data stream (12), the further list index indicating the predetermined block-based intra prediction mode (3200) from the second set (520) of block-based intra prediction modes (510).

4. The apparatus (3000) according to claim 1, configured to perform said forming of said list (528) of most probable intra prediction modes (3050) used to predict neighboring blocks (524, 526) of said predetermined block (18), such that The list (528) is populated with the DC intra prediction mode (506) only if, for each of the neighboring blocks (524, 526), ​​the corresponding neighboring block was predicted using any one of the at least one non-angular intra prediction modes (504, 506) within the first set (508) including the DC intra prediction mode (506), or if the corresponding neighboring block was predicted using any one of the block-based intra prediction modes (510), the block-based intra prediction mode (510) being mapped to any one of the at least one non-angular intra prediction modes (504, 506) by mapping from a second set (520) of the block-based intra prediction modes (510) to an intra prediction mode within the first set (508) used to form the list (528) of the most probable intra prediction modes.

5. The apparatus (3000) according to claim 1, configured to perform said forming of said list (528) of most probable intra prediction modes (3050) comprising intra prediction modes (524, 526) of neighboring blocks (524, 526) used to predict said predetermined block (18) such that, in the following case, said case is that for each of said neighboring blocks (524, 526), ​​at least one non-angular intra prediction mode (504, 506) of a first set (508) including said DC intra prediction mode (506) is used. 06), or the corresponding neighboring block predicted using any one of the block-based intra prediction modes (510), the block-based intra prediction mode being mapped to any one of the at least one non-angular intra prediction modes (504, 506) by means of mapping from a second set (520) of the block-based intra prediction modes (510) to intra prediction modes within the first set (508) used to form the list (528) of most probable intra prediction modes, The DC intra prediction mode (506) is positioned before any angular intra prediction mode (500) in the list (528) of most probable intra prediction modes.

6. The apparatus (3000) of claim 1, wherein the first set (508) of intra prediction modes further comprises a planar intra prediction mode (504).

7. The apparatus (3000) according to claim 6, configured to perform said forming of said list (528) of most probable intra prediction modes (3050) used to predict neighboring blocks (524, 526) of said predetermined block (18), such that The list (528) is populated with the plane intra-prediction mode (504) in a manner independent of the intra-prediction mode used to predict the neighboring block (524, 526).

8. The apparatus (3000) according to claim 7, configured to perform said forming of said list (528) of most probable intra prediction modes (3050) used to predict neighboring blocks (524, 526) of said predetermined block (18), such that Independent of the intra prediction mode used to predict the neighboring blocks (524, 526), ​​the plane intra prediction mode (504) is positioned first in the list (528) of most probable intra prediction modes.

9. The apparatus (3000) according to claim 1, configured to: forming a sample value vector (400) from a plurality of reference samples (17), The vector (514) is derived from the sample value vector (400) such that the sample value vector (400) is mapped onto the vector (514) by a predetermined reversible linear transformation (403).

10. The apparatus (3000) according to claim 9, wherein the reversible linear transformation (403) is defined so that a predetermined component of the further vector (514, 402) becomes a, and Each of the other components of the further vector (514, 402), other than the predetermined component, is equal to the corresponding component of the sample value vector (400) minus a, Where a is a predetermined value.

11. The apparatus (3000) according to claim 10, wherein the predetermined value is one of: an average value of the components of the sample value vector (400), such as an arithmetic mean or a weighted mean, default value, a value signaled in a data stream (12) in which said image (10) is encoded, and Components of the sample value vector (400) corresponding to the predetermined components.

12. The apparatus (3000) according to claim 9, wherein the reversible linear transformation (403) is defined so that a predetermined component of the further vector (514, 402) becomes a, and Each of the other components of the further vector (514, 402), other than the predetermined component, is equal to the corresponding component of the sample value vector (400) minus a, Wherein a is the arithmetic mean of the components of the sample value vector (400).

13. The apparatus (3000) according to claim 9, wherein the reversible linear transformation (403) is defined so that a predetermined component of the further vector (514, 402) becomes a, and Each of the other components of the further vector (514, 402), other than the predetermined component, is equal to the corresponding component of the sample value vector (400) minus a, wherein a is the component of the sample value vector (400) corresponding to the predetermined component, wherein the apparatus (3000) is configured to comprising a plurality of reversible linear transformations (403), each of which is associated with a component of said further vector (514, 402), selecting said predetermined component from said components of said sample value vector (400), and A reversible linear transform (403) associated with the predetermined component from among the plurality of reversible linear transforms (403) is used as the predetermined reversible linear transform (403).

14. The apparatus (3000) of claim 10, wherein matrix components of the prediction matrix (516) within columns of the prediction matrix (516) corresponding to the predetermined components of the further vector (514, 402) are all zero, and the apparatus (3000) is configured to: The multiplication is performed by computing a matrix-vector product (512) between the reduced prediction matrix generated from the prediction matrix (516) by discarding the columns and a further vector generated from the further vector (514, 402) by discarding the predetermined components.

15. The apparatus (3000) according to claim 10, configured to, when predicting the samples of the predetermined block using the prediction vector (518), For each component of the prediction vector (518), the sum of the corresponding component and a is calculated.

16. An apparatus (3000) according to claim 10, wherein a matrix resulting from summing each matrix component of the prediction matrix (516) within a column in the prediction matrix (516) corresponding to the predetermined component of the further vector (514, 402) with one, i.e., a matrix B, is multiplied by the reversible linear transformation (403), corresponding to a quantized version of the machine learning prediction matrix.

17. The apparatus (3000) according to claim 9, configured to: The sample value vector (400) is formed (100) from a plurality of reference samples (17) by performing the following operation for each component of the sample value vector (400): using one of the plurality of reference samples (17) as a corresponding component of the sample value vector (400), and / or Two or more components of the sample value vector (400) are averaged to obtain the corresponding component of the sample value vector (400).

18. The apparatus (3000) according to claim 1, wherein a plurality of reference samples (17) are arranged along an outer edge of the predetermined block (18) within the image (10).

19. The apparatus (3000) of claim 1, configured to compute the matrix-vector product (512) using fixed-point arithmetic operations.

20. The apparatus (3000) of claim 1, configured to compute the matrix-vector product (512) without performing floating-point arithmetic operations.

21. The apparatus (3000) according to any one of claims 1 to 20, configured to store a fixed-point representation of the prediction matrix (516).

22. The apparatus (3000) according to claim 10, being configured to represent the prediction matrix (516) using prediction parameters and to calculate the matrix-vector product (512) by performing multiplications and summations on the components of the further vector (514, 402) and the prediction parameters and intermediate results generated therefrom, wherein the absolute values ​​of the prediction parameters are representable by an n-bit fixed-point number representation, wherein n is equal to or lower than 14, or alternatively equal to or lower than 10, or alternatively equal to or lower than 8.

23. The apparatus (3000) of claim 22, wherein the prediction parameters include Weights, each of which is associated with a corresponding matrix component of the prediction matrix (516).

24. The apparatus (3000) of claim 23, wherein the prediction parameters further comprise one or more scaling factors, each of which is associated with one or more corresponding matrix components of the prediction matrix (516) for scaling weights associated with the one or more corresponding matrix components of the prediction matrix (516), and / or One or more offsets are each associated with one or more corresponding matrix components of the prediction matrix (516) for offsetting weights associated with the one or more corresponding matrix components of the prediction matrix (516).

25. The apparatus (3000) according to claim 1, configured to, when predicting the samples of the predetermined block (18) using the prediction vector (518), Interpolation is used to calculate at least one sample position of the predetermined block (18) based on the prediction vector (518), each component of the prediction vector (518) being associated with a corresponding position within the predetermined block (18).

26. An apparatus (6000) for encoding a predetermined block (18) of an image (10) using intra prediction, the apparatus comprising a processor configured to signaling a set-selective syntax element (522) in a data stream (12) indicating whether the predetermined block (18) is to be predicted using an intra-prediction mode from a first set (508) of intra-prediction modes including a DC intra-prediction mode (506) and an angular intra-prediction mode (500), wherein The predetermined block is a brightness block; If the set-selective syntax element (522) indicates that the predetermined block (18) is to be predicted using one of the first set (508) of intra-prediction modes, then forming a list (528) of most probable intra prediction modes including intra prediction modes (3050) used to predict neighboring blocks (524, 526) of the predetermined block (18), wherein the list does not include a DC intra prediction mode (506) when one of the neighboring blocks (524, 526) is predicted by any of the angular intra prediction modes (500) and the other of the neighboring blocks (526, 524) is predicted by a non-angular intra prediction mode; signaling a most probable mode (MPM) list index (534) in the data stream (12), the MPM list index pointing to a predetermined intra prediction mode (3100) in the list (528) of most probable intra prediction modes, performing intra-prediction on the predetermined block (18) using the predetermined intra-prediction mode (3100), If the set-selective syntax element (522) indicates that one of the first set (508) of intra-prediction modes is not to be used to predict the predetermined block (18), then signaling a further index (540; 546) in the data stream (12), the further index indicating a predetermined matrix-based intra-prediction mode (3200) from a second set (520) of matrix-based intra-prediction modes (510) computing a matrix-vector product (512) between a vector (514, 400, 402) derived from a reference sample (17) in a neighborhood of the predetermined block (18) and a predetermined prediction matrix (516) associated with the predetermined matrix-based intra prediction mode (3200) to obtain a prediction vector (518), and Samples of the predetermined block (18) are predicted using the prediction vector (518).

27. The apparatus (6000) according to claim 26, configured to: If the set-selective syntax element (522) indicates that the predetermined block (18) is to be predicted using one of the first set (508) of intra-prediction modes, then signaling an MPM syntax element (532) in the data stream (12), the MPM syntax element indicating whether the predetermined intra-prediction mode (3100) in the first set (508) of intra-prediction modes is within the list (528) of most probable intra-prediction modes, If the MPM syntax element (532) indicates that the predetermined intra prediction mode (3100) in the first set (508) of intra prediction modes is within the list (528) of most probable intra prediction modes, forming the list (528) of most probable intra prediction modes including intra prediction modes (3050) of neighboring blocks (524, 526) used to predict the predetermined block (18) is performed, signaling the MPM list index (534) in the data stream (12), the MPM list index pointing from the list of most probable intra prediction modes (528) to the predetermined intra prediction mode (3100), If the MPM syntax element (532) in the data stream (12) indicates that the predetermined intra-prediction mode (3100) in the first set (508) of intra-prediction modes is not in the list (528) of most probable intra-prediction modes, then A further list index (536) is signaled in the data stream (12), the further list index indicating the predetermined intra-prediction mode (3100) from the first set (508) of intra-prediction modes.

28. The apparatus (6000) according to claim 26, configured to: If the set-selective syntax element (522) indicates that one of the first set (508) of intra-prediction modes is not to be used to predict the predetermined block (18), then signaling in the data stream (12) a further MPM syntax element (538), the further MPM syntax element indicating whether a predetermined block-based intra prediction mode (3200) of the second set (520) of block-based intra prediction modes (510) is within a list (542) of most probable block-based intra prediction modes (510), If the further MPM syntax element (538) indicates that the predetermined block-based intra prediction mode (3200) of the second set (520) of block-based intra prediction modes (510) is within the list (542) of most probable block-based intra prediction modes (510), then forming a list (542) of the most probable block-based intra-prediction modes (510) comprising intra-prediction modes (3050) used to predict neighboring blocks (524, 526) of the predetermined block (18), signaling a further MPM list index (540) in the data stream (12), the further MPM list index pointing to the predetermined block-based intra prediction mode (3200) in the list (542) of most probable block-based intra prediction modes (510), If the further MPM syntax element (538) indicates that the predetermined block-based intra prediction mode (3200) of the second set (520) of block-based intra prediction modes (510) is not in the list (542) of most probable block-based intra prediction modes (510), then A further list index (546) is signaled in the data stream (12), the further list index indicating the predetermined block-based intra prediction mode (3200) from the second set (520) of block-based intra prediction modes (510).

29. The apparatus (6000) of claim 26, configured to perform said forming of said list (528) of most probable intra prediction modes (3050) used to predict neighboring blocks (524, 526) of said predetermined block (18), such that The list (528) is populated with the DC intra prediction mode (506) only if, for each of the neighboring blocks (524, 526), ​​the corresponding neighboring block was predicted using any one of at least one non-angular intra prediction mode (504, 506) within a first set (508) including the DC intra prediction mode (506), or if the corresponding neighboring block was predicted using any one of block-based intra prediction modes (510), the block-based intra prediction mode being mapped to any one of the at least one non-angular intra prediction modes (504, 506) by mapping from a second set (520) of block-based intra prediction modes (510) to an intra prediction mode within the first set (508) used to form the list (528) of most probable intra prediction modes.

30. The apparatus (6000) according to claim 26, configured to perform said forming of said list (528) of most probable intra prediction modes (3050) of said neighboring blocks (524, 526) for predicting said predetermined block (18) such that, in the following case, said case is that for each of said neighboring blocks (524, 526), ​​at least one non-angular intra prediction mode (504, 506), or the corresponding neighboring block predicted using any one of the block-based intra prediction modes (510), said block-based intra prediction mode being mapped to any one of said at least one non-angular intra prediction modes (504, 506) by means of mapping from a second set (520) of said block-based intra prediction modes (510) to intra prediction modes within said first set (508) used to form said list (528) of most probable intra prediction modes, The DC intra prediction mode (506) is positioned before any angular intra prediction mode (500) in the list (528) of most probable intra prediction modes.

31. The apparatus (6000) of claim 26, wherein the first set (508) of intra prediction modes further comprises a planar intra prediction mode (504).

32. The apparatus (6000) according to claim 26, configured to perform said forming of said list (528) of most probable intra prediction modes (3050) used to predict neighboring blocks (524, 526) of said predetermined block (18), such that The list (528) is populated with plane intra-prediction modes (504) in a manner independent of the intra-prediction mode used to predict the neighboring blocks (524, 526).

33. The apparatus (6000) according to claim 32, configured to perform said forming of said list (528) of most probable intra prediction modes (3050) used to predict neighboring blocks (524, 526) of said predetermined block (18), such that The plane intra prediction mode (504) is positioned first in the list (528) of most probable intra prediction modes, independent of the intra prediction mode used to predict the neighboring blocks (524, 526).

34. The apparatus (6000) according to claim 26, configured to: forming a sample value vector (400) from a plurality of reference samples (17), The vector (514) is derived from the sample value vector (400) such that the sample value vector (400) is mapped to the vector (514) by a predetermined reversible linear transformation (403).

35. The apparatus (6000) according to claim 34, wherein the reversible linear transformation (403) is defined so that a predetermined component of the further vector (514, 402) becomes a, and Each of the other components of the further vector (514, 402), other than the predetermined component, is equal to the corresponding component of the sample value vector (400) minus a, Wherein a is a predetermined value.

36. The apparatus (6000) of claim 35, wherein the predetermined value is one of: an average value of the components of the sample value vector (400), such as an arithmetic mean or a weighted mean, default value, a value signaled in a data stream (12) in which said image (10) is encoded, and The components of the sample value vector (400) corresponding to the predetermined components.

37. The apparatus (6000) according to claim 34, wherein the reversible linear transformation (403) is defined so that a predetermined component of the further vector (514, 402) becomes a, and Each of the other components of the further vector (514, 402), other than the predetermined component, is equal to the corresponding component of the sample value vector (400) minus a, Wherein a is the arithmetic mean of the components of the sample value vector (400).

38. The apparatus (6000) according to claim 34, wherein the reversible linear transformation (403) is defined so that a predetermined component of the further vector (514, 402) becomes a, and Each of the other components of the further vector (514, 402), other than the predetermined component, is equal to the corresponding component of the sample value vector (400) minus a, wherein a is the component of the sample value vector (400) corresponding to the predetermined component, The device (6000) is configured to: comprising a plurality of reversible linear transformations (403), each of which is associated with a component of said further vector (514, 402), selecting said predetermined component from said components of said sample value vector (400), and A reversible linear transform (403) associated with the predetermined component from among the plurality of reversible linear transforms (403) is used as the predetermined reversible linear transform (403).

39. The apparatus (6000) of claim 35, wherein matrix components of the prediction matrix (516) within a column of the prediction matrix (516) corresponding to the predetermined component of the further vector (514, 402) are all zero, and the apparatus (6000) is configured to: The multiplication is performed by computing a matrix-vector product (512) between the reduced prediction matrix generated from the prediction matrix (516) by discarding the columns and a further vector generated from the further vector (514, 402) by discarding the predetermined components.

40. The apparatus (6000) according to claim 35, configured to, when predicting the samples of the predetermined block (18) using the prediction vector (518), For each component of the prediction vector (518), the sum of the corresponding component and a is calculated.

41. An apparatus (6000) according to claim 35, wherein a matrix resulting from summing each matrix component of the prediction matrix (516) within a column in the prediction matrix (516) corresponding to the predetermined component of the further vector (514, 402) with one, i.e., matrix B, is multiplied by the reversible linear transformation (403), corresponding to a quantized version of the machine learning prediction matrix.

42. The apparatus (6000) according to claim 34, configured to: forming (100) the sample value vector (400) from the plurality of reference samples (17) by performing the following operation for each component of the sample value vector (400), using one of the plurality of reference samples (17) as a corresponding component of the sample value vector (400), and / or Two or more components of the sample value vector (400) are averaged to obtain corresponding components of the sample value vector (400).

43. The apparatus (6000) according to claim 26, wherein a plurality of reference samples (17) are arranged along an outer edge of the predetermined block (18) within the image (10).

44. The apparatus (6000) of claim 26, configured to compute the matrix-vector product (512) using fixed-point arithmetic operations.

45. The apparatus (6000) of claim 26, configured to compute the matrix-vector product (512) without performing floating-point arithmetic operations.

46. ​​The apparatus (6000) of claim 26, configured to store a fixed-point representation of the prediction matrix (516).

47. The apparatus (6000) of claim 26, configured to represent the prediction matrix (516) using prediction parameters, and to compute the matrix-vector product (512) by performing multiplications and sums on components of a further vector (514, 402) and the prediction parameters and intermediate results generated therefrom, wherein the absolute values ​​of the prediction parameters are representable by an n-bit fixed-point number representation, wherein n is equal to or lower than 14, or alternatively equal to or lower than 10, or alternatively equal to or lower than 8.

48. The apparatus (6000) of claim 47, wherein the prediction parameters include Weights, each of which is associated with a corresponding matrix component of the prediction matrix (516).

49. The apparatus (6000) of claim 48, wherein the prediction parameters further comprise: one or more scaling factors, each of which is associated with one or more corresponding matrix components of the prediction matrix (516) for scaling weights associated with the one or more corresponding matrix components of the prediction matrix (516), and / or One or more offsets are each associated with one or more corresponding matrix components of the prediction matrix (516) for offsetting weights associated with the one or more corresponding matrix components of the prediction matrix (516).

50. The apparatus (6000) according to claim 26, configured to, when predicting the samples of the predetermined block (18) using the prediction vector (518), Interpolation is used to calculate at least one sample position of the predetermined block (18) based on the prediction vector (518), each component of the prediction vector (518) being associated with a corresponding position within the predetermined block (18).

51. A method (4000) for decoding a predetermined block (18) of an image using intra prediction, comprising: deriving (4100) a set-selective syntax element from a data stream, the set-selective syntax element indicating whether the predetermined block is to be predicted using an intra-prediction mode from a first set (508) of intra-prediction modes including a DC intra-prediction mode (506) and an angular intra-prediction mode (500), wherein the predetermined block is a luma block; If the set-selective syntax element (522) indicates (4150) that the predetermined block is to be predicted using one of the first set of intra-prediction modes, then forming (4200) a list (528) of most probable intra prediction modes including intra prediction modes used to predict neighboring blocks (524, 526) of the predetermined block, wherein the list does not include the DC intra prediction mode (506) when one of the neighboring blocks (524, 526) is predicted by any of the angular intra prediction modes (500) and the other of the neighboring blocks (526, 524) is predicted by a non-angular intra prediction mode; deriving (4300) a most probable mode MPM list index (534) from the data stream, the MPM list index pointing to a predetermined intra prediction mode in the list of most probable intra prediction modes, performing intra prediction on the predetermined block using the predetermined intra prediction mode (4400), If the set-selective syntax element indicates (4155) that one of the first set of intra-prediction modes is not to be used to predict the predetermined block, then A further index (540; 546) is derived (4250) from the data stream, the further index indicating a predetermined matrix-based intra-prediction mode from a second set (520) of matrix-based intra-prediction modes (510): calculating (4350) a matrix-vector product (512) between a vector (514) derived from reference samples (17) in a neighborhood of the predetermined block and a predetermined prediction matrix (516) associated with the predetermined matrix-based intra prediction mode to obtain a prediction vector (518), and Samples of the predetermined block are predicted (4450) based on the prediction vector.

52. A method (5000) for encoding a predetermined block (18) of an image using intra prediction, comprising: signaling (5100) in a data stream a set-selective syntax element indicating whether the predetermined block is to be predicted using an intra-prediction mode from a first set (508) of intra-prediction modes including a DC intra-prediction mode (506) and an angular intra-prediction mode (500), wherein the predetermined block is a luma block; If the set-selective syntax element (522) indicates (5150) that the predetermined block is to be predicted using one of the first set of intra-prediction modes, then forming (5200) a list (528) of most probable intra prediction modes including intra prediction modes used to predict neighboring blocks (524, 526) of the predetermined block, wherein the list does not include a DC intra prediction mode (506) when one of the neighboring blocks (524, 526) is predicted by any one of the angular intra prediction modes (500) and the other of the neighboring blocks (526, 524) is predicted by a non-angular intra prediction mode; signaling (5300) a most probable mode (MPM) list index (534) in the data stream, the MPM list index pointing to a predetermined intra-prediction mode in the list of most probable intra-prediction modes, performing intra prediction on the predetermined block using the predetermined intra prediction mode (5400), If the set-selective syntax element indicates (5155) that one of the first set of intra-prediction modes is not to be used to predict the predetermined block, then signaling (5250) in the data stream a further index (540; 546) indicating a predetermined matrix-based intra-prediction mode from a second set (520) of matrix-based intra-prediction modes (510) computing (5350) a matrix-vector product (512) between a vector (514) derived from reference samples (17) in a neighborhood of the predetermined block and a predetermined prediction matrix (516) associated with the predetermined matrix-based intra prediction mode to obtain a prediction vector (518), and Samples of the predetermined block are predicted (5450) using the prediction vector.

53. A computer program product having a program code for executing the method according to any one of claims 51 or 52 when the program code is run on a computer.

Citation Information

Patent Citations

  • Intra prediction and intra mode coding

    CN107750455A

  • Improved video intra-prediction using position-dependent prediction combination for video coding

    CN108141608A