Cross-component prediction in inter pictures
By storing and updating cross-component codec mode models in a buffer, the inefficiency of existing tools is addressed, achieving more efficient video encoding performance.
Patent Information
- Application Number
- CN202480010597.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-26
- Filing Date
- 2024-03-18
- Publication Date
- 2025-09-12
AI Technical Summary
Existing cross-component intra prediction tools are inefficient in video coding, especially non-neighborhood and history-based cross-component codec tools whose models are not updated in a timely manner, resulting in poor correlation with the signal characteristics of the current block.
By storing the cross-component coding mode model associated with the reconstructed block in a buffer, selecting an appropriate model from a list of neighboring blocks or candidate regions for update, and applying it to the cross-component coding of the current block, motion information and historical models are used for model inheritance and selection.
Improves the efficiency of cross-component codec tools, ensures that the model is better correlated with the signal characteristics of the current block, and improves the compression performance of video encoding.
Smart Images

Figure CN120642328A_ABST
Abstract
Description
1. Cross-reference to related applications
[0001] This application claims priority to European application No. 23305388.3 filed on March 22, 2023, the entire contents of which are incorporated herein by reference, and this application claims priority to European application No. 23306017.7 filed on June 26, 2023, the entire contents of which are incorporated herein by reference. 2. Technical Field
[0002] At least one embodiment of the present invention is generally directed to a method and apparatus for applying history-based cross-component intra prediction. 3. Background Technology
[0003] To achieve high compression efficiency, video coding schemes typically employ prediction and transforms to exploit spatial and temporal redundancies in video content. During encoding, a frame of video content is divided into blocks of samples (i.e., pixels), which are then partitioned into one or more sub-blocks, hereinafter referred to as original sub-blocks. Intra-frame or inter-frame prediction is then applied to each sub-block to exploit intra-frame or inter-frame image correlations. Regardless of the prediction method used (intra-frame or inter-frame), a predicted sub-block is determined for each original sub-block. A sub-block representing the difference between the original sub-block and the predicted sub-block (typically denoted as a prediction error sub-block, a prediction residual sub-block, or simply a residual sub-block) is then transformed, quantized, and entropy coded to generate an encoded video stream. To reconstruct the video, the compressed data is decoded through the inverse processes corresponding to transform, quantization, and entropy coding.
[0004] Intra-frame prediction has recently been improved to better benefit from correlations between block components. New tools have been proposed for cross-component intra prediction, where a model is used to predict the chrominance samples of a block from the reconstructed luma samples of the block. Some of these cross-component (CC) codecs (or CC codec modes) use models of blocks previously coded using the CC codec. These CC codecs (referred to as non-neighboring CC prediction (NA-CCP) or history-based CC prediction (H-CCP), the models of the CC codec applied to a block) are saved for future use. When a CC codec is used to encode a current block, its parameters are selected from a set of previously stored CC codec models. The index of the selected model is then signaled for the current block. However, most blocks in inter slices are coded in inter mode. Therefore, the stored CC codec models are rarely updated. Consequently, the stored CC codec models may not correlate well with the signal characteristics of the current block. This can compromise the efficiency of NA-CCP or H-CCP.
[0005] It is desirable to propose a solution that allows overcoming the above problems. In particular, it is desirable to propose a solution that improves NN-CCP and H-CCP. 4. Summary of the Invention
[0006] In a first aspect, one or more embodiments of the present invention provide a method comprising: obtaining a first block to be reconstructed using a cross-component codec mode, wherein a model of the cross-component codec mode to be applied to reconstruct the first block is obtained from a model of the cross-component codec mode associated with a reconstructed second block, wherein the second block is reconstructed using a mode different from the cross-component codec mode.
[0007] In a second aspect, one or more embodiments of the present invention provide a method comprising: applying a cross-component codec mode to a first block, obtaining a model of the cross-component codec mode to be applied to the first block from a model of the cross-component codec mode associated with a second block encoded before the first block, wherein the second block is encoded using a mode different from the cross-component codec mode.
[0008] According to embodiments of the first and second aspects, the model of the cross-component coding mode associated with the reconstructed second block is stored in at least one unit of the first buffer corresponding to the second block, and the first buffer stores encoding parameters of blocks of the current picture including the first block and the second block.
[0009] According to an embodiment of the first and second aspects, a unit in at least one unit inherits a model of the cross-component coding mode associated with the reconstructed second block from another unit corresponding to a reference block of a reference picture specified by motion information of the second block, the other unit being contained in a second buffer storing coding parameters of the block of the reference picture.
[0010] According to embodiments of the first and second aspects, a unit in at least one unit inherits a model of the cross-component codec mode associated with the reconstructed second block from another unit based on a value representing a quality of the model of the cross-component codec mode inherited by the first block from the second block.
[0011] According to the embodiments of the first and second aspects, a model of the cross-component codec mode to be applied to the first block is selected from a table storing the model of the cross-component codec mode of the last reconstructed block, the model of the cross-component codec mode being available for the last reconstructed block, and the table is updated after the block for which the model of the cross-component codec mode is available is reconstructed.
[0012] According to embodiments of the first and second aspects, a model of the cross-component codec mode to be applied to the first block is selected from models of the cross-component codec mode of a candidate region list or a candidate block list, and the regions of the candidate region list and the blocks of the candidate block list are in the neighborhood of the first block.
[0013] According to embodiments of the first and second aspects, a model of the cross-component coding mode is calculated for a reconstructed block predicted using a mode different from the cross-component coding mode.
[0014] In a third aspect, one or more embodiments of the present invention provide a method for decoding a current picture, comprising reconstructing a current block of the current picture according to the cross-component coding mode to which the method of the first aspect is applied.
[0015] In a fourth aspect, one or more embodiments of the present invention provide a method for encoding a current picture, comprising reconstructing a current block of the current picture according to the cross-component coding mode to which the method of the second aspect is applied.
[0016] In an embodiment of the third aspect or the fourth aspect, information indicating a model of a cross-component coding mode applied to reconstruct the first block is stored in at least one unit corresponding to the current block in a current buffer storing coding parameters associated with a current picture.
[0017] In a fifth aspect, one or more embodiments of the present invention provide a device comprising an electronic circuit configured to:
[0018] A first block to be reconstructed using a cross-component codec mode is obtained, wherein a model of the cross-component codec mode to be applied to reconstruct the first block is obtained from a model of the cross-component codec mode associated with a reconstructed second block, wherein the second block is reconstructed using a mode different from the cross-component codec mode.
[0019] In a sixth aspect, one or more embodiments of the present invention provide a device comprising an electronic circuit configured to:
[0020] A cross-component codec mode is applied to a first block, and a model of the cross-component codec mode to be applied to the first block is obtained from a model of the cross-component codec mode associated with a second block encoded before the first block, wherein the second block is encoded using a mode different from the cross-component codec mode.
[0021] In an embodiment of the fifth aspect or the sixth aspect, the model of the cross-component coding mode associated with the reconstructed second block is stored in at least one unit corresponding to the second block of the first buffer, which stores the encoding parameters of the block of the current picture including the first block and the second block.
[0022] In an embodiment of the fifth aspect or the sixth aspect, a unit in at least one unit inherits a model of the cross-component codec mode associated with the reconstructed second block from another unit corresponding to a reference block of a reference picture specified by motion information of the second block, the other unit being contained in a second buffer storing coding parameters of a block of a reference picture.
[0023] In an embodiment of the fifth aspect or the sixth aspect, a unit in at least one unit inherits the model of the cross-component codec mode associated with the reconstructed second block from another unit based on a value representing the quality of the model of the cross-component codec mode inherited by the first block from the second block.
[0024] In an embodiment of the fifth aspect or the sixth aspect, a model of the cross-component codec mode to be applied to the first block is selected from a table storing a model of the cross-component codec mode of the last reconstructed block, the model of the cross-component codec mode being available for the last reconstructed block, and the table is updated after the block for which the model of the cross-component codec mode is available is reconstructed.
[0025] In an embodiment of the fifth aspect or the sixth aspect, a model of the cross-component coding mode to be applied to the first block is selected from the models of the cross-component coding mode of the candidate region list or the candidate block list, and the region of the candidate region list and the block of the candidate block list are in the neighborhood of the first block.
[0026] In an embodiment of the fifth aspect or the sixth aspect, a model of the cross-component coding mode is calculated for a reconstructed block predicted using a mode different from the cross-component coding mode.
[0027] In a seventh aspect, one or more embodiments of the present invention provide a system for decoding a current picture, comprising an electronic circuit configured to reconstruct a current block of the current picture according to a cross-component coding mode, including the device of the fifth aspect.
[0028] In an eighth aspect, one or more embodiments of the present invention provide a system for encoding a current picture, comprising an electronic circuit configured to reconstruct a current block of the current picture according to a cross-component coding mode, including the apparatus of the sixth aspect.
[0029] In an embodiment of the seventh aspect or the sixth aspect, information representing a model of a cross-component coding mode applied to reconstruct the first block is stored in at least one unit corresponding to the current block of a current buffer, wherein the current buffer stores encoding parameters associated with the current picture.
[0030] In a ninth aspect, one or more embodiments of the present invention provide a computer program comprising program code instructions for implementing the method according to the first aspect, the second aspect, the third aspect or the fourth aspect.
[0031] In a tenth aspect, one or more embodiments of the present invention provide a non-transitory information storage medium storing program code instructions for implementing the method according to the first aspect, the second aspect, the third aspect, or the fourth aspect. 5. Description of the Figures
[0032] Figure 1 schematically illustrates a context in which embodiments may be implemented;
[0033] Figure 2 Schematically shows an example of the segmentation that a pixel frame of an original video undergoes;
[0034] Figure 3 schematically depicts a method for encoding a video stream;
[0035] Figure 4 A method for decoding an encoded video stream is schematically described;
[0036] Figure 5A An example of a hardware architecture of a processing module capable of implementing an encoding module or a decoding module is schematically shown, in which various aspects and embodiments are implemented;
[0037] Figure 5B A block diagram illustrating an example of a first system in which various aspects and embodiments are implemented;
[0038] Figure 5C A block diagram illustrating an example of a second system in which various aspects and embodiments are implemented;
[0039] Figure 6A LM_Chroma CCLM mode is shown;
[0040] Figure 6B MDLM_TCCM mode is shown;
[0041] Figure 6C MDLM_LCCM mode is shown;
[0042] Figure 7 shows the class used to determine the model parameters in the multi-model LM (MMLM) mode;
[0043] Figure 8 shows a 5-tap spatial filter component of a 7-tap convolution filter used in CCCM mode;
[0044] Figure 9A reference region consisting of six rows / columns of chroma samples above and to the left of the CU used in CCCM mode is shown;
[0045] Figure 10 The overall process of CC codec tools (e.g., CCLM, MMLM, CCCM) is shown;
[0046] Figure 11 A set of candidate regions for non-adjacent cross-component prediction mode is shown;
[0047] Figure 12 The spanInfo procedure is shown;
[0048] Figure 13 schematically depicts a modified method for encoding video data according to an embodiment;
[0049] Figure 14 schematically depicts a method for decoding encoded video data according to an embodiment; and
[0050] Figure 15 A method for inheriting candidates for inter-coded blocks in the current picture is described. 6. Specific Implementation Methods
[0051] The following examples of embodiments are described in the context of a video format similar to VVC (ISO / IEC 23090-3 - MPEG-I: Versatile Video Coding (VVC) / ITU-T H.266). However, these embodiments are not limited to video encoding / decoding methods corresponding to VVC. These embodiments are particularly applicable to various video formats, including (and derived from) for example HEVC (ISO / IEC 23008-2 - MPEG-H Part 2, High Efficiency Video Coding / ITU-T H.265), AVC ((ISO / CEI 14496-10), EVC (Basic Video Coding / MPEG-5), AV1, AV2, and VP9.
[0052] Figure 1 The context in which the embodiments are implemented is schematically illustrated.
[0053] exist Figure 1 In the embodiment, system 11 can be a camera, a storage device, a computer, a server, or any device capable of transmitting a video stream, and system 11 transmits the video stream to system 13 using communication channel 12. The video stream is encoded and transmitted by system 11, or received and / or stored by system 11 and then transmitted. Communication channel 12 is a wired (e.g., Internet or Ethernet) or wireless (e.g., WiFi, 3G, 4G, or 5G) network link.
[0054] The system 13 may be, for example, a set-top box, which receives and decodes the video stream to generate a sequence of decoded pictures. Post-processing may be applied to the decoded pictures.
[0055] The obtained decoded sequence of pictures is then transmitted to a display system 15 using a communication channel 14, which may be a wired or wireless network. The display system 15 then displays the pictures.
[0056] In one embodiment, system 13 is included in display system 15. In this case, system 13 and display system 15 are included in a TV, computer, tablet, smartphone, head mounted display, or the like.
[0057] Figure 2 、 3 and 4 introduce examples of video formats.
[0058] Figure 2 An example of the segmentation of a picture of pixels 21 of an original video sequence 20 is shown. Here, a pixel is considered to consist of three components: a luminance component and two chrominance components. However, other types of pixels are possible, including fewer or more components, such as only a luminance component or an additional depth component or a transparency component.
[0059] The picture is divided into multiple coding entities. First, Figure 2 As shown in Figure 23, the picture is divided into a grid of blocks called coding tree units (CTUs). A CTU consists of N×N blocks of luminance samples and two corresponding blocks of chrominance samples. N is usually a power of two, for example with a maximum value of "128". Secondly, the picture is divided into one or more CTU groups. For example, a picture can be divided into one or more tile rows and tile columns, where a tile is a sequence of CTUs covering a rectangular area of the picture. In some cases, a tile can be divided into one or more bricks, each brick consisting of at least one row of a CTU in the tile. On top of the concepts of tiles and bricks, there is another coding entity called a slice, which can contain at least one tile of a picture or at least one brick of a tile.
[0060] exist Figure 2 In the example of , as indicated by reference numeral 22 , the picture 21 is divided into three strips S1 , S2 and S3 of a raster scan strip pattern, each strip including a plurality of tiles (not shown), each tile including only one brick.
[0061] like Figure 2As shown in FIG24 , a CTU can be partitioned into a hierarchical tree of one or more sub-blocks called coding units (CUs). The CTU is the root (i.e., parent node) of the hierarchical tree and can be partitioned into multiple CUs (i.e., child nodes). Each CU becomes a leaf of the hierarchical tree if it is not further partitioned into a smaller CU, or becomes a parent node (i.e., child node) of a smaller CU if it is further partitioned.
[0062] exist Figure 2 In the example shown in FIG, CTU 24 is first partitioned into 4 square CUs using a quadtree partitioning type. The top left CU is a leaf of the hierarchical tree because it is not further partitioned, i.e., it is not the parent of any other CU. The top right CU is further partitioned into 4 smaller square CUs using a quadtree partitioning type. The bottom right CU is vertically divided into 2 rectangular CUs using a binary tree partitioning type. The bottom left CU is vertically partitioned into 3 rectangular CUs using a ternary tree partitioning type.
[0063] During picture coding, the partitioning is adaptive and each CTU is partitioned to optimize the compression efficiency of the CTU criterion.
[0064] The concepts of prediction unit (PU) and transform unit (TU) appear in HEVC. In fact, in HEVC, the coding entity used for prediction (i.e., PU) and transform (i.e., TU) can be a subdivision of CU. For example, Figure 2 As shown in FIG, a CU of size 2N×2N is divided into PUs 2411 of size N×2N or PUs of size 2N×N. In addition, a 4 TU 2412 of size N×N or a 4 TU 2413 of size N×N is divided into PUs 2411 of size N×2N or PUs of size 2N×N. The CU is divided into "16" TUs.
[0065] It can be noted that in VVC, except in some special cases, the boundaries of TU and PU are aligned on the boundaries of CU. Therefore, CU usually consists of one TU and one PU.
[0066] In this application, the term "block" or "picture block" may be used to refer to any one of a CTU, a CU, a PU, and a TU. In addition, the term "block" or "picture block" may be used to refer to macroblocks, partitions, and sub-blocks as specified in H.264 / AVC or other video coding formats, and more generally to arrays of samples of various sizes.
[0067] In this application, the terms "reconstruction" and "decoding" are used interchangeably, the terms "pixel" and "sample" are used interchangeably, and the terms "image," "picture," "sub-picture," "slice," and "frame" are used interchangeably. Typically, but not necessarily, the term "reconstruction" is used on the encoder side, while "decoding" is used on the decoder side.
[0068] Figure 3 The method for encoding a video stream performed by the encoding module is schematically depicted. For example, Figure 3 The encoding method is performed by the system 11. Variations of this encoding method can be envisioned, but for the sake of clarity, the following description is of Figure 3 encoding methods without describing all contemplated variations.
[0069] Before being encoded, the current raw picture of the original video sequence may be pre-processed. For example, in step 301, a color transformation (e.g., conversion from RGB 4:4:4 to YCbCr 4:2:0) is applied to the current raw picture, or remapping is applied to the components of the current raw picture to obtain a signal distribution that is more resilient to compression (e.g., using histogram equalization of one of the color components). The picture obtained by pre-processing is hereinafter referred to as a pre-processed picture.
[0070] As about Figure 2 As described above, the encoding of the pre-processed picture begins with the partitioning of the pre-processed picture during step 302, whereby the pre-processed picture is partitioned into CTUs, CUs, PUs, TUs, etc.
[0071] For each block, the encoding module then determines the encoding mode between intra prediction and inter prediction.
[0072] During a step 303, intra prediction consists in predicting the pixels of the current block from a prediction block derived from pixels of a reconstructed block located in the causal neighborhood of the current block to be coded according to an intra prediction method. The result of the intra prediction is an intra prediction mode indicating which pixels of the blocks in the neighborhood are used, and a residual block resulting from the calculation of the difference between the current block and the predicted block.
[0073] The above-mentioned conventional intra prediction applies to intra prediction in one component (Y or Cb or Cr), that is, the prediction samples are predicted only based on reference samples from the same component. This conventional intra prediction can be called intra component prediction. Intra prediction has recently been enriched by several tools (or modes) that exist for intra prediction between different components, that is, using samples of the second component to predict samples of the first component. These tools (i.e., modes) are generally called cross-component prediction tools.
[0074] For example, a cross-component linear model (CCLM) prediction mode is proposed. For this mode, the chroma samples of a CU are predicted based on the reconstructed luma samples of the same CU by using a cross-component (CC) prediction model in the form of a linear model, as follows:
[0075]
[0076] in Represents the chroma component C in CU k (For example, for YUV format, C k = U or V) of the predicted chroma samples, and rec L ′(i,j) represents the reconstructed luma sample, which is eventually downsampled depending on the CU's chroma format. For each chroma component, a set of adjacent chroma samples of the same chroma component and their corresponding luma samples (ultimately downsampled) are used to derive the CCM parameters and In some implementations, a subset (e.g., up to four) of adjacent chroma samples and their corresponding luma samples are used. Furthermore, the positions of the adjacent samples can be signaled in the bitstream. For example, in VVC, there are three CCLM modes (LM_CHROMA, MDML_T, MDML_L) that differ in the positions of the adjacent chroma samples.
[0077] Figure 6A LM_Chroma CCLM mode is shown.
[0078] Figure 6B MDLM_T CCLM mode is shown.
[0079] Figure 6C MDLM_L CCLM mode is shown.
[0080] Encodes the CCLM mode to use per CU.
[0081] The set of adjacent luma samples at the selected position is downsampled (if required by the chroma format) and compared to find the smaller of the two values x 0 A and x 1 A , and two larger values: x 0 B and x 1 B Their corresponding chrominance sample values are represented as y 0 A 、y 1 A 、y 0 B and y 1 BThen X a ,、X b 、Y a and y B Export as follows:
[0082] X a =(x 0 A +x 1 A +1)>>1;X b =(x 0 B +x 1 B +1)>>1;
[0083] Y a =(y 0 A +y 1 A +1)>>1;Y b =(y 0 B +y 1 B +1)>>1(Equation 2)
[0084] Finally, the linear model parameters are obtained according to the following equation and :
[0085]
[0086]
[0087] There are several variations on CCLM, where a) the location and / or number of neighboring samples are used to derive the model, b) the linear model parameters are used to derive the linear model parameters ( ) method, or c) the luminance downsampling filter can be different.
[0088] For example, in a variant called MMLM (for Multi-Model LM), there can be more than one linear model between luma samples and chroma samples in a CU. In this method, the neighboring luma samples and chroma samples of the current block are classified into several classes, each of which is used as a training set to derive a linear model (i.e., a specific class-specific linear model). and In addition, the samples of the current luma block are also classified based on the same rules used for the classification of the neighboring luma samples.
[0089] In some implementations of MMLM, such as those described in K. Zhang, J. Chen, L. Zhang, and M. Karczewicz, “Enhanced Cross-component Linear Model Intra-prediction,” JVET-D0110, neighboring samples are classified into M classes, where M is 2 or 3. MMLM methods for M = 2 and M = 3 are designed as two additional CC prediction modes, named MMLM2 and MMLM3, in addition to the original CCLM mode. The encoder selects the best mode during the RDO process and signals this mode.
[0090] When M is equal to "2", Figure 7 An example of classifying adjacent samples into two groups is shown. The threshold is calculated as the average value of adjacent reconstructed luminance samples. L [x,y]<=threshold adjacent samples are classified into group "1"; and Rec' L Neighboring samples with [x,y] > threshold are classified into group "2".
[0091] In one variant, a slope adjustment is applied to the cross-component linear model (CCM) and multi-model LM predictions. The adjustment tilts the linear function that maps luma values to chroma values relative to a center point determined by the mean luma value of the reconstructed luma samples.
[0092] In a variant of CCLM called CCCM, the linear model of CCLM is replaced by a CC prediction model in the form of an adaptive 7-tap convolution filter. The 7-tap convolution filter consists of a 5-tap spatial filter component, a nonlinear term P, and a bias term B. The input to the spatial 5-tap spatial filter component consists of (finally) downsampled luma samples, including a central luma sample C juxtaposed with the chroma samples to be predicted, a luma sample N above the central luma sample C, a luma sample S below the central luma sample C, a sample W to the left of the central luma sample C, and a sample E to the right of the central luma sample C, as shown in FIG. Figure 8 As shown in .
[0093] The nonlinear term P is expressed as a power of two of the center luma sample C, scaled to the sample value range specified by the bitdepth value bitdepth:
[0094] P=(C*C+midVal)>>bitDepth
[0095] That is, for bitDepth=10:
[0096] P=(C*C+512)>>10
[0097] The bias term B represents a scalar offset between the input and output (similar to the offset term in CCLM) and is set to the intermediate chroma value (e.g., 512 for bitDepth=10).
[0098] Chroma component C k The predicted chroma samples (i.e. the output of the 7-tap convolution filter) are calculated as the filter coefficients The convolution between the input values (reconstructed luma samples C, N, S, E, W and the nonlinear term P and bias B) and clipped to the range of valid chroma samples:
[0099]
[0100] The filter coefficients are calculated by minimizing the MSE between the predicted and reconstructed chroma samples in the reference region. . Figure 9 A reference region consisting of six rows / columns of chroma samples above and to the left of the CU is shown. The reference region extends one CU width to the right and one CU height below the CU boundary. The area is adjusted to include only available samples.
[0101] In a variation called gradient and location (GL) CCCM, some inputs to the spatial 5-tap spatial filter can be the local gradients as follows:
[0102] predChromaVal=c0.C+c1.Gy+c2.Gx+c3.Y+c4.X+c5.P+c6.B
[0103] where Gy and Gx are the vertical and horizontal gradients, respectively, and are calculated as follows:
[0104] Gy=(2N+NW+NE)–(2S+SW+SE)
[0105] Gx=(2W+NW+SW)–(2E+NE+SE)
[0106] Brightness samples NW, NE, SW and SE are shown in Figure 8 middle.
[0107] Additionally, the Y and X parameters are the vertical and horizontal coordinates of the center luminance sample location.
[0108] In another variation, the reconstructed luma samples are not downsampled.
[0109] Figure 10 The overall process of chroma prediction mode using cross-component luma models (e.g., CCLM, MMLM, CCCM) is described. Figure 10 The process is combined with the following Figure 5AThe processing modules described are similar to the processing modules executed.
[0110] In step 1010, the processing module selects reference samples (reconstructed luma and chroma sample values) from the neighborhood of the current CU. For example, CCCM uses six rows of reference samples above the current CU and six columns of reference samples to the left of the current CU.
[0111] In step 1015, the processing module filters the reconstructed luma sample values to obtain downsampled luma samples. Step 1015 is optional.
[0112] In step 1020, the processing module determines a threshold to classify the reference sample with at least two classes. Step 1020 is optional and is applied when multiple CC prediction models are used as in MMLM.
[0113] In step 1030, the processing module derives the parameters of the CC prediction model(s) from the reference luma and chroma sample values (see coefficients ).
[0114] In step 1040, the processing module derives chroma sample prediction values from the co-located (and ultimately downsampled) reconstructed luma sample values using the CC prediction model(s).
[0115] In another variant of CCCM called non-adjacent cross-component prediction (NA-CCP), samples in regions that are not adjacent to the current block can be used to derive a CCCM model for the current block, as described in document K. Zhang, L. Zhang, Z. Deng, “Non-EE2: Non-Local Cross-Component Prediction,” document JVET-AC0176, 29th Meeting, by teleconference, 11–20 January 2023. A candidate region list with “6” candidates is constructed by checking potential 8×8 regions in the neighborhood of the current block in the specified order. If the checked region is available, it is put into the candidate region list. The top left position of the potential 8×8 region is as follows Figure 11 A flag is signaled to indicate whether NA-CCP is applied to the chroma block. If NA-CCP is applied, an index is signaled to indicate which candidate in the candidate region list is used to derive the CCCM model for the current block.
[0116] It can be seen that in NA-CCP, the non-neighboring area is considered to be more correlated with the chrominance block signal of the current block than the neighboring area.
[0117] In another variation of CCLM and CCCM named history-based cross-component prediction (H-CCP), the table H-CCLM of the CCLM model of the previous block encoded according to the CCLM mode and the table H-CCCM of the CCCM model of the previous block encoded according to the CCCM mode remain similar to the history-based motion vector prediction (HMVP) table. In HMVP, the motion information of the previously encoded block is stored in the table and used as the motion vector predictor candidate for the current CU. A table with multiple HMVP candidates is maintained during the encoding / decoding process. When a new CTU row is encountered, the table is reset (cleared). The HMVP table size is typically set to "6". When a new motion vector candidate is inserted into the table, a constrained first-in-first-out (FIFO) rule is utilized, where a redundancy check is first applied to remove duplicate candidates in the HMVP table.
[0118] For H-CCP, after decoding a CCLM- or CCCM-coded block, the corresponding table (H-CCLM table or H-CCCM table) is updated with the CCLM or CCCM model for that block. In one example implementation of H-CCP, the size of the H-CCLM table or H-CCCM table is also "6." If the current block is coded in CCLM or CCCM mode, a flag is signaled to indicate whether H-CCP is applied. If H-CCP is used, an index is further signaled to indicate which candidate model in the H-CCLM table or H-CCCM table is selected.
[0119] It can be seen that with Figure 10 Compared to the method of H-CCP, H-CCP avoids calculating CCLM and CCCM models for each block coded according to CCLM or CCCM mode. It is equivalent to replacing the step of selecting a model from table H-CCM or H-CCCM Figure 10 Step 1030.
[0120] H-CCP mode has some limitations for inter slices. In practice, since most blocks in inter slices are coded in inter mode, the H-CCLM or H-CCCM tables are rarely updated. Consequently, there is a risk that the H-CCLM and H-CCCM tables may contain model parameters that may not correlate well with the chrominance signal characteristics of the current block. This can compromise the efficiency of H-CCP mode.
[0121] Inter-frame prediction consists in predicting the pixels of a current block based on a block of pixels of a picture preceding or following the current picture, called a reference block. During the encoding of the current block according to the inter-frame prediction method, a motion estimation step 304 determines the block of the reference picture that is closest to the current block according to a similarity criterion. During step 304, a motion vector is determined, indicating the position of the reference block in the reference picture. This motion vector is used during a motion compensation step 305, during which a residual block is calculated as the difference between the current block and the reference block. In the first video compression standards, the unidirectional inter-frame prediction mode described above was the only inter-frame mode available. With the development of video compression standards, the family of inter-frame modes has grown significantly and now includes many different inter-frame modes.
[0122] During the selection step 306 , the encoding module selects a prediction mode that optimizes compression performance from the tested prediction modes (intra-frame prediction mode, inter-frame prediction mode) according to a rate / distortion optimization criterion (ie, RDO criterion).
[0123] When a prediction mode is selected, the residual block is transformed during step 307. The transformed block is then quantized during step 309.
[0124] Note that the encoding module can skip the transformation and apply quantization directly to the untransformed residual signal. When the current block is encoded according to an intra-frame prediction mode, during step 310, the intra-frame prediction mode and the transformed and quantized residual block are encoded by an entropy encoder. When the current block is encoded according to an inter-frame prediction, when appropriate, the motion vector of the block is predicted based on a prediction vector selected from a set of motion vector predictors, the set of motion vector predictors being derived from reconstructed blocks located in the spatial and temporal vicinity of the block to be encoded. Then, during step 310, the entropy encoder encodes the motion information in the form of a motion residual and an index for identifying the prediction vector. During step 310, the transformed and quantized residual block is encoded by the entropy encoder.
[0125] Note that the encoding module may bypass both transform and quantization, ie entropy encoding is applied to the residual without applying a transform or quantization process. The result of the entropy encoding is inserted into the encoded video stream (ie encoded video data) 311 .
[0126] Metadata such as SEI (Supplemental Enhancement Information) messages may be appended to the coded video stream 311. SEI messages, such as those defined in standards such as AVC, HEVC, or VVC (or in the standard Generic Supplemental Enhancement Information (VSEI) message for coded video bitstreams—H.274), are data containers or syntax structures associated with a video stream and include metadata that provides information about the video stream.
[0127] After the quantization step 309, the current block is reconstructed so that the pixels corresponding to the block can be used for future predictions. This reconstruction phase is also known as the prediction loop. Therefore, during step 312, inverse quantization is applied to the transformed and quantized residual block, and during step 313, an inverse transform is applied. Based on the prediction mode for the block obtained during step 314, the prediction block for the block is reconstructed. If the current block is encoded according to an inter-frame prediction mode, during step 316, the encoding module uses the motion vector of the current block to apply motion compensation, when appropriate, to identify a reference block for the current block. If the current block is encoded according to an intra-frame prediction mode, during step 315, the prediction block of the current block is reconstructed using the intra-frame prediction mode corresponding to the current block. The prediction block and the reconstructed residual block are added to obtain the reconstructed current block.
[0128] After reconstruction, in-loop filtering is applied to the reconstructed blocks during step 317, aiming to reduce coding artifacts. This filtering is called in-loop filtering because it occurs in the prediction loop to obtain the same reference picture at the decoder as at the encoder, thus avoiding drift between the encoding and decoding processes. In-loop filtering tools include deblocking filtering, SAO (sample adaptive offset) and ALF (adaptive loop filtering).
[0129] When a block is reconstructed, samples are inserted into a reconstructed picture stored in a memory of reconstructed pictures 319, usually called a decoded picture buffer (DPB), during a step 318. The reconstructed picture stored in this way can then be used as a reference image for other pictures to be encoded.
[0130] Figure 4 Schematically depicts the processing performed by the decoding module for Figure 3 The method described is to encode the encoded video stream 311 and decode the encoded video stream 311. For example, Figure 4 The decoding method is performed by the system 13. Variations of this decoding method can be envisaged, but for the sake of clarity, the following description is of Figure 4 without describing all anticipated variations.
[0131] The decoding is performed block by block. For the current block, the decoding starts with entropy decoding of the current block during a step 410. Entropy decoding allows to obtain at least the prediction mode of the block.
[0132] If the block has been coded according to inter prediction mode, entropy decoding allows obtaining the prediction vector index, motion residual and residual block when appropriate.During a step 408, the motion vector for the current block is reconstructed using the prediction vector index and the motion residual.
[0133] If the block has been coded according to an intra prediction mode, entropy decoding allows obtaining the intra prediction mode and the residual block. Steps 412, 413, 414, 415, 416 and 417 implemented by the decoding module are identical in all respects to steps 312, 313, 314, 315, 316 and 317 implemented by the encoding module, respectively.
[0134] In step 418, the decoded blocks are saved in the decoded pictures, and the decoded pictures are stored in the DPB 419. When the decoding module decodes a given picture, the picture stored in the DPB 419 is the same picture that the encoding module stored in the DPB 319 during encoding of the given picture. The decoded picture can also be output by the decoding module, for example, for display.
[0135] After in-loop filtering (ie, after generating the decoded pictures), a post-processing step 421 may be applied.
[0136] Figure 5A 、 5B and 5C describe examples of devices, apparatuses, and / or systems that allow implementation of various embodiments.
[0137] Figure 5A Schematically shows an example of a hardware architecture of a processing module 500 capable of implementing an encoding module or a decoding module, wherein the encoding module or the decoding module can respectively implement the modified according to different aspects and embodiments. Figure 3 The encoding method and Figure 4 When the system 11 is responsible for encoding the video stream, the encoding module is included in the system, for example. The decoding module is included in the system 13, for example.
[0138] The processing module 500 includes: a processor or CPU (central processing unit) 5000, which includes, as non-limiting examples, one or more microprocessors, general-purpose computers, special-purpose computers, and processors based on multi-core architectures; a random access memory (RAM) 5001; a read-only memory (ROM) 5002; a storage unit 5003, which may include non-volatile memory and / or volatile memory, including but not limited to electrically erasable programmable read-only memory (EEPROM), read-only memory (ROM), programmable read-only memory (PROM), random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), flash memory, a magnetic disk drive and / or an optical disk drive, or a storage medium reader, such as an SD (Secure Digital) card reader and / or a hard disk drive (HDD) and / or a network accessible storage device; and at least one communication interface 5004 for exchanging data with other modules, devices, or systems, connected via a communication bus 5005. The communication interface 5004 may include, but is not limited to, a transceiver configured to transmit and receive data via a communication channel. The communication interface 5004 may include, but is not limited to, a modem or a network card.
[0139] If the processing module 500 implements a decoding module, the communication interface 5004 can, for example, enable the processing module 500 to receive a coded video stream (i.e., video data) and provide a decoded picture sequence. If the processing module 500 implements an encoding module, the communication interface 5004 can, for example, enable the processing module 500 to receive a sequence of raw picture data to be encoded and provide a coded video stream.
[0140] The processor 5000 can execute instructions loaded into the RAM 5001 from the ROM 5002, from an external memory (not shown), from a storage medium, or from a communication network. When the processing module 500 is powered on, the processor 5000 can read instructions from the RAM 5001 and execute them. These instructions form a computer program that enables the processor 5000 to implement, for example, the following instructions: Figure 14 Decoding methods described and / or regarding Figure 13 Described encoding methods include various aspects and embodiments described below in this document.
[0141] Figure 13 or Figure 14 All or some of the algorithms and steps of the method may be implemented in software form by executing a set of instructions by a programmable machine such as a DSP (digital signal processor) or a microcontroller, or in hardware form by a machine or dedicated components such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
[0142] It can be seen that microprocessors, general-purpose computers, special-purpose computers, processors based on or not based on multi-core architectures, DSPs, microcontrollers, FPGAs, and ASICs are suitable or configured to at least partially implement Figure 13 or Figure 14 Method of electronic circuit.
[0143] Figure 5C A block diagram of an example of a system 13 in which various aspects and embodiments are implemented is shown. System 13 can be implemented as a device including the various components described below and is configured to perform one or more aspects and embodiments described herein. Examples of such devices include, but are not limited to, various electronic devices, such as personal computers, laptop computers, smart phones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, and head-mounted displays. The elements of system 13 can be implemented individually or in combination in a single integrated circuit (IC), multiple ICs, and / or discrete components. For example, in at least one embodiment, system 13 includes a processing module 500 that implements a decoding module. In various embodiments, system 13 is communicatively coupled to one or more other systems or other electronic devices via, for example, a communication bus or through dedicated input and / or output ports. In various embodiments, system 13 is configured to implement one or more aspects described herein.
[0144] Input to the processing module 500 may be provided through various input modules as indicated in block 531. Such input modules include, but are not limited to, (i) a radio frequency (RF) module that receives a radio frequency (RF) signal transmitted over the air, for example, by a broadcaster, (ii) a component (COMP) input module (or a group of COMP input modules), (iii) a universal serial bus (USB) input module, and / or (iv) a high-definition multimedia interface (HDMI) input module. Figure 5C Other examples not shown include composite video.
[0145] In various embodiments, the input module of block 531 has associated corresponding input processing elements as known in the art. For example, the RF module can be associated with elements suitable for the following operations: (i) selecting a desired frequency (also known as selecting a signal, or band-limiting a signal to a frequency band), (ii) down-converting the selected signal, (iii) again band-limiting to a narrower frequency band to select a signal frequency band (which may be referred to as a channel in some embodiments), (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select the desired data packet stream. The RF module of various embodiments includes one or more elements that perform these functions, such as a frequency selector, a signal selector, a band limiter, a channel selector, a filter, a down-converter, a demodulator, an error corrector, and a demultiplexer. The RF section can include a tuner that performs various of these functions, including, for example, down-converting a received signal to a lower frequency (e.g., an intermediate frequency or near-baseband frequency) or down-converting to baseband. In a set-top box embodiment, RF module and its relevant input processing element receive the RF signal transmitted by wired (for example, cable) medium, and by filtering, down-conversion and filtering to the frequency band of expectation again to perform frequency selection.Various embodiments rearrange the order of above-mentioned (and other) elements, remove some in these elements, and / or add other elements that perform similar or different functions.Adding element can comprise and insert element between existing element, for example, insert amplifier and analog-to-digital converter.In various embodiments, RF module comprises antenna.
[0146] In addition, the USB and / or HDMI modules may include corresponding interface processors for connecting the system 13 to other electronic devices via USB and / or HDMI connections. It should be understood that various aspects of input processing (e.g., Reed-Solomon error correction) may be implemented, for example, within a separate input processing IC or within the processing module 500, as desired. Similarly, various aspects of USB or HDMI interface processing may be implemented, for example, within a separate interface IC or within the processing module 500, as desired. The demodulated, error-corrected, and demultiplexed stream is provided to the processing module 500.
[0147] The various components of system 13 can be disposed within an integrated housing. Within the integrated housing, the various components can be interconnected and data can be transferred between them using suitable connecting components, such as internal buses known in the art, including inter-IC (I2C) buses, wiring, and printed circuit boards. For example, in system 13, processing module 500 is interconnected with the other components of system 13 via bus 5005.
[0148] The communication interface 5004 of the processing module 500 allows the system 13 to communicate over the communication channel 12. As described above, the communication channel 12 may be implemented, for example, within a wired and / or wireless medium.
[0149] In various embodiments, data is streamed or otherwise provided to the system 13 using a wireless network such as a Wi-Fi network, such as IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). The Wi-Fi signals of these embodiments are received through a communication channel 12 and a communication interface 5004 suitable for Wi-Fi communication. The communication channel 12 of these embodiments is typically connected to an access point or router that provides access to external networks including the Internet to allow streaming applications and other over-the-top communications. Other embodiments use an RF connection of input box 531 to provide streaming data to the system 13. As described above, various embodiments provide data in a non-streaming manner. In addition, various embodiments use wireless networks other than Wi-Fi, such as a cellular network or a Bluetooth network.
[0150] System 13 can provide output signals to various output devices, including a display system 15, speakers 535, and other peripheral devices 536. Various embodiments of the display system 15 include one or more of the following: for example, a touch screen display, an organic light emitting diode (OLED) display, a curved display, and / or a foldable display. Display system 15 can be used in a television, tablet computer, laptop computer, cellular phone (mobile phone), head-mounted display, or other device. Display system 15 can also be integrated with other components (for example, as in a smartphone) or separate (for example, an external monitor for a laptop computer). In various examples of embodiments, other peripheral devices 536 include one or more of the following: a stand-alone digital video disk (or digital versatile disk) (DVR for both terms), a disk player, a stereo system, and / or a lighting system. Various embodiments use one or more peripheral devices 536 that provide functionality based on the output of system 13. For example, a disk player performs the function of playing the output of system 13.
[0151] In various embodiments, control signals are communicated between the system 13 and the display system 15, speakers 535, or other peripheral devices 536 using signaling such as AV.Link, Consumer Electronics Control (CEC), or other communication protocols that enable device-to-device control with or without user intervention. Output devices may be communicatively coupled to the system 13 via dedicated connections through respective interfaces 532, 533, and 534. Alternatively, output devices may be communicated using the communication channel 12 via the communication interface 5004 or using a communication interface with the system 13. Figure 5CThe dedicated communication channel corresponding to the communication channel 12 in the display interface 5004 is connected to the system 13 via the communication interface 5004. The display system 15 and the speaker 535 can be integrated into a single unit in an electronic device (e.g., a television) along with other components of the system 13. In various embodiments, the display interface 532 includes a display driver, such as a timing controller (T Con) chip.
[0152] The display system 15 and the speaker 535 may optionally be separate from one or more of the other components. In various embodiments where the display system 15 and the speaker 535 are external components, the output signal may be provided via a dedicated output connection, such as an HDMI port, a USB port, or a COMP output.
[0153] Figure 5B A block diagram of an example of a system 11 in which various aspects and embodiments are implemented is shown. System 11 is very similar to system 13. System 11 can be implemented as a device including the various components described below and configured to perform one or more aspects and embodiments described herein. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptop computers, smart phones, tablet computers, cameras, and servers. The elements of system 11 can be contained individually or in combination in a single integrated circuit (IC), multiple ICs, and / or discrete components. For example, in at least one embodiment, system 11 includes a processing module 500 that implements a coding module. In various embodiments, system 11 is communicatively coupled to one or more other systems or other electronic devices via, for example, a communication bus or through dedicated input and / or output ports. In various embodiments, system 11 is configured to implement one or more aspects described herein.
[0154] As already mentioned Figure 5C Input to the processing module 500 is provided by various input modules indicated in block 531 of the description.
[0155] The various components of system 11 can be disposed within an integrated housing. Within the integrated housing, the various components can be interconnected and data can be transferred between them using suitable connecting components, such as internal buses known in the art, including inter-IC (I2C) buses, wiring, and printed circuit boards. For example, in system 11, processing module 500 is interconnected with the other components of system 11 via bus 5005.
[0156] The communication interface 5004 of the processing module 500 allows the system 11 to communicate over the communication channel 12 .
[0157] In various embodiments, data is streamed or otherwise provided to system 11 using a wireless network such as a Wi-Fi network (e.g., IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers)). The Wi-Fi signal of these embodiments is received via a communication channel 12 and communication interface 5004 suitable for Wi-Fi communication. The communication channel 12 of these embodiments is typically connected to an access point or router that provides access to external networks, including the Internet, to allow streaming applications and other over-the-top communications. Other embodiments use an RF connection to input box 531 to provide streaming data to system 11.
[0158] As described above, various embodiments provide data in a non-streaming manner.In addition, various embodiments use wireless networks other than Wi-Fi, such as cellular networks or Bluetooth networks.
[0159] The data provided to system 11 can be provided in different formats. In various embodiments, the data is encoded and conforms to known video compression formats, such as AV1, VP9, VVC, HEVC, AVC, etc. In various embodiments, the data is, for example, raw data provided by a picture and / or audio acquisition module connected to or included in system 11. In this case, processing module 500 is responsible for encoding the data.
[0160] System 11 may provide output signals to various output devices, such as system 13, that are capable of storing and / or decoding the output signals.
[0161] Various implementations involve decoding. As used herein, "decoding" may include, for example, all or part of a process performed on a received encoded video stream to produce a final output suitable for display. In various embodiments, such processes include one or more of the processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and prediction. In various embodiments, such processes also or alternatively include processes performed by decoders of the various implementations described herein, such as processes for applying CC codec tools (e.g., CCLM, MMLM, CCCM, or any variants of these codec tools described herein).
[0162] Whether the phrase "decoding process" is intended to refer specifically to a subset of operations or generally to the broader decoding process will be clear based on the context of the specific description and is believed to be fully understood by those skilled in the art.
[0163] Various implementations relate to encoding. In a manner similar to the discussion above about “decoding”, “encoding” as used in this application can include, for example, all or part of the processes performed on an input video sequence to produce an encoded video stream. In various embodiments, such processes include one or more of the processes typically performed by an encoder, such as partitioning, prediction, transform, quantization, and entropy coding. In various embodiments, such processes also or alternatively include processes performed by encoders of the various implementations described in this application, such as processes for applying CC codec tools (e.g., CCLM, MMLM, CCCM, or any variants of these codec tools described herein).
[0164] Whether the phrase "encoding process" is intended to refer specifically to a subset of operations or generally to a broader encoding process will become clear based on the context of the specific description and is believed to be well understood by those skilled in the art.
[0165] Note that the syntax element names used herein are descriptive terms. Therefore, they do not exclude the use of other syntax element names.
[0166] When a figure is presented as a flow chart, it should be understood that it also provides a block diagram of the corresponding apparatus. Similarly, when a figure is presented as a block diagram, it should be understood that it also provides a flow chart of the corresponding method / process.
[0167] Various embodiments relate to rate-distortion optimization. In particular, during the encoding process, a balance or trade-off between bit rate and distortion is often considered. Rate-distortion optimization is typically formulated as minimizing a rate-distortion function, which is a weighted sum of bit rate and distortion. There are different approaches to solving the rate-distortion optimization problem. For example, these approaches can be based on extensive testing of all coding options (including all considered modes or coding parameter values), fully evaluating their coding costs and the associated distortion of the reconstructed signal after encoding and decoding. Faster approaches can also be used to save coding complexity, particularly by computing approximate distortion based on predictions or prediction residuals rather than the reconstructed signal. A hybrid of these two approaches can also be used, for example by using approximate distortion for only some possible coding options and full distortion for others. Other approaches only evaluate a subset of possible coding options. More generally, many approaches employ any of a variety of techniques to perform optimization, but optimization does not necessarily involve a complete evaluation of both coding costs and associated distortion.
[0168] The implementations and aspects described herein can be implemented in, for example, a method or process, a device, a software program, a data stream, or a signal. Even if discussed only in the context of a single form of implementation (e.g., discussed only as a method), the implementation of the features discussed can also be implemented in other forms (e.g., a device or program). For example, an apparatus can be implemented with appropriate hardware, software, and firmware. For example, the method can be implemented in a processor, which generally refers to a processing device that includes, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as computers, cellular phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate information communication between end users.
[0169] References to "one embodiment" or "an embodiment" or "an implementation" or "an implementation" and other variations mean that a particular feature, structure, characteristic, etc. described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrases "in one embodiment" or "in an embodiment" or "in an implementation" or "in an implementation" and any other variations in various places throughout this application are not necessarily all referring to the same embodiment.
[0170] Additionally, the present application may refer to "determining" various information. Determining information may include, for example, estimating information, calculating information, predicting information, retrieving information from a memory, and obtaining information, for example, from another device, module, or from a user.
[0171] Furthermore, the present application may refer to "accessing" various information. Accessing information may include, for example, one or more of receiving information, retrieving information (e.g., from a memory), storing information, moving information, copying information, calculating information, determining information, predicting information, and estimating information.
[0172] Additionally, this application may refer to "receiving" various information. Like "accessing," receiving is intended to be a broad term. Receiving information can include, for example, one or more of accessing information and retrieving information (e.g., from a memory device). Furthermore, during operations such as storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information, "receiving" is often involved in one way or another.
[0173] It should be understood that use of any of the following “ / ,” “and / or,” and “at least one of,” “one or more of” (in the case of “A / B,” “A and / or B,” and “at least one of A and B,” “one or more of A and B”) is intended to include only a selection of the first-listed option (A), or only a selection of the second-listed option (B), or a selection of both options (A and B). As a further example, in the case of “A, B, and / or C” and “at least one of A, B, and C,” or “one or more of A, B, and C,” such wording is intended to include only a selection of the first-listed option (A), or only a selection of the second-listed option (B), or only a selection of the third-listed option (C), or only a selection of the first and second listed options (A and B), or only a selection of the first and third listed options (A and C), or only a selection of the second and third listed options (B and C), or all three options (A, B, and C). As will be apparent to one of ordinary skill in this and related arts, this may be extended to multiple items listed.
[0174] Furthermore, as used herein, the term "signaling" specifically refers to indicating certain information to a corresponding decoder. For example, in certain embodiments, an encoder signals the use of certain coding tools. Thus, in one embodiment, the same parameters can be used on both the encoder and decoder sides. Thus, for example, an encoder can transmit (explicitly signaling) specific parameters to a decoder so that the decoder can use the same specific parameters. Conversely, if the decoder already has specific parameters along with other parameters, signaling can be used without transmission (implicit signaling), simply allowing the decoder to know and select the specific parameters. By avoiding the transmission of any actual functionality, bit savings are achieved in various embodiments. It should be understood that signaling can be implemented in various ways. For example, in various embodiments, one or more syntax elements, flags, etc. are used to signal information to a corresponding decoder. Although the foregoing relates to the verb form of the term "signaling," the term "signal" can also be used as a noun in this document.
[0175] As will be apparent to one of ordinary skill in the art, implementations may generate various signals formatted to carry information that can, for example, be stored or transmitted. The information may include, for example, instructions for performing a method, or data generated by one of the described implementations. For example, a signal may include a signal indicating how to apply a CC codec tool. Such a signal may be formatted as, for example, an electromagnetic wave (e.g., using a radio frequency portion of the spectrum) or a baseband signal. The formatting may include, for example, encoding a coded video stream and modulating a carrier wave with the coded video stream. The information carried by the signal may be, for example, analog or digital information. As is known, the signal may be transmitted over a variety of different wired or wireless links. The signal may be stored on a processor-readable medium.
[0176] Below, various embodiments of the H-CCP and NA-CCP modes are presented.
[0177] In a first embodiment, CCLM and CCCM model parameters are associated with inter-coded blocks.
[0178] In some embodiments, a picture may be associated with a buffer, which is referred to hereinafter as a prediction mode (PM) buffer. The PM buffer allows for the storage of some coding parameters for blocks of the associated picture. This buffer is stored in the DPB 319 or 419 together with the associated picture. In this case, the reference pictures of the DPB are associated with the PM buffer. The PM buffer can be viewed as a grid of cells of a predetermined size (e.g., 4×4). The cells of the PM buffer are filled with the coding parameters of the blocks of the picture associated with the cell. For example, a block of size 16×16 covers "16" 4×4 cells, each of which is filled with the coding parameters of the corresponding 16×16 block.
[0179] In this way, the coding parameters of the previously encoded block can be easily accessed later in the process of encoding / decoding other blocks of the associated picture or subsequent pictures. For example, the coding parameters include information indicating the intra / inter mode of the block, the motion vector(s) of the block, the picture order number (POC) of the reference picture(s) used in the inter prediction of the block, etc.
[0180] In the case where a block of the current picture is coded in inter mode, a process called spanInfo allows the inter-coded block to inherit the coding parameters of the reference block used for inter prediction of the inter-coded block. More precisely, the cell(s) of the PM buffer associated with the current picture corresponding to the inter-coded block inherit the coding parameters stored in the cell corresponding to the reference block of the PM buffer associated with the reference picture including the reference block.
[0181] Another process called storeInfo allows storing the coding parameters of the current block in the PM buffer associated with the current picture, in the unit(s) corresponding to the current block.
[0182] Figure 12 An example of applying the spanInfo procedure is shown.
[0183] Figure 12 "3" pictures P0, P1 and P2 are shown. Picture P0 (respectively pictures P1 and P2) is associated with PM buffer PM0 (respectively pictures PM1 and PM2).
[0184] Block B0 of picture P0 is encoded in intra mode. The coding parameters of block B0 are stored in cell C0 of PM buffer PM0. Block B1 of picture P1 is inter-coded using block B0 as a reference block (block B0 is pointed to by motion vector MV1 of block B1). Block B1 is associated with cell C1 of PM buffer PM1. Cell C1 inherits the coding parameters stored in cell C0 of PM buffer PM0 (i.e., the coding parameters of block B0). Block B2 of picture P2 is inter-coded using block B1 as a reference block (block B1 is pointed to by motion vector MV2 of block B2). Block B2 is associated with cell C2 of PM buffer PM2. Cell C2 inherits the coding parameters stored in cell C1 of PM buffer PM1 (i.e., the coding parameters of block B0).
[0185] The spanInfo process is called before encoding / decoding the current block of inter-frame coding using the motion information of the current block (i.e., the motion vector and index of the reference picture), and the storeInfo process is called after encoding / decoding the current block. Generally, with respect to B1 (respectively B2), the spanInfo process is applied before encoding / decoding block B1 (respectively B2) so that unit C1 (respectively C2) inherits the parameters stored in unit C0 (respectively C1) that can be used to encode B1 (respectively B2).
[0186] In general, the edges of a reference block do not align with the edges of the coding block defined by the partitioning of the reference picture and may overlap several coding blocks of the reference picture. In this case, the spanInfo process uses cells of the reference picture corresponding to predetermined locations in the reference block (e.g., the center of the reference block). A specific inheritance process is also applied to bidirectionally predicted inter blocks to determine which motion vector and reference picture index to use.
[0187] In a first embodiment, it is proposed to modify the PM buffer to allow storage of CCCM and CCLM model parameters, or to manage another PM buffer for storing CCCM and CCLM models similar to a conventional PM buffer. With this modified PM buffer, the spanInfo procedure allows a cell corresponding to an inter-coded block to inherit a CCCM or CCLM model from another cell. Thus, a cell of the PM buffer corresponding to an inter-coded block can store a CCCM or CCLM model. In the case where the current block of the current picture is encoded in CCLM or CCCM mode, the CCLM or CCCM model is stored in the cell(s) corresponding to the current block of the PM buffer associated with the current picture using the storeInfo procedure.
[0188] Thus, in inter slices, when the H-CCP mode is applied to the current block, the frequency of H-CCM and H-CCM table updates increases. In practice, the number of blocks associated with the CCLM or CCCM model is not limited to blocks actually coded using the CCLM or CCCM mode; any type of block can be associated with the CCLM or CCCM model. Furthermore, since the H-CCM and H-CCM tables are reset when a new CTU row is encountered, the likelihood of finding a block associated with the CCLM or CCCM model in the current CTU row of an inter slice increases. Even if some blocks in a CTU row are not coded using the CCLM or CCCM mode, since they are directly or indirectly inter-predicted from blocks coded using the CCCM or CCCM mode, it can be assumed that the signal used to determine the CCLM or CCCM model is likely to be correlated with the chrominance signal of the current block.
[0189] Similarly, if the current block inherits information from a neighboring position (1501) in an inter-coded neighboring block, the spanInfo process may be called to use coding parameters stored in a PM buffer associated with at least one reference block used to predict the neighboring block at the corresponding position in the reference block (1502), such as Figure 15 When neighboring blocks are bi-directionally predicted, a reference may be selected using predefined rules, for example, using a reference with the smallest POC (Picture Serial Number) difference from the POC of the current picture.
[0190] For all blocks coded as inter, the spanInfo procedure may be called to fill the current PM buffer with the CC model parameters stored in the reference PM buffer and copied into the current PM buffer.
[0191] Figure 13 A modified method for encoding video data according to an embodiment is schematically depicted.
[0192] and Figure 3Compared with the method Figure 13 The method comprises new steps 1301 and 1302, and step 315 is replaced by step 1300. All additional steps are performed by the processing module 500 of the system 11, for example.
[0193] Step 1300 is identical to step 315, except that, in response to the H-CCP mode being applied to the current block, the CCLM (or CCCM) model for the current block is determined using the H-CCLM (or H-CCCM) table updated according to the first embodiment. As is conventional, when the H-CCP mode is applied to the current block, the CCLM model (or CCCM model) applied to the current block is derived from the CCLM model (or CCCM model) associated with the block coded prior to the current block. However, in most cases, in inter slices, the block from which the CCLM (or CCCM) model is derived is coded using a mode different from the CCLM (or CCCM) coding mode, i.e., coded according to inter mode. In practice, the H-CCLM and H-CCM tables are populated using a majority of the cells of the PM buffer corresponding to inter blocks.
[0194] If the current block is encoded according to the H-CCP mode, then in step 1301, the CCLM (or CCCM) model for the current block is stored (using the storeInfo procedure) in a cell of the PM buffer associated with the current picture corresponding to the current block.
[0195] In step 1302, in response to the current block being encoded in inter-frame mode, the spanInfo process according to the first embodiment is applied to the current block. During the application of the spanInfo process, the unit(s) corresponding to the current block (referred to as the current unit) of the PM buffer associated with the current picture inherits the coding parameters stored in the unit corresponding to the reference block (referred to as the target unit), the reference block being specified by the motion information of the current block in the PM buffer associated with the reference picture. If the coding parameters include a CCLM (or CCCM) model, the model is also inherited. Therefore, the CCLM (or CCCM) model of the target unit is copied to the current unit.
[0196] Figure 14 A method for decoding encoded video data according to an embodiment is schematically depicted.
[0197] and Figure 4 Compared with the method Figure 14 The method comprises new steps 1401 and 1402, and step 415 is replaced by step 1400. All additional steps are performed by the processing module 500 of the system 13, for example.
[0198] Steps 1400 , 1401 , 1402 and 1403 are the same as steps 1300 , 1301 , 1302 and 1303 , respectively.
[0199] When the current block is inter-predicted directly or indirectly based on a block encoded using the CCCM or CCLM mode, the assumption that the signal used to determine the CCLM (or CCCM) model has a high probability of being correlated with the chrominance signal of the current block is valid as long as the prediction error(s) generated during the inter-prediction(s) is low.
[0200] In a variation of the first embodiment, only when the inter prediction error of the current block is low, in steps 1302 and 1402, the current unit inherits the CCLM (or CCCM) model of the target unit. For example,
[0201] In step 1302, the current block inherits from the CCLM (or CCCM) model under the following conditions:
[0202] DC curr ×QP <TH1
[0203] Among them, DC curr is the value of the DC coefficient of the reconstructed residual of the current block, QP is the quantization parameter of the current block, and TH1 is a predefined threshold.
[0204] In another variation of the first embodiment, the current cell inherits from the CCLM (or CCCM) model of the target cell in steps 1302 and 1402 only when the number of consecutive applications of spanInfo that allows the CCLM (or CCCM) model to be stored in the target cell is below a predetermined threshold TH2.
[0205] Value DC curr ×QP and the number of consecutive applications of spanInfo allowing the CCM (or CCCM) model to be stored in the target unit may be considered as values representing the quality of the CCM (or CCCM) model inherited between the current unit and the target unit.
[0206] In a second embodiment, a CCLM model or a CCCM model or both are calculated for all or some blocks in a reconstructed block predicted using a prediction mode different from the CCLM or CCCM mode (i.e., using an inter mode or an intra mode that does not use the CCLM or CCCM mode).
[0207] For example, regardless of the actual mode of the reconstructed block (inter, intra with or without CCLM or CCCM), a CCLM model or CCCM model or both are calculated for the reconstructed block. Each calculated model is then stored (using the storeInfo procedure) in a cell corresponding to a block of the PM buffer associated with the current picture.
[0208] In this example of the second embodiment, when the NA-CCP mode is applied to the current block, since CCCM (or CCLM) models are calculated for all blocks, the CCCM (or CCLM) model can be used for all blocks in the neighborhood of the current block. In the first variant, the candidate region list is replaced by a candidate block list. A flag is signaled to indicate whether NA-CCP is applied to the chroma blocks of the current block. If NA-CCP is applied, an index is signaled to indicate which candidate block in the candidate block list provides the CCCM (or CCLM) model for the current block.
[0209] In a second variation, a list of candidate regions is maintained. However, in some cases, multiple blocks may be included in a region. In that case, the CCCM (or CCLM) model of the block that includes a predetermined (e.g., top-left) pixel position of the region is considered to be the CCCM (or CCLM) model of the region. Similarly, a block may at least partially cover several regions. Likewise, the CCCM (or CCLM) model of the block that includes the top-left pixel of the region is considered to be the CCCM (or CCLM) model of the region.
[0210] exist Figure 13 In addition to steps 1300 and 1301, Figure 3 Step 1303 is inserted into the method to represent an example of an implementation of the second embodiment in the case of NA-CCP mode. In this embodiment, step 1302 is not applied. During step 1303, if necessary, the processing module 500 of the system 11 calculates a CCCM (or CCLM) model for the current block. For example, in step 1303, a CCCM (or CCLM) model is calculated for each inter-frame block in a CCCM (or CCLM) mode that does not use intra-frame slices and for each intra-frame block in a CCCM (or CCLM) mode that does not use intra-frame slices. Each calculated CCCM (or CCLM) model is stored in a cell of the PM buffer associated with the current picture corresponding to the current block.
[0211] exist Figure 14 In addition to steps 1400 and 1401, Figure 4 The method inserts step 1403 to represent an example of implementation of the second embodiment in the case of NA-CCP mode. In this embodiment, step 1402 is not applied. Step 1403 is the same as step 1303.
[0212] When the NA-CCP mode is applied to the current block, the CCCM (or CCLM) model applied to the current block is obtained from the CCCM (or CCLM) model associated with the block encoded / decoded before the current block. However, in most cases, in an inter slice, the block from which the CCCM (or CCLM) model is obtained is encoded using a mode different from the CCCM (or CCLM) mode, that is, the block is encoded according to an inter mode or intra mode that does not use the CCCM (or CCLM) mode. In practice, the blocks of the candidate block list are encoded in an inter mode or intra mode that does not use the CCCM (or CCLM) mode.
[0213] In a variation of the second embodiment, when applied to the NA-CCP mode, in an inter slice, to avoid calculating a CCCM (or CCLM) model for every block, the CCCM (or CCLM) model is calculated only for a subset of the blocks of the inter slice, to ensure that each block of the inter slice has at least one block associated with a cell of the PM buffer that includes a CCCM (or CCLM) model in its candidate block list. For example, if the candidate block list includes "6" blocks, the encoding module calculates the CCCM (or CCLM) model each time it has reconstructed "6" blocks.
[0214] In another variant that avoids calculating the CCCM (or CCLM) model for each block, the frequency of calculating the CCCM or CCLM model is predefined after reconstructing a block of a given size, after reconstructing a given number of pixels, for example at predetermined positions in the picture.
[0215] In the second embodiment, when applied to the H-CCP mode, in the case of inter-frame slices, CCLM (or CCCM or both) models (one or more) are calculated for inter-frame blocks, so that even if the CCLM (or CCCM) mode is not used in the inter-frame slice, the H-CCLM and H-CCCM tables are updated.
[0216] exist Figure 13 In addition to steps 1300 and 1301, Figure 3Step 1303 is inserted into the method to represent an example implementation of the second embodiment in the case of H-CCP mode. In this embodiment, step 1302 is not applied. During step 1303, if necessary (e.g., if the reconstructed block has not been coded according to CCLM or CCCM mode), the processing module 500 of the system 11 calculates a CCLM (or CCCM, or both) model for the reconstructed block. For example, in step 1303, a CCLM (or CCCM, or both) model is calculated for each inter block in CCLM (or CCCM) mode that does not use inter slices and for each intra block in CCCM (or CCLM) mode that does not use intra slices. After calculating the CCLM (or CCCM, or both) model for the reconstructed block, the corresponding table (H-CCLM table or H-CCCM table) is updated with the CCLM (or CCCM) model for the current block. In step 1300, if the current block is coded in CCLM (or CCCM) mode, a flag is signaled to indicate whether H-CCP is applied. If H-CCP is used, an index is further signaled to indicate which H-CCM table or candidate model in the H-CCM table to select.
[0217] exist Figure 14 In addition to steps 1400 and 1401, Figure 4 Step 1403 is inserted into the method to illustrate an example implementation of the second embodiment in the case of H-CCP mode. In this embodiment, step 1402 is not applied. Step 1403 is the same as step 1303. In step 1400, if the current block is encoded in CCLM (or CCCM) mode, a flag indicating whether H-CCP is applied to the current block is decoded. If H-CCP is used, an index indicating which candidate model in the H-CCM table to use is decoded.
[0218] Therefore, when the NA-CCP mode is applied to the current block in steps 1300 and 1400, the CCCM model applied to the current block is obtained from the CCCM model associated with the block encoded / decoded before the current block. However, in most cases, in inter slices, the block from which the CCCM model is obtained is encoded using a mode different from the CCCM coding mode, that is, the block is encoded according to an inter mode or intra mode that does not use the CCCM mode. In practice, the H-CCM table or the model in the H-CCM table is associated with a block encoded in an inter mode or intra mode that does not use the CCCM mode.
[0219] In a variation of the second embodiment, when the CCLM (or CCCM) model is not calculated for each inter block or intra block that does not use the CCLM (or CCCM) mode, the encoding module (or decoding module) applies step 1302 (or 1402). For example, in this variation, the model is calculated only for inter blocks that inherit the CCLM (or CCCM) model from inter blocks via the spanInfo process. The model is not calculated for inter blocks that inherit the CCLM (or CCCM) model from intra blocks that use the CCLM (or CCCM) mode via the spanInfo process.
[0220] exist Figure 12 In the example shown in FIG, since block B1 inherits its model from the intra block, no CCLM (or CCCM) model is calculated for block B1. However, since block B2 will inherit its CCLM (or CCCM) model from inter block B1 through the spanInfo process, a new CCLM (or CCCM) model is calculated for block B2.
[0221] In another embodiment, the cell size of the PM buffer grid used to store CCCM and CCLM models is different from that of a conventional PM buffer used to store intra-frame prediction modes or to store motion information. For example, the PM buffer used to store intra-frame prediction modes or to store motion information is 4×4, while the cell size of the PM buffer grid used to store CCCM and CCLM models is 8×8. Increasing the cell size allows for a reduction in the amount of internal memory, while reducing the cell size allows for a potential increase in the accuracy and number of CC model candidates.
[0222] In a variant, the cell size may vary per frame. For example, some slices or pictures may be allocated less memory (larger cell size). The selection / derivation of the cell size may be a function of the temporal id of the frame.
[0223] In another embodiment, the precision of the CC model parameters can be reduced to reduce internal memory. For example, the CC model parameters can be derived using 64 bits and stored in the PM buffer using 32 bits.
[0224] In another embodiment, the CCCM and CCLM models are stored in a lookup table (LUT), and the PM buffer stores an index to the LUT ( Figure 15). In this way, the CCCM and CCLM models are not copied into the grid and only one index is stored in each cell. One LUT is associated with each picture. The spanInfo process can be modified by inheriting and / or copying the index instead of directly inheriting and / or copying the CCCM and CCLM model parameters. In a variant, in the case of inter-frame coded pictures or slices, a process for converting the index of a reference picture to a new index for the current picture and for updating the current LUT using the CCCM and CCLM models from the reference picture LUT is applied.
[0225] For all inter-coded blocks, the spaInfo procedure may be called to update the current LUT with the model stored in the reference LUT and fill the current PM buffer with new indices converted from those in the reference PM buffer.
[0226] In a variant, the size of the LUT is limited to a predefined or signaled value maxLUT.If the size of the LUT is maxLUT, no more CCCM or CCLM model parameters are stored or referenced in the LUT.
[0227] We have described a number of embodiments above. The features of these embodiments may be provided individually or in any combination. In addition, embodiments may include one or more of the following features, devices, or aspects, individually or in any combination across various claim classes and types:
[0228] • A bitstream or signal comprising one or more of the described syntax elements or their variants.
[0229] • Creating and / or transmitting and / or receiving and / or decoding a bitstream or signal comprising one or more of the described syntax elements or variations thereof.
[0230] • A TV, set-top box, cell phone, tablet computer, or other electronic device that implements at least one of the described embodiments.
[0231] • A TV, set-top box, cell phone, tablet computer, or other electronic device that implements at least one of the described embodiments and displays the resulting images (eg, using a monitor, screen, or other type of display).
[0232] • A TV, set-top box, cellular phone, tablet, or other electronic device that tunes a channel (eg, using a tuner) to receive a signal comprising an encoded video stream, and performs at least one of the described embodiments.
[0233] • A TV, set-top box, cellular phone, tablet, or other electronic device that receives a signal comprising an encoded video stream over the air (eg, using an antenna) and performs at least one of the described embodiments.
[0234] • A server, camera, cellular phone, tablet, or other electronic device that transmits a signal comprising an encoded video stream over the air (eg, using an antenna) and that performs at least one of the described embodiments.
[0235] • A server, camera, cellular phone, tablet, or other electronic device that tunes (e.g., using a tuner) a channel to transmit a signal comprising an encoded video stream and performs at least one of the described embodiments.
Claims
1. A method comprising: Obtaining a first block to be reconstructed using a cross-component codec mode, wherein a model of the cross-component codec mode to be applied to reconstruct the first block is obtained from a model of the cross-component codec mode associated with a reconstructed second block, wherein the second block is reconstructed using a mode different from the cross-component codec mode.
2. A method comprising: A cross-component coding mode is applied to a first block, and a model of the cross-component coding mode to be applied to the first block is obtained from a model of the cross-component coding mode associated with a second block encoded before the first block, wherein the second block is encoded using a mode different from the cross-component coding mode.
3. The method according to claim 1 or 2, wherein the model of the cross-component coding mode associated with the reconstructed second block is stored in at least one unit corresponding to the second block of a first buffer, and the first buffer stores coding parameters of blocks of the current picture including the first block and the second block.
4. The method according to claim 3, wherein a unit of the at least one unit inherits (1302, 1402) the model of the cross-component codec mode associated with the reconstructed second block from another unit corresponding to a reference block of a reference picture specified by motion information of the second block, the other unit being contained in a second buffer storing coding parameters of blocks of the reference picture.
5. The method of claim 4 , wherein the unit of the at least one unit inherits the model of the cross-component codec mode associated with the reconstructed second block from the other unit according to a value representing the quality of the model of the cross-component codec mode inherited by the first block from the second block.
6. A method according to any preceding claim, wherein the model of the cross-component codec mode to be applied to the first block is selected from a table storing the model of the cross-component codec mode of the last reconstructed block for which the model of the cross-component codec mode is available, and the table is updated after reconstruction of the block for which the model of the cross-component codec mode is available.
7. A method according to any preceding claim from claims 1 to 4, wherein the model of the cross-component codec mode to be applied to the first block is selected from models of the cross-component codec mode of a candidate region list or a candidate block list, the regions of the candidate region list and the blocks of the candidate block list being in the neighborhood of the first block.
8. A method according to any preceding claim, wherein the model of the cross-component codec mode is calculated (1303, 1403) for a reconstructed block predicted using a mode different from the cross-component codec mode.
9. A method for decoding a current picture, comprising applying the method according to claim 1 or any of claims 3 to 8 to reconstruct a current block of the current picture according to a cross-component coding mode.
10. A method for encoding a current picture, comprising applying the method according to any of claims 2 to 8 to reconstruct a current block of the current picture according to a cross-component coding mode.
11. A method according to claim 9 or 10, wherein information representing the model of the cross-component coding mode applied to reconstruct the first block is stored (1301, 1401) in at least one unit corresponding to the current block of a current buffer, and the current buffer stores coding parameters associated with the current picture.
12. A device comprising an electronic circuit configured to: Obtaining a first block to be reconstructed using a cross-component codec mode, wherein a model of the cross-component codec mode to be applied to reconstruct the first block is obtained from a model of the cross-component codec mode associated with a reconstructed second block, wherein The second block is reconstructed using a mode different from the cross-component coding mode.
13. A device comprising an electronic circuit configured to: Applying a cross-component codec mode to a first block, obtaining a model of the cross-component codec mode to be applied to the first block from a model of the cross-component codec mode associated with a second block encoded before the first block, wherein The second block is encoded using a mode different from the cross-component codec mode.
14. The apparatus according to claim 12 or 13, wherein the model of the cross-component codec mode associated with the reconstructed second block is stored in at least one cell of a first buffer corresponding to the second block, the first buffer storing encoding parameters of a block of the current picture including the first block and the second block.
15. The apparatus according to claim 14, wherein a unit of the at least one unit inherits (1302, 1402) the model of the cross-component codec mode associated with the reconstructed second block from another unit corresponding to a reference block of a reference picture specified by motion information of the second block, the other unit being contained in a second buffer storing coding parameters of blocks of the reference picture.
16. The apparatus of claim 15, wherein the unit of the at least one unit inherits the model of the cross-component codec mode associated with the reconstructed second block from the other unit according to a value representing a quality of the model of the cross-component codec mode inherited by the first block from the second block.
17. An apparatus according to any preceding claim from claims 12 to 16, wherein the model of the cross-component codec mode to be applied to the first block is selected from a table storing a model of the cross-component codec mode of the last reconstructed block for which the model of the cross-component codec mode is available, and the table is updated after reconstruction of the block for which the model of the cross-component codec mode is available.
18. An apparatus according to any preceding claim from claims 12 to 16, wherein the model of the cross-component codec mode to be applied to the first block is selected from models of the cross-component codec mode of a candidate region list or a candidate block list, the regions of the candidate region list and the blocks of the candidate block list being in the neighborhood of the first block.
19. The apparatus of any preceding claim from claim 12 to 18, wherein the model of the cross-component codec mode is calculated (1303, 1403) for a reconstructed block predicted using a mode different from the cross-component codec mode.
20. A system for decoding a current picture, comprising an electronic circuit configured to reconstruct a current block of the current picture according to a cross-component coding mode, comprising the apparatus of claim 12 or any one of claims 14 to 19.
21. A system for encoding a current picture, comprising electronic circuitry configured to reconstruct a current block of the current picture according to a cross-component coding mode, comprising an apparatus according to any of claims 13 to 19.
22. A system according to claim 20 or 21, wherein information representing the model of the cross-component coding mode applied to reconstruct the first block is stored (1301, 1401) in at least one unit corresponding to the current block of a current buffer, and the current buffer stores coding parameters associated with the current picture.
23. A computer program comprising program code instructions for implementing the method according to any preceding claim from claims 1 to 11.
24. A non-transitory information storage medium storing program code instructions for implementing the method according to any preceding claim from claims 1 to 11.