Video coding method and apparatus of chroma prediction

EP4649671A4Pending Publication Date: 2026-05-27MEDIATEK INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
MEDIATEK INC
Filing Date
2024-01-16
Publication Date
2026-05-27

Smart Images

  • Figure CN2024072601_25072024_PF_FP_ABST
    Figure CN2024072601_25072024_PF_FP_ABST
Patent Text Reader

Abstract

A method for video coding includes: receiving data to be encoded or decoded at a current block of pixels of a current picture of a video, wherein the current block includes at least one chroma block; and encoding or decoding the current block by a target intra prediction mode, which includes: obtaining a non-cross-component predictor of a chroma sample included in the at least one chroma block, wherein the non-cross-component predictor is an intra predictor; obtaining at least one cross-component predictor of the chroma sample; and determining intra prediction of the chroma sample by jointly considering the non-cross-component predictor and the at least one cross-component predictor. The at least one cross-component predictor is determined according to a cross-component model candidate from a previous-coded block.
Need to check novelty before this filing date? Find Prior Art

Description

VIDEO CODING METHOD AND APPARATUS OF CHROMA PREDICTION

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims the benefit of U.S. provisional application No. 63 / 439,259 (filed on 01 / 16 / 2023) and U.S. provisional application No. 63 / 490,804 (filed on 03 / 17 / 2023) .TECHNICAL FIELD

[0003] The present invention relates to video coding, and more particularly, to a video coding method that determines intra prediction of a chroma sample by jointly considering (e.g., blending) a non-cross-component predictor (i.e., a non-cross-component intra-predicted chroma sample) and at least one cross-component predictor (i.e., at least one cross-component intra-predicted chroma sample) that is generated using a cross-component model candidate from a previous-coded block.BACKGROUND

[0004] The conventional video coding standards generally adopt a block based coding technique to exploit spatial and temporal redundancy. For example, the basic approach is to divide the whole source picture into a plurality of blocks, perform intra / inter prediction on each block, transform residues of each block, and perform quantization and entropy encoding. Besides, a reconstructed picture is generated in a coding loop to provide reference data used for coding following blocks. For certain video coding standards, in-loop filter (s) may be used for enhancing the image quality of the reconstructed frame.

[0005] The video decoder is used to perform an inverse operation of a video encoding operation performed by a video encoder. For example, the video decoder may have a plurality of processing circuits, such as an entropy decoding circuit, an intra prediction circuit, a motion compensation circuit, an inverse quantization circuit, an inverse transform circuit, a reconstruction circuit, and in-loop filter (s) .

[0006] Typically, for an intra block, chroma prediction may be determined under a non-cross-component mode or a cross-component mode. There is a need for an innovative intra chroma prediction scheme for improving the non-cross-component predictor with the use of one or more cross-component predictors.SUMMARY

[0007] One of the objectives of the claimed invention is to provide a video coding method that determines intra prediction of a chroma sample by jointly considering (e.g., blending) a non-cross-component predictor (i.e., a non-cross-component intra-predicted chroma sample) and at least one cross-component predictor (i.e., at least one cross-component intra-predicted chroma  sample) that is generated using a cross-component model candidate selected from a merge candidate list.

[0008] According to a first aspect of the present invention, an exemplary method for video coding is disclosed. The exemplary method includes: receiving data to be encoded or decoded at a current block of pixels of a current picture of a video, wherein the current block comprises at least one chroma block; and encoding or decoding the current block by a target intra prediction mode, which includes: obtaining a non-cross-component predictor of a chroma sample included in the at least one chroma block, wherein the non-cross-component predictor is an intra predictor; obtaining at least one cross-component predictor of the chroma sample; and determining intra prediction of the chroma sample by jointly considering the non-cross-component predictor and the at least one cross-component predictor. The at least one cross-component predictor is determined according to a cross-component model candidate from a previous-coded block.

[0009] According to a second aspect of the present invention, an exemplary video encoder is disclosed. The exemplary video encoder includes a video data memory and an encoding circuit. The video data memory is arranged to receive data to be encoded as a current block of pixels of a current picture of a video, wherein the current block comprises at least one chroma block. The encoding circuit is arranged to perform encoding of the current block by a target intra prediction mode. The encoding circuit includes an intra prediction circuit and an intra chroma prediction circuit. The intra prediction circuit is arranged to obtain a non-cross-component predictor of a chroma sample included in the at least one chroma block, wherein the non-cross-component predictor is an intra predictor. The intra chroma prediction circuit is arranged to obtain at least one cross-component predictor of the chroma sample according to a cross-component model candidate from a previous-coded block, and determine intra prediction of the chroma sample by jointly considering the non-cross-component predictor and the at least one cross-component predictor.

[0010] According to a third aspect of the present invention, an exemplary video decoder is disclosed. The exemplary video decoder includes a video data memory and a decoding circuit. The video data memory is arranged to receive data to be decoded as a current block of pixels of a current picture of a video, wherein the current block comprises at least one chroma block. The decoding circuit is arranged to perform decoding of the current block by a target intra prediction mode. The decoding circuit includes an intra prediction circuit and an intra chroma prediction circuit. The intra prediction circuit is arranged to obtain a non-cross-component predictor of a chroma sample included in the at least one chroma block, wherein the non-cross-component predictor is an intra predictor. The intra chroma prediction circuit is arranged to obtain at least one cross-component predictor of the chroma sample according to a cross-component model candidate from a previous-coded block, and determine intra prediction of the chroma sample by jointly considering the non-cross-component predictor and the at least one cross-component predictor.

[0011] These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.BRIEF DESCRIPTION OF DRAWINGS

[0012] FIG. 1 is a diagram illustrating an example of four reference lines neighboring to a prediction block according to an embodiment of the present invention.

[0013] FIG. 2 is a diagram illustrating locations of the samples used for the derivation of α and β according to an embodiment of the present invention.

[0014] FIG. 3 is a diagram illustrating an example of classifying the neighboring samples into two groups according to an embodiment of the present invention.

[0015] FIG. 4 is a diagram illustrating the effect of the slope adjustment parameter “u” according to an embodiment of the present invention.

[0016] FIG. 5 is a diagram illustrating a spatial part of the convolutional filter according to an embodiment of the present invention.

[0017] FIG. 6 is a diagram illustrating a reference area (with its paddings) used to derive the filter coefficients according to an embodiment of the present invention.

[0018] FIG. 7 is a diagram illustrating 16 gradient patterns for GLM according to an embodiment of the present invention.

[0019] FIG. 8 is a diagram illustrating HoG computation from a template of width 3 pixels according to an embodiment of the present invention.

[0020] FIG. 9 is a diagram illustrating prediction fusion by weighted averaging of two HoG modes and planar according to an embodiment of the present invention.

[0021] FIG. 10 is a diagram illustrating a template and its reference samples used in TIMD according to an embodiment of the present invention.

[0022] FIG. 11 is a diagram illustrating positions of spatial merge candidate according to an embodiment of the present invention.

[0023] FIG. 12 is a diagram illustrating candidate pairs considered for redundancy check of spatial merge candidates according to an embodiment of the present invention.

[0024] FIG. 13 is a diagram illustrating spatial neighboring blocks used to derive the spatial merge candidates according to an embodiment of the present invention.

[0025] FIG. 14 is a diagram illustrating motion vector scaling for temporal merge candidate.

[0026] FIG. 15 is a diagram illustrating candidate positions for temporal merge candidate, C0 and C1, according to an embodiment of the present invention.

[0027] FIG. 16 is a diagram illustrating top and left neighboring blocks used in CIIP weight derivation according to an embodiment of the present invention.

[0028] FIG. 17 is a diagram illustrating a linear predicting method of linearly predicting chroma samples from luma samples according to an embodiment of the present invention.

[0029] FIG. 18 is a diagram illustrating an example of subblock based decision according to an embodiment of the present invention.

[0030] FIG. 19 is a diagram illustrating that inter-predictor of regular merge mode is refined using the above Rx, -1 and left R-1, y reconstructed samples according to an embodiment of the present invention.

[0031] FIG. 20 is a diagram illustrating that a boundary matching cost for a candidate mode refers to the discontinuity measurement (including top boundary matching and / or left boundary matching) between the current prediction (the predicted samples within the current block) , generated from the candidate mode, and the neighboring reconstruction (the reconstructed samples within one or more neighboring blocks) according to an embodiment of the present invention.

[0032] FIG. 21 is a diagram illustrating a pattern being any subset of a window region M x N around / including the position (iL, jL) according to an embodiment of the present invention.

[0033] FIG. 22 is a diagram illustrating a pattern being 5x5 cross, including or not excluding (iL, jL) , according to an embodiment of the present invention.

[0034] FIG. 23 is a diagram illustrating a pattern being 5x5 diamond, including or not excluding (iL, jL) , according to an embodiment of the present invention.

[0035] FIG. 24 is a diagram illustrating different Sobel filters according to an embodiment of the present invention.

[0036] FIG. 25 is a diagram illustrating a pattern being any subset of a window region M2 x N2 around / including the position (iC, jC) according to an embodiment of the present invention.

[0037] FIG. 26 is a diagram illustrating a pattern being 5x5 cross, including or not excluding (iC, jC) , according to an embodiment of the present invention.

[0038] FIG. 27 is a diagram illustrating a pattern being 5x5 diamond, including or not excluding (iC, jC) , according to an embodiment of the present invention.

[0039] FIG. 28 is a diagram illustrating a spatial neighboring region of the current block that includes above reference region, left reference region, above-left reference region, and / or any subset of the above according to an embodiment of the present invention.

[0040] FIG. 29 is a diagram illustrating scanning orders when adding the spatial model information from spatial neighbour blocks into the list according to an embodiment of the present invention.

[0041] FIG. 30 is a diagram illustrating an example of the right-bottom region for the current chroma block according to an embodiment of the present invention.

[0042] FIG. 31 is a block diagram illustrating a video encoder that supports the proposed intra chroma prediction mode according to an embodiment of the present invention.

[0043] FIG. 32 is a block diagram illustrating a video encoder that supports the proposed intra chroma  prediction mode according to an embodiment of the present invention.

[0044] FIG. 33 is a flowchart illustrating a video coding method according to an embodiment of the present invention.DESCRIPTION OF EMBODIMENTS

[0045] Certain terms are used throughout the following description and claims, which refer to particular components. As one skilled in the art will appreciate, electronic equipment manufacturers may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not in function. In the following description and in the claims, the terms "include" and "comprise" are used in an open-ended fashion, and thus should be interpreted to mean "include, but not limited to ... " . Also, the term "couple" is intended to mean either an indirect or direct electrical connection. Accordingly, if one device is coupled to another device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.

[0046] Acronyms

[0047] CCLM: Cross Component Linear Model

[0048] MMLM: Multiple model CCLM

[0049] LM: Linear Model

[0050] MV: Motion Vector

[0051] CU: Coding Unit

[0052] CB: Coding Block

[0053] CTU: Coding Tree Unit

[0054] VVC: Versatile Video Coding

[0055] SAO: Sample Adaptive Offset

[0056] ALF: Adaptive Loop Filtering

[0057] IBC: Intra Block Copy

[0058] MRL: Multiple reference line

[0059] ISP: Intra sub-partitions

[0060] MIP: Matrix weighted Intra Prediction

[0061] JCCR: Joint Coding of Chroma Residual

[0062] Intra Mode Coding with 67 Intra Prediction Modes

[0063] To capture the arbitrary edge directions presented in natural video, the number of directional intra modes in VVC is extended from 33, as used in HEVC, to 65. These denser directional intra prediction modes apply for all block sizes and for both luma and chroma intra predictions.

[0064] To keep the complexity of the most probable mode (MPM) list generation low, an intra mode  coding method with 6 MPMs is used by considering two available neighboring intra modes. The following three aspects are considered to construct the MPM list:

[0065] – Default intra modes

[0066] – Neighbouring intra modes

[0067] – Derived intra modes

[0068] Multiple Reference Line Intra Prediction

[0069] Multiple reference line (MRL) intra prediction uses more reference lines for intra prediction. In FIG. 1, an example of 4 reference lines is depicted, where the samples of segments A and F are not fetched from reconstructed neighbouring samples but padded with the closest samples from Segment B and E, respectively. HEVC intra-picture prediction uses the nearest reference line (i.e., reference line 0) . In MRL, 2 additional lines (reference line 1 and reference line 3) are used.

[0070] The index of selected reference line (mrl_idx) is signalled and used to generate intra predictor. For the reference line index, which is greater than 0, only include additional reference line modes in MPM list and only signal the MPM index without remaining modes. The reference line index is signalled before intra prediction modes, and Planar mode is excluded from intra prediction modes in case a nonzero reference line index is signalled.

[0071] MRL is disabled for the first line of blocks inside a CTU to prevent using extended reference samples outside the current CTU line. Also, PDPC is disabled when additional line is used. For MRL mode, the derivation of DC value in DC intra prediction mode for non-zero reference line indices is aligned with that of reference line index 0. MRL requires the storage of 3 neighboring luma reference lines with a CTU to generate predictions. The Cross-Component Linear Model (CCLM) tool also requires 3 neighboring luma reference lines for its downsampling filters. The definition of MRL to use the same 3 lines is aligned with CCLM to reduce the storage requirements for decoders.

[0072] Intra mode coding

[0073] To keep the complexity of the most probable mode (MPM) list generation low, an intra mode coding method with 6 MPMs is used by considering two available neighboring intra modes. The following three aspects are considered to construct the MPM list:

[0074] – Default intra modes

[0075] – Neighbouring intra modes

[0076] – Derived intra modes

[0077] A unified 6-MPM list is used for intra blocks irrespective of whether MRL and ISP coding tools are applied or not. The MPM list is constructed based on intra modes of the left and above neighboring block. Suppose the mode of the left is denoted as Left and the mode of the above block is denoted as Above, the unified MPM list is constructed as follows:

[0078] – When a neighboring block is not available, its intra mode is set to Planar by default.

[0079] – If both modes Left and Above are non-angular modes:

[0080] – MPM list → {Planar, DC, V, H, V -4, V + 4}

[0081] – If one of modes Left and Above is angular mode, and the other is non-angular:

[0082] – Set a mode Max as the larger mode in Left and Above

[0083] – MPM list → {Planar, Max, Max -1, Max + 1, Max ––2, Max + 2}

[0084] – If Left and Above are both angular and they are different:

[0085] – Set a mode Max as the larger mode in Left and Above

[0086] – Set a mode Min as the smaller mode in Left and Above

[0087] – If Max –Min is equal to 1:

[0088] – MPM list → {Planar, Left, Above, Min –1, Max + 1, Min –2}

[0089] – Otherwise, if Max –Min is greater than or equal to 62:

[0090] – MPM list → {Planar, Left, Above, Min + 1, Max –1, Min + 2}

[0091] – Otherwise, if Max –Min is equal to 2 :

[0092] – MPM list → {Planar, Left, Above, Min + 1, Min –1, Max + 1}

[0093] – Otherwise:

[0094] – MPM list → {Planar, Left, Above, Min –1, –Min + 1, Max –1}

[0095] – If Left and Above are both angular and they are the same:

[0096] – MPM list → {Planar, Left, Left -1, Left + 1, Left –2, Left + 2}

[0097] Besides, the first bin of the mpm index codeword is CABAC context coded. In total three contexts are used, corresponding to whether the current intra block is MRL enabled, ISP enabled, or a normal intra block.

[0098] During 6 MPM list generation process, pruning is used to remove duplicated modes so that only unique modes can be included into the MPM list. For entropy coding of the 61 non-MPM modes, a Truncated Binary Code (TBC) is used.

[0099] Cross-component linear model prediction

[0100] To reduce the cross-component redundancy, a cross-component linear model (CCLM) prediction mode (or named as LM) is used in the VVC, for which the chroma samples are predicted based on the reconstructed luma samples of the same or collocated CU by using a linear model as follows: predC (i, j) =α·recL′ (i, j) + β     (1)

[0101] where predC (i, j) represents the predicted chroma samples in a CU and recL′ (i, j) represents the downsampled reconstructed luma samples of the same or collocated CU.

[0102] One example is that the CCLM parameters (α and β) are derived with at most four neighbouring chroma samples and their corresponding down-sampled luma samples. Suppose the current chroma block dimensions are W×H, then W'’ and H’ are set as

[0103] – W’ = W, H’ = H when LM_LA mode is applied;

[0104] – W’ =W + H when LM_A mode is applied;

[0105] – H’ = H + W when LM_L mode is applied;

[0106] The above neighbouring positions are denoted as S [0, -1] …S [W’ -1, -1] and the left neighbouring positions are denoted as S [-1, 0] …S [-1, H’ -1] . Then the four samples are selected as

[0107] – S [W’  / 4, -1] , S [3 *W’  / 4, -1] , S [-1, H’  / 4] , S [-1, 3 *H’  / 4] when LM_LA mode is applied and both above and left neighbouring samples are available;

[0108] – S [W’  / 8, -1] , S [3 *W’  / 8, -1] , S [5 *W’  / 8, -1] , S [7 *W’  / 8, -1] when LM_A mode is applied or only the above neighbouring samples are available;

[0109] – S [-1, H’  / 8] , S [-1, 3 *H’  / 8] , S [-1, 5 *H’  / 8] , S [-1, 7 *H’  / 8] when LM_L mode is applied or only the left neighbouring samples are available;

[0110] The four neighbouring luma samples at the selected positions are down-sampled and compared four times to find two larger values: x0A and x1A, and two smaller values: x0B and x1B. Their corresponding chroma sample values are denoted as y0A, y1A, y0B and y1B. Then Xa, Xb, Ya and Yb are derived as: Xa= (x0A + x1A +1) >>1; Xb= (x0B + x1B +1) >>1; Ya= (y0A + y1A +1) >>1; Yb= (y0B + y1B +1) >>1   (2)

[0111] Finally, the linear model parameters α and β are obtained according to the following equations. β=Yb-α·Xb      (4)

[0112] FIG. 2 shows an example of the location of the left and above samples and the sample of the current block involved in the LM_LA mode. CCLM in this invention can use the mentioned example and / or CCLM in this invention is not limited to the mentioned example.

[0113] The division operation to calculate parameter α is implemented with a look-up table. To reduce the memory required for storing the table, the diff value (difference between maximum and minimum values) and the parameter α are expressed by an exponential notation. For example, diff is approximated with a 4-bit significant part and an exponent. Consequently, the table for 1 / diff is reduced into 16 elements for 16 values of the significand as follows: DivTable [] = {0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}   (5)

[0114] This would have a benefit of both reducing the complexity of the calculation as well as the memory size required for storing the needed tables. This memory reduction method can be used for CCLM and / or this memory reduction method is not limited to CCLM and can be used for any cross-component mode to reduce the complexity of the calculation.

[0115] Besides the above template and left template can be used to calculate the linear model coefficients together, they also can be used alternatively in the other 2 LM modes, called LM_A, and LM_L modes.

[0116] In LM_A mode, only the above template is used to calculate the linear model coefficients. To get more samples, the above template is extended to (W+H) samples. In LM_L mode, only left template are used to calculate the linear model coefficients. To get more samples, the left template is extended to (H+W) samples.

[0117] In LM_LA mode, left and above templates are used to calculate the linear model coefficients.

[0118] To match the chroma sample locations for 4: 2: 0 video sequences, in some examples, two types of downsampling filter are applied to luma samples to achieve 2 to 1 downsampling ratio in both horizontal and vertical directions. The selection of downsampling filter is specified by a SPS level flag. The two downsmapling filters are as follows, which are corresponding to “type-0” and “type-2” content, respectively.

[0119] Note that only one luma line (general line buffer in intra prediction) is used to make the downsampled luma samples when the upper reference line is at the CTU boundary. The downsampling filter can be from the mentioned example and / or is not limited to the mentioned example.

[0120] This parameter computation is performed as part of the decoding process, and is not just as an encoder search operation. As a result, no syntax is used to convey the α and β values to the decoder.

[0121] For chroma intra mode coding, in one example, a total of 8 intra modes are allowed for chroma intra mode coding. Those modes include five traditional intra modes and three cross-component linear model modes (LM_LA, LM_A, and LM_L) . Chroma mode signalling and derivation process are shown in Table 1-1. Chroma mode coding directly depends on the intra prediction mode of the corresponding luma block. Since separate block partitioning structure for luma and chroma components is enabled in I slices, one chroma block may correspond to multiple luma blocks. Therefore, for Chroma DM mode, the intra prediction mode of the corresponding luma block covering the center position of the current chroma block is directly inherited.

[0122] Table 1-1 -Derivation of chroma prediction mode from luma mode when cclm_is enabled

[0123] A single binarization table is used regardless of the value of sps_cclm_enabled_flag as shown in Table 1-2.

[0124] Table 1-2-Unified binarization table for chroma prediction mode

[0125] In Table 1-2, the first bin indicates whether it is regular (0) or CCLM modes (1) . If it is CCLM mode, then the next bin indicates whether it is LM_LA (0) or not. If it is not LM_LA, next 1 bin indicates whether it is LM_L (0) or LM_A (1) . For this case, when sps_cclm_enabled_flag is 0, the first bin of the binarization table for the corresponding intra_chroma_pred_mode can be discarded prior to the entropy coding. Or, in other words, the first bin is inferred to be 0 and hence not coded. This single binarization table is used for both sps_cclm_enabled_flag equal to 0 and 1 cases. The first two bins in Table 1-2 are context coded with its own context model, and the rest bins are bypass coded. The chroma intra mode coding can use this example and / or the chroma intra mode coding is not limited to this example.

[0126] In addition, in one example, in order to reduce luma-chroma latency in dual tree, when the 64x64 luma coding tree node is partitioned with Not Split (and ISP is not used for the 64x64 CU) or QT, the chroma CUs in 32x32  / 32x16 chroma coding tree node are allowed to use CCLM in the following way:

[0127] – If the 32x32 chroma node is not split or partitioned QT split, all chroma CUs in the 32x32 node can use CCLM

[0128] – If the 32x32 chroma node is partitioned with Horizontal BT, and the 32x16 child node does not split or uses Vertical BT split, all chroma CUs in the 32x16 chroma node can use CCLM.

[0129] In all the other luma and chroma coding tree split conditions, CCLM is not allowed for chroma CU.

[0130] Multiple model CCLM

[0131] In the JEM, multiple model CCLM (MMLM) mode is proposed for using two models for predicting the chroma samples from the luma samples for the whole chroma CU / CB. In MMLM, neighbouring luma samples and neighbouring chroma samples of the current block are classified into two groups, each group is used as a training set to derive a linear model (i.e., a particular α and β are derived for a particular group) . Furthermore, the samples of the current luma block are also classified based on the same rule for the classification of neighbouring luma samples.

[0132] FIG. 3 shows an example of classifying the neighbouring samples into two groups. Threshold is calculated as the average value of the neighbouring reconstructed luma samples or a pre-defined value. A neighbouring sample with Rec′L [x, y] <= Threshold is classified into group 1; while a neighbouring sample with Rec′L [x, y] > Threshold is classified into group 2.

[0133] Slope adjustment of CCLM

[0134] CCLM uses a model with 2 parameters to map luma values to chroma values. The slope parameter “a” and the bias parameter “b” define the mapping as follows: chromaVal = a *lumaVal + b

[0135] An adjustment “u” to the slope parameter is signaled to update the model to the following form: chromaVal = a’ *lumaVal + b’

[0136] where a’= a + u b’= b -u *yr.

[0137] With this selection the mapping function is tilted or rotated around the point with luminance value yr. The average of the reference luma samples is used in the model creation as yr in order to provide a meaningful modification to the model. FIG. 4 illustrates the process, where the sub-diagram (A) illustrates a model created with the current CCLM, and the sub-diagram (B) illustrates a model updated as proposed.

[0138] Implementation

[0139] Slope adjustment parameter is provided as an integer between -4 and 4, inclusive, and signaled in the bitstream. The unit of the slope adjustment parameter is 1 / 8th of a chroma sample value per one luma sample value (for 10-bit content) .

[0140] In one example, adjustment is available for the CCLM models that are using reference samples both above and left of the block ( “LM_CHROMA_IDX” and “MMLM_CHROMA_IDX” ) , but not for the “single side” modes. This selection is based on coding efficiency vs. complexity trade-off considerations.

[0141] When slope adjustment is applied for a multimode CCLM model (or named as MMLM) , both models can be adjusted and thus up to two slope updates are signaled for a single chroma block.

[0142] Encoder approach

[0143] The proposed encoder approach performs an SATD based search for the best value of the slope update for Cr and a similar SATD based search for Cb. If either one results as a non-zero slope adjustment parameter, the combined slope adjustment pair (SATD based update for Cr, SATD based update for Cb) is included in the list of RD checks for the TU.

[0144] Convolutional cross-component model (CCCM)

[0145] In CCCM, a convolutional model is applied to improve the chroma prediction performance. In one example, the convolutional model has 7-tap filter consist of a 5-tap plus sign shape spatial component, a nonlinear term and a bias term. The input to the spatial 5-tap component of the filter consists of a center (C) luma sample which is collocated with the chroma sample to be predicted and its above / north (N) , below / south (S) , left / west (W) and right / east (E) neighbors as illustrated in FIG. 5.

[0146] The nonlinear term (denoted as P) is represented as power of two of the center luma sample C and scaled to the sample value range of the content: P = (C*C + midVal) >> bitDepth

[0147] That is, for 10-bit content it is calculated as: P = (C*C + 512) >> 10

[0148] The bias term (denoted as B) represents a scalar offset between the input and output (similarly to the offset term in CCLM) and is set to middle chroma value (512 for 10-bit content) .

[0149] Output of the filter is calculated as a convolution between the filter coefficients ci and the input values and clipped to the range of valid chroma samples: predChromaVal = c0C + c1N + c2S + c3E + c4W + c5P + c6B

[0150] The filter coefficients ci are calculated by applying any pre-defined regression method or minimising MSE between predicted and reconstructed chroma samples in the reference area. FIG. 6 illustrates the reference area which consists of 6 lines of chroma samples above and left of the PU. Reference area extends one PU width to the right and one PU height below the PU boundaries. Area is adjusted to include only available samples. The extensions to the area shown in slash in the  reference area are needed to support the “side samples” of the plus shaped spatial filter and are padded when in unavailable areas.

[0151] The MSE minimization or the pre-defined regression method is performed by calculating autocorrelation matrix for the luma input and a cross-correlation vector between the luma input and chroma output. In one example, autocorrelation matrix is LDL decomposed and the final filter coefficients are calculated using back-substitution. The process follows roughly the calculation of the ALF filter coefficients in Enhanced Compression Model (ECM) , however LDL decomposition was chosen instead of Cholesky decomposition to avoid using square root operations. The autocorrelation matrix can be the mentioned method in this example and / or the regression method is not limited to the mentioned method in this example.

[0152] Gradient Linear Model (GLM)

[0153] Compared with the CCLM, instead of down-sampled luma values, the GLM utilizes luma sample gradients to derive the linear model. Specifically, in one example, when the GLM is applied, the input to the CCLM process, i.e., the down-sampled luma samples L, are replaced by luma sample gradients G. The other parts of the CCLM (e.g., parameter derivation, prediction sample linear transform) are kept unchanged. C=α·G+β

[0154] For signaling, when the CCLM mode is enabled to the current CU, two flags are signaled separately for Cb and Cr components to indicate whether GLM is enabled to each component; if the GLM is enabled for one component, one syntax element is further signaled to select one of 16 gradient filters for the gradient calculation, as illustrated in FIG. 7. The GLM can be combined with the existing CCLM by signaling one extra flag in bitstream. When such combination is applied, the filter coefficients that are used to derive the input luma samples of the linear model is calculated as the combination of the selected gradient filter of the GLM and the down-sampling filter of the CCLM.

[0155] Chroma DM mode

[0156] For Chroma DM mode, the intra prediction mode of the corresponding (collocated) luma block covering the center position of the current chroma block is directly inherited.

[0157] Decoder side intra mode derivation (DIMD)

[0158] When DIMD is applied, two intra modes or more are derived from the reconstructed neighbor samples, and those two or more predictors are combined with the planar mode predictor with the weights derived from the gradients. The DIMD mode is used as an alternative prediction mode and is always checked in the high-complexity RDO mode.

[0159] To implicitly derive the intra prediction modes of a blocks, a texture gradient analysis is performed at encoder, decoder, or both sides. In one example, this process starts with an empty Histogram of Gradient (HoG) with 65 entries, corresponding to the 65 angular modes. In another  example, this process may start with an empty HoG with a pre-defined number of entries, corresponding to the pre-defined number of angular modes where the pre-defined number can be any positive integer and / or 131 and / or any number larger than 65. Amplitudes of these entries are determined during the texture gradient analysis.

[0160] In the first step, DIMD picks a template of T=3 columns and lines from respectively left and above current block. This area is used as the reference for the gradient based intra prediction modes derivation.

[0161] In the second step, the horizontal and vertical Sobel filters are applied on all 3×3 window positions, centered on the pixels of the middle line of the template. On each window position, Sobel filters calculate the intensity of pure horizontal and vertical directions as Gx and Gy, respectively. Then, the texture angle of the window is calculated as: angle=arctan (Gx / Gy) ,

[0162] which can be converted into one of 65 angular intra prediction modes in some examples. Once the intra prediction modes index of current window is derived as idx, the amplitude of its entry in the HoG [idx] is updated by addition of: ampl = |Gx|+|Gy|

[0163] FIG. 8 shows an example of HoG, calculated after applying the above operations on all pixel positions in the template.

[0164] Once HoG is computed, the indices with two or more tallest histogram bars are selected as the two or more implicitly derived intra prediction modes for the block and are further combined with the Planar mode as the prediction of DIMD mode. The prediction fusion is applied as a weighted average of the above three or more predictors. To this aim, the weight of planar is fixed to 21 / 64 (~1 / 3) . The remaining weight of 43 / 64 (~2 / 3) is then shared between the two or more HoG IPMs, proportionally to the amplitude of their HoG bars. FIG. 9 visualises this process and in this example, there are only 2 IPMs selected using HoG bars.

[0165] Besides, the two or more implicitly derived intra modes are included into the MPM list, so the DIMD process is performed before the MPM list is constructed. The primary derived intra mode of a DIMD block is stored with a block and is used for MPM list construction of the neighboring blocks.

[0166] Template-based intra mode derivation (TIMD)

[0167] Template-based intra mode derivation (TIMD) mode implicitly derived the intra prediction mode of a CU by a neighboring template at encoder, decoder, or both, instead of being signal exact intra prediction mode bits to the decoder. As shown in FIG. 10, the prediction samples of the template are generated using the reference samples of the template for each candidate mode. A cost is calculated as the SATD between the prediction and the reconstruction samples of the template. The intra prediction mode with the minimum cost is selected as the TIMD mode and used for intra  prediction of the CU. The candidate modes may be 67 intra prediction modes as in VVC or extended to 131 intra prediction modes. In general, MPMs can provide a clue to indicate the directional information of a CU. Thus, to reduce the intra mode search space and utilize the characteristics of a CU, the intra prediction mode is implicitly derived from MPM list.

[0168] For each intra prediction mode in MPMs, the SATD between the prediction and reconstruction samples of the template is calculated. First two intra prediction modes with the minimum SATD are selected as the TIMD modes. These two TIMD modes are fused with the weights after applying PDPC process, and such weighted intra prediction is used to code the current CU. Position dependent intra prediction combination (PDPC) is included in the derivation of the TIMD modes.

[0169] The costs of the two selected modes are compared with a threshold, in the test the cost factor of 2 is applied as follows: costMode2 < 2*costMode1.

[0170] If this condition is true, the fusion is applied, otherwise the only mode1 is used. Weights of the modes are computed from their SATD costs as follows: weight1 = costMode2 /  (costMode1+ costMode2) weight2 = 1 -weight1

[0171] Inter prediction overview (More details can be found in JVET-T2002 Section 3.4. )

[0172] For each inter-predicted CU, motion parameters consisting of motion vectors, reference picture indices and / or reference picture list usage index, and additional information needed for the new coding feature of VVC to be used for inter-predicted sample generation. The motion parameter can be signalled in an explicit or implicit manner. When a CU is coded with skip mode, the CU is associated with one PU and has no significant residual coefficients, no coded motion vector delta or reference picture index. A merge mode is specified whereby the motion parameters for the current CU are obtained from neighbouring CUs, including spatial and temporal candidates, and additional schedules introduced in VVC. The merge mode can be applied to any inter-predicted CU, not only for skip mode. The alternative to merge mode is the explicit transmission of motion parameters, where motion vector, corresponding reference picture index for each reference picture list and / or reference picture list usage flag and / or other needed information are signalled explicitly per each CU.

[0173] Beyond the inter coding features in HEVC, VVC includes a number of new and refined inter prediction coding tools listed as follows:

[0174] – Extended merge prediction

[0175] – Merge mode with MVD (MMVD)

[0176] – Symmetric MVD (SMVD) signalling

[0177] – Affine motion compensated prediction

[0178] – Subblock-based temporal motion vector prediction (SbTMVP)

[0179] – Adaptive motion vector resolution (AMVR)

[0180] – Motion field storage: 1 / 16th luma sample MV storage and 8x8 motion field compression

[0181] – Bi-prediction with CU-level weight (BCW)

[0182] – Bi-directional optical flow (BDOF)

[0183] – Decoder side motion vector refinement (DMVR)

[0184] – Geometric partitioning mode (GPM)

[0185] – Combined inter and intra prediction (CIIP)

[0186] The following text provides the details on those inter prediction methods specified in VVC.

[0187] Extended merge prediction

[0188] In VVC, the merge candidate list is constructed by including the following five types of candidates in order:

[0189] 1) Spatial MVP from spatial neighbour CUs

[0190] 2) Temporal MVP from collocated CUs

[0191] 3) History-based MVP from an FIFO table

[0192] 4) Pairwise average MVP

[0193] 5) Zero MVs.

[0194] The size of merge list is signalled in sequence parameter set header and the maximum allowed size of merge list is 6. For each CU code in merge mode, an index of best merge candidate is encoded using truncated unary binarization (TU) . The first bin of the merge index is coded with context and bypass coding is used for other bins.

[0195] The derivation process of each category of merge candidates is provided in this session. As done in HEVC, VVC also supports parallel derivation of the merge candidate lists (or called as merging candidate lists) for all CUs within a certain size of area.

[0196] Spatial candidates derivation

[0197] The derivation of spatial merge candidates in VVC is same to that in HEVC except the positions of first two merge candidates are swapped. A maximum of four merge candidates are selected among candidates located in the positions depicted in FIG. 11. The order of derivation is B0, A0, B1, A1 and B2. Position B2 is considered only when one or more than one CUs of position B0, A0, B1, A1 are not available (e.g. because it belongs to another slice or tile) or is intra coded. After the candidate at position A1 is added, the addition of the remaining candidates is subject to a redundancy check which ensures that candidates with same motion information are excluded from the list so that coding efficiency is improved. To reduce computational complexity, not all possible candidate pairs are considered in the mentioned redundancy check. Instead only the pairs linked with an arrow in FIG. 12 are considered and a candidate is only added to the list if the corresponding candidate used for redundancy check has not the same motion information.

[0198] In addition to the above-mentioned spatial candidates, the non-adjacent spatial merge  candidates as in JVET-L0399 are inserted after the TMVP in the regular merge candidate list. The pattern of spatial merge candidates is shown in FIG. 13. The distances between non-adjacent spatial candidates and current coding block are based on the width and / or height of current coding block. The line buffer restriction is not applied.

[0199] Temporal candidates derivation

[0200] In this step, only one candidate is added to the list. Particularly, in the derivation of this temporal merge candidate, a scaled motion vector is derived based on co-located CU belonging to the collocated reference picture. The reference picture list and the reference index to be used for derivation of the co-located CU is explicitly signalled in the slice header. The scaled motion vector for temporal merge candidate is obtained as illustrated by the dotted line in FIG. 14, which is scaled from the motion vector of the co-located CU using the POC distances, tb and td, where tb is defined to be the POC difference between the reference picture of the current picture and the current picture and td is defined to be the POC difference between the reference picture of the co-located picture and the co-located picture. The reference picture index of temporal merge candidate is set equal to zero.

[0201] The position for the temporal candidate is selected between candidates C0 and C1, as depicted in FIG. 15. If CU at position C0 is not available, is intra coded, or is outside of the current row of CTUs, position C1 is used. Otherwise, position C0 is used in the derivation of the temporal merge candidate.

[0202] History-based merge candidates derivation

[0203] The history-based MVP (HMVP) merge candidates are added to merge list after the spatial MVP and TMVP. In this method, the motion information of a previously coded block is stored in a table and used as MVP for the current CU. The table with multiple HMVP candidates is maintained during the encoding / decoding process. The table is reset (emptied) when a new CTU row is encountered. Whenever there is a non-subblock inter-coded CU, the associated motion information is added to the last entry of the table as a new HMVP candidate.

[0204] The HMVP table size S is set to be 6, which indicates up to 5 History-based MVP (HMVP) candidates may be added to the table. When inserting a new motion candidate to the table, a constrained first-in-first-out (FIFO) rule is utilized wherein redundancy check is firstly applied to find whether there is an identical HMVP in the table. If found, the identical HMVP is removed from the table and all the HMVP candidates afterwards are moved forward, and the identical HMVP is inserted to the last entry of the table.

[0205] HMVP candidates could be used in the merge candidate list construction process. The latest several HMVP candidates in the table are checked in order and inserted to the candidate list after the TMVP candidate. Redundancy check is applied on the HMVP candidates to the spatial or temporal merge candidate.

[0206] To reduce the number of redundancy check operations, the following simplifications are introduced:

[0207] 1. The last two entries in the table are redundancy checked to A1 and B1 spatial candidates, respectively.

[0208] 2. Once the total number of available merge candidates reaches the maximally allowed merge candidates minus 1, the merge candidate list construction process from HMVP is terminated.

[0209] Pair-wise average merge candidates derivation

[0210] Pairwise average candidates are generated by averaging predefined pairs of candidates in the existing merge candidate list, using the first two merge candidates. The first merge candidate is defined as p0Cand and the second merge candidate can be defined as p1Cand, respectively. The averaged motion vectors are calculated according to the availability of the motion vector of p0Cand and p1Cand separately for each reference list. If both motion vectors are available in one list, these two motion vectors are averaged even when they point to different reference pictures, and its reference picture is set to the one of p0Cand; if only one motion vector is available, use the one directly; if no motion vector is available, keep this list invalid. Also, if the half-pel interpolation filter indices of p0Cand and p1Cand are different, it is set to 0.

[0211] When the merge list is not full after pair-wise average merge candidates are added, the zero MVPs are inserted in the end until the maximum merge candidate number is encountered.

[0212] Merge estimation region

[0213] Merge estimation region (MER) allows independent derivation of merge candidate list for the CUs in the same merge estimation region (MER) . A candidate block that is within the same MER to the current CU is not included for the generation of the merge candidate list of the current CU. In addition, the updating process for the history-based motion vector predictor candidate list is updated only if (xCb + cbWidth) >> Log2ParMrgLevel is greater than xCb >> Log2ParMrgLevel and (yCb + cbHeight) >> Log2ParMrgLevel is great than (yCb >> Log2ParMrgLevel) and where (xCb, yCb) is the top-left luma sample position of the current CU in the picture and (cbWidth, cbHeight) is the CU size. The MER size is selected at encoder side and signalled as log2_parallel_merge_level_minus2 in the sequence parameter set.

[0214] Combined inter and intra prediction (CIIP)

[0215] In VVC, when a CU is coded in merge mode, if the CU contains at least 64 luma samples (that is, CU width times CU height is equal to or larger than 64) , and if both CU width and CU height are less than 128 luma samples, an additional flag is signalled to indicate if the combined inter / intra prediction (CIIP) mode is applied to the current CU. As its name indicates, the CIIP prediction combines an inter prediction signal with an intra prediction signal. The inter prediction signal in the CIIP mode Pinter is derived using the same inter prediction process applied to regular merge mode; and the intra prediction signal Pintra is derived following the regular intra prediction  process with the planar mode or TIMD. Then, the intra and inter prediction signals are combined using weighted averaging, where the weight value is calculated depending on the coding modes of the top and left neighbouring blocks (depicted in FIG. 16) as follows:

[0216] – If the top neighbor is available and intra coded, then set isIntraTop to 1, otherwise set isIntraTop to 0;

[0217] – If the left neighbor is available and intra coded, then set isIntraLeft to 1, otherwise set isIntraLeft to 0;

[0218] – If (isIntraLeft + isIntraTop) is equal to 2, then wt is set to 3;

[0219] – Otherwise, if (isIntraLeft + isIntraTop) is equal to 1, then wt is set to 2;

[0220] – Otherwise, set wt to 1.

[0221] The CIIP prediction is formed as follows: PCIIP= ( (4-wt) *Pinter+wt*Pintra+2) >>2     (3-43)

[0222] Proposed Invention

[0223] In addition to the introduced cross-component modes, for example, CCLM and / or MMLM and / or CCCM and / or slope adjustment of CCLM and / or GLM, several novel cross-component modes are proposed in some embodiments. For example, inverse LM and / or prediction-based LM. In this invention, one or more cross-component modes are used to generate cross-component prediction and the cross-component prediction is used to form the prediction for the current block which is coded with a non-cross-component intra mode. For example, the non-cross-component intra mode refers to any DC, planar, angular, TIMD, and / or DIMD modes. In one embodiment, the prediction of the current block, which is coded with the non-cross-component intra mode (for example, DC, planar, angular, TIMD, and / or DIMD modes) , is generated using one or more non-cross-component intra modes, one or more cross-component modes, or both. The cross-component modes in this invention can refer to any one or more mentioned cross-component modes and / or the cross-component modes in this invention are not limited to the mentioned cross-component modes. In one embodiment, the one or more cross-component modes are selected from a merge candidate list. In another embodiment, the cross-component prediction is generated using multiple cross-component modes. For example, the cross-component prediction is generated using MH CCLM. In some embodiments, in addition to forming the prediction for the current block which is coded with a non-cross-component intra mode, in some cases, the cross-component modes can be used to improve inter and / or IBC chroma prediction. For example, inter CCLM. In another embodiment, when generating the chroma prediction for the current block, template-derivation regression-based weighting is used.

[0224] Inverse LM

[0225] For the CCLM mode, luma reconstructed samples are used to derive the predictors in the chroma block. In this disclosure, inverse LM is proposed to use chroma information to derive the  predictors in the luma block. When supporting inverse LM, chroma are encoded / decoded (signalled / parsed) before luma.

[0226] In one embodiment, the chroma information refers to the chroma reconstructed samples. When deriving model parameters for inverse LM, reconstructed neighbouring chroma samples are used as X as neighbouring luma samples for model derivation in traditional CCLM and reconstructed neighbouring luma samples are used as Y as neighbouring chroma samples for model derivation in traditional CCLM. Moreover, the reconstructed samples in the chroma block (collocated to the current luma block) and the derived parameters are used to generate the predictors in the current luma block. An alternative way is that “information” in this embodiment can refer to predicted samples.

[0227] In one embodiment, chroma refers to cb and / or cr component (s) .

[0228] In one sub-embodiment, only one of cb’s and cr’s information is used.

[0229] In another sub-embodiment, the chroma information is from both cb and cr. For example, the neighbouring reconstructed cb and cr samples are weighted and then used as the inputs of deriving model parameters. In another example, the reconstructed cb and cr samples in the chroma block (collocated with the current luma block) are weighted and then used to derive the predictors in the current luma block.

[0230] In another embodiment, for the current luma block, the prediction (generated by the proposed inverse LM) can be combined with one or more hypotheses of predictions (generated by one or more other intra prediction modes) .

[0231] In one sub-embodiment, “other intra prediction modes” can refer to angular intra prediction modes, DC, planar, MIP, ISP, MRL, any other existing intra modes (supported in HEVC / VVC) and / or any other intra prediction modes.

[0232] In another sub-embodiment, when combining multiple hypotheses of predictions, weighting for each hypothesis can be fixed or adaptively changed. For example, equal weights are applied to each hypothesis. In another example, weights vary with neighbouring coding information, sample position, block width, height, prediction mode or area. Some examples of neighbouring coding information usage are shown as follows:

[0233] – One possible rule related to sample position is described as follows.

[0234] – When the sample position is further away from the reference samples, the weight for the prediction from other intra prediction modes decreases.

[0235] – Another possible rule related to neighbouring coding information is described as follows.

[0236] – When more neighbouring blocks (left, above, left-above, right-above, and / or left-bottom) are coded with a particular (e.g. Mode A) , the weight for the prediction from Mode A gets higher.

[0237] – Another possible rule related to sample position is described as follows.

[0238] – The current block is partitioned into several regions. The sample positions in the same region share the same weighting. If the current region is close to the reference L neighbour, the weight for prediction from other intra prediction modes is higher than the weight for prediction from CCLM. The following shows some possible ways to partition the current block.

[0239] – (ratio of width and height close to or exactly 1: 1) : The distance between the current region and the left and top reference L neighbour is considered.

[0240] – (width > n*height, where n can be any positive integer) : The distance between the current region and the one of the top and left reference L neighbour is considered. For example, the distance between the current region and the left reference L neighbour is considered.

[0241] – (height > n*width, where n can be any positive integer) : The distance between the current region and the one of top and left reference L neighbour is considered. For example, the distance between the current region and the top reference L neighbour is considered.

[0242] Prediction-based LM

[0243] A novel LM method is proposed in this section. Different from the CCLM in the overview, the derived model parameters are applied to the predicted samples for the first component to get the predicted samples for the second or third component. P (i, j) = a ·pred′L (i, j) + b

[0244] In one embodiment, the first component is luma.

[0245] In one sub-embodiment, the predicted samples for the first component are down-sampling with the downsampling filters. For example, the downsampling filters follow the original LM design. For another example, the downsampling filters will not access neighboring predicted / reconstructed samples. At the boundary of the current block, if the neighboring samples are required to be the input samples of downsampling filters, padded predicted values from the boundary of current block is used instead.

[0246] In another embodiment, the second component is Cb.

[0247] In another embodiment, the third component is Cr.

[0248] The following shows a flow of prediction-based inter CCLM, which means using cross-component prediction to form the inter chroma prediction.

[0249] – Improve inter chroma prediction by linearly predicting chroma samples from luma samples, as illustrated in FIG. 17

[0250] – The linear predicting method can be one of

[0251] – CCLM_LT, CCLM_L, CCLM_T

[0252] – MMLM_LT, MMLM_L, MMLM_T, and / or any cross-component modes.

[0253] – Steps:

[0254] – Step 1: Derive the linear model by neighboring luma and chroma reconstructed samples

[0255] – Step 2: Apply the derived linear model to current luma predicted samples to get current chroma predicted samples

[0256] – predCCLM (i, j) =α·predL′ (i, j) +β

[0257] – predL′ (i, j) : down-sampled current luma predicted samples

[0258] – At the boundary inside the current block, padding is used. For example, when the down-sampling process references any samples outside of the current luma predicted samples of the luma block, padding is used.

[0259] Multiple-hypothesis of CCLM Prediction (MH CCLM)

[0260] In addition to CCLM (for cb, deriving model parameters from luma and cb; for cr, deriving model parameters from luma and cr) , more CCLM variations appear. The following shows some examples.

[0261] – One variation is for cr:

[0262] – Deriving model parameters by using neighboring reconstructed samples of cb and cr as the inputs X as neighbouring luma samples for model derivation in traditional CCLM and Y as neighbouring chroma samples for model derivation in traditional CCLM of model derivation

[0263] – Then generating cr prediction by the derived model parameters and cb reconstructed samples.

[0264] – Another variation is MMLM.

[0265] – Another variation is that for cb (or cr) , deriving model parameters from multiple collocated luma blocks.

[0266] Each cross-component mode, for example, each CCLM method is suitable for different scenarios. For some complex feature, the combined prediction may bring better performance. Therefore, multiple-hypothesis CCLM is proposed to blend the predictions from multiple CCLM methods. The to-be-blended CCLM methods can be from (but are not limited to) the above mentioned CCLM methods and / or (*) which is shown as follows. (*) The one or more LM mode (s) (or cross-component mode (s) ) which will be used to generate the one or more hypotheses of predictions for LM assisted Angular / Planar Mode and / or inter CCLM and / or MH CCLM are selected from a pre-defined merging candidate list (called modelList) . One modelIdx is signalled to select a candidate from the candidate list (modelList) and the selected candidate is used for the current block. The modelList contains one or more candidates where each candidate refers to a  model (or cross-component mode) information. If only one candidate is in the list (the size of the list is only 1) , the modellIdx is not signalled and / or can be inferred as 0 or a default value.

[0267] A weighting scheme is used for blending.

[0268] In one embodiment, the weights for predictions from different to-be-blended CCLM methods are pre-defined at encoder and / or decoder.

[0269] In another embodiment, the weights for predictions from different to-be-blended CCLM methods vary based on the distance between the sample (or region) positions and the reference sample positions.

[0270] In another embodiment, the weights for predictions from different to-be-blended CCLM methods depend on the neighboring coding information.

[0271] In another embodiment, the weights for predictions from different to-be-blended CCLM methods depend on signalling. For example, a weight index is signaled / parsed. The code words can be fixed or vary adaptively. For example, the code words vary with template-based methods. The template refers to the spatial neighboring region of the current block.

[0272] The above embodiments can be combined. For example, the weights for predictions from different to-be-blended CCLM methods are pre-defined at encoder and / or decoder. The pre-defined weights vary with template-based methods. The template refers to the spatial neighboring region of the current block.

[0273] Adaptive Intra-mode Selection

[0274] With improvement of video coding, more coding tools are created. The syntax overhead of selecting a coding tool becomes an issue. Several straightforward methods can be used to reduce the syntax overhead.

[0275] – Example 1: A large block uses the same coding mode.

[0276] – Example 2: Multiple components (e.g. cb and cr) share the same coding mode.

[0277] However, with these straightforward methods, the accuracy / performance for intra prediction decreases. The possible reasons may be following:

[0278] – Intra prediction is highly related to neighboring reference samples. When the whole block uses a single intra prediction mode, the intra prediction mode may be suitable for those samples which are close to the reference samples but may not be good for those samples which are far away from the reference samples.

[0279] – when doing cr, the reconstructions of cb and luma were generated and can be used to choose the coding mode for cr.

[0280] In this section, it is proposed to adaptively change the intra prediction mode for one or more sample (s) or subblock (s) within the current block according to previous coding / decoding of components.

[0281] In one embodiment, with the reconstruction of the previously encoded / decoded components,  the performance for the different coding modes is decided. Then, the better mode is used for the rest component (s) (subsequently encoded and decoded component (s) ) . For example, for cb, the prediction from traditional intra prediction modes (e.g. angular intra prediction modes, DC, planar) is better than the prediction from LM mode. (E.g. “better” means similar to cb’s reconstruction. ) Then, the traditional intra prediction mode is preferable for cr.

[0282] In one sub-embodiment, the proposed method can be subblock based. For example, a chroma block is divided into several sub-blocks. For each subblock, if for cb, the subblock’s prediction from LM mode is better than the subblock’s prediction from traditional intra prediction modes (e.g. angular intra prediction modes, DC, planar) . (e.g. “better” means similar to cb’s reconstruction and reducing the cb’s residual) , then the LM mode is preferable for the corresponding subblock of cr. (An example is shown in FIG. 18)

[0283] In another embodiment, the adaptive changing rule can be performed at both encoder and / or decoder and doesn’t need additional syntax.

[0284] CCLM for Inter Block (CCLM for inter block can also be named as inter CCLM and “CCLM” can be extended to any LM mode (or any cross-component mode, for example, (*) ) or replaced with any LM mode (or any cross-component mode, for example, (*) ) )

[0285] CCLM is used for intra blocks to improve chroma intra prediction. For an inter block, chroma prediction may be not as accurate as luma. Possible reasons are listed below:

[0286] – Motion vectors for chroma components are inherited from luma, (Chroma doesn't have its own motion vectors. )

[0287] – Less coding tools are designed to improve inter chroma prediction.

[0288] Therefore, an alternative way to apply CCLM to inter blocks is proposed. With this proposed method, chroma prediction for inter block can be improved according to luma. (*) is shown as follows. (*) The one or more LM mode (s) (or cross-component mode (s) ) which will be used to generate the one or more hypotheses of predictions for LM assisted Angular / Planar Mode and / or inter CCLM and / or MH CCLM are selected from a pre-defined merging candidate list (called modelList) . One modelIdx is signalled to select a candidate from the candidate list (modelList) and the selected candidate is used for the current block. The modelList contains one or more candidates where each candidate refers to a model (or cross-component mode) information. If only one candidate is in the list (the size of the list is only 1) , the modellIdx is not signalled and / or can be inferred as 0 or a default value.

[0289] In one embodiment, for chroma components, in addition to original inter prediction (generated by motion compensation which can be uni-prediction and / or bi-prediction, or which can be only uni-prediction) , one or more hypotheses of predictions (generated by CCLM and / or any other LM modes and / or or any cross-component mode and / or (*) ) are used to form the current prediction.

[0290] In one sub-embodiment, the current prediction is the weighted sum of inter prediction and  cross-component prediction, for example, CCLM prediction. Weights are designed according to neighboring coding information, sample position, block width, height, mode or area.

[0291] – For example, for a small block (area < threshold) , weights for CCLM prediction are higher than weights for inter prediction.

[0292] – For another example, when most neighboring coded blocks are intra blocks, weights for CCLM prediction are higher than weights for inter prediction.

[0293] – For another example, weights are fixed values for the whole block.

[0294] In another embodiment, the inter prediction can be generated by any inter mode mentioned in the above introduction / documents. For example, the inter mode can be regular merge mode. For another example, the inter mode can be CIIP mode. For another example, the inter mode can be CIIP PDPC. For another example, the inter mode can be GPM or any GPM variations (like GPM intra which uses intra prediction for one of the GPM partitions) .

[0295] In one sub-embodiment, regular merge mode is a merge candidate selected from the merge candidate list with a signalled merge index.

[0296] In another sub-embodiment, regular merge mode can be MMVD.

[0297] In another sub-embodiment, the LM mode used in inter CCLM is prediction-based LM.

[0298] In another embodiment, inter CCLM is supported only when any one (or more than one) of the pre-defined inter mode is used for the current block, or inter CCLM is supported when any one (or more than one) of the enabling flag (s) of the pre-defined inter mode is (are) indicated as enabled. The meaning of supporting inter CCLM is that the prediction of the current block can be chosen between applying inter CCLM or not applying inter CCLM.

[0299] When applying inter CCLM, the prediction of current block is generated by

[0300] – In one sub-embodiment: blending one or more hypotheses of predictions (generated by CCLM and / or any other LM modes and / or any cross-component modes) with original inter prediction

[0301] – Blending the chroma prediction for existing inter mode and the prediction from LM

[0302] – Blending: Predfinal = (wInter *PredInter + wLM *PredLM + 2) >> 2

[0303] – Weighting rule: wInter and wLM, for example

[0304] – If both top and left are intra, (wInter, wLM) = (1, 3)

[0305] – Otherwise, if one of top and left is intra, (wInter, wLM) = (2, 2)

[0306] – Otherwise, (wInter, wLM) = (3, 1)

[0307] – For another example, the weighting follows CIIP weighting.

[0308] – For example, predInter = inter prediction after OBMC (if OBMC is used)

[0309] – For another example, predInter = inter prediction before OBMC (OBMC can be applied after blending)

[0310] – In another sub-embodiment: replacing original inter prediction with one or more  hypotheses of predictions (generated by CCLM and / or any other LM modes and / or any cross-component modes)

[0311] When not applying inter CCLM, the prediction of current block is from original inter prediction.

[0312] In another embodiment, the choice between applying inter CCLM or not applying inter CCLM depends on signaling.

[0313] In one sub-embodiment, a flag is signalled in the bitstream to indicate whether to apply inter CCLM or not. For example, the flag is context coded. For another example, only one context is used to encode and / or decode the flag. For another example, multiple contexts are used to encode and / or decode the flag and the selection of the contexts depends on block width, block height, block area, or neighboring mode information.

[0314] In another sub-embodiment, when the signaling indicates to apply inter CCLM, additional signaling is used to select one or more than one LM from total candidate LM modes (e.g. CCLM_LT, CCLM_L, CCLM_T, MMLM_L, MMLM_T, MMLM_L, or any subset / extension from the above mentioned modes) . For example, if one LM mode is selected, the LM prediction is generated by the selected one LM. For another example, if more than one LM modes are selected the LM prediction is generated by blending hypotheses of predictions from multiple LM modes. For another example, the additional signaling refers to an index in the bitstream which can be truncated unary coding with and / or without contexts.

[0315] In another sub-embodiment, when the signaling indicates to apply inter CCLM, one or more than one LM from total candidate LM modes (e.g. CCLM_LT, CCLM_L, CCLM_T, MMLM_L, MMLM_T, MMLM_L, or any subset / extension from the above mentioned modes) is (are) implicitly selected (or predefined) to be used in inter CCLM.

[0316] – For example, when (*) is used to generate the cross-component prediction, one candidate is selected from the modellIdx implicitly.

[0317] – For example, CCLM_LT is used to generate LM prediction for inter CCLM. For example, MMLM_LT is used to generate LM prediction for inter CCLM.

[0318] – For another example, the predefined rule depends on block width, block height, or block area.

[0319] – Boundary matching setting (used as the predefined rule) can be applied only when the block width, block height, or block area is larger than a threshold.

[0320] – Boundary matching setting (used as the predefined rule) can be applied only when the block width, block height, or block area is smaller than a threshold.

[0321] – When the block width, block height, or block area is smaller than a threshold, the selected LM mode (s) is (are) inferred as any one (more than one) LM mode (s) from total  candidate LM modes.

[0322] – The selected LM mode is fixed as CCLM_LT.

[0323] – The selected LM mode is fixed as MMLM_LT.

[0324] – For another example, the predefined rule depends on boundary matching setting. (Details of boundary matching setting can be found in the section of boundary matching setting. The candidate mode used in the section of boundary matching setting refers to each candidate LM mode for inter CCLM. The prediction from a candidate mode used in the section of boundary matching setting refers to the prediction generated by each candidate LM mode or refers to the blended prediction from each candidate LM mode and original inter. )

[0325] In another embodiment, inter CCLM can be supported only when the size conditions of the current block are satisfied.

[0326] In one sub-embodiment, the size condition is that the block width, block height, or block area is larger than a pre-defined threshold. The predefine threshold can a positive integer like 8, 16, 32, 64, 128, 256, …. For example, when both the block width and block height of the current chroma block are larger than the pre-defined threshold, the size condition is satisfied. For example, when any one of the block width and block height of the current chroma block is larger than the pre-defined threshold, the size condition is satisfied.

[0327] In another sub-embodiment, the size condition is that the block width, block height, or block area is smaller than a pre-defined threshold. The predefine threshold can a positive integer like 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096…. For example, when both the block width and block height of the current chroma block are smaller than the pre-defined threshold, the size condition is satisfied.

[0328] In another embodiment, the inter mode used in the inter block depends on an enabling flag. For example, if the inter mode is regular merge, the enabling flag is called as regular merge flag. For another example, if the inter mode is CIIP, the enabling flag is called as CIIP flag. For another example, if the inter mode is CIIP PDPC, the enabling flag is called as CIIP PDPC Flag. For another example, the enabling flag indicated as enabled (1) means the corresponding inter mode is applied to the current block. For another example, the enabling flag indicated as disabled (0) means the corresponding inter mode is not applied to the current block. For another example, the enabling flag is signalled in the bitstream and / or inferred in some cases. For another example, the signaling of the enabling flag depends on block width, block height, or block area.

[0329] In another embodiment, the prediction from inter can be adjusted by the neighboring reconstructed samples and a pre-defined weighting scheme. For example, when the current block is merge, the prediction from merge is blended with the neighboring reconstructed samples. For another example, the proposed scheme is enabled depending on CIIP PDPC flag. (The CIIP PDPC flag may be signalled when the CIIP flag is indicated as enabled. ) For another example, the  pre-defined weighting scheme follows PDPC weighting.

[0330] (Details can be found in the following)

[0331] – Inter-predictor of regular merge mode is refined using the above Rx, -1 and left R-1, y reconstructed samples, as illustrated in FIG. 19

[0332] – Derivation of nScale and wT &wL are the same as in intra planar mode

[0333] – wT = 32 >> ( (y’<<1) >> nScale)

[0334] – wL = 32 >> ( (x’<<1) >> nScale)

[0335] – nScale = (floorLog2 (width) + floorLog2 (height) -2) >> 2;

[0336] – CIIP PDPC:

[0337] – If LMCS is enabled, inter-predictor is computed in mapped domain

[0338] – Pred (x, y) = ( ( ( (wT×Rx, -1+wL×R-1, y+32) >>6) <<6) + (64-wT-wL) ×Fwd (predInter (x, y) ) +32) >>6

[0339] – Otherwise, inter-predictor is computed in original domain

[0340] – Pred (x, y) = ( ( ( (wT×Rx, -1+wL×R-1, y+32) >>6) <<6) + (64-wT-wL) ×predInter (x, y) +32) >>6

[0341] – When CIIP flag is true, CIIP PDPC flag is further signaled to indicate whether to use CIIP PDPC

[0342] In another embodiment, original inter prediction (generated by motion compensation) is used for luma and the predictions of chroma components are generated by CCLM and / or any other LM modes.

[0343] In one sub-embodiment, the current CU is viewed as an inter CU, intra CU, or a new type of prediction mode (neither intra nor inter) .

[0344] The above proposed methods can be also applied to IBC blocks. ( “inter” in this section can be changed to IBC. ) That is, for chroma components, the block vector prediction can be combined or replaced with CCLM (or any cross-component mode) prediction.

[0345] Boundary-matching setting

[0346] When boundary-matching setting is used, a boundary matching cost for a candidate mode refers to the discontinuity measurement (including top boundary matching and / or left boundary matching) between the current prediction (the predicted samples within the current block) , generated from the candidate mode, and the neighboring reconstruction (the reconstructed samples within one or more neighboring blocks) , as illustrated in FIG. 20. Top boundary matching means the comparison between the current top predicted samples and the neighboring top reconstructed samples, and left boundary matching means the comparison between the current left predicted samples and the neighboring left reconstructed samples.

[0347] In one embodiment, the candidate mode with the smallest boundary matching cost is applied to the current block.

[0348] In another embodiment, the boundary matching cost for Cb and Cr can be added to be the boundary matching cost for chroma, so the selected candidate mode for Cb and Cr will be shared. (That is the selected candidate mode for Cb and Cr will be the same. )

[0349] In another embodiment, the selected candidate modes for Cb and Cr depend on the boundary matching costs for Cb and Cr, respectively, so the selected candidate modes for Cb and Cr can be the same or different.

[0350] In another embodiment, a pre-defined subset of the current prediction is used to calculate the boundary matching cost. n line (s) of top boundary within the current block and / or m line (s) of left boundary within the current block are used. (Moreover, n2 line (s) of top neighboring reconstruction and / or m2 line (s) of left neighboring reconstruction are used. )

[0351] – Here is an example of calculating a boundary matching cost. (n = 2, m = 2, n2 = 2, m2 = 2)

[0352] – where the weights (a, b, c, d, e, f, g, h, i, j, k, l) can any positive integers such as a = 2, b = 1, c = 1, d = 2, e = 1, f = 1, g = 2, h = 1, i = 1, j = 2, k = 1, l = 1.

[0353] – Here is another example of calculating a boundary matching cost. (n = 2, m = 2, n2 = 1, m2 = 1)

[0354] – where the weights (a, b, c, g, h, i) can any positive integers such as a = 2, b = 1, c = 1, g = 2, h = 1, i = 1.

[0355] – Here is another example of calculating a boundary matching cost. (n = 1, m = 1, n2 = 2, m2 = 2)

[0356] – where the weights (d, e, f, j, k, l) can any positive integers such as d = 2, e = 1, f = 1, j = 2, k = 1, l = 1.

[0357] – Here is another example of calculating a boundary matching cost. (n = 1, m = 1, n2 = 1, m2 = 1)

[0358] – where the weights (a, c, g, i) can any positive integers such as a = 1, c = 1, g = 1, i = 1.

[0359] – Here is another example of calculating a boundary matching cost. (n = 2, m = 1, n2 = 2, m2 = 1)

[0360] – where the weights (a, b, c, d, e, f, g, i) can any positive integers such as a = 2, b = 1, c = 1, d = 2, e = 1, f = 1, g = 1, i = 1.

[0361] – Here is another example of calculating a boundary matching cost. (n = 1, m = 2, n2 = 1, m2 = 2)

[0362] – where the weights (a, c, g, h, i, j, k, l) can any positive integers such as a = 1, c = 1, g = 2, h = 1, i = 1, j = 2, k = 1, l = 1.

[0363] (The following examples for n and m can also be applied to n2 and m2. )

[0364] For another example, n can be any positive integer such as 1, 2, 3, 4, etc.

[0365] For another example, m can be any positive integer such as 1, 2, 3, 4, etc.

[0366] For another example, n and / or m vary with block width, height, or area.

[0367] – One possible way is that, for a larger block (area > threshold2) , m gets larger.

[0368] – Threshold2 = 64, 128, or 256.

[0369] – When area > threshold2, m is increased to 2. (Originally, m is 1. )

[0370] – When area > threshold2, m is increased to 4. (Originally, m is 1 or 2. )

[0371] – Another possible way is that, for a taller block (height > thrershold2 *width) , m gets larger and / or n gets smaller.

[0372] – Threshold2 = 1, 2, or 4.

[0373] – When height > thrershold2 *width, m is increased to 2. (Originally, m is 1. )

[0374] – When height > thrershold2 *width, m is increased to 4. (Originally, m is 1 or 2. )

[0375] – Another possible way is that, for a larger block (area > threshold2) , n gets larger.

[0376] – Threshold2 = 64, 128, or 256.

[0377] – When area > threshold2, n is increased to 2. (Originally, n is 1. )

[0378] – When area > threshold2, n is increased to 4. (Originally, n is 1 or 2. )

[0379] – Another possible way is that, for a wider block (width > thrershold2 *height) , n gets larger and / or m gets smaller.

[0380] – Threshold2 = 1, 2, or 4.

[0381] – When width > thrershold2 *height, n is increased to 2. (Originally, n is 1. )

[0382] – When width > thrershold2 *height, n is increased to 4. (Originally, n is 1 or 2. )

[0383] LM assisted Angular / Planar Mode

[0384] For traditional intra prediction modes (e.g. angular intra prediction modes, DC, and planar) , the reference samples are from top and left neighboring reconstructed samples. Therefore, the accuracy of intra prediction decreases for right-bottom samples within the current block. In this section, LM (or cross-component mode (s) ) is used to improve the prediction from traditional intra prediction modes.

[0385] In one embodiment, the current block’s prediction is formed by a weighted sum of one or more hypotheses of predictions from traditional intra prediction mode (s) and one or more hypotheses of predictions from LM mode (s) (or cross-component mode (s) ) .

[0386] – In one sub-embodiment, equal weights are applied to both.

[0387] – In another sub-embodiment, weights vary with neighboring coding information, sample position, block width, height, mode or area.

[0388] – For example, when the sample position is far away from the top-left region, the weight for the prediction from traditional intra prediction modes decays.

[0389] – More weighting schemes can reference “inverse LM” section.

[0390] The following shows some examples.

[0391] – One possible rule related to sample position is described as follows.

[0392] – When the sample position is further away from the reference samples, the weight for the prediction from other intra prediction modes (non -cross-component modes) decreases.

[0393] – Another possible rule related to neighbouring coding information is described as follows.

[0394] – When more neighbouring blocks (left, above, left-above, right-above, and / or left-bottom) are coded with a particular (e.g. Mode A) , the weight for the prediction from Mode A gets higher. For example, Mode A refers to a specific cross-component mode such as CCCM_LT or a specific cross-component family such as CCCM family (including CCCM_LT, CCCM_L, and / or CCCM_T) and / or CCLM family (including CCLM_LT, CCLM_L, and / or CCLM_T) and / or MMLM family (including MMLM_LT, MMLM_L, and / or MMLM_T) . A weighting set is pre-defined to include multiple weighting candidates such as {1, 3} , {3, 1} , and / or equal weighting {2, 2} for one  prediction from a traditional intra prediction mode and the other prediction from a cross-component mode. When all or most of the neighbouring blocks are coded by Mode A, the weighting candidate with a higher weight for the prediction from a cross-component mode is used. When only partial or one of the neighbouring blocks are coded by Mode A, the weighting candidate with an equal weighting is used. When few or none of the neighbouring blocks are coded by Mode A, the weighting candidate with a smaller weight for the prediction from a cross-component mode is used. For example, the neighbouring blocks include any subset of the coded blocks which are spatially adjacent to the top boundary or left boundary of the current block. In this case, the neighbouring blocks may refer to the top neighbouring block (located on the top of the top-right corner of the current block) and the left neighbouring block (located on the left of the bottom-left corner of the current block) . For another example, the neighbouring blocks include any subset of the coded blocks located in a pre-defined range spatially nearing the top boundary or left boundary of the current block. In this case, the neighbouring blocks can be adjacent or non-adjacent to the current block.

[0395] – Another possible rule related to sample position is described as follows.

[0396] – The current block is partitioned into several regions. The sample positions in the same region share the same weighting. If the current region is close to the reference L neighbour, the weight for prediction from other intra prediction modes (non-cross-component modes) is higher than the weight for prediction from CCLM (or a cross-component mode) . The following shows some possible ways to partition the current block.

[0397] – (ratio of width and height close to or exactly 1: 1) : The distance between the current region and the left and top reference L neighbour is considered.

[0398] – (width > n*height, where n can be any positive integer) : The distance between the current region and the top reference L neighbour is considered.

[0399] – (height > n*width, where n can be any positive integer) : The distance between the current region and the left reference L neighbour is considered.

[0400] Template-derivation Regression-based Weighting for Chroma Prediction Generation

[0401] The current chroma block’s prediction is formed by a weighted sum using template-derivation regression-based weighting. Specifically, the prediction of the current bock is formed by combining one or more proposed source terms and a proposed weighting setting. As shown in the expression (1) , pred (i, j) is a target (predicted) sample in the current block which can be obtained after our proposed mechanism, sourceTermSet0 includes one or more source terms from luma component, sourceTermSet1 includes one or more source terms from chroma components, and biasTermSet includes one or more bias terms.

[0402] The expression (1) is just an example and our proposed mechanism can use any subset or extension of sourceTermSet0, sourceTermSet1, and biasTermSet. Each sample or any subset of samples in the current block gets its target (predicted) sample according to the expression (1) . In the following, the content of sourceTermSet0 is described in some embodiments, the content of sourceTermSet1 is described in some embodiments, the content of biasTerm is described in some embodiments, and the predictor derivation using the proposed source terms and the proposed weighting setting is described in some embodiments. Examples for fusion of chroma intra prediction modes (or named chroma fusion mode) , with our proposed mechanism are shown in some embodiments. pred (i, j) = (sourceTermSet0 (i, j) + sourceTermSet1 (i, j) + …+ biasTerm) with the proposed  weighting setting where (i, j) is a sample position in the current block. (1)

[0403] Some embodiments are for content of sourceTermSet0 (i, j) .

[0404] SourceTermSet0 (i, j) includes one or more luma source terms denoted as sourceTerm00, sourceTerm01, …, and / or sourceTerm0n-1. The value of n means the number of taps for the source term set. In one embodiment, the source terms can be linear terms and / or non-linear terms, only linear terms, and / or only non-linear terms. In another embodiment, n is a pre-defined value such as 1, 2, …or any positive integer. For example, the pre-defined value is fixed in the standard. For another example, the pre-defined value is smaller than or equal to a maximum threshold indicated by a syntax in the bitstream where the syntax is at block, CTU, CTB, slice, tile, picture, sps, pps, picture, and / or sequence level. In another embodiment, n is determined by coding information of the current block and / or sample position (i, j) . For example, when the current block is coded by a specific coding tool, n is (1) fixed at a pre-defined value, (2) determined according to block width, block height, block area, coding information and / or sample information for the current block, (3) determined according to coding information and / or sample information for the adjacent / non-adjacent spatial neighboring reference region of the current block, and / or (4) determined according to coding information and / or sample information for the temporal reference region of the current block. In another embodiment, the pattern of the n taps refers to a pattern defined as any subset of a window region M x N around (referring to excluding) or including the position (iL, jL) , as illustrated in FIG. 21. If the target sample is chroma (cb or cr) , (iL, jL) is the collocated luma position from (i, j) .

[0405] For one example, only the center (iL, jL) of the window is used.

[0406] For another example of the pattern being 5x5 cross: (including or not excluding (iL, jL) ) , as illustrated in FIG. 22. For another example of the pattern being 5x5 diamond: (including or not excluding (iL, jL) ) , as illustrated in FIG. 23.

[0407] In another embodiment, different taps refer to the source terms from different prediction modes or different mode types. In one sub-embodiment, one or more taps are from mode type intra,  another one or more taps are from mode type inter, and / or another one or more taps are from mode type IBC. In another sub-embodiment, one or more taps are from MIP intra prediction modes, another one or more taps are from non-MIP intra prediction modes.

[0408] For a source term in the source term set, the following embodiments are used to determine generation of source content.

[0409] In one embodiment, the source content is based on a predicted sample generated by a prediction mode and / or a reconstructed sample generated based on the predicted sample by a prediction mode and a reconstructed residual.

[0410] In one sub-embodiment, the prediction mode belongs to mode type intra, mode type inter, or a third mode type (e.g. mode type IBC) . For an example of the prediction mode belonging to mode type intra, the prediction mode refers to planar, DC, horizontal, vertical, other angular (directional) prediction mode, any intra prediction modes specified in 67 / 131 intra prediction mode domain, wide-angle intra prediction (WAIP) modes, TIMD derived modes, DIMD derived modes, Intra template matching prediction (intraTMP) , and / or any intra prediction modes specified in the standard. For another example of the prediction mode belonging to mode type inter, the prediction mode refers to skip mode, regular merge modes, MMVD modes, affine modes, sbTMVP, AMVR, any merge mode specified in the standard, any AMVP (referring to inter non-merge) mode specified in the standard, or any inter mode specified in the standard. For another example of the prediction mode belonging to mode type IBC, the prediction mode refers to IBC merge, IBC AMVP, or any IBC mode specified in the standard. Note that any possible combination between the prediction mode and the mode type is supported in this invention. That is, any mentioned prediction mode can be under any mode type according to the standard definition. For example, following the standard definition, if IBC mode belongs to mode type inter, the prediction mode belongs to mode type inter in the embodiments can refer to an IBC mode.

[0411] In another sub-embodiment, the source content is the filtered source or the source with any pre-processing. For example, the source content is the predicted / reconstructed sample after filtering with a pre-defined model or filter.

[0412] In another sub-embodiment, the source content is gradient information from the predicted samples and / or reconstructed samples. If the target sample (i, j) belongs to chroma and gradient information of the collocated luma sample (as the center circle) is calculated with any one of the Sobel filters illustrated in FIG. 24 or any pre-defined filter. Each value around the center circle is multiplied with the corresponding predicted / reconstructed samples in the collocated luma block and then added with each other to form the gradient information for the source term of the target sample (i, j) .

[0413] In another sub-embodiment, if the target sample belongs to a chroma sample (cb or cr) , the predicted sample and / or the reconstructed sample is located within the collocated (luma) block from  the current (chroma) block. The predicted sample and / or the reconstructed sample is treated as an initial sample and used as source content to generate the target sample.

[0414] In another embodiment, the values of the source terms are further adjusted (added or subtracted) by a pre-defined offset. If the target sample refers to chroma, several embodiments are used to generate the offset of the source term. In one sub-embodiment, the offset is determined as the averaging value of each (or any subset of) predicted or reconstructed samples in the collocated luma block from the current (chroma) block or in the reference region of the collocated luma block. In another sub-embodiment, the offset is determined as a sample value of a pre-defined predicted or reconstructed samples in the collocated luma block or in the reference region of the collocated luma block. For example, the sample value is from the top-left position (just outside of the top-left corner of the collocated luma block) .

[0415] In another embodiment, the source term may further include location information. For example, if the target sample refers to chroma (not luma) , the horizontal location of the collocated luma block from the sample (i, j) is used in a source term and the vertical location of the collocated luma block from the sample (i, j) is used in a source term.

[0416] Some embodiments are for content of sourceTermSet1 (i, j) .

[0417] SourceTermSet1 (i, j) includes one or more chroma (cb or cr) source terms denoted as sourceTerm10, sourceTerm11, …, and / or sourceTerm1m-1. The value of m means the number of taps for the source term set. In one embodiment, the source terms can be linear terms and / or non-linear terms, only linear terms, and / or only non-linear terms. In another embodiment, m is a pre-defined value such as 1, 2, …or any positive integer. For example, the pre-defined value is fixed in the standard. For another example, the pre-defined value is smaller than or equal to a maximum threshold indicated by a syntax in the bitstream where the syntax is at block, CTU, CTB, slice, tile, picture, sps, pps, picture, and / or sequence level. In another embodiment, m is determined by coding information of the current block and / or sample position (i, j) . For example, when the current block is coded by a specific coding tool, m is (1) fixed at a pre-defined value, (2) determined according to block width, block height, block area, coding information and / or sample information for the current block, (3) determined according to coding information and / or sample information for the adjacent / non-adjacent spatial neighboring reference region of the current block, and / or (4) determined according to coding information and / or sample information for the temporal reference region of the current block. In another embodiment, the pattern of the m taps refers to a pattern defined as any subset of a window region M2 x N2 around (referring to excluding) or including the position (iC, jC) , as illustrated in FIG. 25. If the target sample is chroma (cb or cr) , (iC, jC) is (i, j) .

[0418] For one example, only the center (iC, jC) of the window is used.

[0419] For another example of the pattern being 5x5 cross: (including or not excluding (iC, jC) ) , as illustrated in FIG. 26. For another example of the pattern being 5x5 diamond: (including or not  excluding (iC, jC) ) , as illustrated in FIG. 27.

[0420] In another embodiment, different taps refer to the source terms from different prediction modes or different mode types. In one sub-embodiment, one or more taps are from mode type intra, another one or more taps are from mode type inter, and / or another one or more taps are from mode type IBC. In another sub-embodiment, one or more taps are from MIP intra prediction modes, another one or more taps are from non-MIP intra prediction modes.

[0421] For a source term in the source term set, the following embodiments are used to determine generation of source content.

[0422] In one embodiment, the source content is based on a predicted sample generated by a prediction mode and / or a reconstructed sample generated based on the predicted sample by a prediction mode and a reconstructed residual.

[0423] In one sub-embodiment, the prediction mode belongs to mode type intra, mode type inter, or a third mode type (e.g. mode type IBC) . For an example of the prediction mode belonging to mode type intra, the prediction mode refers to planar, DC, horizontal, vertical, other angular (directional) prediction mode, any intra prediction modes specified in 67 / 131 intra prediction mode domain, wide-angle intra prediction (WAIP) modes, TIMD derived modes, DIMD derived modes, intraTMP, DBV, any one of cross-component modes (CCLM (including CCLM_LT, CCLM_L, and / or CCLM_T) , MMLM (including MMLM_LT, MMLM_L, and / or MMLM_T) , CCCM (including CCCM_LT, CCCM_L, and / or CCCM_T) , GLM, and / or any variation / extension of the above modes) , and / or any intra prediction modes specified in the standard. For another example of the prediction mode belonging to mode type inter, the prediction mode refers to skip mode, regular merge modes, MMVD modes, affine modes, sbTMVP, AMVR, any merge mode specified in the standard, any AMVP mode specified in the standard, or any inter mode specified in the standard. For another example of the prediction mode belonging to mode type IBC, the prediction mode refers to IBC merge, IBC AMVP, or any IBC mode specified in the standard. Note that any possible combination between the prediction mode and the mode type is supported in this invention. That is, any mentioned prediction mode can be under any mode type according to the standard definition. For example, following the standard definition, if IBC mode belongs to mode type inter, the prediction mode belongs to mode type inter in the embodiments can refer to an IBC mode.

[0424] In another sub-embodiment, the source content is the filtered source or the source with any pre-processing. For example, the source content is the predicted / reconstructed sample after filtering with a pre-defined model or filter.

[0425] In another sub-embodiment, the source content is gradient information from the predicted samples and / or reconstructed samples.

[0426] In another sub-embodiment, if the target sample belongs to a chroma sample, the predicted sample and / or the reconstructed sample is located within the current block.

[0427] In another embodiment, the values of the source terms are further adjusted (added or subtracted) by a pre-defined offset. If the target sample refers to chroma, several embodiments are used to generate the offset of the source term. In one sub-embodiment, the offset is determined as the averaging value of each (or any subset of) predicted or reconstructed samples in the current block or in the reference region of the current block. In another sub-embodiment, the offset is determined as a sample value of a pre-defined predicted or reconstructed samples in the current block or in the reference region of the current block. For example, the sample value is from the top-left position (just outside of the top-left corner of the current block) .

[0428] In another embodiment, the source term may further include location information. For example, if the target sample refers to chroma, the horizontal location (i) of (i, j) is used in a source term and the vertical location (j) of (i, j) is used in a source term.

[0429] Some embodiments are for content of biasTerm

[0430] Bias term is any pre-defined value. In one embodiment, the bias term is a midValue according to bitDepth specified in the standard. For example, the bias term is set as (1<< (bitDept -1) ) . In another embodiment, the bias term is the same for each sample in the current block. That is, the bias term is regardless of the position (i, j) .

[0431] Some embodiments are for predictor derivation for sample (i, j)

[0432] Proposed weighting setting:

[0433] The proposed weighting setting is to estimate the relationship (minimize the distortion) between the combining results of those source terms and the reconstructed samples on the reference region of the current block (for example, a current chroma block) by a pre-defined regression method, to generate a weighting (referring to model parameters) according to the regression method, and then to apply the weighting on the source terms to get the target (predicted) samples in the current block. In one embodiment, the pre-defined regression method can be linear minimum mean square error (LMMSE) method as CCLM or can be any unified method with the regression method used for CCLM. In another embodiment, the pre-defined regression method can be the LDL decomposition method as CCCM or can be any unified method with the regression method used for CCCM. In another embodiment, the pre-defined regression method can be Gaussian elimination.

[0434] In one embodiment, the reference region of the current block is the spatial neighboring region of the current block. The spatial neighboring region of the current block includes above reference region, left reference region, above-left reference region, and / or any subset of the above, as illustrated in FIG. 28. The size of the above reference region is AW x AH, the size of the left reference region is LW x LH, and the size of the above-left reference is ALW x ALH, where

[0435] – AW = block width of the current block (W) , k*W, W + block height of the current block (H) , any pre-defined value, or any adaptive value depending on the block position, block width,  block height, and / or block area of the current block.

[0436] – AH or ALH = H, any pre-defined value (1, 2, 4, …) , or any adaptive value depending on the block position, block width, block height, and / or block area of the current block.

[0437] – LW or ALW = W, any pre-defined value (1, 2, 4, …) , or any adaptive value depending on the block position, block width, block height, and / or block area of the current block.

[0438] – LH = H, k*H, H + W, any pre-defined value, or any adaptive value depending on the block position, block width, block height, and / or block area of the current block.

[0439] Different example expressions:

[0440] Example: predC (i, j) =α0·G (i, j) +α1·rec′L (i, j) +α2·bias

[0441] In this expression of the target sample being chroma, sourceTermSet0 includes two taps as G (i, j) and rec’L (i, j) , sourceTermSet1 is not used, and biasTerm refers to another one tap as midValue. G (i, j) is the gradient information generated from a selected gradient filter and rec′L (i, j) is down-sampled reconstructed luma sample. The model parameters (a0, a1, and a2) of the weighting are derived based on

[0442] – Using six rows and columns adjacent samples as the reference region of the current block

[0443] – Using the LDL decomposition method as the regression method

[0444] Example: predC (i, j) =α0·C+α1·Gy (i, j) +α2·Gx (i, j) +α3·Y (i, j) +α4·X (i, j) + α5·P (i, j) + α6·bias

[0445] In this expression (shown in JVET-AC0054) of the target sample being chroma, sourceTermSet0 includes six taps as C, Gy (i, j) , Gx (i, j) , Y, X, and P, sourceTermSet1 is not used, and biasTerm refers to another one tap as midValue.

[0446] – Gy (i, j) is the gradient information generated from a vertical gradient filter.

[0447] – Gx (i, j) is the gradient information generated from a horizontal gradient filter.

[0448] – Y and X are the vertical and horizontal locations of the collocated luma sample.

[0449] – Using six rows and columns adjacent samples as the reference region of the current block

[0450] – Using the LDL decomposition method as the regression method

[0451] Example: predC (i, j) =α0·Pintra_0 (i, j) +…+ αs-1·Pintras-1 (i, j) +αs·Pibc_0 (i, j) +…+ αs+t-1·Pibc_t-1 (i, j) + αs+t·bias

[0452] In this expression of the target sample being chroma for an IBC (or DBV) coded block, sourceTermSet1 includes s taps as Pintra0 to Pintras-1 (or named as Pintra_0 to P_intra_s-1) and t taps as Pibc0 to Pibct-1 (or named as Pibc_0 to P_ibc_t-1) , sourceTermSet0 is not used, and biasTerm refers to another one tap as midValue.

[0453] – Pintra_s-1 (i, j) is the predicted sample from the s-1 mode which is selected from all or any subset of the candidate intra prediction modes for the coding mode.

[0454] – Pibc_t-1 (i, j) is the predicted sample from the t-1 mode which is selected from all or any subset of the candidate IBC prediction modes for the coding mode.

[0455] In one embodiment, s is set 1 when only one candidate intra prediction modes for the coding mode. For example, when the coding mode is IBC (or Direct Block Vector, DBV) , only one candidate intra prediction mode (planar or TIMD derived intra prediction mode or chroma DM mode or DIMD derived intra prediction mode) is used.

[0456] In another embodiment, t is set 1 when only one selected IBC prediction mode for the coding mode. For example, when the coding mode is IBC (or DBV) , only one IBC prediction mode (indicated by a signaled / parsed IBC index) is used.

[0457] In another embodiment, the proposed mechanism is treated as an optional mode (of IBC (or DBV) coded block) . That is, a flag is signalled / parsed at encoder / decoder to indicate whether to use the proposed mechanism for the current block. In one sub-embodiment, the flag is at block-level, CTU-level, slice-level, SPS-level, tile-level, PPS-level, and / or picture-level. In another embodiment, the flag is context-coded. For example, only one context is used for signalling the flag. For another example, the context selection of the flag depends on the coding information, block width, block height, and / or block area of the current block and / or the coding information, block width, block height, and / or block area of the neighboring block.

[0458] In another embodiment, the proposed mechanism is a replacement method. When generating the predictors of the current IBC (or DBV) coded block with supporting the proposed mechanism, the generation of the predictor is inferred to follow the proposed mechanisms.

[0459] In another embodiment, s / t here is a pre-defined value. For example, s / t = 1, 2, 3, or any positive integer. In one sub-embodiment, s is fixed at the pre-defined value in the standard. In another sub-embodiment, s is adaptive according to the coding information, block width, block height, and / or block area of the current block and / or the coding information, block width, block height, and / or block area of the neighboring block. For example, if the block width height, or area is larger than a pre-defined threshold, s / t is a larger number; otherwise, s / t is a smaller number.

[0460] In another embodiment, when using the regression method to derive the model parameters on the reference region of the current block, the to-be-minimized distortion is between the combining resulting, including (1) predictors generated from the mode 0 to s-1 on the reference region of the current block and (2) predictors generated from the mode 0 to t-1 on the reference region of the current block and (3) bias and (4) weighting setting, and the reconstructed samples on the reference region of the current block.

[0461] In another embodiment, sourceTermSet0 can be used in the expression. That is, the corresponding luma information can be used to generate the target chroma samples. For example, rec′L (i, j) , G (i, j) , and / or Gy (i, j) , Gx (i, j) are added as the source terms in sourceTermSet0.

[0462] Example: predC (i, j) =α0·Rluma_0 (i, j) +…+ αs-1·Rlumas-1 (i, j) +αs·Pibc_0 (i, j) +…+ αs+t-1·Pibc_t-1 (i, j) + αs+t·bias

[0463] In this expression of the target sample being chroma for an IBC (or DBV) coded block, sourceTermSet0 includes s taps as Rluma_0 to Rluma_s-1 (or named as Rluma0 to Rlumas-1) , sourceTermSet1 includes t taps as Pibc_0 to Pibc_t-1 (or named as Pibc0 to Pibct-1) , and biasTerm refers to another one tap as midValue.

[0464] – In one embodiment, Rluma_s-1 (i, j) is the reconstructed luma sample from the s-1 collocated luma block from the current (chroma) block.

[0465] – In another embodiment, Rluma_s-1 (i, j) is the s-1 reconstructed luma sample from a predefined set (including s samples) in one pre-defined collocated luma block from the current (chroma) block. For example, s reconstructed luma samples correspond to a pre-defined pattern and the center of the pre-defined pattern is collocated from (i, j) of the current (chroma) block.

[0466] – Pibc_t-1 (i, j) is the predicted sample from the t-1 mode which is selected from all or any subset of the candidate IBC prediction modes for the coding mode.

[0467] In one embodiment, s is set as 1 when only one luma tap is used for the coding mode.

[0468] In another embodiment, t is set 1 when only one selected IBC prediction mode for the coding mode. For example, when the coding mode is IBC (or DBV) , only one IBC prediction mode (indicated by a signaled / parsed IBC index) is used.

[0469] In another embodiment, the proposed mechanism is treated as an optional mode (of IBC (or DBV) coded block) . That is, a flag is signalled / parsed at encoder / decoder to indicate whether to use the proposed mechanism for the current block. In one sub-embodiment, the flag is at block-level, CTU-level, slice-level, SPS-level, tile-level, PPS-level, and / or picture-level. In another embodiment, the flag is context-coded. For example, only one context is used for signalling the flag. For another example, the context selection of the flag depends on the coding information, block width, block height, and / or block area of the current block and / or the coding information, block width, block height, and / or block area of the neighboring block.

[0470] In another embodiment, the proposed mechanism is a replacement method. When generating the predictors of the current IBC (or DBV) coded block with supporting the proposed mechanism, the generation of the predictor is inferred to follow the proposed mechanisms.

[0471] In another embodiment, s / t here is a pre-defined value. For example, s / t = 1, 2, 3, or any positive integer. In one sub-embodiment, s is fixed at the pre-defined value in the standard. In another sub-embodiment, s is adaptive according to the coding information, block width, block height, and / or block area of the current block and / or the coding information, block width, block height, and / or block area of the neighboring block. For example, if the block width height, or area is larger than a pre-defined threshold, s / t is a larger number; otherwise, s / t is a smaller number.

[0472] In another embodiment, when using the regression method to derive the model parameters on  the reference region of the current block, the to-be-minimized distortion is between the combining resulting, including (1) luma reconstructed samples on the reference region of the collocated luma block from the current (chroma) block and (2) predictors generated from the mode 0 to t-1 on the reference region of the current block and (3) bias and (4) weighting setting, and the reconstructed samples on the reference region of the current block.

[0473] In another embodiment, sourceTermSet0 may use gradient information instead of rec′L (i, j) or may further use gradient information in addition to rec′L (i, j) . For example, G (i, j) , Gy (i, j) , and / or Gx (i, j) are added as the source terms in sourceTermSet0.

[0474] In another embodiment, when generating the target predictors of the current block and / or generating the template predictors on the reference region of the current block, a long-tap post-filter is applied. The filtering shape can be any pattern proposed in the above invention.

[0475] In another embodiment, the proposed methods can be enabled and / or disabled according to implicit rules (for example, block width, height, or area) or according to explicit rules (for example, syntax on block, tile, slice, picture, sps, or pps level) . For example, the proposed method is applied when the block area is smaller / larger than a threshold.

[0476] (*) The one or more LM mode (s) (or cross-component mode (s) ) which will be used to generate the one or more hypotheses of predictions for LM assisted Angular / Planar Mode and / or inter CCLM and / or MH CCLM are selected from a pre-defined merging candidate list (called modelList) . One modelIdx is signalled to select a candidate from the candidate list (modelList) and the selected candidate is used for the current block. The modelList contains one or more candidates where each candidate refers to a model (or cross-component mode) information. If only one candidate is in the list (the size of the list is only 1) , the modellIdx is not signalled and / or can be inferred as 0 or a default value.

[0477] In one embodiment, when building modelList, one or more predefined candidates are added. The pre-defined candidates can include any subset / extension of the following candidates.

[0478] – CCLM family: CCLM_LT, CCLM_L, CCLM_T

[0479] – MMLM family: MMLM_LT, MMLM_L, MMLM_T

[0480] – CCCM family: CCCM_LT, CCCM_L, CCCM_T

[0481] In another embodiment, when building modelList (a merge-like candidate list) , one or more than one of the following candidate types are included.

[0482] – Spatial model information from spatial neighbour blocks (corresponding to “Spatial MVP from spatial neighbour CUs” for inter)

[0483] – Temporal model information from collocated blocks (corresponding to “Temporal MVP from collocated CUs” for inter)

[0484] – History-based model information from a FIFO table (corresponding to “History-based MVP from a FIFO table” for inter)

[0485] – Pairwise average model information (corresponding to “Pairwise average MVP” for inter)

[0486] – Default model information (corresponding to “Zero MVs” for inter)

[0487] In one sub-embodiment of the candidate type being “Spatial model information from spatial neighbour blocks” , a valid spatial neighboring block (s) can be from one of spatial adjacent and / or non-adjacent neighbors (or any subset of the blocks in a neighboring search region for the current block) which satisfies a pre-defined condition. For example, the pre-defined condition is that the neighbor is encoded and / or decoded by or using a cross-component mode (such as CCLM, MMLM, CCCM, GLM, the mode with mode information inherited from a merge-like candidate list, MH CCLM, and / or any cross-component mode with syntax not belonging to tradition intra prediction modes) or cross-component-related mode (such as chroma fusion (or named LM assisted Angular / Planar Mode) , inter CCLM, and / or any traditional mode with syntax not belonging to cross-component modes but using the cross-component information to generate the prediction) . For example, the pre-defined condition is that the cross-component mode of the neighbor belongs to a subset of above-mentioned cross-component modes which can be multi-model cross-component modes such as MMLM and / or multi-model CCCM. When scanning the spatial neighboring blocks, a candidate is added into the list if the candidate is valid. The following show some scanning orders when adding the Spatial model information from spatial neighbour blocks into the list.

[0488] – For example, as illustrated in FIG. 29, the scanning order follows B1 (above) → A1 (left) → B0 (right-above) → A0 (left-bottom) → B2 (left-above) or any pre-defined order.

[0489] – For example, the scanning order follows adjacent candidates are prior to (or after) the non-adjacent candidates.

[0490] In another sub-embodiment of Temporal model information from collocated blocks, the collocated block is from the block in the reference picture or collocated picture as inter mode. In some cases, only when the pre-defined condition is satisfied, a valid temporal model information is added into the list as a candidate. The pre-defined condition in some embodiments can reference the examples in “Spatial model information from spatial neighbour blocks” with the neighbor replaced with the reference position of temporal model information.

[0491] In another sub-embodiment of History-based model information, a history-based table (the FIFO table) is built and stores the model information from the previous coded blocks. In some cases, only when the pre-defined condition is satisfied, a valid History-based model information is added into the table as a candidate. The pre-defined condition in some embodiments can reference the examples in “Spatial model information from spatial neighbour blocks” with the neighbor replaced with the previous coded block. The table can be reset as the beginning and / or end of a CTU, slice, picture, tile, and / or sequence. One or more than one candidates can be  added into the list according to the table.

[0492] In another sub-embodiment of Pairwise average model information, the model information of this candidate is derived based on the model information from more than one of the previous candidates in the list.

[0493] In another sub-embodiment, the default model information is added if the list is not full after inserting all pre-defined candidates. Some examples of the default model information show below.

[0494] – For example, the default alpha (or named as α, a, or scaling parameters) are {0, 1 / 8, -1 / 8, 2 / 8, -2 / 8, 3 / 8} , and the beta (or named as β, b, or offset parameter) is based on the selected default alpha, average neighboring reconstructed luma sample value, and average neighboring reconstructed chroma (Cb / Cr) sample value.

[0495] In another sub-embodiment, when selecting one candidate from the list and using the model information from the candidate for the current block or when inheriting the model information from a previous coded block (when putting one candidate into the list) , only a subset of the model information is inherited. For example, only the alpha is inherited. The beta is obtained for the current block through the inherited alpha, average neighboring reconstructed luma sample value, and / or average neighboring reconstructed chroma (Cb / Cr) sample value. For example of inheriting MMLM model information, the scaling parameters and / or the classification threshold are inherited. The offset parameter in each class is derived according to the inherited classification threshold and the average neighboring reconstructed luma sample value, and / or average neighboring reconstructed chroma (Cb / Cr) sample value in each class. If no neighboring reconstructed samples are available in a class, the offset parameter is directly inherited from the candidate. For example of inheriting CCCM model information, all convolution parameters, offsets, and / or the classification threshold are inherited. For example of inheriting GLM model information, if the GLM candidate is 3-parameter GLM mode, all the gradient pattern indices and model parameters are inherited; otherwise, if the GLM candidate is the 2-parameter GLM mode, the offset parameter is derived by using the inherited scaling parameter, average neighboring reconstructed luma sample value, and / or average neighboring reconstructed chroma (Cb / Cr) sample value. For example of inheriting chroma fusion model information, the derived MMLM parameters are inherited and used as when inheriting a MMLM candidate for the current block.

[0496] In another sub-embodiment, when selecting one candidate from the list and using the model information from the candidate for the current block, all model information is inherited. For example, both the alpha and beta are inherited.

[0497] In another sub-embodiment, the to-be-propagated mode for the current block (using chroma fusion or named as LM assisted Angular / Planar Mode, inter CCLM, or MH CCLM) is set / stored as the inherited mode, referring to any cross-component mode and / or any cross-component model  and / or any subset of cross-component model information used for the current block, such as CCLM, MMLM, CCCM, and / or GLM.

[0498] In another sub-embodiment, the candidate types are aligned with the candidate types for the merge mode.

[0499] In another sub-embodiment, when building the list, pruning operations are applied to avoiding duplicated candidates in the list.

[0500] In another sub-embodiment, the signalling of the modelIdx for the current block depends on context coding, block width, block height, block area, and / or explicit syntax such as SPS, PPS, slice, CTU, picture, sequence, and / or tile level signalling.

[0501] In another sub-embodiment, the candidate selection (from the list) for the current block depends on a pre-defined process. For example, the pre-defined process is a TIMD or DIMD-like method. When the pre-defined process refers to TIMD-like method, (1) a cost for each candidate in the list is calculated based on the distortion of the reconstructed samples on the neighboring template and the predicted samples from this candidate on the neighboring template (2) one or more candidates with smaller costs (or smaller distortions) are selected and / or (3) the one or more selected candidates are used to generate the cross-component prediction of the current block. For example, the pre-defined process depends on the neighboring template of the current block. For example, the pre-defined process depends on the mode information on the neighboring blocks. If most of the pre-defined neighboring blocks use a specific mode, the first candidate (in the list) referring to the specific mode is selected. The signalling of the modelIdx is bypass (not required for signalling) .

[0502] In another embodiment, it is proposed to use LM mode to generate the right-bottom region within or nearing the current block. When doing intra prediction, the reference samples can be based on not only original left and top neighboring reconstructed samples but also proposed right and bottom LM-predicted samples. The following shows an example.

[0503] – Before doing intra prediction for a chroma block, the collocated luma block is reconstructed.

[0504] – “The neighboring luma reconstructed samples of the collocated luma block” and “the neighboring chroma reconstructed samples of the current chroma block” are used for deriving LM parameters.

[0505] – “The reconstructed samples of the collocated luma block” with the derived parameters are used for obtaining the right-bottom LM-predicted samples of the current chroma block. (Right-bottom region of the current chroma block can be any subset of the region in FIG. 30. )

[0506] – The prediction of the current block is generated bi-directionally by referencing original L neighboring region (original top and left region, obtained using a traditional intra  prediction mode) and proposed inverse-L region (obtained using LM) .

[0507] In one sub-embodiment, the predictors from the original top and left region and the predictors from bottom and left region are combined with weighting.

[0508] – In one example, equal weights are applied to both.

[0509] – In one example, weights vary with neighboring coding information, sample position, block width, height, mode or area.

[0510] – e.g., when the sample position is far from the top and left region, the weight for the prediction from the traditional intra prediction mode decays.

[0511] In another embodiment, this proposed method can be applied to inverse LM. Then, when doing luma intra prediction, the final prediction is bi-directional. (similar to the above example for a chroma block)

[0512] In another embodiment, after doing segmentation to know the curve pattern for luma, the proposed LM assisted Angular / Planar Mode assists chroma with getting the correct curved angle.

[0513] The proposed methods in this invention can be enabled and / or disabled according to implicit rules (e.g. block width, height, or area) or according to explicit rules (e.g. syntax on block, slice, picture, sps, or pps level) .

[0514] The term “block” in this invention can refer to TU / TB, CU / CB, PU / PB, or CTU / CTB.

[0515] The term “LM” in this invention can be viewed as one kind of CCLM / MMLM modes or any other extension / variation of CCLM (e.g. the proposed CCLM extension / variation in this invention) . The variations of CCLM here mean that some optional modes can be selected when the block indication refers to using one of cross-component modes (e.g. CCLM_LT, MMLM_LT, CCLM_L, CCLM_T, MMLM_L, MMLM_T, and / or an intra prediction mode, which is not one of traditional DC, planar, and angular modes) for the current block. The following shows an example of being convolutional cross-component mode (CCCM) as an optional mode. When this optional mode is applied to the current block, cross-component information with a model, which may include a non-linear term, is used to generate the chroma prediction. The optional mode may follow the template selection of CCLM, so CCCM family includes CCCM_LT CCCM_L, and / or CCCM_T.

[0516] The proposed methods (for CCLM) in this invention can be used for any other LM modes.

[0517] Any combination of the proposed methods in this invention can be applied.

[0518] Any of the foregoing proposed methods can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in an intra / inter / IBC coding module of an encoder and / or decoder, and / or a motion compensation module and / or a merge candidate derivation module of an encoder and / or decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the intra / inter / IBC coding module of an encoder and / or decoder and / or motion compensation module and / or a merge candidate derivation module of the encoder and / or decoder.

[0519] FIG. 31 is a block diagram illustrating a video encoder that supports the proposed intra chroma prediction mode according to an embodiment of the present invention. By way of example, but not limitation, the video encoder 100 may be a VVC encoder. The video encoder 100 may perform intra and inter predictive coding of video blocks within video frames. Intra predictive coding relies on spatial prediction to reduce or remove spatial redundancy in video data within a given video frame or picture. Inter predictive coding relies on temporal prediction to reduce or remove temporal redundancy in video data within adjacent video frames or pictures of a video sequence. The proposed intra chroma prediction mode is a coding tool for chroma samples in a chroma block, and uses at least one cross-component predictor (which is an intra predictor) to improve accuracy of a non-cross-component predictor (which is also an intra predictor) .

[0520] As shown in FIG. 31, the video encoder 100 includes an encoding circuit 101 and a video data memory 102. The video data memory 102 is arranged to receive data to be encoded as a current block of pixels of a current picture of a video, wherein the current block includes at least one chroma block. The encoding circuit 101 is arranged to perform encoding of the current block by a target intra prediction mode. The encoding circuit 101 may include a prediction processing circuit 104, a residual generation circuit 106, a transform circuit (labeled by “T” ) 108, a quantization circuit (labeled by “Q” ) 110, an entropy encoding circuit (e.g., a variable-length code (VLC) encoder) 112, an inverse transform circuit (labeled by “IQ” ) 114, an inverse transform circuit (labeled by “IT” ) 116, a reconstruction circuit 118, one or more in-loop filters 120, and a decoded picture buffer (DPB) 122. It should be noted that the encoder architecture shown in FIG. 31 is for illustrative purposes only, and is not meant to be a limitation of the present invention. In practice, any video encoder using / supporting the proposed intra chroma prediction mode falls within the scope of the present invention.

[0521] The prediction processing circuit 104 may include a partition circuit 124, a motion estimation circuit (labeled by “ME” ) 126, a motion compensation circuit (labeled by “MC” ) 128, an intra prediction circuit (labeled by “IP” ) 130, and an intra chroma prediction circuit (labeled by “ICP” ) 132. The proposed intra chroma prediction mode is supported by the prediction processing circuit 104 (particularly, intra chroma prediction circuit 132 of prediction processing circuit 104) . As the present invention is focused on the proposed intra chroma prediction mode and a person skilled in the art should readily understand details of other circuit components included in the video encoder 100, further description of principles of other circuit components included in the video encoder 100 is omitted here for brevity.

[0522] The intra prediction circuit 130 of the prediction processing circuit 104 is arranged to obtain an intra predictor of a chroma sample included in a chroma block (e.g., a Cr block or a Cb block) . In this embodiment, the intra predictor is a non-cross-component predictor Non-CCP determined under a non-cross-component intra mode such as a DC mode, or planar mode, or any angular mode,  or DM mode or DIMD mode. In practice, any intra prediction means capable of obtaining the non-cross-component predictor Non-CCP of a chroma sample included in a chroma block (e.g., a Cr block or a Cb block) can be employed by the prediction processing circuit 104.

[0523] The intra chroma prediction circuit 132 is arranged to obtain at least one (i.e., one or more) cross-component predictor CCP of the chroma sample, and determine intra prediction of the chroma sample (e.g., a final predictor P_CB / CR) by jointly considering the non-cross-component predictor Non-CCP and the cross-component predictor (s) CCP. For example, the intra chroma prediction circuit 132 blends the non-cross-component predictor Non-CCP and the cross-component predictor (s) CCP to generate a weighted predictor as the intra prediction of the chroma sample. In some embodiments of the present invention, the cross-component predictor (s) CCP to be blended with the non-cross-component predictor Non-CCP may include a CCLM-based predictor and / or a predictor generated using any cross-component mode.

[0524] In one exemplary blending design of the present invention, the non-cross-component predictor Non-CCP and the cross-component predictor CCP may be blended using pre-defined (fixed) weighting such as {3: 1} or {1: 3} .

[0525] In another exemplary blending design of the present invention, the non-cross-component predictor Non-CCP and the cross-component predictor CCP may be blended using template-derivation regression-based weighting. The manner of determining the template-derivation regression-based weighting is similar to that employed by CCCM for determining filter coefficients. Hence, weighting of the non-cross-component predictor Non-CCP and the cross-component predictor CCP is calculated by minimizing an error between predicted and reconstructed chroma samples in a neighboring template. For example, different weighting settings of the non-cross-component predictor Non-CCP and the cross-component predictor CCP are applied to reference samples in the neighboring template to generate a plurality of sets of predicted chroma samples of the neighboring template. A regression-based equation may be used to evaluate similarity between each set of predicted chroma samples of the neighboring template and the reconstructed chroma samples of the neighboring template. One of the weighting settings that leads to a minimum error between predicted and reconstructed chroma samples in the neighboring template is selected and used for blending the non-cross-component predictor Non-CCP and the cross-component predictor CCP to generate the final predictor P_CB / CR.

[0526] Regarding generation of the cross-component predictor CCP, the intra chroma prediction circuit 132 may determine the cross-component predictor CCP according to a cross-component model candidate from a previous-coded block. For example, the intra chroma prediction circuit 132 may construct a merge candidate list MCL for cross-component prediction, and determine the cross-component predictor CCP according to a cross-component model candidate selected from the merge candidate list MCL. In some embodiments of the present invention, the candidate types may  be aligned with that used by inter motion merge candidate list, or may be a subset of that used by inter motion merge candidate list. The difference between the merge candidate list MCL and the inter motion merge candidate list is that the merge candidate list MCL includes inherited cross-component models, while the inter motion merge candidate list includes inherited motion information.

[0527] For example, the merge candidate list MCL may include spatial candidates. Specifically, the intra chroma prediction circuit 132 may add a cross-component model located at a spatial neighboring position to the merge candidate list MCL. The spatial neighboring position and a sample position of the chroma sample are located at the same frame. The spatial neighboring position may be an adjacent position or a non-adjacent position with respect to the boundary of the current chroma block.

[0528] For another example, the merge candidate list MCL may include temporal candidates. Specifically, the intra chroma prediction circuit 132 may add a cross-component model located at a temporal collocated position to the merge candidate list MCL. The temporal collocated position and a sample position of the chroma sample are located at the same position in different frames.

[0529] For another example, the merge candidate list MCL may include history-based candidates. Specifically, the intra chroma prediction circuit 132 may add a cross-component model from a history table to the merge candidate list MCL, wherein the history table may be implemented by a first-in first-out (FIFO) buffer that contains cross-component models of previously coded chroma blocks (i.e., previous chroma blocks that are encoded before the current chroma block) .

[0530] For another example, the merge candidate list MCL may include default candidates. Specifically, the intra chroma prediction circuit 132 may add a default cross-component model (i.e., pre-defined cross-component model) to the merge candidate list MCL.

[0531] In some embodiments of the present invention, after the intra chroma prediction circuit 132 selects a cross-component model candidate from the merge candidate list MCL for follow-up computation of the cross-component predictor CCP, the intra chroma prediction circuit 132 may output a mode index IDX to the entropy encoding circuit 112, such that the mode index IDX is encoded into the encoded video bitstream output from the video encoder 100. Specifically, the data to be encoded as the current block of pixels of the current picture of the video includes a syntax for a mode index to indicate selection of the cross-component model candidate. For example, the mode index IDX is signalled to indicate selection of the cross-component model candidate at the video encoder 100. Alternatively, selection of the cross-component model candidate may be implicitly derived without any mode index signalling. For example, the intra chroma prediction circuit 132 may employ an implicit derivation manner similar to that employed by TIMD. Specifically, the intra chroma prediction circuit 132 uses reference samples of a neighboring template to calculate a cost for each cross-component model candidate included in the merge candidate list MCL, and select  one of cross-component model candidates included in the merge candidate list MCL that has a minimum cost as the cross-component model candidate used for obtaining the cross-component predictor CCP. Since both of the video encoder and the video decoder follow the same template-based manner to select a cross-component model candidate from the same merge candidate list MCL constructed at both of the video encoder and the video decoder, no signalling of the mode index IDX from the video encoder to the video decoder is needed. In this way, signalling overhead can be reduced.

[0532] As mentioned above, when the proposed intra chroma prediction is enabled, the intra chroma prediction circuit 132 uses the cross-component predictor CCP to improve accuracy of the non-cross-component predictor Non-CCP. In some embodiments of the present invention, the proposed intra chroma prediction mode is not enabled by the prediction processing circuit 104 unless all enabling conditions are satisfied. For example, the enabling conditions may include a size condition of the chroma block, where the size condition may be defined by a block height, a block width, and / or a block area. Hence, when the block height and / or width and / or area is smaller than (or larger than) a pre-defined threshold, the size condition is satisfied.

[0533] For another example, the enabling conditions may include supported prediction modes of the chroma block, where the supported prediction modes may include all non-cross-component modes or any sub-mode of non-cross-component modes. Hence, when a selected prediction mode for determining the non-cross-component predictor Non-CCP is one of the supported non-cross-component modes (or any sub-mode of supported non-cross-component modes) , the prediction mode condition is satisfied.

[0534] Furthermore, when all enabling conditions are satisfied, the data to be encoded as the current block of pixels of the current picture of the video includes a flag to indicate to apply the target inter prediction mode. For example, when all enabling conditions are satisfied, the intra chroma prediction circuit 132 sets a flag EN (e.g., EN = 1) to indicate to apply the proposed intra chroma prediction mode, and outputs the flag EN (e.g., EN = 1) to the entropy encoding circuit 112. Hence, the entropy encoding circuit 112 encodes the flag EN (e.g., EN = 1) into the encoded video bitstream. In this way, the flag EN (e.g., EN = 1) is signalled from the video encoder 100 to the video decoder via the encoded video bitstream. When the proposed intra chroma prediction is not enabled, the flag EN is not signalled by the encoder and / or is inferred at the encoder.

[0535] FIG. 32 is a block diagram illustrating a video decoder that supports the proposed intra chroma prediction mode according to an embodiment of the present invention. By way of example, but not limitation, the video decoder 200 may be a VVC decoder. The video decoder 200 includes a decoding circuit 201 and a video data memory 202. The video data memory 102 is arranged to receive data to be decoded as a current block of pixels of a current picture of a video, wherein the current block includes at least one chroma block. The decoding circuit 201 is arranged to perform  decoding of the current block by a target intra prediction mode. The decoding circuit 201 may include an entropy decoding circuit (e.g., a VLC decoder) 204, an inverse quantization circuit (labeled by “IQ” ) 206, an inverse transform circuit (labeled by “IT” ) 208, a reconstruction circuit 210, a prediction processing circuit 212, one or more in-loop filters 214, and a decoded picture buffer (DPB) 216. It should be noted that the decoder architecture shown in FIG. 32 is for illustrative purposes only, and is not meant to be a limitation of the present invention. In practice, any video decoder using / supporting the proposed intra chroma prediction mode falls within the scope of the present invention.

[0536] The prediction processing circuit 212 may include a motion compensation circuit (labeled by “MC” ) 218, an intra prediction circuit (labeled by “IP” ) 220, and an intra chroma prediction circuit (labeled by “ICP” ) 222. The proposed intra chroma prediction mode is supported by the prediction processing circuit 212 (particularly, intra chroma prediction circuit 222 of prediction processing circuit 212) . As the present invention is focused on the proposed intra chroma prediction mode and a person skilled in the art should readily understand details of other circuit components included in the video decoder 200, further description of principles of other circuit components included in the video decoder 200 is omitted here for brevity.

[0537] The intra prediction circuit 220 of the prediction processing circuit 212 is arranged to obtain a non-cross-component predictor (which is an intra predictor) Non-CCP of a chroma sample included in a chroma block (e.g., a Cr block or a Cb block) . The non-cross-component predictor Non-CCP used by the encoder-side intra chroma prediction circuit 132 for determining the final predictor P_CB / CR is the same as that used by the decoder-side intra chroma prediction circuit 222 for determining the final predictor P_CB / CR.

[0538] Functions of the decoder-side intra chroma prediction circuit 222 are similar / identical to that of the encoder-side intra chroma prediction circuit 132. The intra chroma prediction circuit 222 is arranged to obtain at least one (i.e., one or more) cross-component predictor (which is an intra predictors) CCP of the chroma sample, and determine intra prediction of the chroma sample (e.g., a final predictor P_CB / CR) by jointly considering the non-cross-component predictor Non-CCP and the cross-component predictor (s) CCP. For example, the intra chroma prediction circuit 222 blends the non-cross-component predictor Non-CCP and the cross-component predictor (s) CCP to generate a weighted predictor as the intra prediction of the chroma sample. In some embodiments of the present invention, the cross-component predictor (s) CCP may include a CCLM-based predictor and / or a predictor generated using any cross-component mode. In one exemplary blending design of the present invention, the non-cross-component predictor Non-CCP and the cross-component predictor CCP may be blended using pre-defined (fixed) weighting such as {3: 1} or {1: 3} . In another exemplary blending design of the present invention, the non-cross-component predictor Non-CCP and the cross-component predictor CCP may be blended using template-derivation  regression-based weighting.

[0539] Regarding generation of the cross-component predictor CCP, the intra chroma prediction circuit 222 may construct a merge candidate list MCL for cross-component prediction, and determine the cross-component predictor CCP according to a cross-component model candidate selected from the merge candidate list MCL. In some embodiments of the present invention, the candidate types may be aligned with that used by inter motion merge candidate list, or may be a subset of that used by inter motion merge candidate list. The merge candidate list MCL constructed by the decoder-side intra chroma prediction circuit 222 is the same as that constructed by the encoder-side intra chroma prediction circuit 132.

[0540] For example, the merge candidate list MCL may include spatial candidates. Specifically, the intra chroma prediction circuit 222 may add a cross-component model located at a spatial neighboring position to the merge candidate list MCL. The spatial neighboring position and a sample position of the chroma sample are located at the same frame. The spatial neighboring position may be an adjacent position or a non-adjacent position with respect to the boundary of the current chroma block.

[0541] For another example, the merge candidate list MCL may include temporal candidates. Specifically, the intra chroma prediction circuit 222 may add a cross-component model located at a temporal collocated position to the merge candidate list MCL. The temporal collocated position and a sample position of the chroma sample are located at the same position in different frames.

[0542] For another example, the merge candidate list MCL may include history-based candidates. Specifically, the intra chroma prediction circuit 222 may add a cross-component model from a history table to the merge candidate list MCL, wherein the history table may be implemented by a first-in first-out (FIFO) buffer that contains cross-component models of previously coded chroma blocks (i.e., previous chroma blocks that are decoded before the current chroma block) .

[0543] For another example, the merge candidate list MCL may include default candidates. Specifically, the intra chroma prediction circuit 222 may add a default cross-component model (i.e., pre-defined cross-component model) to the merge candidate list MCL.

[0544] In a case where a mode index IDX (which indicates selection of the cross-component model candidate) is signalled from a video encoder (e.g., video encoder 100) to the video decoder 200, the entropy decoding circuit 204 may parse the mode index IDX from the encoded video bitstream, and informs the prediction processing circuit 212 (particularly, intra chroma prediction circuit 222 of prediction processing circuit 212) of the mode index IDX. Specifically, the data to be decoded as the current block of pixels of the current picture of the video includes a syntax for a mode index to indicate selection of the cross-component model candidate. For example, the intra chroma prediction circuit 222 refers to the signalled mode index IDX to select the same cross-component model candidate used by the video encoder (e.g., video encoder 100) from the merge candidate list  MCL.

[0545] Alternatively, selection of the cross-component model candidate may be implicitly derived without parsing any signalled mode index from the encoded video bitstream. For example, the intra chroma prediction circuit 222 may employ an implicit derivation manner similar to that employed by TIMD. Specifically, the intra chroma prediction circuit 222 uses reference samples of a neighboring template to calculate a template matching (TM) cost for each cross-component model candidate included in the merge candidate list MCL, and select one of cross-component model candidates included in the merge candidate list MCL that has a minimum TM cost as the cross-component model candidate used for obtaining the cross-component predictor CCP. Since both of the video encoder and the video decoder follow the same template-based manner to select a cross-component model candidate from the same merge candidate list MCL constructed at both of the video encoder and the video decoder, no signalling of the mode index IDX from the video encoder to the video decoder is needed, and no parsing of the signalled mode index IDX at the video decoder is needed. In this way, signalling overhead can be reduced.

[0546] As mentioned above, when the proposed intra chroma prediction is enabled, the intra chroma prediction circuit 222 uses the cross-component predictor CCP to improve accuracy of the non-cross-component predictor Non-CCP. In some embodiments of the present invention, the proposed intra chroma prediction mode is not enabled by the prediction processing circuit 212 unless all enabling conditions are satisfied. For example, the enabling conditions may include a size condition of the chroma block, where the size condition may be defined by a block height, a block width, and / or a block area. Hence, when the block height and / or width and / or area is smaller than (or larger than) a pre-defined threshold, the size condition is satisfied.

[0547] For another example, the enabling conditions may include supported prediction modes of the chroma block, where the supported prediction modes may include all non-cross-component modes or any sub-mode of non-cross-component modes. Hence, when a selected prediction mode for determining the non-cross-component predictor Non-CCP is one of the supported non-cross-component modes (or any sub-mode of supported non-cross-component modes) , the prediction mode condition is satisfied.

[0548] Furthermore, when the proposed intra chroma prediction is enabled, for example, due to all enabling conditions being satisfied, the data to be decoded as the current block of pixels of the current picture of the video includes a flag to indicate to apply the target inter prediction mode. For example, when the proposed intra chroma prediction is enabled, the intra chroma prediction circuit 222 uses the cross-component predictor CCP to improve accuracy of the non-cross-component predictor Non-CCP. In a case where a flag EN (e.g., EN = 1) is signalled from a video encoder (e.g., video encoder 100) to the video decoder 200, the entropy decoding circuit 204 parses the flag EN (e.g., EN = 1) from the encoded video bitstream, and informs the prediction processing circuit 212  (particularly, intra chroma prediction circuit 222 of prediction processing circuit 212) of the flag EN (e.g., EN = 1) . Hence, the proposed intra chroma prediction mode is enabled by the prediction processing circuit 212 in response to the flag EN (e.g., EN = 1) that indicates to apply the proposed intra chroma prediction mode. When the proposed intra chroma prediction is not enabled, the flag EN is not signalled to the decoder and / or is not parsed from the decoder and / or is inferred at the decoder.

[0549] FIG. 33 is a flowchart illustrating a video coding method according to an embodiment of the present invention. The video coding method may be employed by the video encoder 100 shown in FIG. 31 for encoding of video data or the video decoder 200 shown in FIG. 32 for decoding of encoded video bitstream. Provided that the result is substantially the same, the steps are not required to be executed in the exact order shown in FIG. 33. At step 2502, data to be encoded or decoded is received as a current block of pixels of a current picture of a video, wherein the current block includes at least one chroma block. At step 2504, encoding or decoding of the current block is performed by a target intra prediction mode. The step 2504 includes sub-steps 2506, 2508, and 2510. At sub-step 2506, a non-cross-component predictor of a chroma sample included in the at least one chroma block is obtained, wherein the non-cross-component predictor is an intra predictor. At sub-step 2508, at least one cross-component predictor of the chroma sample is obtained according to a cross-component model candidate from a previous-coded block. At sub-step 2510, intra prediction of the chroma sample is determined by jointly considering (e.g., blending) the non-cross-component predictor and the at least one cross-component predictor. As a person skilled in the art can readily understand details of the video coding method after reading above paragraphs with reference to the accompanying drawings, further description is omitted here for brevity.

[0550] Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.

Claims

1.A method for video coding, comprising:receiving data to be encoded or decoded at a current block of pixels of a current picture of a video, wherein the current block comprises at least one chroma block; andencoding or decoding the current block by a target intra prediction mode, comprising:obtaining a non-cross-component predictor of a chroma sample included in the at least one chroma block, wherein the non-cross-component predictor is an intra predictor;obtaining at least one cross-component predictor of the chroma sample, comprising:determining the at least one cross-component predictor according to a cross-component model candidate from a previous-coded block; anddetermining intra prediction of the chroma sample by jointly considering the non-cross-component predictor and the at least one cross-component predictor.2.The method of claim 1, wherein the at least one cross-component predictor comprises a cross component linear model (CCLM) based predictor.3.The method of claim 1, wherein obtaining the at least one cross-component predictor of the chroma sample further comprises:constructing a merge candidate list for cross-component prediction; anddetermining the at least one cross-component predictor according to the cross-component model candidate from the previous-coded block comprises:determining the at least one cross-component predictor according to the cross-component model candidate selected from the merge candidate list.4.The method of claim 3, wherein constructing the merge candidate list for cross-component prediction comprises:adding a cross-component model located at a spatial neighboring position to the merge candidate list.5.The method of claim 3, wherein constructing the merge candidate list for cross-component prediction comprises:adding a cross-component model located at a temporal collocated position to the merge candidate list.6.The method of claim 3, wherein constructing the merge candidate list for cross-component  prediction comprises:adding a cross-component model from a history table to the merge candidate list, wherein the history table contains cross-component models of previously coded chroma blocks.7.The method of claim 3, wherein constructing the merge candidate list for cross-component prediction comprises:adding a default cross-component model to the merge candidate list.8.The method of claim 3, wherein the data to be encoded as the current block of pixels of the current picture of the video comprises a syntax for a mode index to indicate selection of the cross-component model candidate.9.The method of claim 3, wherein the data to be decoded as the current block of pixels of the current picture of the video comprises a syntax for a mode index to indicate selection of the cross-component model candidate.10.The method of claim 3, wherein determining the at least one cross-component predictor according to the cross-component model candidate selected from the merge candidate list comprises:using reference samples of a neighboring template to calculate a cost for each cross-component model candidate included in the merge candidate list; andselecting one of cross-component model candidates included in the merge candidate list that has a minimum cost as the cross-component model candidate used for obtaining the at least one cross-component predictor.11.The method of claim 1, wherein determining the intra prediction of the chroma sample by jointly considering the non-cross-component predictor and the at least one cross-component predictor comprises:blending the non-cross-component predictor and the at least one cross-component predictor to generate a weighted predictor as the intra prediction of the chroma sample.12.The method of claim 11, wherein the non-cross-component predictor and the at least one cross-component predictor are blended using pre-defined weighting.13.The method of claim 11, wherein the non-cross-component predictor and the at least one cross-component predictor are blended using template-derivation regression-based weighting.14.The method of claim 1, wherein the target intra prediction mode is enabled in response to all enabling conditions being satisfied.15.The method of claim 14, wherein the enabling conditions comprise a size condition of the at least one chroma block.16.The method of claim 14, wherein the enabling conditions comprise supported prediction modes of the at least one chroma block.17.The method of claim 14, wherein in response to all enabling conditions being satisfied, the data to be encoded as the current block of pixels of the current picture of the video comprises a flag to indicate to apply the target intra prediction mode.18.The method of claim 1, wherein in response to all enabling conditions being satisfied, the data to be decoded as the current block of pixels of the current picture of the video comprises a flag to indicate to apply the target intra prediction mode.19.A video encoder, comprising:a video data memory, arranged to receive data to be encoded as a current block of pixels of a current picture of a video, wherein the current block comprises at least one chroma block; andan encoding circuit, arranged to perform encoding of the current block by a target intra prediction mode, wherein the encoding circuit comprises:an intra prediction circuit, arranged to obtain a non-cross-component predictor of a chroma sample included in the at least one chroma block, wherein the non-cross-component predictor is an intra predictor; andan intra chroma prediction circuit, arranged to obtain at least one cross-component predictor of the chroma sample according to a cross-component model candidate from a previous-coded block, and determine intra prediction of the chroma sample by jointly considering the non-cross-component predictor and the at least one cross-component predictor.20.A video decoder, comprising:a video data memory, arranged to receive data to be decoded as a current block of pixels of a current picture of a video, wherein the current block comprises at least one chroma block; anda decoding circuit, arranged to perform decoding of the current block by a target intra prediction mode, wherein the decoding circuit comprises:an intra prediction circuit, arranged to obtain a non-cross-component predictor of a chroma sample included in the at least one chroma block, wherein the non-cross-component predictor is an intra predictor; andan intra chroma prediction circuit, arranged to obtain at least one cross-component predictor of the chroma sample according to a cross-component model candidate from a previous-coded block, and determine intra prediction of the chroma sample by jointly considering the non-cross-component predictor and the at least one cross-component predictor.