Method and device for video processing and medium

By adopting the cross-component prediction mode in video coding and decoding, obtaining the filtering information related to the chrominance component prediction and performing coding and decoding processing, the problem of insufficient chrominance component prediction quality is solved and higher coding and decoding quality is achieved.

CN120787431APending Publication Date: 2025-10-14DOUYIN VISION CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480013253.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-10-11
Filing Date
2024-02-09
Publication Date
2025-10-14

AI Technical Summary

Technical Problem

Existing video coding and decoding technologies have insufficient coding and decoding quality in chrominance component prediction, and are difficult to improve further.

Method used

The cross-component prediction (CCP) mode is adopted to obtain the filtering information related to the chrominance component prediction and perform filtering processing based on the relevant codec information.

Benefits of technology

Improves the quality of video encoding and decoding, and enhances the prediction effect of chrominance components.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120787431A_ABST
    Figure CN120787431A_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure provide a solution for video processing. A method for video processing is presented. The method includes, for a conversion between a current video block of the video and a bitstream of the video, obtaining first information regarding whether to filter a prediction for a chroma component of the current video block, where the prediction for the chroma component is determined using a cross-component prediction (CCP) mode, the first information depends on coding and decoding information associated with the current video block; and performing the conversion based on the first information.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] Embodiments of the present disclosure generally relate to video processing technology, and more particularly, to cross-component prediction. BACKGROUND

[0002] Nowadays, digital video capability is being applied to various aspects of people's life. For video coding / decoding, various types of video compression techniques have been proposed, such as MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264 / MPEG-4 Part 10 Advanced Video Coding (AVC), ITU-T H.265 High Efficiency Video Coding (HEVC) standard, Versatile Video Coding (VVC) standard. However, it is generally desired to further improve the coding quality of video coding techniques. SUMMARY

[0003] Embodiments of the present disclosure provide a solution for video processing.

[0004] In a first aspect, a method for video processing is proposed. The method comprises: obtaining, for a conversion between a current video block of a video and a bitstream of the video, first information related to whether to filter a prediction for a chroma component of the current video block, wherein the prediction for the chroma component is determined with a cross-component prediction (CCP) mode, and the first information depends on coding information associated with the current video block; and performing the conversion based on the first information.

[0005] According to the method of the first aspect of the present disclosure, the chroma prediction of the current video block determined with the CCP is allowed to be filtered. The information related to whether to filter the chroma prediction depends on the related coding information. Compared with the conventional solution that such chroma prediction is not filtered, the proposed method can advantageously support filtering the chroma prediction determined with the CCP. In this way, the coding quality can be improved.

[0006] In a second aspect, an apparatus for video processing is proposed. The apparatus comprises a processor and a non-transitory memory having instructions thereon. The instructions, when executed by the processor, cause the processor to perform the method according to the first aspect of the present disclosure.

[0007] In a third aspect, a non-transitory computer-readable storage medium is proposed. The non-transitory computer-readable storage medium stores instructions that cause a processor to perform the method according to the first aspect of the present disclosure.

[0008] In a fourth aspect, another non-transitory computer-readable recording medium is proposed. The non-transitory computer-readable recording medium stores a bitstream of a method of video generated by a video processing apparatus. The method comprises: obtaining first information related to whether filtering is performed for a prediction of a chroma component of a current video block of a video, wherein the prediction of the chroma component is determined with a cross-component prediction (CCP) mode, and the first information depends on coding information associated with the current video block; and generating the bitstream based on the first information.

[0009] In a fifth aspect, a method for storing a bitstream of a video is proposed. The method comprises: obtaining first information related to whether filtering is performed for a prediction of a chroma component of a current video block of a video, wherein the prediction of the chroma component is determined with a cross-component prediction (CCP) mode, and the first information depends on coding information associated with the current video block; generating the bitstream based on the first information; and storing the bitstream in a non-transitory computer-readable recording medium.

[0010] This summary is provided to introduce a selection of concepts that are further described below in the detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it used to limit the scope of the claimed subject matter. BRIEF DESCRIPTION OF DRAWINGS

[0011] The above and other objects, features and advantages of the example embodiments of the present disclosure will be more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which like reference characters refer to the like elements throughout. In the example embodiments of the present disclosure, like reference numerals refer to like elements throughout.

[0012] Figure 1 A block diagram showing an example video coding system is shown in accordance with some embodiments of the present disclosure;

[0013] Figure 2 A block diagram showing a first example video encoder is shown in accordance with some embodiments of the present disclosure;

[0014] Figure 3 A block diagram showing an example video decoder is shown in accordance with some embodiments of the present disclosure;

[0015] Figure 4 Effects of slope adjustment parameters are shown;

[0016] Figure 5 Neighboring blocks used in derivation of a general MPM list are shown;

[0017] Figure 6 Samples of neighboring reconstruction used for DIMD chroma mode are shown;

[0018] Figure 7 The used Intra template matching search region is shown;

[0019] Figure 8 The use of Intra TMP block vector for IBC block is shown;

[0020] Figure 9A The partitioning method for angular mode is shown;

[0021] Figure 9B Another partitioning method for angular mode is shown;

[0022] Figure 10 The extended MRL candidate list is shown;

[0023] Figure 11 The schematic of the template region is shown;

[0024] Figure 12 The spatial part of the convolution filter is shown;

[0025] Figure 13 The reference region (and its padding) used to derive the filter coefficients is shown;

[0026] Figure 14 The four Sobel-based gradient patterns for GLM are shown;

[0027] Figure 15 The spatial GPM candidate is shown;

[0028] Figure 16 The GPM template is shown;

[0029] Figure 17 The GPM blending is shown;

[0030] Figure 18 The possible positions of the candidate region are shown;

[0031] Figure 19 The position of the neighboring spatial candidate is shown;

[0032] Figure 20 The various down-sampling filters used in the proposed cross-component model are shown;

[0033] Figure 21 The position of the chroma samples is shown;

[0034] Figure 22 The example of the luma samples to be prepared is shown;

[0035] Figure 23 The example of the potential candidate region is shown;

[0036] Figure 24Possible top-left templates are shown;

[0037] Figure 25A Possible top-left templates are shown;

[0038] Figure 25B Possible left templates are shown;

[0039] Figure 25C Possible top templates are shown;

[0040] Figure 26 An example of temporal candidates for intra prediction is shown;

[0041] Figure 27 A flowchart of a method for video processing according to an embodiment of the disclosure is shown; and

[0042] Figure 28 A block diagram of a computing device in which various embodiments of the disclosure can be implemented is shown.

[0043] Throughout the drawings, identical or similar reference numerals are generally used to refer to identical or similar elements throughout the drawing figures. DETAILED DESCRIPTION

[0044] The principles of the present disclosure will now be described with reference to some embodiments. It should be understood that the embodiments are described for illustrative purposes only and to help the person skilled in the art to understand and implement the present disclosure, and do not imply any limitation on the scope of the present disclosure. The disclosure described herein can be implemented in various ways in addition to the ways described below.

[0045] In the following description and claims, unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs.

[0046] References in the present disclosure to "one embodiment", "an embodiment", "example embodiments", etc. indicate that the embodiment described can include a particular feature, structure, or characteristic, but every embodiment can not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in connection with an example embodiment, it is submitted that the feature, structure, or characteristic can be implemented in connection with other embodiments whether or not explicitly described.

[0047] It should be understood that, although the terms“first” and“second” etc. can be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element, without departing from the scope of the example embodiments. As used herein, the term“and / or” includes any and all combinations of one or more of the associated listed terms.

[0048] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of example embodiments. As used herein, the singular forms“a,”“an” and“the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms“comprises,”“comprising,”“includes” and / or“including,” when used herein, specify the presence of stated features, elements and / or components, but do not preclude the presence or addition of one or more other features, elements, components and / or combinations thereof. Example Environment

[0049] Figure 1 FIG. 1 is a block diagram illustrating an example video coding system 100 that can utilize the techniques of this disclosure. As shown, video coding system 100 can include a source device 110 and a destination device 120. Source device 110 can also be referred to as a video encoding device, and destination device 120 can also be referred to as a video decoding device. In operation, source device 110 can be configured to generate encoded video data, and destination device 120 can be configured to decode the encoded video data generated by source device 110. Source device 110 can include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.

[0050] Video source 112 can include a source such as a video capture device. Examples of video capture devices include, but are not limited to, an interface to receive video data from a video content provider, a computer graphics system to generate video data, and / or a combination thereof.

[0051] Video data can comprise one or more pictures. Video encoder 114 encodes video data from video source 112 to generate a bitstream. The bitstream can include a sequence of bits that forms an encoded representation of the video data. The bitstream can include encoded pictures and associated data. An encoded picture is an encoded representation of a picture. The associated data can include sequence parameter sets, picture parameter sets, and other syntax structures. I / O interface 116 can include a modulator / demodulator and / or a transmitter. The encoded video data can be transmitted directly to destination device 120 by network 130A via I / O interface 116. The encoded video data can also be stored onto a storage medium / server 130B for access by destination device 120.

[0052] Destination device 120 can include an I / O interface 126, a video decoder 124, and a display device 122. I / O interface 126 can include a receiver and / or a modem. I / O interface 126 can acquire encoded video data from source device 110 or storage medium / server 130B. Video decoder 124 can decode the encoded video data. Display device 122 can display the decoded video data to a user. Display device 122 can be integrated with destination device 120, or can be external to destination device 120 which is configured to interface with an external display device.

[0053] Video encoder 114 and video decoder 124 can operate according to a video compression standard, such as the High Efficiency Video Coding (HEVC) standard, Versatile Video Coding (VVC) standard, and other existing and / or future standards.

[0054] Figure 2 is a block diagram illustrating an example of a video encoder 200 that can be an example of video encoder 114 in system 100 shown in FIG. 1, in accordance with some embodiments of the present disclosure. Figure 1 is a block diagram illustrating an example of a video encoder 200 that can be an example of video encoder 114 in system 100 shown in FIG. 1, in accordance with some embodiments of the present disclosure.

[0055] Video encoder 200 can be configured to implement any or all of the techniques of this disclosure. In some examples, video encoder 200 includes a plurality of functional components. The techniques described in this disclosure can be shared by the functional components of video encoder 200. In some examples, a processor can be configured to perform any or all of the techniques described in this disclosure. Figure 2

[0056] ​In some embodiments, video encoder 200 can include partition unit 201, prediction unit 202, which can include mode select unit 203, motion estimation unit 204, motion compensation unit 205, and intra-prediction unit 206, residual generation unit 207, transform unit 208, quantization unit 209, inverse quantization unit 210, inverse transform unit 211, reconstruction unit 212, buffer 213, and entropy encoding unit 214.

[0057] In other examples, video encoder 200 can include more, less, or different functional components. In one example, prediction unit 202 can include an intra-block copy (IBC) unit. The IBC unit can perform prediction in an IBC mode in which at least one reference picture is the picture in which the current video block is located.

[0058] Furthermore, although some components, such as motion estimation unit 204 and motion compensation unit 205, can be integrated, for purposes of explanation, these components are shown separately in the example of FIG. 2. Figure 2

[0059] Partition unit 201 can partition a picture into one or more video blocks. Video encoder 200 and video decoder 300 can support various video block sizes.

[0060] Mode select unit 203 can select one of a plurality of encoding modes (intra- or inter- coding) based on, for example, error results, and provide the resulting intra- or inter- coded block to residual generation unit 207 to generate residual block data and to reconstruction unit 212 to reconstruct the encoded block for use as a reference picture. In some examples, mode select unit 203 can select a combined inter-intra prediction (CIIP) mode in which prediction is based on both inter- and intra-prediction signals. In the case of inter-prediction, mode select unit 203 can also select a resolution for motion vectors (e.g., sub-pixel precision or integer pixel precision) for the block.

[0061] To perform inter-prediction for a current video block, motion estimation unit 204 can generate motion information for the current video block by comparing one or more reference frames from buffer 213 to the current video block. Motion compensation unit 205 can determine a predicted video block for the current video block based on the motion information and decoded samples of pictures from buffer 213 other than the picture in which the current video block is located.

[0062] ​Motion estimation unit 204 and motion compensation unit 205 can perform different operations on a current video block, e.g., depending on whether the current video block is in an I slice, a P slice, or a B slice. As used herein, an "I slice" can refer to a portion of a picture composed of macroblocks all of which are based on macroblocks within the same picture. Further, as used herein, a "P slice" and a "B slice" can refer, in some aspects, to portions of a picture composed of macroblocks that are independent of macroblocks in the same picture.

[0063] In some examples, motion estimation unit 204 can perform uni-prediction on a current video block, and motion estimation unit 204 can search a reference picture in List 0 or List 1 for a reference video block for the current video block. Motion estimation unit 204 can then generate a reference index indicating the reference picture in List 0 or List 1 containing the reference video block, and a motion vector indicating a spatial displacement between the current video block and the reference video block. Motion estimation unit 204 can output the reference index, a prediction direction indicator, and the motion vector as motion information for the current video block. Motion compensation unit 205 can generate a predicted video block for the current video block based on the reference video block indicated by the motion information for the current video block.

[0064] Alternatively, in other examples, motion estimation unit 204 can perform bi-prediction on a current video block. Motion estimation unit 204 can search a reference picture in List 0 for one reference video block for the current video block, and can also search a reference picture in List 1 for another reference video block for the current video block. Motion estimation unit 204 can then generate multiple reference indices indicating multiple reference pictures in List 0 and List 1 containing the multiple reference video blocks, and multiple motion vectors indicating multiple spatial displacements between the multiple reference video blocks and the current video block. Motion estimation unit 204 can output the multiple reference indices and the multiple motion vectors for the current video block as motion information for the current video block. Motion compensation unit 205 can generate a predicted video block for the current video block based on the multiple reference video blocks indicated by the motion information for the current video block.

[0065] In some examples, motion estimation unit 204 can output a full set of motion information for use in decoding processing by a decoder. Alternatively, in some embodiments, motion estimation unit 204 can reference motion information of another video block to signal motion information of the current video block. For example, motion estimation unit 204 can determine that the motion information of the current video block is sufficiently similar to the motion information of a neighboring video block.

[0066] In one example, the motion estimation unit 204 can indicate a value in a syntax structure associated with the current video block that indicates to the video decoder 300 that the current video block has the same motion information as another video block.

[0067] In another example, the motion estimation unit 204 can identify, in a syntax structure associated with the current video block, another video block and a motion vector difference (MVD). The motion vector difference indicates a difference between a motion vector of the current video block and a motion vector of the indicated video block. The video decoder 300 can use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.

[0068] As discussed above, the video encoder 200 can signal motion vectors in a predictive manner. Two examples of predictive signaling techniques that can be implemented by the video encoder 200 include advanced motion vector prediction (AMVP) and Merge mode signaling.

[0069] The intra prediction unit 206 can perform intra prediction on the current video block. When the intra prediction unit 206 performs intra prediction on the current video block, the intra prediction unit 206 can generate prediction data for the current video block based on decoded samples of other video blocks in the same picture. The prediction data for the current video block can include a predicted video block and various syntax elements.

[0070] The residual generation unit 207 can generate residual data for the current video block by subtracting (e.g., indicated by a minus sign) the predicted video block(s) of the current video block from the current video block. The residual data for the current video block can include residual video blocks corresponding to different sample components of samples in the current video block.

[0071] In other examples, such as in skip mode, there can be no residual data for the current video block for the current video block, and the residual generation unit 207 can not perform the subtraction operation.

[0072] The transform processing unit 208 can generate one or more transform coefficient video blocks for the current video block by applying one or more transforms to the residual video blocks associated with the current video block.

[0073] After the transform processing unit 208 generates the transform coefficient video blocks associated with the current video block, the quantization unit 209 can quantize the transform coefficient video blocks associated with the current video block based on one or more quantization parameter (QP) values associated with the current video block.

[0074] The inverse quantization unit 210 and the inverse transform unit 211 can apply inverse quantization and inverse transform, respectively, to the transform coefficient video block to reconstruct a residual video block from the transform coefficient video block. The reconstruction unit 212 can add the reconstructed residual video block to corresponding samples from one or more prediction video blocks generated by the prediction unit 202 to produce a reconstructed video block associated with the current video block for storage in the buffer 213.

[0075] After the reconstruction unit 212 reconstructs the video block, an in-loop filtering operation can be performed to reduce video block effect artifacts in the video block.

[0076] The entropy encoding unit 214 can receive data from other functional components of the video encoder 200. When the entropy encoding unit 214 receives data, the entropy encoding unit 214 can perform one or more entropy encoding operations to generate entropy encoded data and output a bitstream that includes the entropy encoded data.

[0077] Figure 3 FIG. 3 is a block diagram illustrating an example of a video decoder 300 that can be Figure 1 an example of the video decoder 124 in the system 100 shown.

[0078] The video decoder 300 can be configured to perform any or all of the techniques of this disclosure. In Figure 3 example, the video decoder 300 includes a plurality of functional components. The techniques described in this disclosure can be shared among the various components of the video decoder 300. In some examples, a processor can be configured to perform any or all of the techniques described in this disclosure.

[0079] In Figure 3 example, the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, and a reconstruction unit 306 and a buffer 307. In some examples, the video decoder 300 can perform a decoding process generally reciprocal to the encoding process described with respect to the video encoder 200.

[0080] Entropy decoding unit 301 can retrieve an encoded bitstream. The encoded bitstream can include entropy encoded video data (e.g., encoded blocks of video data). Entropy decoding unit 301 can decode the entropy encoded video data, and motion compensation unit 302 can determine motion information from the entropy decoded video data, including motion vectors, motion vector precision, reference picture list index, and other motion information. Motion compensation unit 302 can determine such information, for example, by performing AMVP and Merge modes. AMVP is used, including deriving a number of most probable candidates based on data from neighboring PBs and reference pictures. The motion information typically includes a horizontal motion vector displacement value and a vertical motion vector displacement value, one or two reference picture indices, and in the case of a prediction region in a B slice, an identification of which reference picture list is associated with each index. As used herein, in some aspects, "Merge mode" can refer to deriving motion information from a spatially or temporally neighboring block.

[0081] Motion compensation unit 302 can generate a motion compensated block, possibly performing interpolation based on an interpolation filter. An identifier for the interpolation filter used at sub-pixel precision can be included in the syntax elements.

[0082] Motion compensation unit 302 can use the interpolation filter used by video encoder 200 during encoding of the video block to calculate interpolated values for sub-integer pixels of the reference block. Motion compensation unit 302 can determine the interpolation filter used by video encoder 200 from the received syntax information, and motion compensation unit 302 can use the interpolation filter to generate the prediction block.

[0083] Motion compensation unit 302 can use at least some of the syntax information to determine the size of the blocks used to encode frames and / or slices of the encoded video sequence, partitioning information describing how each macroblock of a picture of the encoded video sequence is partitioned, modes indicating how each partition is encoded, one or more reference frames (and reference frame lists) for each inter-coded block, and other information used to decode the encoded video sequence. As used herein, in some aspects, a "slice" can refer to a data structure that can be decoded independently of other slices of the same picture in terms of entropy coding, signal prediction, and residual signal reconstruction. A slice can be an entire picture, or can also be a region of a picture.

[0084] Intra prediction unit 303 can use intra prediction modes, e.g., received in the bitstream, to form a prediction block from spatial neighboring blocks. Dequantization unit 304 dequantizes (i.e., inverse quantizes) quantized video block coefficients provided in the bitstream and decoded by entropy decoding unit 301. Inverse transform unit 305 applies an inverse transform.

[0085] The reconstruction unit 306 can obtain the decoded block, e.g., by adding the residual block to the corresponding prediction block generated by the motion compensation unit 302 or the intra prediction unit 303. If needed, a deblocking filter can also be applied to filter the decoded block in order to remove blocking artifacts. The decoded video blocks are then stored in the buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction, and which also produces decoded video for presentation on a display device.

[0086] Some example embodiments of the present disclosure will be described in detail below. It should be noted that the use of section headings in this document is for convenience only and not to be construed as limiting the embodiments disclosed in a section to only that section. Furthermore, although some embodiments are described with reference to a multi-functional video codec or other specific video codec, the disclosed techniques are applicable to other video coding technologies. Moreover, although some embodiments are described in detail with reference to video encoding steps, it will be appreciated that corresponding decoding steps will be implemented by a decoder. Furthermore, the term video processing includes video encoding or compression, video decoding or decompression, and video transcoding, in which video pixels are represented from one compressed format to another compressed format or at a different compressed bit rate. 1. BRIEF OVERVIEW The present disclosure relates to video coding techniques. In particular, it is about intra prediction in image / video coding. It can be applied to existing video coding standards like HEVC, VVC, etc. It can also be applicable to future video coding standards or video codecs. 2. INTRODUCTION Video coding standards have evolved mainly through the development of the well-known ITU-T and ISO / IEC standards. The ITU-T produced H.261 and H.263 standards, ISO / IEC produced MPEG-1 and MPEG-4 Visual, and the two organizations jointly produced the H.262 / MPEG-2 Video and H.264 / MPEG-4 Advanced Video Coding (AVC) standards and the H.265 / HEVC standard. From H.262, video coding standards are based on the hybrid video coding structure, where temporal prediction plus transform coding are utilized. To explore future video coding technologies beyond HEVC, the Joint Video Exploration Team (JVET) was founded by VCEG and MPEG jointly in 2015. The JVET meeting is held once every quarter, and the new video coding standard was officially named as Versatile Video Coding (VVC) in the April 2018 JVET meeting, and the first version of VVC test model (VTM) was also released at that time. The working draft of VVC and the test model VTM are updated after each meeting. The VVC project achieved technical completion (FDIS) in the July 2020 meeting. 2.1 Intra prediction In intra prediction, the minimum chroma intra prediction unit (SCIPU) constraint in VVC is removed. In addition, the VPDU constraint for reducing CCLM prediction delay is also removed. 2.1.1 Multi-model LM (MMLM) The CCLM included in VVC is extended by adding three multi-model LM (MMLM) modes. In each MMLM mode, the neighboring samples reconstructed by adding a threshold are classified into two categories, and the threshold is the average of the luma reconstructed neighboring samples. The linear model for each category is derived using the least mean square (LMS) method. For the CCLM mode, the linear model is also derived using the LMS method. A slope adjustment is applied to the cross-component linear model (CCLM) and multi-model LM prediction. The adjustment tilts the linear function that maps the luma values to the chroma values with respect to a center point determined by the average luma value of the reference samples. 2.1.1.1 Slope adjustment for CCLM The CCLM maps luma values to chroma values using a model with 2 parameters. The slope parameter “a” and the bias parameter “b” define the mapping as follows: chromaVal = a * lumaVal + b. The adjustment “u” of the slope parameter is signaled to update the model to the following form: chromaVal = a’ * lumaVal + b’ where a’ = a + u b’ = b - u * yr . By this selection, the mapping function is tilted or rotated around the point with luminance value y r The average value of the reference luminance samples used in the model creation is used as y r in order to provide a meaningful modification of the model. Figure 4 The procedure is illustrated. More specifically, Figure 4 The effect of the slope adjustment parameter "u" is illustrated. Left: model created with the current CCLM. Right: updated model as proposed. Implementation The slope adjustment parameter is provided as an integer between -4 and 4 (inclusive) and is signaled in the bitstream. The unit of the slope adjustment parameter is 1 / 8 th of a chroma sample value per one luminance sample value (for 10-bit content). The adjustment can be used for CCLM models that use both the reference samples above and to the left of the block ("LM_CHROMA IDX" and "MMLM_CHROMA IDX"), but not for "one-sided" modes. This selection is based on a trade-off between coding efficiency and complexity considerations. When applying slope adjustment for multi-mode CCLM models, both models can be adjusted, so no more than two slope updates are signaled for a single chroma block. Encoder method The proposed encoder method performs a SATD-based search for the best value of the slope update for Cr and a similar SATD-based search for Cb. If the result of either search is 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. 2.1.2 Gradient PDPC In VVC, for some scenarios, PDPC can not be applied due to the unavailability of the secondary reference samples. In these cases, a gradient-based PDPC extended from the horizontal / vertical mode is applied. The PDPC weight (wT / wL) and nScale parameters used to determine the decay of the PDPC weight with respect to the distance from the left / top boundary are set equal to the corresponding parameters in the horizontal / vertical mode, respectively. When the secondary reference samples are at fractional sample positions, bilinear interpolation is applied. 2.1.3 Secondary MPM A secondary MPM list is introduced. The existing primary MPM (PMPM) list consists of 6 entries and the secondary MPM (SMPM) list includes 16 entries. A general MPM list with 22 entries is first constructed, then the first 6 entries in the general MPM list are included into the PMPM list and the remaining entries form the SMPM list. The first entry in the general MPM list is the planar mode. The remaining entries consist of the intra modes of the left (L), above (A), below left (BL), above right (AR) and above left (AL) neighboring blocks, the band direction modes with offset added from the first two available band directions of the neighboring blocks and the default mode. If the CU block is in vertical direction, the order of the neighboring blocks is A, L, BL, AR, AL; otherwise, the order is L, A, BL, AR, AL. Figure 5 The neighboring blocks (L, A, BL, AR, AL) used in the derivation of the general MPM list are shown. The PMPM flag is first parsed, if equal to 1, the PMPM index is parsed to determine which entry of the PMPM list is selected, otherwise the SPMPM flag is parsed to determine whether to parse the SMPM index or the remaining mode. 2.1.4 Reference sample interpolation and smoothing for intra prediction 4-tap triple interpolation is replaced by 6-tap triple interpolation filter for deriving the prediction samples from the reference samples. For reference sample filtering, a 6-tap Gaussian filter is applied for larger blocks (W >= 32 and H >= 32), otherwise the existing VVC 4-tap Gaussian interpolation filter is applied. The extended intra reference samples are derived using the 4-tap interpolation filter instead of nearest-neighbor rounding. 2.1.5 Decoder-side intra mode derivation (DIMD) When DIMD is applied, two intra modes are derived from the reconstructed neighboring samples and these two prediction values are combined with the planar mode prediction value with weights derived from the gradient. The division operations in the weight derivation are performed with the same lookup table (LUT) based integerization scheme used by CCLM. For example, the division operation in the direction calculation: Orient = G y / G x is computed by the following LUT based scheme: x = Floor(Log2(Gx)) normDiff = ((Gx << 4) >> x) & 15 x += (3 + (normDiff!= 0)? 1 : 0) Orient = (Gy * (DivSigTable[normDiff] » 8) + (1 « (x - 1))) » x where DivSigTable

[16] = {0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}. The derived intra mode is included into the main list of intra most probable modes (MPM), so the DIMD process is performed before the MPM list is constructed. The main derived intra mode of a DIMD block is stored together with the block and used for the MPM list construction of neighboring blocks. 2.1.5.1 DIMD chroma mode The DIMD chroma mode uses the DIMD derivation method to derive the chroma intra prediction mode of the current block based on the neighboring reconstructed Y, Cb and Cr samples in the second neighboring row and the second neighboring column. Specifically, the horizontal and vertical gradients are calculated for each collocated reconstructed luma sample and the reconstructed Cb and Cr samples of the current chroma block to construct the HoG. Then the intra prediction mode with the largest histogram amplitude value is used to perform the chroma intra prediction of the current chroma block. Figure 6 The neighboring reconstructed samples used for the DIMD chroma mode are shown. When the intra prediction mode derived from the DIMD chroma mode is the same as the intra prediction mode derived from the DM mode, the intra prediction mode with the second largest histogram amplitude value is used as the DIMD chroma mode. A CU level flag is signaled to indicate whether the proposed DIMD chroma mode is applied. 2.1.6 Fusion of chroma intra prediction modes The DM mode and the four default modes can be fused with the MMLM LT mode as follows: pred = (w0 * pred0 + w1 * pred1 + (1 « (shift - 1))) » shift where pred0 is the prediction value obtained by applying the non-LM mode, pred1 is the prediction value obtained by applying the MMLM LT mode, and pred is the final prediction value of the current chroma block. The two weights w0 and w1 are determined by the intra prediction modes of the neighboring chroma blocks, and shift is set to be equal to 2. Specifically, when both the above neighboring block and the left neighboring block are coded with LM mode, {w0, w1} = {1, 3}; when both the above neighboring block and the left neighboring block are coded with non-LM mode, {w0, w1} = {3, 1}; otherwise, {w0, w1} = {2, 2}. For the syntax design, if the non-LM mode is selected, one flag is signaled to indicate whether the fusion is applied. This method is only applied to I slices. 2.1.7 Intra-frame Template Matching Intra-frame template matching prediction (IntraTMP) is a special intra-frame prediction mode that copies the best prediction block from the reconstructed portion of the current frame, whose L-shaped template matches the current template. The encoder searches for the template in the reconstructed portion of the current frame that is most similar to the current template, within a predefined search range, and uses the corresponding block as the prediction block. The encoder then signals the use of this mode, and the same prediction operation is performed on the decoder side. Figure 7 The prediction signal is obtained by combining the L-shaped causal neighbors of the current block with the Figure 7 is generated by matching another block in a predefined search area in the , the predefined search area consists of the following: R1: Current CTU. R2: Upper left CTU. R3: Upper CTU. R4: left CTU. The sum of absolute differences (SAD) is used as the cost function. In each region, the decoder searches for the template with the smallest SAD relative to the current template and uses its corresponding block as the prediction block. The dimensions of all regions (SearchRange_w, SearchRange_h) are set to be proportional to the block dimensions (BlkW, BlkH) to have a fixed number of SAD comparisons per pixel. That is: SearchRange_w=a*BlkW, SearchRange_h=a*BlkH, Where "a" is a constant that controls the gain / complexity tradeoff. In practice, "a" is equal to 5. To speed up the template matching process, the search range of all search areas is downsampled by a factor of 2. This results in a reduction of 4 in the template matching search. After finding the best match, a refinement process is performed. Refinement is performed via a second template matching search with a reduced range around the best match. The reduced range is defined as min(BlkW, BlkH) / 2. The intra template matching tool is enabled for CUs with width and height dimensions less than or equal to 64. This maximum CU size for intra template matching is configurable. When DIMD is not used for the current CU, the intra template matching prediction mode is signaled at the CU level through a dedicated flag. 2.1.7.1 Block Vector Candidates Derived by IntraTMP for IBC In this method, the block vector (BV) derived from Intra Template Matching Prediction (IntraTMP) is used for Intra Block Copy (IBC). The stored IntraTMP BV of the neighboring block is used together with the IBC BV as a spatial BV candidate in IBC candidate list construction. IntraTMP block vector is stored in IBC block vector buffer and the current IBC block can use both the IBC BV and IntraTMP BV of the neighboring block as BV candidates for IBC BV candidate list as shown in Figure 8 IntraTMP block vector is added to IBC block vector candidate list as a spatial candidate. 2.1.8 Fusion for Template based Intra mode derivation (TIMD) For each Intra prediction mode in MPM, the SATD between the prediction of the template and the reconstructed samples is calculated. The first two Intra prediction modes with the smallest SATD are selected as TIMD modes. These two TIMD modes are fused with a weight after applying the process of Position Dependent Intra Prediction Combination (PDPC) and this weighted Intra prediction is used to code the current CU. The PDPC is included in the derivation of TIMD modes. The cost of the two selected modes is compared with a threshold, the cost factor of 2 is applied in the test as follows: costMode2<2*costMode1. If this condition is true, the fusion is applied, otherwise only mode1 is used. The weight of the modes is calculated from their SATD cost as follows: weight1 = costMode2 / (costMode1 + costMode2), weight2 = 1 - weight1. The division operation is done using the same lookup table (LUT) based integerization scheme used by CCLM. 2.1.9 Intra prediction fusion This Intra prediction method derives the prediction samples as a weighted combination of multiple prediction values generated from different reference lines. In this process, multiple Intra prediction values are generated and then fused by weighted averaging. The process of deriving the prediction values to be used in the fusion process is described as follows: • For angular Intra prediction modes including single mode cases of TIMD and DIMD, the proposed method derives the Intra prediction by weighting the Intra prediction obtained from multiple reference lines represented as p fusion = w0p line + w1p line+1 where p​line is the intra prediction from the default reference line, and p line+1 is the prediction from the line above the default reference line. The weights are set to w0=3 / 4 and w1=1 / 4. • For TIMD mode with mixing, p line is used for the first mode (w0=1, w1=0), and p line+1 is used for the second mode (w0=0, w1=1). • For DIMD mode with mixing, the number of prediction values selected for the weighted average is increased from 3 to 6. When the angular intra mode has a non-integer slope (requiring reference sample interpolation) and the block size is greater than 16, the intra prediction blending method is applied to the luma block, which is used with MRL, while not applied to ISP coded blocks. Among the methods studied in sub-test a, PDPC is applied to the intra prediction mode using the reference line closest to the current block. 2.1.10 CIIP with combination of TIMD and TM Merge In CIIP mode, the prediction samples are generated by weighting the inter prediction signal predicted using the CIIP-TM Merge candidate and the intra prediction signal predicted using the TIMD derived intra prediction mode. This method is applied only to coded blocks with area less than or equal to 1024. The TIMD derivation method is used to derive the intra prediction mode in CIIP. Specifically, the intra prediction mode in the TIMD mode list with the smallest SATD value is selected and mapped to one of the 67 regular intra prediction modes. In addition, it is proposed to modify the weights (wIntra, wInter) for both tests if the derived intra prediction mode is an angular mode. For near horizontal modes (2<= angular mode index<34), the current block is vertically divided; for near vertical modes (34<= angular mode index<=66), the current block is horizontally divided. The (wIntra, wInter) for different sub-blocks are shown in Figure 9A and Figure 9B Figure 9A The division method for angular modes is shown, and Figure 9B Another division method for angular modes is shown. Table 1. Modified weights used for angular modes Subblock index (wIntra, wInter) 0 (6,2) 1 (5,3) 2 (3,5) 3 (2,6) ​With CIIP-TM, a CIIP-TM Merge candidate list is constructed for the CIIP-TM mode. Merge candidates are refined by template matching. CIIP-TM Merge candidates are also reordered by the ARMC method as regular Merge candidates. The maximum number of CIIP-TM Merge candidates is equal to 2. 2.1.11 Extended multi-reference line (MRL) list The MRL list in VVC is extended to include more reference lines for intra prediction. The extended reference line list consists of the line indices {1, 3, 5, 7, 12}. For template-based intra mode derivation (TIMD), instead of the full MRL candidate list, only the first two reference line candidates (i.e., {1, 3}) are used. Figure 10 The extended MRL candidate list is shown. 2.1.12 Template-based multi-reference line intra prediction The template-based multi-reference line intra prediction (TMRL) mode combines reference lines and prediction modes together and uses a template matching method to construct a list of candidate combinations. The index of the candidate combination list is coded to indicate which reference line and prediction mode is used when coding the current block. The regular multi-reference line (MRL) for the non-TIMD part is replaced by the TMRL mode. The TMRL mode extends the reference line candidate list and the intra prediction mode candidate list. The extended reference line candidate list is {1, 3, 5, 7, 12}. The restriction on the top CTU row remains unchanged. The size of the intra prediction mode candidate list is 10. The construction of the intra prediction mode candidate list is similar to MPM, except that the planar mode is excluded from the intra prediction mode candidate list, the DC mode is added after the 5 neighboring PUs’ modes and the DIMD mode (if it is not included), and the angular modes with the difference angles from ±1 to ±4 to the existing angular modes in the intra prediction mode candidate list are added. The TMRL candidate is constructed as follows. For a block, there are 5x10 = 50 combinations of the extended reference lines and allowed intra prediction modes. Since the extended reference lines start from reference line 1, the area covered by reference line 0 is used for template matching. Between the prediction (generated by the 50 combinations) and the reconstruction, the SAD cost across the template area (see Figure 11 ) is calculated. The 20 combinations with the smallest SAD cost are selected in ascending order to form the TMRL candidate list. For TMR signaling, instead of coding the reference line and the intra mode directly, the index of the TMRL candidate list is coded to indicate which combination of the reference line and the prediction mode is used to code the current block. 2.1.13 Convolutional cross-component intra prediction model In this method, the Convolutional Cross-Component Model (CCCM) is applied to predict chroma samples from reconstructed luma samples, in a similar spirit as done by the current CCLM mode. As for CCLM, when chroma downsampling is used, reconstructed luma samples are downsampled to match the lower resolution chroma grid. Similarly to CCLM, top, left or both top and left reference samples are used as a template for the model derivation. Furthermore, similarly to CCLM, there is an option to use a single model with CCCM or a multi-model variant of CCCM. The multi-model variant uses two models, one model is derived for samples above the average luma reference value and the other model is derived for the remaining samples (in the spirit of the CCLM design). The multi-model CCCM mode can be selected for PUs with at least 128 available reference samples. 2.1.13.1 Convolutional filter The convolutional 7-tap filter consists of a 5-tap plus sign-shaped spatial component, a non-linear term and a bias term. The input of the spatial 5-tap component of the filter consists of the center (C) luma sample co-located with the chroma sample to be predicted and its above / north (N) neighbor, below / south (S) neighbor, left / west (W) neighbor and right / east (E) neighbor, as shown in Figure 12 The non-linear term P is expressed as the 2nd power of the center luma sample C and is scaled to the sample value range of the content: P = (C * C + midVal) » bitdepth. I.e. for 10-bit content, it is computed as: P = (C * C + 512) » 10. The bias term B represents a scalar offset between the input and output (similar to the offset term in CCLM) and is set to the mid-chroma value (512 for 10-bit content). The output of the filter is computed as the convolution between the filter coefficients c i and the input values, and is clipped to the range of valid chroma samples: predChromaVal = c0C + c1N + c2S + c3E + c4W + c5P + c6B. 2.1.13.2 Computation of filter coefficients The filter coefficients c i are computed by minimizing the MSE between the predicted chroma samples and the reconstructed chroma samples in the reference region. Figure 13 ​The reference region consisting of 6 rows of chroma samples above and to the left of the PU is shown. The reference region is extended right by one PU width and below the PU boundary by one PU height. The region is adjusted to only include available samples. The extension of the region shown in blue is needed to support the "edge samples" of the plus-shaped spatial domain filter and is padded in the unavailable region. MSE minimization is performed by computing the autocorrelation matrix for the luma input and the cross-correlation vector between the luma input and the chroma output. The autocorrelation matrix is LDL-decomposed and the final filter coefficients are computed using back-substitution. This process roughly follows the computation of the ALF filter coefficients in the ECM, however the LDL-decomposition is chosen instead of the Cholesky decomposition to avoid the use of square root operations. The autocorrelation matrix is computed using the reconstructed values of the luma and chroma samples. These samples are full range (e.g. between 0 and 1023 for 10-bit content), resulting in relatively large values in the autocorrelation matrix. This requires high bit-depth operations during the model parameter computation. It is proposed to remove a fixed offset from the luma and chroma samples in each PU for each model. This reduces the amplitude of the values used in the model creation and allows to reduce the precision required for fixed-point arithmetic. As a result, it is proposed that 16-bit decimal precision is used instead of the 22-bit precision of the original CCCM implementation. For simplicity, the reference sample values immediately outside the top-left corner of the PU are used as offsets (offsetLuma, offsetCb and offsetCr). The sample values used in both the model creation and the final prediction (i.e. luma and chroma in the reference region, and luma in the current PU) are reduced by these fixed values as follows: C' = C - offsetLuma N' = N - offsetLuma S' = S - offsetLuma E' = E - offsetLuma W' = W - offsetLuma P' = nonLinear(C') B = midValue = 1 « (bitDepth - 1) And the chroma values are predicted using the following equation, where offsetChroma is equal to offsetCr for the Cr component and to offsetCb for the Cb component: predChromaVal = c0C' + c1N' + c2S' + c3E' + c4W' + c5P' + c6B + offsetChroma. To avoid any additional sample-level operations, the luma offset is removed during luma reference sample interpolation. This can be done, for example, by replacing the rounding term used in luma reference sample interpolation with an updated offset that includes both the rounding term and the offsetLuma. The chroma offset can be removed by directly subtracting the chroma offset from the reference chroma samples. As an alternative, the effect of the chroma offset can be removed from the cross-component vector, giving the same result. To add the chroma offset back to the output of the convolutional prediction operation, the chroma offset is added to the bias term of the convolutional model. The process of CCCM model parameter calculation requires division operations. Division operations are not always considered implementation friendly. Division operations are replaced by multiplication (with a scaling factor) and shift operations, where the scaling factor and the number of shifts are calculated based on the denominator, similar to the method used in the calculation of CCLM parameters. 2.1.13.3 Gradient linear model For YUV 4:2:0 color format, the gradient linear model (GLM) method can be used to predict chroma samples from luma sample gradients. Two modes are supported: two-parameter GLM mode and three-parameter GLM mode. Compared to CCLM, two-parameter GLM does not use down-sampled luma values, but instead utilizes luma sample gradients to derive the linear model. Specifically, when two-parameter GLM is applied, the input of the CCLM process (i.e., down-sampled luma samples Lto) is replaced by luma sample gradients Gto. Other parts of CCLM (e.g., parameter derivation, prediction sample linear transformation) remain unchanged. C = a · G + β In three-parameter GLM, chroma samples can be predicted based on both luma sample gradients and down-sampled luma values with different parameters. The model parameters of three-parameter GLM are derived from 6 rows and columns of neighboring samples by the LDL decomposition based MSE minimization method as used in CCCM. C = a0· G + a1· L + a2· β For signaling, when CCLM mode is enabled for the current CU, one flag is signaled to indicate whether GLM is enabled for both Cb and Cr components; if GLM is enabled, another flag is signaled to indicate which of the two GLM modes is selected, and one syntax element is further signaled to select one of 4 gradient filters for gradient calculation. • As shown in Figure 14 four gradient filters are enabled for GLM. 2.1.13.4 Bitstream signaling The usage of this mode is signaled by a PU level flag that is CABAC coded. A new CABAC context is included to support this. When it comes to signaling, CCCM is considered as a sub-mode of CCLM. That is, the CCCM flag is only signaled when the intra prediction mode is LM_CHROMA. 2.1.14 Spatial Geometry Partition Mode (SGPM) SGPM is an intra mode of inter coding tool similar to GPM, where two prediction parts are generated from an intra prediction process. In this mode, a candidate list is constructed, where each entry contains one partition split and two intra prediction modes, as shown in Figure 15 . 26 partition modes and 3 intra prediction modes are used to form the combinations. The length of the candidate list is set to equal 16. The selected candidate index is signaled. The list is reordered using a template Figure 16 , where the SAD between the prediction of the template and the reconstruction is used for the ordering. The template size is fixed to 1. For each partition mode, the same intra-inter GPM list derivation is used, and the IPM list is derived for each part. The IPM list size is set to 3. In the list, the TIMD derived mode is replaced by 2 derived modes with horizontal and vertical directions. The SGPM mode is applied with restricted block size: 4 <= width <= 64, 4 <= height <= 64, width < height * 8, height < width * 8, width * height > = 32. Adaptive mixing is also used for spatial GPM, where the mixing depth τ shown in Figure 17 is derived as follows: • If min(width, height) == 4, 1 / 2 τ is selected, • Else if min(width, height) == 8, τ is selected, • Else if min(width, height) == 16, 2 τ is selected, • Else if min(width, height) == 32, 4 τ is selected, • Else, 8 τ is selected. 2.1.15 Non-local Cross-Component Prediction Cross-component prediction (CCP) including CCLM, CCCM and its variants is adopted by ECM to exploit cross-component correlation. With CCLM or CCCM, the training samples are always adjacent to the current block. However, the cross-component relationship of the current block can be more relevant to that of a non-local region. A method of non-local cross-component prediction is proposed to facilitate CCP by gaining more advantage from non-local regions. Method #1: A non-adjacent cross-component prediction (NA-CCP) mode is proposed. With NA-CCP mode, samples in a region that is non-adjacent to the current block can be used to derive the CCCM model for the current block. By checking potential 8x8 regions in order, a list of 6 candidates is constructed. If a checked region is available, it is put into the list of candidate regions. The top-left positions of potential 8x8 regions are predetermined as {(-xStep, 0), (0, -yStep), (xStep, -yStep), (-xStep, yStep), (-xStep, -yStep), (-2*xStep, 0), (0, -2*yStep), (-2*xStep, 2*yStep), (2*xStep, -2*yStep), (-2*xStep, yStep), (xStep, -2*yStep), (-2*xStep, -yStep), (-xStep, -2*yStep), (-2*xStep, -2*yStep), (-xStep / 2, 0), (0, -yStep / 2), (xStep / 2, -yStep / 2), (-xStep / 2, yStep / 2), (-xStep / 2, -yStep / 2)}, where xStep = Max(width, 16), yStep = Max(height, 16). Figure 18 Some possible positions of candidate regions are shown. A flag is signaled to indicate whether NA-CCP is applied to chroma blocks. If NA-CCP is applied, an index is signaled to indicate which candidate in the list of candidate regions is used to derive the CCCM model. Method #2: A history-based cross-component prediction (H-CCP) mode is proposed. With H-CCP, similar to HMVP table, H-CCLM table and H-CCCM table are maintained. After a block coded with CCLM or CCCM is decoded, the corresponding table is updated. In the implementation of H-CCP, the size of H-CCLM table or H-CCCM table is 6. If the current block is coded with CCLM or CCCM mode, a flag is signaled to indicate whether H-CCP is applied. If H-CCP is used, an index is further signaled to indicate which candidate model in the H-CCLM table or H-CCCM table is selected. 2.1.16 Cross-component Merge mode for chroma intra coding ​​Cross-component prediction (CCP) including cross-component linear model (CCLM), convolution cross-component model (CCCM) and gradient linear model (GLM) is adopted by ECM to exploit cross-component correlation. Cross-component Merge (CCMerge) mode is proposed as a new CCP mode. The cross-component model parameters of the current chroma block coded with CCMerge can be inherited from the neighboring block coded with CCP. With CCMerge, CCP can be more efficient and has less signaling overhead. In CCMerge, the final cross-component model parameters of the current chroma block can be inherited from its spatial neighboring neighbors and spatial non-neighboring neighbors or default model. A list is created which includes CCP models from spatial neighboring neighbors and spatial non-neighboring neighbors coded with CCLM, MMLM, CCCM, GLM, chroma fusion and CCMerge mode. After including neighboring CCP models, default models are further included to fill the remaining empty positions in the list. To avoid including redundant CCP models in the list, a de-duplication operation is applied. More details are described as follows. • Spatial neighboring neighbors candidates The positions of spatial neighboring candidates are shown as Figure 19 The spatial candidates are included in the following order: B1 -> A1 -> B0 -> A0 -> B2. • Spatial non-neighboring neighbors candidates After all spatial neighboring neighbors are checked, spatial non-neighboring neighbors candidates are considered. In the current ECM design, in inter Merge mode, two groups of spatial non-neighboring neighbors candidates are fetched. In the proposed method, the positions and inclusion order of spatial non-neighboring neighbors candidates from the first group are used. • CCLM candidate with default scaling parameters After including spatial neighboring candidates and spatial non-neighboring candidates, if the list is not full, CCLM candidate with default scaling parameters is considered. The default scaling parameters are {0, 1 / 8, -1 / 8, 2 / 8, -2 / 8, 3 / 8} and the offset parameters are derived according to the selected default scaling parameters, average neighboring reconstructed luma sample value (Yavg) and average neighboring reconstructed Cb / Cr sample value (Cavg). 2.1.16.1 Merge model candidates When Merge CCLM candidate, only scaling parameters are inherited. The offset parameters are derived by using the inherited scaling parameters, Yavg and Cavg. When a Merge MMLM candidate, the scaling parameters and the classification threshold are inherited. The offset parameter in each class is derived from the inherited classification threshold and Yavg and Cavg in each class. If no neighboring reconstructed samples are available in a certain class, the offset parameter is directly inherited from the candidate. When a Merge CCCM candidate, all the convolution parameters, the offsets (i.e., offsetLuma, offsetCb and offsetCr) and the classification threshold are inherited. When a Merge GLM candidate, if the GLM candidate is a 3-parameter GLM mode, all the gradient mode indices and the model parameters are inherited; otherwise, if the GLM candidate is a 2-parameter GLM mode, the offset parameters are derived by using the inherited scaling parameters, Yavg and Cavg. When a Merge chroma fusion candidate, the derived MMLM parameters are inherited and used as the Merge's MMLM candidate. For a CCMerge block, if its Merge candidate mode is CCLM, MMLM, CCCM or GLM, the Merge candidate mode is stored as the propagated mode for the current chroma block; otherwise, if its Merge candidate mode is chroma fusion, the propagated mode is set to MMLM. When a CCMerge candidate is merged, how to inherit or derive the CCP parameters depends on the propagated mode of the CCMerge candidate, as described in the above five paragraphs. 2.1.16.2 Signaling After the cclm_mode_flag syntax element, an additional flag is signaled, which indicates whether CCMerge is used or not. If CCMerge is used, a candidate index is additionally signaled. The signaled candidate index is shared for Cb / Cr color components. Currently, the maximum allowed number of candidates is set to the default value 6. If the maximum allowed number of candidates is modified to 1, the candidate index does not need to be signaled. Each bin of the candidate index is context coded with a separate context. 2.1.17 CCCM with multiple downsampling filters (CCCM-MDF) Multiple downsampling filters are applied to a set of reconstructed luma samples in CCCM. The linear combination of these downsampled reconstructed samples is multiplied by the derived filter coefficients to form the final chroma prediction value. The horizontal or vertical position of the center luma sample can also be considered in the proposed model. The coefficients are derived by Gaussian elimination as currently used by the CCCM mode in ECM. The following shown cross-component model is tested as an additional CCCM mode, where the mode index is signaled in the bitstream: (1) Model 1: predChroma=c0*H(C)+c1*G1(C)+c2*G2(C)+c3*G3(C)+c4*P(H(C))+c5*P(G1(C))+c6*P(G2(C))+c7*X+c8*Y+c9*B (2) Model 2: predChroma=c0*H(C)+c1*H(W)+c2*H(E)+c3*G1(C)+c4*G1(W)+c5*G1(E)+c6*P(H(C))+c7*P(H(W))+c8*P(H(E))+c9*X+c10*B (3) Model 3: predChroma=c0*H(C)+c1*H(NE)+c2*H(SW)+c3*G3(C)+c4*G3(NE)+c5*G3(SW)+c6*P(H(C))+c7*P(H(NE))+c8*P(H(SW))+c9*Y+c10*B where H(·), G1(·), G2(·), G3(·) are Figure 20 The various downsampling filters shown in FIG. 4 , C represents the current chroma sample position, and N, S, W, E, NE, SW are as follows Figure 21 The position around C shown, c i Are filter coefficients, P and B are nonlinear terms and bias terms, and X and Y are the horizontal and vertical positions of the center luma sample relative to the top-left coordinate of the block. Note that model 1 is a 1x1 prediction shape using only the current chroma sample, while the other models are unidirectional prediction models using 3 chroma samples. 2.1.18 History-Based Cross-Component Prediction (H-CCP) 1. It is proposed that the model(s) of cross-component prediction (CCP) (such as CCLM or CCCM) in a block can be stored into a history table (HT). a.HT is a list with ordered entries. i. Each entry has an index. For example, the first entry has an index of 0, and subsequent entries have indices of 1, 2, 3, ... b. The model parameters of CCLM and its variants can include a, b, and shift to control the calculation accuracy. c. The model parameters of CCLM and its variants may include a linear part (such as c0-c4) and a nonlinear part (such as c5). d. The model may include models for different color components such as Cb and Cr. i. For example, the models for Cb and Cr can be coupled in the entry. e. In one example, different CCPs such as CCLM and CCCM can share the same HT. i. In one example, the segment in the entry of the HT can reflect the type of CCP model stored in the entry. f. In one example, different CCPs such as CCLM and CCCM can have different HTs. i. In one example, one CCLM_HT can store the model of CCLM and its variants such as CCLM-L or CCLM-T. ii. In one example, one CCCM_HT can store the model of CCCM and its variants such as CCCM-T or CCCM-T. g. In one example, CCPs with single model such as CCLM or CCCM and CCPs with multiple models such as MM-CCLM or MM-CCCM can have different HTs. h. In one example, CCPs with single model such as CCLM or CCCM and CCPs with multiple models such as MM-CCLM or MM-CCCM can share the same HT. i. In one example, the segment in the entry of the HT can reflect the number of models stored in the entry. ii. In one example, the segment in the entry of the HT can reflect at least one threshold used to classify a sample point into different model groups. i. In one example, the first HT is used to store the model of CCLM and its variants. i. In one example, the CCLM variants can include CCLM-L, CCLM-T, MM-CCLM, MM-CCLM-L, MM-CCLM-T, GLM, and CCLM with slope adjustment. 1) The segment in the entry of the HT can reflect the number of models stored in the entry. 2) The segment in the entry of the HT can reflect at least one threshold used to classify a sample point into different model groups. 3) The segment in the entry of the HT can reflect whether GLM is applied. 4) The segment in the entry of the HT can reflect the down-sampling filter of GLM. j. In one example, the second HT is used to store the model of CCCM and its variants. i. In one example, the CCCM variants can include CCCM-L, CCCM-T, MM-CCCM, MM-CCCM-L, MM-CCCM-T. 1) The segment in the entry of the HT can reflect the number of models stored in the entry. 2) The segment in the entry of HT can reflect at least one threshold used to classify samples into different model groups. 2. It is proposed that a block can be coded with a history-based CCP (H-CCP) mode in which at least one CCP model used by the current block is derived or fetched from HT. a. In one example, at least one syntax element (SE) can be signaled to indicate whether H-CCP is applied. i. In one example, the SE can be conditionally signaled. For example, the SE is signaled only when a certain mode (such as CCCM or CCLM) is used. 1) For example, the SE is signaled only when the current mode is CCCM or CCLM. b. In one example, at least one syntax element (SE) can be signaled to indicate which entry in HT is fetched to derive the model(s) for cross-component prediction. i. The SE can reflect an index in HT. 1) In one example, the SE can be set equal to f(k), where k is the index and f is a function. 2) In one example, the SE can be set equal to f(k, M), where k is the index, M is the number of valid entries in HT, and f is a function. a) In another example, M is the size of HT. 3) In one example, the SE can be set equal to k, where k is the index. 4) In one example, the SE can be set equal to M-1-k, where k is the index and M is the number of valid entries in HT. a) In another example, M is the size of HT. ii. The SE can reflect an index of a list, and the list can be constructed based on HT. 1) In one example, the list L is constructed by reversing HT. For example, L[i] = HT[M-1-i], where M is the number of valid entries in HT. a) In another example, M is the size of HT. b) In one example, L can have a fixed size. c) In one example, if L is not full, empty entries are padded with a default entry. iii. In one example, the SE can be conditionally signaled. For example, the SE is signaled only when H-CCP is applicable. iv. SE can be signaled only if more than one entry in the HT can be selected. v. The maximum value of SE (denoted as V) is determined by the number of entries to be selected. 1) For example, V = K, or V = K-1, or V = K+1, or V = K-2, or V = K+2. c. In one example, at least one syntax element (SE) can be signaled to indicate which HT is used. i. In one example, SE can be conditionally signaled. For example, SE is signaled only if H-CCP is applicable. ii. SE can be signaled only if more than one HT can be selected. d. In one example, which HT is used can be derived at the encoder / decoder. i. In one example, if the current mode is CCLM, the first HT storing the model of CCLM and its variants is used. ii. In one example, if the current mode is CCCM, the second HT storing the model of CCCM and its variants is used. e. In one example, the current block can be predicted with the CCP model obtained from the determined entry of the determined HT. f. In one example, the current block can be predicted with CCCM or CCLM based on whether the first HT or the second HT is applied. g. In one example, the current block can be predicted with multi-model. i. Whether single model or multi-model is applied can be derived / obtained from the determined entry of the determined HT. ii. At least one threshold for classifying samples into different model groups can be obtained / derived from the determined entry of the determined HT. HT maintenance 3. The maximum size of HT can be predetermined, such as 5 or 6. a. Alternatively, the maximum size of HT can be signaled as SE at block level / sequence level / picture group level / picture level / slice level / tile group level, such as in the coding structure of CTU / CU / TU / PU / CTB / CB / TB / PB or sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / slice header / tile group header. b. Alternatively, the maximum size of HT can be derived using the following encoding / decoding information: i. the mode of the current block; ii. the mode of the neighboring block; iii. the mode of the luma block in the collocated region of the current block; iv. the mode of the luma block in the collocated region of the neighboring block; v. QP; vi. slice / picture type; vii. picture width / height; viii. block width / height; ix. reconstructed samples. 4. The HT can be flushed at the start of encoding / decoding a sequence / picture / slice / tile / subpicture / CTU row / CTU. a. For example, the HT can be flushed by emptying the table. b. For example, the HT can be flushed by filling the table with default entries. 5. The HT can be updated after encoding / decoding a block (such as a CU). a. For example, when applying dual tree coding, the CU must be a chroma CU. b. For example, the CU must be a CU with CCP mode. c. For example, which HT to be updated can depend on the coding mode of the CU. i. For example, if the CU is coded with CCLM mode (such as CCLM, CCLM-L, CCLM-T, MM-CCLM, MM-CCLM-L, MM-CCLM-T, GLM, and CCLM with slope adjustment), the model(s) and related information (such as threshold(s) for classifying samples into different model groups) are stored in the first HT. ii. For example, if the CU is coded with CCCM mode (such as CCCM, CCCM-L, CCCM-T, MM-CCCM, MM-CCCM-L, MM-CCCM-T), the model(s) and related information (such as threshold(s) for classifying samples into different model groups) are stored in the first HT. d. For example, a set of information related to the CCP model(s) used by the current block can be put into the HT. i. The set can include one or more CCP models. ii. The set can include the number of models. iii. The set can include threshold(s) for classifying samples into different model groups. iv. The set can include slope adjustment. e. In one example, if the current block is coded with CCLM with slope adjustment, the CCP model can be adjusted before being used to update the HT. 6. How a new set of information related to the CCP model(s) is put into the HT can depend on whether the HT is full or not. a. For example, if the HT is not full, the new set can be put to the first empty entry of the HT. i. For example, the first empty entry is the empty entry with the smallest index. ii. For example, the first empty entry is the empty entry with the largest index. iii. After being put into the HT, the new set can be put as the last occupied entry in the HT. 1) The last occupied entry can be the occupied entry with the largest index. 2) The last occupied entry can be the occupied entry with the smallest index. b. For example, if the HT is full, an existing entry in the HT can be removed. i. In one example, the HT can be managed in a first-in-first-out manner. ii. The existing entry with the smallest index can be removed. 1) The updated HT' can be set as: HT'[i] = HT[i+1] for 0 <= i <= N-2, and HT'[N-1] = the new set, where N is the size of the HT. iii. The existing entry with the largest index can be removed. 1) The updated HT' can be set as: HT'[i] = HT[i-1] for 1 <= i <= N-1, and HT'[0] = the new set, where N is the size of the HT. 7. In one example, the new set can be compared with at least one existing entry in the HT to determine whether to put the new set into the HT and / or how to update the HT. 8. In one example, if the new set is the same as or similar to one of the existing entries in the HT, the new set is not put into the HT. Assume the new set is the same as or similar to a special entry of the HT. a. For example, in this case, the special entry can be put to the first of the HT, and the entries originally before the special entry are pushed one position back. i. For example, assume the entries are HT[i] (where i = 0, 1,...), and the special entry is HT[k], the updated HT' will be as follows: HT'[0] = HT[k]; HT'[i] = HT[i-1] for 1 <= i <= k; HT'[i] = HT[i] for i > k. b. For example, in this case, the special entry can be put at the end of the HT, and the entries originally before the special entry are pushed forward by one position. i. For example, assume the entries are HT[i] (where i = 0, 1,...), and the special entry is HT[k], then the updated HT' will look like this: HT'[N-1] = HT[k]; HT'[i] = HT[i+1] (for k <= i <= N-2); HT'[i] = HT[i] (for i < k). 9. In one example, whether to put in a new group and / or how to update the HT can depend on the coding information of the CU with the new group. 10. In one example, if the new group is of a CU coded with H-CCP mode, then the new group is not put into the HT. Assume the special entry in the HT is used by a CU coded with H-CCP. a. For example, in this case, the special entry can be put at the first of the HT, and the entries originally before the special entry are pushed backward by one position. i. For example, assume the entries are HT[i] (where i = 0, 1,...), and the special entry is HT[k], then the updated HT' will look like this: HT'[0] = HT[k]; HT'[i] = HT[i-1] (for 1 <= i <= k); HT'[i] = HT[i] (for i > k). b. For example, in this case, the special entry can be put at the end of the HT, and the entries originally before the special entry are pushed forward by one position. i. For example, assume the entries are HT[i] (where i = 0, 1,...), and the special entry is HT[k], then the updated HT' will look like this: HT'[N-1] = HT[k]; HT'[i] = HT[i+1] (for k <= i <= N-2); HT'[i] = HT[i] (for i < k). 11. It is proposed that an entry of the HT can include a model for more than one chroma component, such as Cb and Cr. a. If the entry is selected, the model for component Cb and Cr is applied to the two components respectively. 12. It is proposed that an entry of the HT can include a model for only one component, such as Cb or Cr. a. If the entry is selected, the model for a particular component, such as Cb or Cr, is applied to the particular component. b. In one example, different HTs can be constructed for different components. List mode 13. It is proposed that at least one list with CCP models can be constructed. a. In one example, a chroma block can be predicted by "list mode" with CCP models in the list. b. In one example, the list L can be filled with one type of CCP model, such as CCCM. c. In one example, the list can be filled with multiple types of CCP models, such as both CCCM and CCLM. i. In one example, the type of CCP model will be stored in the list with the CCP model. d. In one example, at least one syntax element (SE) can be signaled to indicate whether CCP models in the list are used. i. In one example, the SE can be conditionally signaled. For example, the SE is signaled only when a certain mode (such as CCCM or CCLM) is used. 1) For example, the SE is signaled only when the current mode is CCCM or CCLM. 2) For example, the SE is signaled only when "list mode" applies. e. In one example, at least one syntax element (SE) can be signaled to indicate which entry in the list is used to derive the model(s) for cross-component prediction. i. The SE can reflect an index in the list. 1) In one example, the SE can be set equal to f(k), where k is the index and f is a function. 2) In one example, the SE can be set equal to f(k, M), where k is the index, M is the number of valid entries in the list, and f is a function. a) In another example, M is the size of the list. 3) In one example, the SE can be set equal to k, where k is the index. 4) In one example, the SE can be set equal to M-1-k, where k is the index and M is the number of valid entries in the list. a) In another example, M is the size of the list. f. In one example, L can have a fixed size. g. In one example, multiple lists can be constructed. i. For example, at least one syntax element (SE) can be signaled to indicate which list is used. ii. In one example, the SE can be conditionally signaled. For example, the SE is signaled only when "list mode" applies. iii. SE can be signaled only if more than one list can be selected. h. In one example, which list is used can be derived at the encoder / decoder. i. In one example, if the current mode is CCLM, a first list of models storing CCLM and its variants is used. ii. In one example, if the current mode is CCCM, a second list of models storing CCCM and its variants is used. 14. It is proposed that an entry of a list can include a model for more than one chroma component, such as Cb and Cr. a. If the entry is selected, the model for components Cb and Cr is applied to the two components, respectively. 15. It is proposed that an entry of a list can include a model for only one component, such as Cb or Cr. a. If the entry is selected, the model for a particular component, such as Cb or Cr, is applied to the particular component. 16. Multiple candidates can be put into a list, including: a. CCP model of a neighboring neighboring block. b. CCP model of a non-neighboring neighboring block. c. CCP model of a collocated block in a reference picture. d. CCP model of a reference block in a reference picture. e. CCP model in a history table. f. CCP model derived from a non-neighboring sample. g. Default CCP mode. 17. In one example, a list can be constructed by checking possible candidates in order. a. For example, the order can be neighboring neighboring block, non-neighboring neighboring block, model in a history table, model derived from a non-neighboring sample. b. For example, the list construction is completed if the number of candidates in the list reaches a maximum allowed size of the list, such as 5 or 6. c. For example, the list construction is completed if the number of candidates in the list reaches f(d), where d is the index of the selected candidate and f is a function. For example, f(d) = d + 1. d. For example, a default model can be put into the list if all possible candidates have been checked and the construction is not completed. 18. In one example, if a potential candidate is put into a list, it can be compared with at least one existing candidate in the list. a. For example, if the potential candidate is the same or similar to an existing candidate, the potential candidate is not put into the list. b. In one example, if a potential entry of CCP information is put into the history-based table, it can be compared to at least one existing entry in the list. i. For example, if the potential entry is the same or similar to an existing entry, the potential entry is not put into the list. c. In one example, two CCP candidates or entries are determined to be not the same if: i. The CCP types are different. ii. The number of models is different. iii. The threshold values are different if the CCP has multiple models. iv. At least one model is different. v. The luma sample offset is different. (Applicable only when the type is CCCM or GL-CCCM or GLM or CCCM using non-subsampled luma samples). vi. The sample position displacement is different. (Applicable only when the type is GL-CCCM). 19. For example, the CCP information of an entry in the history-based table or the CCP information of a candidate in the CCP candidate list can include: a. The type of the CCP method, such as CCLM, or CCCM, or GLM or GLM with luma, or GL-CCCM, or CCCM using non-subsampled luma samples. i. In one example, GLM methods using different downsampling filters can be considered as different types. ii. In one example, GLM methods with luma using different downsampling filters can be considered as different types. iii. In one example, the types can be CCCM, CCLM, 4 types of GLM using different downsampling filters, 4 types of GLM with luma using different downsampling filters, GL-CCCM, and CCCM using non-subsampled luma samples. iv. “No CCP utilized” (denoted as NonCCP) can also be considered as a type. b. The position (x, y). c. The number of models. i. For example, the number of models can be 1 or 2. ii. In one example, the number of models can be considered as part of the CCP type. For example, CCLM and MM-CCLM can be considered as two types. d. At least one threshold value classifying samples for different models. i. The threshold is used only if the number of models is at least 2. e. At least one luma sample value offset. i. When luma sample value offset is used to derive chroma prediction values, the luma sample value offset can be added to or subtracted from the luma samples (which can be down-sampled). ii. The luma sample value offset can be used only for certain types, such as CCCM, GLM with luma, GL-CCCM, and CCCM with non-down-sampled luma samples. f. At least one chroma sample value offset. i. The chroma sample value offset can be added to or subtracted from the chroma prediction values derived by the CCP model to generate the final prediction. g. At least one model for at least one chroma component. i. For example, it can include different models for Cb and Cr components. ii. For example, the number of models for each component can be included as part of the information. iii. The models can be represented by CCLM or CCCM or GLM or GLM with luma or GL-CCCM or CCCM with non-down-sampled luma samples. h. At least one sample position displacement represented as (dX, dY). i. When chroma sample position displacement is used to derive chroma prediction values, the chroma sample position displacement can be added to or subtracted from the sample position (x, y). ii. The chroma sample position displacement can be used only for certain types, such as GL-CCCM. 20. For example, the CCP coding information after a chroma block is encoded / decoded can be stored in a history-based table or in a CCP candidate list. a. In one example, the CCP coding information can be stored only when the chroma block is coded with CCP mode. i. In one example, the CCP coding information can be stored if the chroma block is coded with at least one CCP mode, such as fusion with chroma intra prediction mode. 1) The type stored can be set to the CCP type used in the fusion of chroma intra prediction mode. b. In one example, the CCP coding information can be stored for any chroma block. i. If the chroma block is not coded with CCP mode, the type is stored as "NonCCP". c. If the chroma block is coded with the CCP mode, the type of information can be stored depending on the coding mode. i. If the mode is CCPM, or CCPM-T, or CCPM-L, or MM-CCPM, or MM-CCPM-T, or MM-CCPM-L, the type is set to "CCPM". ii. If the mode is CCLM, or CCLM-T, or CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, the type is set to "CCLM". iii. If the mode is CCLM with slope adjustment, or CCLM-T, or CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, the type is set to "CCLM". iv. If the mode is GLM with filter X, the type is set to "GLM with filter X". v. If the mode is GLM with filter X and luma, the type is set to "GLM with filter X and luma". vi. If the mode is GL-CCCM, the type is set to "GL-CCCM". vii. If the mode is non-downsampled CCPM, the type is set to "non-downsampled CCPM". viii. If the mode is fusion of chroma intra prediction modes, the type is set to "CCLM". d. The number of models can be stored as the number of models for the chroma block. i. For example, if the mode is MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, or any other multi-model CCP mode such as GLM, or GL-CCCM, or CCPM with multi-model using non-downsampled luma samples, the number of models is set to 2. e. Information such as threshold, luma / chroma sample value offset, sample position displacement can be stored as the information used by the chroma block. f. The CCP model of one component can be stored as the model used by the chroma block. i. The model can be derived by any CCP method such as CCLM, or CCLM-T, or CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, or CCCM, or CCCM-T, or CCCM-L, or MM-CCCM, or MM-CCCM-T, or MM-CCCM-L, or GLM with different down-sampling filters, or GLM with different down-sampling filters with luma, or GL-CCCM or CCCM with non-down-sampled luma samples. ii. The stored model can be the model of the final application, such as the model after modification by slope adjustment. 21. In one example, a history table of CCP information after encoding / decoding regions such as CU / CTU / CTU row can be stored, referred to as the storage table. a. The history table of CCP information maintained for the current block, referred to as the online table, can be used together with the stored history table of CCP information. b. In one example, the entries in the storage table and the online table can be examined in order to generate new candidates. i. In one example, the entries in the online table can be examined before all entries in the storage table. ii. In one example, the entries in the storage table can be examined before all entries in the online table. iii. For example, the k-th entry in the storage table can be examined after the k-th entry in the online table. iv. For example, the k-th entry in the online table can be examined after the k-th entry in the storage table. v. For example, the k-th entry in the online table can be examined after the m-th entry in the storage table (m = 0...S, where S is an integer). vi. For example, the k-th entry in the storage table can be examined after the m-th entry in the online table (m = 0...S, where S is an integer). vii. For example, the k-th entry in the online table can be examined after the m-th entry in the storage table (m = S...maxT, where S is an integer and maxT is the last entry). viii. For example, the k-th entry in the storage table can be examined after the m-th entry in the online table (m = S...maxT, where S is an integer and maxT is the last entry). c. In one example, the storage table(s) to be used can depend on the dimension and / or location of the current block. i. For example, the table stored in the CTU above the current CTU can be used. ii. For example, a table stored in the CTU above the current CTU can be used. iii. For example, a table stored in the CTU to the right and above the current CTU can be used. d. In one example, whether and / or how to use the stored table can depend on the dimension and / or location of the current block. i. In one example, whether and / or how to use the stored table can depend on whether the current CU is located at the top boundary of the CTU and whether the neighboring CTU above is available. 1) For example, the stored table can be used only when the current CU is located at the top boundary of the CTU and the neighboring CTU above is available. 2) For example, at least one entry in the stored table can be put to a more front position if the current CU is located at the top boundary of the CTU and the neighboring CTU above is available. e. In one example, entries in two stored tables can be checked in order to generate new candidates. i. For example, the first (or second) stored table stored in the CTU above the current CTU can be used. ii. For example, the first (or second) stored table stored in the CTU to the left and above the current CTU can be used. iii. For example, the first (or second) stored table stored in the CTU to the right and above the current CTU can be used. 2.1.19 Non-adjacent cross-component prediction (NA-CCP) 1. It is proposed that the model(s) of cross-component prediction (such as CCLM or CCCM) in a block can be derived based on a set of samples that are non-adjacent to the current block, referred to as non-adjacent cross-component prediction (NA-CCP). a. In one example, a set of samples is non-adjacent to the current block only when none of the samples in the set are adjacently neighboring (such as adjacently above or adjacently left) to the current block. b. In one example, a set of samples is reconstructed before encoding / decoding the current block. c. The samples can include chroma samples and / or their corresponding luma samples, which can be generated by downsampling if the color format is 4:2:0 or 4:2:2. 2. In one example, at least one syntax element (SE) can be signaled to indicate whether non-adjacent cross-component prediction is applied. a. In one example, the SE can be conditionally signaled. For example, the SE is signaled only when a certain mode (such as CCCM or CCLM) is used. 3. In one example, more than one group of samples that are non-adjacent to the current block can be used to derive the model(s) for cross-component prediction. a. In one example, samples in more than one group can be jointly used to derive the model(s) for cross-component prediction. b. In one example, one group of the multiple groups of candidates can be selected to derive the model(s) for cross-component prediction. 4. In one example, at least one syntax element (SE) can be signaled to indicate which group of non-adjacent samples is used to derive the model(s) for cross-component prediction. a. In one example, the SE can be conditionally signaled. For example, the SE is signaled only when NA-CCP is applicable. b. The SE can be signaled only when more than one group of non-adjacent samples can be selected. c. The maximum value of the SE (denoted as V) is determined by the number of groups of non-adjacent samples to be selected (denoted as K). i. For example, V = K, or V = K - 1, or V = K + 1, or V = K - 2, or V = K + 2. 5. Whether / how to apply NA-CCP can be the same for more than one color component (such as Cb and Cr). a. Alternatively, whether / how to apply NA-CCP can be different for different components (such as Cb and Cr). 6. Whether NA-CCP is applicable can depend on the dimension / location of the current block. 7. In one example, a group of non-adjacent samples can include samples in a region. a. In one example, the region can be a coding block (e.g., a CU). b. In one example, the region can be represented by a position relative to the region. c. In one example, the region can be an M x N rectangle (e.g., M = N = 8). d. In one example, a rectangular region can be represented by a position (such as the top-left position (x, y) of the region) and dimension M x N relative to the region. e. In one example, the regions for different groups of non-adjacent samples can share the same shape and size. f. In one example, the regions for different groups of non-adjacent samples can have different shapes or sizes. g. The samples in the region must be reconstructed. i. Alternatively, if the samples in the region are not reconstructed, they should be padded. 8. In one example, a luma sample corresponding to a set of non-adjacent chroma samples can be prepared or generated to be used for training the cross-component model. a. In one example, if the color format is 4:2:0 or 4:2:2, downsampling can be applied to generate the corresponding luma sample. b. In one example, the generated luma sample can correspond to a larger area than the area of the non-adjacent chroma samples. i. In one example, assuming the area of the non-adjacent chroma samples is an M x N rectangle, the generated luma sample can correspond to an (M+T+B) x (N+L+R) chroma rectangle, as shown in Figure 22 . 1) In one example, T=B=L=R=1. c. In one example, if the luma sample to be generated is not available (e.g., it is outside the picture boundary, or it is not reconstructed, or it is in a different CTU that has not been reconstructed, etc.), the luma sample can be handled specially. i. In one example, it can be padded, such as repeated padding with nearby available generated luma values. ii. In one example, it can not be generated and marked as “not available”. 1) The dimensions of the luma area can be set to the available area. 9. In one example, whether an area including non-adjacent samples is a valid set of samples to derive the model(s) can be determined by the availability of at least one sample of the area. a. For example, the area is a rectangle. b. For example, the area is determined to be valid only when both the top-left reconstructed sample and the bottom-right reconstructed sample of the area are available. c. For example, the area is determined to be valid only when both the top-right reconstructed sample and the bottom-left reconstructed sample of the area are available. 10. In one example, a list of areas can be constructed to record multiple sets of non-adjacent samples. a. In one example, the index of the list can be signaled as an SE to indicate which set of non-adjacent samples is used to derive the model(s) for cross-component prediction. i. For example, the SE can be binarized to a truncated unary code. ii. In one example, the SE can be conditionally signaled. For example, the SE is signaled only when the NA-CCP is applied. iii. The SE can be signaled only when more than one set of non-adjacent samples can be selected. iv. The maximum value of SE (denoted as V) is determined by the number of non-adjacent samples (denoted as K) to be selected. 1) For example, V = K, or V = K - 1, or V = K + 1, or V = K - 2, or V = K + 2. b. In one example, the list can be constructed by sequentially checking a plurality of potential candidate regions. i. The list is initialized to be empty. ii. If the number of candidate regions in the list is equal to the maximum size of the list (such as 6), the list construction is completed. iii. If all potential candidate regions have been checked, the list construction is completed. iv. If a region is determined to be valid, the potential candidate can be put into the list. v. De-duplication can be applied to construct the list. 1) If a potential candidate is "duplicated" with an existing candidate in the list, the potential candidate can not be put into the list. a) A candidate region is "duplicated" with another region if the samples of the candidate region are the same (or similar) to the samples of the other region. b) A candidate region is "duplicated" with another region if the same or similar model can be derived from the samples in the two regions. 11. In one example, the position and / or dimension of a region including non-adjacent samples can depend on the coding information, such as the width / height of the current block. a. The region can be a potential candidate region for the list. b. The distance between the region and the current block can depend on the width / height of the current block. 12. In one example, a potential candidate region can be an MxN rectangle (e.g., M=N=8) non-adjacently to the left / left-bottom / left-top / top / right-top of the current block. Figure 23 An example of a potential candidate region (shaded block) is shown. 13. In one example, a potential candidate region is an MxN (e.g., M=N=8) rectangle, and its top-left position (x0, y0) can be described as (assuming the top-left position of the current block with dimension WxH is (0, 0)): a. (x0, y0) = (s*f(W, H), t*g(W, H)), where f and g are functions. s and t are scaling factors, such as 0.5, 1, or 2. b. (x0, y0) = (s*f(W), t*g(H)), where f and g are functions. s and t are scaling factors, such as 0.5, 1, or 2. 14. In one example, the potential candidate regions are MxN (e.g., M=N=8) rectangles, and their ordered top-left positions are as follows (assuming the top-left position of the current block with dimension WxH is (0,0)): (-xStep, 0), (0, -yStep), (xStep, -yStep), (-xStep, yStep), (-xStep, -yStep), (-2*xStep, 0), (0, -2*yStep), (-2*xStep, 2*yStep), (2*xStep, -2*yStep), (-2*xStep, yStep), (xStep, -2*yStep), (-2*xStep, -yStep), (-xStep, -2*yStep), (-2*xStep, -2*yStep), (-xStep / 2, 0), (0, -yStep / 2), (xStep / 2, -yStep / 2), (-xStep / 2, yStep / 2), (-xStep / 2, -yStep / 2), where xStep and yStep are integers. a. The order of checking can be changed. b. In one example, xStep = Max(W, K1), yStep = Max(H, K2), where K1 and K2 are integers, e.g., K1 = K2 = 16. 15. In one example, whether and / or how to apply NA-CCP can be signaled from the encoder to the decoder. a. Alternatively, whether and / or how to apply NA-CCP can be inferred at the encoder and the decoder based on the encoded / decoded information without signaling. b. “How to apply NA-CCP” can include: i. Which CCP (such as CCLM or CCCM) model is derived by NA-CCP; ii. Shape / size / position of (potential) candidate region; iii. Size of region list; iv. Number of (potential) candidate regions; v. Color component for which NA-CCP is applied. c. "Encoded / decoded information" can include: i. Mode of current block; ii. Mode of neighboring block; iii. Mode of luma block in collocated region of current block; iv. Mode of luma block in collocated region of neighboring block; v. QP; vi. Slice / picture type; vii. Picture width / height; viii. Block width / height; ix. Reconstructed samples. 16. In one example, CCP coding information of spatial or temporal neighboring block can be used by current block. a. For example, spatial neighboring block can be adjacent or non-adjacent to current block. b. For example, CCP coding information can include: i. Type of CCP method, such as CCLM, or CCCM, or GLM, or GLM with luma, or GL-CCCM, or CCCM using non-downsampled luma samples. 1) In one example, GLM methods using different downsample filters can be considered as different types. 2) In one example, GLM methods with luma using different downsample filters can be considered as different types. 3) In one example, types can be CCCM, CCLM, 4 types of GLM using different downsample filters, 4 types of GLM with luma using different downsample filters, GL-CCCM, and CCCM using non-downsampled luma samples. 4) "No CCP coding utilized" (denoted as NonCCP) can also be considered as a type. ii. Position (x, y). iii. Number of models. 1) For example, number of models can be 1 or 2. 2) In one example, number of models can be considered as part of CCP type. For example, CCLM and MM-CCLM can be considered as two types. iv. At least one threshold value for classifying samples for different models. 1) The threshold value is used only if the number of models is at least 2. v. At least one luma sample value offset. 1) When the luma sample value offset is used for deriving chroma prediction values, the luma sample value offset can be added to or subtracted from the luma samples (which can be down-sampled). 2) The luma sample value offset can be used only for certain types, such as CCCM, GLM with luma, GL-CCCM, and CCCM with non-down-sampled luma samples. vi. At least one chroma sample value offset. 1) The chroma sample value offset can be added to or subtracted from the chroma prediction values derived by the CCP model to generate the final prediction. vii. At least one model for at least one chroma component. 1) For example, it can include different models for Cb and Cr components. 2) For example, the number of models for each component can be included as part of the information. 3) The models can be represented by CCLM or CCCM or GLM or GLM with luma or GL-CCCM or CCCM with non-down-sampled luma samples. viii. At least one sample position displacement represented as (dX, dY). 1) When the chroma sample position displacement is used for deriving chroma prediction values, the chroma sample position displacement can be added to or subtracted from the sample position (x, y). 2) The chroma sample position displacement can be used only for certain types, such as GL-CCCM. c. For example, the CCP coding information can be stored after the chroma block is encoded / decoded. i. In one example, the CCP coding information can be stored only when the chroma block is coded with CCP mode. 1) In one example, the CCP coding information can be stored if the chroma block is coded with at least one CCP mode, such as fusion with chroma intra prediction mode. a) The type stored can be set to the CCP type used in the fusion of chroma intra prediction mode. ii. In one example, the CCP coding information can be stored for any chroma block. 1) If the chroma block is not coded with CCP mode, the type is stored as "NonCCP". iii. If the chroma block is coded with the CCP mode, the type of information can be stored depending on the coding mode. 1) If the mode is CCCM, or CCCM-T, or CCCM-L, or MM-CCCM, or MM-CCCM-T, or MM-CCCM-L, the type is set to "CCCM". 2) If the mode is CCLM, or CCLM-T, or CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, the type is set to "CCLM". 3) If the mode is CCLM with slope adjustment, or CCLM-T, or CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, the type is set to "CCLM". 4) If the mode is GLM with filter X, the type is set to "GLM with filter X". 5) If the mode is GLM with filter X and luma, the type is set to "GLM with filter X and luma". 6) If the mode is GL-CCCM, the type is set to "GL-CCCM". 7) If the mode is CCCM with non-downsampled luma samples, the type is set to "CCCM with non-downsampled luma samples". 8) If the mode is fusion of chroma intra prediction modes, the type is set to "CCLM". iv. The number of models can be stored as the number of models of the chroma block. 1) For example, if the mode is MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, or any other multi-model CCP mode such as GLM, or GL-CCCM, or CCCM with multi-model with non-downsampled luma samples, the number of models is set to 2. v. Information such as threshold, luma / chroma sample value offset, sample position displacement can be stored as the information used by the chroma block. vi. The CCP model of one component can be stored as the model used by the chroma block. 1) The model can be derived by any CCP method (such as CCLM, or CCLM-T, or CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, or CCCM, or CCCM-T, or CCCM-L, or MM-CCCM, or MM-CCCM-T, or MM-CCCM-L, or GLM with different down-sampling filters, or GLM with different down-sampling filters with luma, or GL-CCCM or CCCM with non-down-sampled luma samples). 2) The stored model can be the model of the final application, such as the model after modification by slope adjustment. d. For example, the CCP coding information can be stored at MxN granularity. i. For example, M=N=2. ii. For example, the CCP coding information of a certain chroma block that is covered by, or covers, or overlaps with, an MxN region can be stored to the MxN region. 1) For example, the CCP coding information of the first coded / decoded block that has CCP information covered by, or covers, or overlaps with, an MxN region can be stored. 2) For example, the CCP coding information of the last coded / decoded block that has CCP information covered by, or covers, or overlaps with, an MxN region can be stored. 3) For example, the CCP coding information of a coded / decoded block that has CCP information at a certain position covered by, or covers, or overlaps with, an MxN region can be stored. a) The certain position can be the top-left / bottom-right / top-right / bottom-left / center position of the MxN region. 17. In one example, a CCP candidate list can be constructed for a chroma block. a. In one example, a first syntax element (SE) can be signaled to indicate whether the CCP candidate in the list is applied to the current chroma block. (It can be denoted as "block is coded with CCP candidate list mode"). i. For example, the SE can be a flag. ii. For example, the SE can be coded with context. b. For example, the first SE can be signaled in a conditional way. i. For example, the first SE is signaled only when CCP is applied. ii. For example, the first SE can be signaled only when CCP is applied, and a certain mode is applied. 1) The particular mode can be CCLM. 2) The particular mode can be CCCM. c. In one example, a second syntax element (SE) can be signaled to indicate which CCP candidate is applied. i. For example, the SE can be an index. ii. For example, the SE can be binarized to a truncated unary code. 1) For example, the maximum value of the SE can be S-1, where S is the maximum size of the candidate list. iii. For example, the first bin of the SE can be coded by a context. d. For example, a second SE can be signaled in a conditional manner. i. For example, the second SE can be signaled only when the first SE indicates that a CCP candidate in the list is applied. e. In one example, whether the CCP candidate list mode is applied can be signaled in VPS / DPS / SPS / PPS / picture header / slice header / etc. f. In one example, the maximum size / length of the CCP candidate list can be signaled in VPS / DPS / SPS / PPS / picture header / slice header / etc. 18. In one example, the CCP candidate list can include at least one CCP candidate stored in a spatial neighboring block, which can be adjacent or non-adjacent to the current block (assuming the top-left position of the current block is (Xt, Yt), and the width and height of the current block are W and H, respectively). a. In one example, a set of positions is checked in order to find the stored CCP information. i. For example, if the type of the stored CCP information associated with a position is NonCCP, the position is skipped. 1) Alternatively, if the type of the stored CCP information associated with a position is NonCCP, the position is put into a backup position list. ii. For example, if the type of the stored CCP information associated with a position is not NonCCP, the stored CCP information is tried to be appended to the list. b. In one example, a set of positions (Xi, Yi) to be checked in order can be derived from positions near the current block to positions far away from the current block. i. For example, the positions can be checked in a cycle-by-cycle manner. For one cycle, several positions are checked, and the next cycle is performed. ii. In one example, the positions to be checked in a cycle are: (Xt - NDHor - 1, Yt + H + NDVer - 1), (Xt + W + NDHor - 1, Yt - NDVer - 1), (Xt + (W » 1), Yt - NDVer - 1), (Xt - NDHor - 1, Yt + (H » 1)), (Xt - NDHor - 1, Yt - NDVer - 1) where NDHor and NDVer are different for different periods. iii. In one example, the positions to be checked for period k are derived as: NDHor = (k == 0? W / 2 : W*k); NDVer = (k == 0? H / 2 : H*k); iv. In one example, the positions to be checked can be different for different periods. c. In one example, the set of positions (Xi, Yi) to be checked can be the same as the set of positions checked when constructing the Merge list. d. In one example, the set of positions (Xi, Yi) to be checked can be the same as the set of positions checked when constructing the sub-block based Merge list. 19. In one example, when trying to put a stored CCP information as a candidate (called a potential candidate) into the CCP candidate list, it can be compared with at least one candidate already in the CCP candidate list. a. In one example, all candidates in the list can be compared with the potential candidate. b. In one example, if a candidate already in the CCP candidate list is the same or similar to the potential candidate, the potential candidate cannot be put into the CCP candidate list. c. In one example, two CCP candidates are determined to be not the same if: i. the CCP types are different. ii. the number of models are different. iii. the threshold is different if the CCP has multiple models. iv. at least one model is different. v. the luma sample offset is different. (Applicable only when the type is CCCM or GL-CCCM or GLM or CCCM using non-subsampled luma samples). vi. the sample position displacement is different. (Applicable only when the type is GL-CCCM). 20. In one example, when a CCP candidate in the list is used to generate a prediction for the current block, the CCP will follow the CCP information is performed. a. CCCM, CCLM, 4 types of GLM using different down-sampling filters, 4 types of GLM with luma using different down-sampling filters, GL-CCCM and CCCM using non-down-sampled luma samples can be applied to the current block based on the candidate CCP type. b. Based on the number of candidate models and a threshold, one model or multiple models with at least one threshold can be used. c. A candidate luma sample value offset can be added to or subtracted from the luma samples to be put into the CCP model (which can be down-sampled). i. This process is applicable only if the type is CCCM, or GL-CCCM, or GLM, or CCCM using non-down-sampled luma samples. d. (Multiple) sample position displacement can be added to or subtracted from the position coordinates to be put into the CCP model. i. This process is applicable only if the type is GL-CCCM. e. How to obtain the down-sampled luma samples can be based on the CCP type. i. The down-sampled luma samples can be obtained following the down-sampling method required by the CCP mode corresponding to the type. 21. In an example, the prediction value generated by the CCP candidate can be modified before being used to obtain the reconstructed sample value. a. In an example, an offset D can be added to or subtracted from the prediction value. b. In an example, the offset can be derived based on the luma / chroma samples of a template, which is calculated using the reconstructed samples neighboring the current block (referred to as "template"). Figure 24 An example of the template is shown. i. In an example, the template can consist of the reconstructed samples to the left of the current block if available. ii. In an example, the template can consist of the reconstructed samples above the current block if available. iii. In an example, the template can consist of the reconstructed samples above or to the left of the current block if available. iv. The corresponding luma samples of the template can be down-sampled in the same way as the luma samples inside the current block. c. In an example, if the CCP type requires N models (such as two models), N offsets (denoted as {D 0 ,…,DN-1}) can be derived. i. offset D i can be added to or subtracted from the predicted value generated by model i. d. In one example, the CCP method indicated by the type of CCP candidate can be applied to the template. i. For example, for the k-th sample of the template, S k = R k - P k is calculated, where R k and P k represent the reconstructed sample value and the predicted value with CCP for the k-th sample, respectively. 1) For example, D is calculated as the average of {S k}. 2) For example, assuming the number of S k is M, D is calculated as D = sign(sum) x ((|sum| + off) » W), where and ii. For example, for the k-th sample of model i using the template, S i k = R i k - P i k is calculated, where R i k and P i k represent the reconstructed sample value and the predicted value with CCP for the k-th sample of model i, respectively. 1) For example, D i is calculated as the average of {S i k}. 2) For example, assuming the number of S i k is M, D is calculated as D i = sign(sum) x ((|sum| + off) » W), where and iii. In one example, no division operation is used to calculate D or D i . 1) For example, a lookup table can be used to calculate D or D i . e. For example, only certain types of CCPs can have the modification applied, such as CCLM and CCCM with multiple models. i. For example, the types of CCLM, CCLM with multiple models, CCCM with multiple models, and GLM can apply modifications. 22. In one example, candidates with type "non-adjacent" can be put into the candidate list. a. The information includes position (x, y). b. If such a candidate is used to predict the current block, the CCP model(s) can be derived with the samples referenced by (x, y) as described in items 1-15. c. In one example, the positions stored in the backup position list disclosed in item 18 can be checked in order to put valid positions into the candidate list. 23. In one example, the construction of the candidate list can be terminated if the number of candidates in the list is M and M = D + 1, where D refers to the index of the selected candidate. 24. In one example, if all possible potential candidates are checked and the size of the candidate list is smaller than S (where S is the maximum number of candidates), a default candidate can be put into the list to fill the list. 25. In one example, the CCP candidate list can include at least one candidate obtained from a history-based table. a. The history table can be an online table. b. The history table can be a storage table. c. To construct the CCP candidate list, potential candidates can be checked in an order. i. For example, the order can be (1) CCP information stored in spatially adjacent / non-adjacent blocks; (2) CCP candidates with type "non-adjacent"; (3) history-based candidates from an online table; (4) history-based candidates from a storage table; (5) default candidates. ii. For example, the order can be (1) CCP information stored in spatially adjacent blocks; (2) CCP information stored in spatially non-adjacent blocks; (3) CCP candidates with type "non-adjacent"; (4) history-based candidates from an online table; (5) history-based candidates from a storage table; (6) default candidates. iii. For example, the order can be (1) CCP information stored in spatially adjacent blocks; (2) CCP information stored in spatially non-adjacent blocks; (3) history-based candidates from an online table; (4) history-based candidates from a storage table; (5) CCP candidates with type "non-adjacent"; (6) default candidates. iv. For example, the order can be (1) CCP information stored in spatially neighboring blocks; (2) history-based candidates from an online table; (3) CCP information stored in spatially non-neighboring blocks; (4) CCP candidates with type "non-neighbor"; (5) history-based candidates from a storage table; (6) default candidates. v. Any type of candidate in the example order can be removed from the order. vi. Any other order of these kinds of potential candidates. 26. In one example, if a chroma block is coded by using at least one CCP candidate, the CCP information of the CCP candidate can be stored. a. The storage method can follow the way disclosed in item 16. 27. In one example, if a chroma block is coded by using at least one CCP candidate, the CCP information of the CCP candidate can be put into a history-based table. a. The process of putting CCP information into a history-based table can follow the process described in section 2.27. 3. Problems There are several problems in existing video coding techniques, which will be further improved for higher coding gain. 1. In ECM (e.g., no more than ECM-8.0), different intra chroma modes are explicitly signaled in the bitstream. However, implicit derivation can be applied to achieve higher coding efficiency. 2. In ECM (e.g., no more than ECM-8.0), intra chroma blending is used to blend a non-LM mode with an MM LM TL mode, or to blend a non-LM mode with a luma value. However, it can be further improved. 3. The prediction of the multi-model based cross-component prediction mode can be further filtered. 4. Assuming that non-local cross-component prediction (CCP) mode (or cross-component merge (CCMerge) mode) is allowed in the codec, the CCP model parameters of the current chroma block can be inherited from neighboring / non-neighboring neighboring blocks coded with CCP in the codec. How to interact the non-local CCP mode with the prediction filtered CCP mode and / or the template cost CCP mode can be further considered. 5. In ECM, similarity check can be applied to the comparison between two motion / mode candidates, and the coding information of the reference block can be stored as the motion / mode information of the current block. In this case, how to perform the similarity check can be redesigned. 6. In the ECM, the temporal candidates are not used for intra mode coding, however, the CCP candidates and the intra mode information can be derived from the temporal video unit. 4. Detailed solutions The following detailed solutions should be considered as examples to explain the general concepts. The solutions should not be interpreted in a narrow way. Furthermore, the solutions can be combined in any way. The term "video unit" or "coding unit" can denote a picture, a slice, a tile, a coding tree block (CTB), a coding tree unit (CTU), a coding block (CB), a CU, a PU, a TU, a PB, a TB. The term "block" can denote a coding tree block (CTB), a coding tree unit (CTU), a coding block (CB), a CU, a PU, a TU, a PB, a TB. The term "LM" can refer to any linear / non-linear regression based method, such as CCLM, MMLM, CCCM, GL-CCCM, non-down-sampled CCCM, CCCM-MDF, GLM, GLM with luma values, etc. It can also be referred to as the term "cross component prediction (CCP)". The term "CCLM" can refer to a single model LM mode, which can be a single model CCLM, a single model CCCM, a single model GL-CCCM, a non-down-sampled single model CCCM, a single model CCCM-MDF, a single model GLM, a single model GLM with luma values, etc. The term "MMLM" can refer to a multi-model LM mode, which can be a multi-model CCLM, MMLM, a multi-model CCCM, a multi-model GL-CCCM, a non-down-sampled multi-model CCCM, a multi-model CCCM-MDF, a multi-model GLM, a multi-model GLM with luma values, etc. The term "CCLM_TL" can refer to a single model LM mode using both left and top neighboring samples. The term "MMLM_TL" can refer to a multi-model LM mode using both left and top neighboring samples. The term "CCLM_L" can refer to a single model LM mode using only left neighboring samples. The term "MMLM_L" can refer to a multi-model LM mode using only left neighboring samples. The term "CCLM_T" can refer to a single model LM mode using only top neighboring samples. The term "MMLM_T" can refer to a multi-model LM mode using only top neighboring samples. The term "CCCM" can refer to a regular CCCM mode, or a GL-CCCM mode, or a non-down-sampled CCCM, or a CCCM-MDF mode. The term“GL-CCCM” can refer to a CCCM mode that takes into account the gradient and location of the involved samples. The term“non-downsampled CCCM” can refer to a CCCM mode that takes into account non-downsampled luma samples. The term“CCCM-MDF” can refer to a CCCM mode that is based on multiple downsampled filters. In this document, Cross Component Prediction (CCP) can refer to any cross component prediction method, such as any kind of CCLM / CCCM / GLM / GL-CCCM / CCCM-MDF / non-downsampled CCCM. In this document, Cross Component Merge (CCMerge) mode can refer to a cross component prediction that inherits coding information from a previously coded video unit. It is noted that the following mentioned terms are not limited to the specific terms defined in the existing standards. Any variation of the coding tools also applies. 4.1 Regarding implicit mode decision and related issues (e.g., first issue), the following methods are proposed: a. A template cost based method can be used for certain Intra / Inter / IBC mode decision. a. For example, a mode or coding method or any setting can be applied to luma and / or chroma samples neighboring the current block to obtain a first prediction of the neighboring samples. b. A distortion (such as SAD) between the reconstructed neighboring samples and the predicted neighboring samples is derived as a cost for the first mode or coding method or any setting. i. For example, the predicted neighboring samples can be derived based on a CCP model. c. The mode or coding method or any setting with the minimum cost can be determined to be selected. d. In one example, the determination can be performed together for different components (such as Cb and Cr). i. The cost can be calculated with one of the components. ii. The cost can be calculated with multiple components (such as Cb and Cr). iii. Different components can share the same determined mode / method / setting. iv. For example, the cost / distortion of Cb and Cr can be accumulated together, and the model or mode decision can be applied based on the accumulated cost / distortion. e. In one example, the determination can be performed separately for different components (such as Cb and Cr). i. Different components can have different determined mode / method / setting. f. For example, whether to apply intra chroma mode to the current video unit can be determined based on the template cost. g. For example, how to select the weighting / mixing / blending method for the current video unit can be determined based on the template cost. h. For example, whether to blend and / or how to blend two chroma prediction blocks can be based on the template cost. i. For example, whether to blend the non-LM chroma mode with regular MMLM, or regular CCCM based MMLM mode, or GL-CCCM based MMLM mode can be based on the template cost. ii. For example, the final chroma prediction can be generated based on blending the non-LM chroma mode with the CCP mode, and which CCP mode to blend can be determined based on the template cost. 1. For example, the CCP mode can be CCLM mode, and / or regular CCCM mode, and / or GL-CCCM mode, and / or non-downscaled CCCM, and / or CCCM-MDF mode. i. For example, the number of reference lines used to solve the linear / non-linear / polynomial model / equation for a particular intra / inter / IBC mode can be determined based on the template cost. i. For example, whether to use M1 lines of reference samples or M2 lines of reference samples to derive the model for the cross-component prediction mode (e.g., GLM mode) can be determined based on the template cost. j. For example, how to separate / classify the training samples for different models of the cross-component prediction mode (e.g., whether to use neighboring luma samples or collocated luma samples to derive the threshold for the classification, etc.) can be determined based on the template cost. i. For example, whether to use block vector guided reference samples to derive the threshold for the classification can be determined based on the template cost. 1. For example, the block vector can be derived based on the luma block vector. ii. For example, the CCP mode can be CCLM mode, regular CCCM mode, GL-CCCM mode, non-downscaled CCCM, or CCCM-MDF mode. k. For example, the reference region used to solve the linear / non-linear / polynomial model / equation for a particular CCP mode can be determined based on the template cost. i. For example, whether to use M1 lines / columns of reference samples or M2 lines / columns of reference samples to derive the CCP model can be determined based on the template cost. ii. For example, whether to use neighboring samples or block vector guided reference samples to derive the CCP model can be determined based on the template cost. iii.For example, the CCP mode can be a CCLM mode, a regular CCCM mode, a GL-CCCM mode, a non-down-sampled CCCM, or a CCCM-MDF mode. b.For example, if the proposed method is applied to a GL-CCCM mode, the position terms representing the positions of the template samples can be derived based on the reference region used for GL-CCCM model computation. a.For example, assuming the top-left corner of the reference region is represented as (x0, y1), and the top-left position of the current video unit is represented as (x0 + refSizeX, y0 + refSizeY), where refSizeX and refSizeY indicate the reference size in width and height, respectively, the position terms of the template samples can be computed relative to the top-left corner of the reference region (e.g., even if the template position can be relative or non-relative to the reference region). i.For example, the same reference region can be used for GL-CCCM model computation and model application / deployment. c.For example, if the proposed method is applied to a specific CCCM mode that uses position information, the position terms of the template samples can be derived based on the positions relative to the reference region. a.For example, the specific CCCM mode can be GL-CCCM or CCCM-MDF. b.For example, the reference region used for template cost derivation and CCP model derivation can be the same. d.For example, if the proposed method is applied to a GLM mode, at least one of the following conditions can be satisfied. a.The GLM mode considers both gradient and luma values for model computation. b.The GLM mode considers non-down-sampled luma values for model computation. c.The model parameters of the GLM mode can be derived from a Gaussian elimination solver (or an LDL-based solver). e.Whether a left template or an above template is used for template cost computation can be based on the prediction mode. a.For example, for CCLM_T / MMLM_T mode, only the above template is used for template cost computation. i.For example, in addition, even if the left template is available, the left template can not be used for computing the template cost for CCLM_T / MMLM_T mode. ii.For example, CCLM_T / MMLM_T can be a regular CCLM_T / MMLM_T mode. iii.For example, CCLM_T / MMLM_T can be a CCCM-based CCLM_T / MMLM_T mode. iv. For example, CCLM_T / MMLM_T can be a GLM-based CCLM_T / MMLM_T mode. b. For example, for CCLM_L / MMLM_L mode, only the left template is used for template cost calculation. i. For example, in addition, even if the above template is available, the above template can not be used for calculating the template cost for CCLM_L / MMLM_L mode. ii. For example, CCLM_L / MMLM_L can be a regular CCLM_L / MMLM_L mode. iii. For example, CCLM_L / MMLM_L can be a CCCM-based CCLM_L / MMLM_L mode. iv. For example, CCLM_L / MMLM_L can be a GLM-based CCLM_L / MMLM_L mode. f. Both the left template and the above template can be used to derive the template cost. a. For example, for CCLM_TL / MMLM_TL mode, both the left template and the above template can be used to derive the template cost. b. For example, CCLM_TL / MMLM_TL can be a regular CCLM_TL / MMLM_TL mode. c. For example, CCLM_TL / MMLM_TL can be a CCCM-based CCLM_TL / MMLM_TL mode. d. For example, CCLM_TL / MMLM_TL can be a GLM-based CCLM_TL / MMLM_TL mode. g. Whether the left template or the above template is used for template cost calculation can be based on the availability of neighboring samples. a. For example, if a neighboring sample is not available, another sample value can be used instead. b. Alternatively, if the left template or the above template is not available, the template cost can be calculated based on the above template or the left template. h. Whether the left template or the above template is used for template cost calculation can be based on the location of the current video unit (e.g., whether the current video unit is at a CTU / VPDU top boundary, etc.). a. For example, if the current video unit is at the first row of a CTU, the above template can not be used. i. For example, the template size can be larger than one row. a. For example, the template size can be larger than one row regardless of the CTU top boundary restriction. b. Alternatively, the template size can be one row above the current video unit and / or one column left of the current video unit. j. For example, the proposed method can be used for cross-component prediction modes. a. For example, the cross-component prediction mode can be GLM / CCLM / MMLM / CCCM / GL-CCCM / no-downsampling-CCCM / CCCM-MDF mode. b. For example, the cross-component prediction mode can be based on single model. c. For example, the cross-component prediction mode can be based on multiple models. d. For example, the cross-component prediction mode can use both the above template and the left template. e. For example, the cross-component prediction mode can use only the above template or the left template. k. For example, the proposed method can be used for intra chroma fusion modes (based on multiple models, based on single model, etc.). a. For example, it can be used for intra chroma fusion that fuses non-LM chroma prediction with a specific LM chroma prediction such as CCCM or CCLM. b. For example, it can be used for intra chroma fusion that fuses non-LM chroma prediction with downsampled luma reconstruction. l. For example, the proposed method can be used for intra TMP mode (e.g., fused intra TMP). m. For example, the proposed method can be used for fusion modes (e.g., MHP, intra luma fusion, DIMD fusion, TIMD fusion, template BCW, etc.). n. For example, the proposed method can be used for LIC mode. o. For example, whether and / or how to apply template cost based methods to a video unit can be based on slice type and / or partitioning way. a. For example, it can be based on whether it is an intra slice (i.e., I slice). b. For example, it can be based on whether it is dual tree. c. For example, a specific template cost based method can only be allowed for I slices. i. Alternatively, a template cost based method can not be allowed for I slices (i.e., only allowed for B slices / P slices). d. For example, a template cost based method can be related to intra chroma fusion. e. For example, a template cost based method can be related to reference range selection for LM modes. f. For example, a template cost based method can be related to multiple model separation / partitioning / classification for LM modes. p. The use / allowance of template cost based methods can depend on the type of template used by the CCP mode. a. In one example, it can depend on whether an extended template is used. b. In one example, whether a particular template cost based method is used can depend on a syntax element related to the template type. q. The use / allowance of template cost based methods can depend on the downsample filter used by the CCP mode. a. In one example, it can depend on whether a particular downsample filter mode is used. b. In one example, it can depend on whether a multi-downsample filter mode is used. c. In one example, it can depend on a syntax element related to the downsample filter type. i. For example, it can depend on a downsample filter index (e.g., assuming more than one downsample filter is allowed for the CCP mode). ii. For example, it can depend on a multi-downsample filter mode. r. The use / allowance of template cost based methods can be based on the use of the CCCM-MDF mode. a. For example, template cost based methods can not be used to determine the reference region for the CCCM-MDF mode. b. For example, template cost based methods can not be used to determine the multi-model classification threshold for the CCCM-MDF mode. c. For example, the above rules can be applied to all kinds of CCCM-MDF modes. i. Alternatively, the above rules can be applied to particular CCCM-MDF modes (e.g., more than one applicable CCCM-MDF mode is allowed in the codec, not all kinds of CCCM-MDF modes). 4.2 Regarding intra chroma fusion and related issues (e.g., second issue), the following methods are proposed: a. The non-LM chroma prediction block can be fused with another CCCM based MM LM mode prediction block. a. For example, the CCCM can be a GL-CCCM. b. For example, the CCCM can be a downsample free CCCM. c. For example, the CCCM can be a regular CCCM. d. For example, the CCCM can be a CCCM-MDF. b. The non-LM chroma prediction block can be fused with another GLM based MM LM mode prediction block. a. For example, the GLM can be based on multi-model. b. For example, the GLM can be based on luminance gradient and / or luminance reconstructed value. c. Furthermore, how to separate the training samples for the two models of the MMLM (e.g., whether to use neighboring luminance samples or to use collocated luminance samples to derive the threshold for the classification, etc.) can be determined based on the template cost. a. For example, the chroma prediction block is generated by the MMLM mode and is used for intra-chroma blending. b. For example, the MMLM mode can be regular MMLM-TL mode, or regular CCCM based MMLM_TL mode, or GL-CCCM based MMLM_TL mode, or non-down-sampling CCCM based MMLM_TL mode, or CCCM-MDF based MMLM-TL mode, or GLM based MMLM_TL mode. d. The blending / blending of the two chroma prediction blocks can be based on sample-based weight (rather than block-based weight). e. The blending / blending weight of the two chroma prediction blocks can be calculated based on a Gaussian elimination solver (or LDL decomposition solver). a. For example, the solver can be based on more than one row of neighboring samples. b. For example, how many rows of reference samples are used for the solver can be determined by the template cost. f. The prediction of the MMLM based prediction block can be first filtered and then blended with the non-LM chroma prediction block. a. For example, whether to filter the prediction of the MMLM based prediction block can be determined based on the template cost. b. Alternatively, whether to filter the prediction of the MMLM based prediction block can be signaled in the bitstream. g. For example, more than one hypothesis prediction can be allowed / used / applied to blend with the non-LM chroma prediction. a. For example, M (such as M=2, or 3, or 4, etc.) hypothesis predictions can be allowed, or used, or applied. b. For example, more than one hypothesis prediction can be blended with the non-LM chroma prediction. i. For example, the final prediction of the video unit can be derived based on a weighted sum of all hypothesis predictions and the non-LM chroma prediction. c. For example, one hypothesis prediction is finally selected to blend with the non-LM chroma prediction. i. For example, the final prediction of the video unit can be derived based on a weighted sum of the selected hypothesis prediction and the non-LM chroma prediction. ii. For example, which hypothesis prediction is selected to blend with the non-LM chroma prediction can be determined based on the template cost. d. For example, a template cost (e.g., SAD, SATD) can be computed for each model or hypothesis prediction, e.g., by applying each model to a pre-defined template. i. For example, the template can include reconstructed / predicted samples (e.g., luma samples and / or chroma samples) adjacent to the left and / or above the current luma and / or chroma blocks. ii. For example, the template size can be at least one row and / or at least one above sample. 1. For example, the template size can be more than one row and / or more than one above sample. iii. For example, the distortion / cost can be measured by accumulating the difference between the prediction (e.g., neighboring predicted chroma values obtained based on pre-computed models) and the reconstruction (e.g., neighboring reconstructed chroma values that have been decoded) of the template samples. iv. For example, the model information that achieves the minimum distortion / cost can be selected as the final model, and by using such model, the prediction is generated and fused with the non-LM chroma prediction. e. For example, a weight can be determined for each prediction element (e.g., hypothesis prediction, non-LM prediction, etc.) involved in the chroma fusion based on the template cost and / or the decoded information. i. For example, it can be determined based on the availability of neighboring samples. ii. For example, it can be determined based on the prediction mode of neighboring samples. 1. For example, it can be based on whether the neighbors are LM coded or not. iii. For example, a larger weight factor can be applied to the non-LM prediction if the template cost is greater than a threshold. Otherwise, a smaller weight factor can be applied to the non-LM prediction. 1. For example, the threshold can be derived based on the block width and / or block height. f. For example, the hypothesis prediction can be a luma prediction block. g. For example, the hypothesis prediction can be a down-sampled luma reconstructed block. h. For example, the hypothesis prediction can be derived based on a cross-component chroma prediction mode. i. For example, the hypothesis prediction can be derived based on a GL-CCCM based MMLM. ii. For example, the hypothesis prediction can be derived based on a non-down-sampled CCCM based MMLM. iii. For example, the hypothesis prediction can be derived based on a CCCM-MDF based MMLM. iv. For example, the hypothesis prediction can be derived based on a regular CCCM (i.e., down-sampled CCCM) based MMLM. v. For example, assume that the prediction can be derived based on a regular CCLM based MMLM. i. For example, for hypothesis prediction, a model can be constructed, and corresponding model coefficients can be computed based on the relationship between luma samples and chroma samples from the neighbors. j. For example, for hypothesis prediction, the model information can include a hypothesis chroma mode (e.g., MMLM, CCLM, CCCM, GL-CCCM, CCCM with downsampling, CCCM without downsampling, CCCM-MDF, etc.) and computed model coefficients. h. For example, whether and / or how to apply intra chroma blending to a video unit can be based on the slice type and / or the partitioning mode. a. For example, it can be based on whether it is an intra slice (i.e., I slice). b. For example, it can be based on whether it is dual tree. c. For example, template cost based intra chroma blending can be allowed only for I slices. i. Alternatively, template cost based intra chroma blending can not be allowed for I slices (i.e., only for B slices / P slices). d. For example, intra chroma blending with more than one hypothesis LM prediction can be allowed only for I slices. i. Alternatively, it can not be allowed for I slices (i.e., only for B slices / P slices). i. How to separate samples for multi-model modulation during the intra chroma blending process (e.g., is the neighboring luma sample used or the collocated luma sample used to derive the threshold for classification, etc.) can be determined based on the template cost. a. For example, the intra chroma blending process can be related to blending non-LM chroma prediction with downsampled luma reconstruction. b. Also, for example, the intra chroma blending process can be conducted based on two models, where one model is constructed / applied based on samples belonging to class A, and another model is constructed / applied based on samples belonging to class B. i. For example, how to separate samples into class A or class B can depend on a threshold. 1. Also, for example, the threshold can be based on a neighboring sample value. 2. Also, for example, the threshold can be based on a collocated luma sample value. 3. Also, for example, whether the threshold is derived based on a neighboring sample value or a collocated luma sample value can depend on a decoder-side template cost based approach. a. For example, the template cost can be based on a difference between predicted template sample values and true reconstructed values of samples in the template, where the predicted template sample values can be computed by applying multi-model intra chroma blending to the template samples. j. How to select the training samples for linear model / non-linear model modulation during the intra chroma blending process can be determined based on the template cost. a. For example, the intra chroma blending process can be related to blending non-LM chroma prediction with down-sampled luma reconstruction. b. Also, for example, the prediction blending process can be conducted based on a linear model / non-linear model trained from some reference samples. i. For example, how many rows and / or columns of reference samples are selected for training can be determined based on the template cost. ii. For example, M (e.g., M = 6) rows and / or columns of reference samples or N (e.g., N = 2) rows and / or columns of reference samples can be selected, determined based on the template cost. iii. For example, the template cost can be based on a difference between predicted template sample values computed by model A and predicted template sample values computed by model B, where model A and model B are modulated from different rows / columns of training samples. k. The use / allowance of intra chroma blending can depend on the type of template used by the CCP mode. a. In one example, it can depend on whether an extended template is used. b. In one example, whether a particular intra chroma blending mode is used can depend on a syntax element related to the template type. l. The use / allowance of intra chroma blending can depend on the down-sampling filter used by the CCP mode. a. In one example, it can depend on whether a particular down-sampling filter mode is used. b. In one example, it can depend on whether a multi-down-sampling filter mode is used. c. In one example, it can depend on a syntax element related to the down-sampling filter type. i. For example, it can depend on a down-sampling filter index (e.g., assuming more than one down-sampling filter is allowed for the CCP mode). ii. For example, it can depend on a multi-down-sampling filter mode. m. For example, the CCCM-MDF prediction can not be used for intra chroma blending. a. Alternatively, the prediction of all kinds of CCCM-MDF modes can be allowed for intra chroma blending. b. Alternatively, a particular CCCM-MDF mode can be allowed for intra chroma fusion process (e.g., more than one applicable CCCM-MDF mode is allowed in the codec, not all kinds of CCCM-MDF mode are allowed for intra chroma fusion). 4.3 For the prediction block filtering and related issues (e.g., the third issue), the following methods are proposed: a. Whether the prediction block of a video unit coded with cross-component prediction (CCP) is filtered can depend on the type of the CCP mode. a. For example, it can be filtered if the CCP mode is based on multi-model. b. For example, it can be filtered if the CCP mode is a CCCM mode (e.g., regular CCCM, and / or GL-CCCM, and / or non-down-sampling CCCM). c. For example, it can not be filtered if the CCP mode is a non-down-sampling CCCM mode. d. For example, it can not be filtered if the CCP mode is a GL-CCCM mode. b. How to signal the prediction block filtering flag for a video unit coded with cross-component prediction (CCP) can depend on the type of the CCP mode. a. For example, it can be signaled according to the following condition: whether the CCP mode is a non-down-sampling CCCM mode. i. For example, the prediction block filtering flag can not be signaled (e.g., assumed not to be used) if the CCP mode is a non-down-sampling CCCM mode. b. For example, it can be signaled according to the following condition: whether the CCP mode is a GL-CCCM mode. i. For example, the prediction block filtering flag can not be signaled (e.g., assumed not to be used) if the CCP mode is a GL-CCCM mode. c. For example, it can be signaled according to the following condition: whether the CCP mode is a GLM mode. i. For example, the prediction block filtering flag can not be signaled (e.g., assumed not to be used) if the CCP mode is a GLM mode. c. For example, whether and / or how to apply the prediction block filtering to a video unit can be based on the slice type and / or the partitioning way. a. For example, it can be based on whether it is an intra slice (i.e., I slice). b. For example, it can be based on whether it is dual tree. c. For example, the prediction block filtering can be allowed only for I slice. i. Alternatively, prediction block filtering can not be allowed for I slices (i.e., only for B slices / P slices). d. Whether the prediction block of a video unit coded with Cross-Component Prediction (CCP) is filtered can depend on the type of template used by the CCP mode. a. In one example, it can depend on whether an extended template is used. b. In one example, for CCP modes using an extended template, prediction filtering can not be allowed. c. In one example, for CCP modes not using an extended template, prediction filtering can not be allowed. d. In one example, whether prediction filtering is allowed to be used can depend on a syntax element related to the template type. i. For example, the signaling of the prediction filter mode can be based on (e.g., conditional on) a syntax element related to the template type. e. Whether the prediction block of a video unit coded with Cross-Component Prediction (CCP) is filtered can depend on the down-sampling filter used by the CCP mode. a. In one example, it can depend on whether a particular down-sampling filter mode is used. b. In one example, it can depend on whether a multi-down-sampling filter mode is used. c. In one example, whether prediction filtering is allowed to be used / is signaled to be used can depend on a syntax element related to the down-sampling filter type. i. For example, it can depend on a down-sampling filter index (e.g., assuming more than one down-sampling filter is allowed for the CCP mode). ii. For example, it can depend on a multi-down-sampling filter mode. f. The prediction of a CCCM-MDF mode can be further filtered by a particular filter method. a. For example, whether the prediction of a CCCM-MDF mode is further filtered can be signaled in the bitstream. i. For example, the signaled syntax element can depend on whether the MMLM_TL mode is used. b. For example, the same syntax element can be used to signal the prediction filtering status of the CCCM-MDF mode and another CCP mode (e.g., MMLM, CCCM, GL-CCCM, CCCM without down-sampling, etc.). c. For example, the prediction block of all kinds of CCCM-MDF modes can be allowed to be further filtered by the filter method. i. Alternatively, the filtering method can be applied to a specific CCCM-MDF mode (e.g., more than one applicable CCCM-MDF mode is allowed in the codec, not all CCCM-MDF modes). g. The signaling of the syntax element (e.g., flag) indicating whether the CCP prediction is further filtered can be conditioned on the usage of the CCCM-MDF mode. a. For example, the syntax element can be signaled only when the CCCM-MDF mode is not used for the current video unit. b. For example, the prediction of the CCCM-MDF mode can never be filtered by a specific prediction filtering process. c. For example, it can be conditioned on a specific CCCM-MDF mode (e.g., more than one applicable CCCM-MDF mode is allowed in the codec, not all kinds of CCCM-MDF modes). 4.4 Regarding the interaction with different CCP modes and related issues (e.g., issue 4), the following methods are proposed: a. In one example, at least one piece of coding information of a CCP coded video unit can be stored and utilized by a subsequent coding process. i. In one example, whether the prediction of a CCP coded unit is filtered or not can be stored. ii. In one example, the CCP model parameters for different color components (e.g., Cb and Cr) of a CCP coded video unit can be stored independently. a) For example, the CCP model type (e.g., CCLM, CCCM, CCCM without downsampling, GL-CCCM, CCCM-MDF, etc.) can be different for Cb and Cr. a. Alternatively, one CCP model type can be stored for both the Cb component and the Cr component of a CCP coded video unit. b) For example, the threshold(s) for the multi-model CCP mode for classifying samples into different groups can be stored independently for Cb and Cr. a. Alternatively, one threshold can be stored for both the Cb component and the Cr component of a CCP coded video unit. c) For example, whether a single model or multiple models are used can be stored independently for Cb and Cr. a. Alternatively, a single model or multiple models can be stored for both the Cb component and the Cr component of a CCP coded video unit. d) For example, the prediction filtering status can be stored independently for Cb and Cr. a. Alternatively, one prediction filter status can be stored for both Cb and Cr components of a video unit coded with CCP. iii. In one example, for a video unit coded with CCP mode of prediction filtering, at least one of the following information can be stored. a) CCP model type for Cb and Cr respectively (or jointly). b) CCP model parameters / coefficient for Cb and Cr respectively (or jointly). c) If multi-model CCP mode is applied, (multiple) threshold(s) for Cb and Cr respectively (or jointly) for classifying samples into different groups. d) Whether the prediction of the CCP coded block is filtered by a specific filter for Cb and Cr respectively (or jointly). iv. In one example, the information can be stored in a buffer. a) In one example, the information can be stored in association with the mode information / motion information for each video block. b) In one example, the information can be stored in a lookup table (e.g., history-based HMVP table). c) In one example, the information can be stored in a local buffer representing data within the current block / CU / PU / TU / VPDU / CTU / CTU row / tile / tile group / slice / subpicture / picture. d) In one example, the information can be stored in a temporal buffer representing data for temporal reference units. v. In one example, the information can be stored in MxN units (such as 4x4 units). vi. In one example, the information can be stored in a history table. vii. In one example, the information can be considered when comparing two CCP candidates. a. For example, if the information of two CCP candidates is different, the two CCP candidates can be considered different. b. Alternatively, the information can be ignored when comparing two CCP candidates. viii. In one example, the stored information can be used for coding of future blocks (e.g., intra prediction, CCP prediction, transform, deblocking, loop filtering, etc.). a) In one example, the stored information can be inherited by future blocks for their CCP parameter derivation / inheritance. 1) For example, it can be used for future blocks coded with non-local CCP mode. 2) For example, it can be used for future blocks coded with Cross-Component Merge (CCMerge) mode. b. In one example, for a block coded with non-local CCP mode (or CCP candidate mode, or Cross-Component Merge (CCMerge) mode), whether the prediction of the block is processed by a certain filter can be inherited from the CCP candidate (e.g., stored CCP information from neighboring blocks or certain buffer / table, etc.). a. For example, in case the CCP candidate is coded with prediction filtering, the prediction filtering can be applied to the block. b. Alternatively, whether the prediction of the block is processed by a certain filter can be signaled in the bitstream. i. For example, it can be determined at the encoder and signaled in the bitstream. c. Alternatively, for the block, the prediction block filtering can not be allowed. i. For example, for the block, the syntax elements related to the prediction filtering can not be signaled. ii. For example, for a block coded with CCP, the prediction filtering status can not be stored and can not be used for coding of future CCP blocks. c. In one example, for a block coded with non-local CCP mode (or CCP candidate mode, or Cross-Component Merge (CCMerge) mode), the CCP model parameters for different color components (e.g., Cb and Cr) can be different. a. For example, for Cb and Cr, the threshold(s) of the multi-model CCP mode for classifying samples into different groups can be different. b. For example, for Cb and Cr, the CCP model type (e.g., CCLM, CCCM, non-downsampled CCCM, GL-CCCM, CCCM-MDF, etc.) can be different. c. For example, for Cb and Cr, the prediction filtering status can be different. d. For example, for Cb and Cr, whether a single model is used or multiple models are used can be different. d. In one example, for a block coded with non-local CCP mode (or CCP candidate mode, or Cross-Component Merge (CCMerge) mode), the CCP information for different color components (e.g., Cb and Cr) can be independently derived from the CCP candidate. a. For example, the threshold of the multi-model CCP mode for classifying samples into different groups for each color component (e.g., Cb and Cr) can be independently derived. i. Alternatively, the threshold can be derived from the Cb component or the Cr component (e.g., although the prediction filter status for Cb and the prediction filter status for Cr can be different). b. For example, the prediction filter status for each color component (e.g., Cb and Cr) can be derived independently. i. Alternatively, the threshold can be derived from the Cb component or the Cr component (e.g., although the prediction filter status for Cb and the prediction filter status for Cr can be different). c. For example, the CCP model type for each color component (e.g., Cb and Cr) can be derived independently. i. Alternatively, the CCP model type can be derived from the Cb component or the Cr component (e.g., although the CCP model type for Cb and the CCP model type for Cr can be different). d. For example, the CCP model coefficients / parameters for each color component (e.g., Cb and Cr) can be derived independently. i. Alternatively, the CCP model coefficients / parameters can be derived from the Cb component or the Cr component (e.g., although the CCP model coefficients / parameters for Cb and the CCP model coefficients / parameters for Cr can be different). e. For example, the CCP information for both Cb and Cr can be derived from one CCP candidate. i. Furthermore, alternatively, a candidate index can be signaled in the bitstream to specify from which CCP candidate the CCP information is derived. ii. Alternatively, the CCP information for Cb and the CCP information for Cr can be derived from different CCP candidates. 1. Furthermore, alternatively, two candidate indices (one candidate index for Cb and the other candidate index for Cr) can be signaled in the bitstream to specify from which CCP candidate the CCP information is derived. e. In one example, for a block coded in non-local CCP mode (or CCP candidate mode, or Cross-Component Merge (CCMerge) mode), whether the prediction of the block is processed by a particular filter can be signaled to the decoder. f. In one example, a template cost based method can be applied to a block coded in non-local CCP mode (or CCP candidate mode, or Cross-Component Merge (CCMerge) mode). a. For example, whether a template cost based method is applied to a block coded in non-local CCP mode can be signaled to the decoder. i. For example, whether a template cost based method is applied to a block coded in non-local CCP mode can be derived at the decoder. b. For example, the template cost based method can be used to determine the training / reference / neighbor region for computing the CCP model. i. For example, whether to use Ml row / column of training / reference / neighbor region or M2 row / column of training / reference / neighbor region can be determined by the template cost based method. c. For example, the template cost based method can be used to determine the threshold value for the multi-model CCP mode for classifying the samples into different groups. i. For example, whether to use the neighboring luma samples or the co-located luma samples for computing the threshold value can be determined by the template cost based method. d. The methods disclosed in item 4.1 and sub-items can be applied to a block coded with non-local CCP mode (or Cross-Component Merge (CCMerge) mode). e. For example, the template cost based method can be applied jointly to the Cb color component and the Cr color component. i. For example, Cb and Cr share one mode decision result from the template cost based method. f. For example, the template cost based method can be applied separately to the Cb color component or the Cr color component. i. For example, Cb and Cr can have different mode decision results from the template cost based method. g. In one example, the template cost based method can be applied to a block coded with non-local CCP mode (or CCP candidate mode, or Cross-Component Merge (CCMerge) mode). i. For example, the CCP candidate list can be reordered. ii. For example, which CCP candidate to use can be determined based on template cost. iii. For example, more than one CCP candidate can be selected and fused together, and which CCP candidate to select can be determined based on template cost. 4.5 For example, as shown in Figure 25A , the extended template mentioned in the disclosed methods can be defined based on whether the template contains left neighboring samples and top neighboring samples beyond the vertical range or horizontal range of the current video unit (e.g., CU). a. In addition, alternatively, the template can contain top-left neighboring samples. b. In addition, alternatively, the template can not contain top-left neighboring samples. 4.6 For example, as shown in Figure 25B , the extended template mentioned in the disclosed methods can be defined based on whether the template contains left neighboring samples beyond the vertical range of the current video unit (e.g., CU). a. Furthermore, alternatively, the template can contain the top-left neighboring sample. b. Furthermore, alternatively, the template can not contain the top-left neighboring sample. 4.7 For example, as shown in Figure 25C , the extended template mentioned in the disclosed method can be defined based on whether the template contains the top neighboring sample beyond the horizontal range of the current video unit (e.g., CU). Figures 25A-25C Possible template types used for CCP modes are shown, where the hollow blocks indicate video units, and the shaded areas indicate templates containing left neighboring samples and / or top neighboring samples. a. Furthermore, alternatively, the template can contain the top-left neighboring sample. b. Furthermore, alternatively, the template can not contain the top-left neighboring sample. 4.8 In one example, at least one CCP mode can not use / allow extended templates. a. For example, extended templates can not be applied to CCLM mode. b. For example, extended templates can not be applied to GLM mode. c. For example, extended templates can not be applied to GL-CCCM mode. d. For example, extended templates can not be applied to down-sampled CCCM mode. e. For example, extended templates can not be applied to non-down-sampled CCCM mode. f. For example, extended templates can not be applied to multi-down-sampling filter based CCCM mode. 4.9 In one example, multiple down-sampling filters can be used / allowed for CCP mode. a. For example, which can be applied to CCLM block. b. For example, whether to use multiple down-sampling filter mode can be signaled based on a syntax element (e.g., flag). a. Alternatively, which can be inferred / derived from the decoding information / cost. c. For example, at least one CCP model contains more than one predefined down-sampling filter. 4.10 In one example, with the disclosed method, different mode decision results can be produced for Cb component or Cr component. a. For example, Cb and Cr can have different template cost based decision. a. For example, template costs for a first component (e.g., Cb) can be computed first and a mode decision is made for the first component, then template costs for a second component (e.g., Cr) can be computed second and another mode decision is made for the second component. b. For example, for a video unit, Cb and Cr can use different intra chroma blending mechanisms. i. For example, non-LM prediction of Cb can be blended with one LM mode (e.g., MM-CC LM), while non-LM prediction of Cr can be blended with another LM mode (e.g., MM-CC CM). ii. For example, for multi-model intra chroma blending, different thresholds can be used to separate Cb samples and Cr samples. iii. For example, for single-model intra chroma blending, different training ranges can be used to modulate Cb CCP model and Cr CCP model. c. For example, for a video unit, for multi-model CCP mode, Cb and Cr can use different thresholds. i. For example, for multi-model CCP mode, different thresholds can be used to separate Cb samples and Cr samples. d. For example, for a video unit, for CCP mode, Cb and Cr can use different training samples. i. For example, is M (e.g., M = 6) rows / columns of training samples used or N (e.g., N = 2) rows / columns of training samples used. b. For example, for Cb coding and Cr coding of a future block, CCP parameters of Cb can be stored / inherited. a. Alternatively, for Cb coding and Cr coding of a future block, CCP parameters of Cr can be stored / inherited. b. Alternatively, for Cb coding of a future block, CCP parameters of Cb can be stored / inherited, while for Cr coding of a future block, CCP parameters of Cr can be stored / inherited. 4.11 In one example, with the disclosed method, the same mode decision result can be produced for Cb component or Cr component. a. For example, one template cost based decision result can be made for both Cb and Cr. a. For example, one template cost can be computed by accumulating the cost for Cb and the cost for Cr, then mode decision is made based on the joint template cost. b. For example, for a video unit, which type of LM mode (e.g., MM-CCLM or MM-CCCM) is used to fuse Cb with non-LM prediction and to fuse Cr with non-LM prediction can be determined jointly in intra chroma fusion mode. i. For example, for multi-model intra chroma fusion, which threshold is used to separate Cb samples and Cr samples can be determined jointly. ii. For example, for single model intra chroma fusion, which training range is used to modulate Cb CCP model and Cr CCP model can be determined jointly. c. For example, for a video unit, which threshold is used to separate Cb samples and Cr samples can be determined jointly for multi-model CCP mode. d. For example, for a video unit, which training range is used to modulate Cb CCP model and Cr CCP model can be determined jointly for CCP mode. i. For example, whether M (e.g., M = 6) rows / columns of training samples or N (e.g., N = 2) rows / columns of training samples are used for both Cb and Cr. b. For example, video unit level CCP parameters can be stored / inherited for Cb coding and Cr coding of future blocks. a. For example, MM-CCLM model parameters or MM-CCCM model parameters can be stored for intra chroma fusion blocks and used for both Cb coding and Cr coding of future CCP mode. b. For example, one threshold can be stored for multi-model CCP mode and used for both Cb coding and Cr coding of future CCP mode. 4.12 Regarding similarity check between two candidates and related issues (e.g., 5th issue), the following methods are proposed: a. For example, during similarity check, mode information derived from reference block can be checked. a. For example, to perform similarity check between a motion candidate to be inserted in the list and already inserted motion candidates, intra mode information or SCC mode information associated with the two motion candidates can be compared. i. For example, intra mode information or SCC mode information of a motion candidate can be derived from a reference block. ii. For example, intra mode information or SCC mode information of a motion candidate can be derived from a reference block of a reference block. iii. For example, the reference block can be from a reference picture. iv. For example, the reference block can be from a current picture. v. For example, if the intra or SCC modes associated with the two motion candidates are different, the motion candidate to be inserted can be considered as a different motion candidate and can be inserted into the list. 1. Otherwise, for example, the inter motion candidate to be inserted can be considered as the same motion candidate and can not be inserted into the list. b. For example, the list can be an inter motion list, an inter / intra mode list, an IBC / RRIBC motion list, an HMVP table, an MPM list, etc. c. For example, the list can be used for AMVP prediction, or Merge prediction, or intra prediction, IBC / RRIBC prediction, etc. 4.13 Regarding temporal candidates for intra prediction and related issues (e.g., Question 6), the following methods are proposed: a. For example, the intra prediction method can be applied based on temporal candidates. a. For example, the intra prediction method can be a cross-component Merge (CCMerge) mode. b. For example, the intra prediction method can be a non-local CCP mode (e.g., a history-based CCP mode, a non-adjacent-based CCP mode). c. For example, the intra prediction method can be a CCP mode. d. For example, the intra prediction method can be a TIMD mode. e. For example, the intra prediction method can be a GPM / SGPM mode. f. For example, the intra prediction method can be a TMRL / MRL mode. g. For example, the intra prediction method can be intra MPM / IPM list generation (e.g., for regular intra, SGPM, TMRL, TIMD, MRL, GPM inter-intra, etc.). h. For example, the intra prediction method can be an intra TMP mode. i. For example, the intra prediction method can be a DBV (e.g., direct block vector) mode. j. For example, the intra prediction method can be an IBC / RR-IBC mode. b. For example, at least one of the following intra coding information can be derived based on temporal candidates. a. Luma intra mode. b. Chroma intra mode. c. CCP parameters (e.g., CCLM / MMLM / CCCM / GL-CCCM / non-downsampled CCCM / CCCM-MDF / GLM / intra chroma fusion CCP model, CCP type, luma offset, multi-model threshold, etc.). d. GPM / SGPM split mode index. e. Mapped intra mode based on GPM / SGPM split index. f. Block vector. g. Motion vector. c. For example, a temporal candidate can be derived based on a temporal reference video unit in a temporal reference picture. a. For example, as shown in Figure 26 , a temporal reference video unit can be identified based on a motion vector of a neighboring block (adjacent, non-adjacent, history-based) of the current block that is inter coded. Figure 26 An example of a temporal candidate for intra prediction is shown, and the shaded block can be used as the temporal candidate. b. For example, as shown in Figure 26 , a temporal reference video unit can be a collocated block in a reference picture that has the same position as the center / top-right position of the current video unit relative to the top-left position of the current picture. c. For example, a temporal reference video unit can be identified based on a motion displacement. i. For example, a motion displacement can be derived based on a template cost. d. For example, a temporal reference video unit can be intra / CCP coded. i. Alternatively, a temporal reference video unit can be IBC coded, and a reference block of such IBC coded reference block is intra / CCP coded. ii. Alternatively, a temporal reference video unit can be intraTMP coded, and a reference block of such intraTMP coded block is intra / CCP coded. iii. Alternatively, a temporal reference video unit can be inter coded, and a reference block of such inter coded block is intra / CCP coded. d. For example, a temporal candidate can be derived based on a block that has been coded in the current picture. a. For example, as shown in Figure 26 , temporal information can be derived through an inter coded block identified by a block vector relative to the current block. i. For example, an inter coded block in the current picture can be identified based on a block vector from an IBC coded neighboring block. ii. For example, an inter coded block in the current picture can be identified based on a block vector from an intraTMP coded neighboring block. iii. For example, a temporal reference video unit can be further identified based on the inter coded block derived in the current picture. b. For example, the temporal reference video unit can be intra / CCP coded. i. Alternatively, the intra coding information can be derived based on the temporal reference video unit. e. For example, the temporal candidate can be derived based on the history-propagated intra information / CCP information. a. For example, the history-propagated intra information / CCP information can be derived in association with a neighboring block. f. For example, the derived intra coding information of the current video unit can be stored in a cache and used as a temporal candidate for coding of future blocks. a. For example, the current video unit can be inter coded. b. For example, the current video unit can be intra coded. c. For example, the current video unit can be IBC coded. d. For example, the current video unit can be intra TMP coded. e. For example, the derived intra coding information of the current video unit can be stored in association with the motion information / pattern information of the current video unit. f. For example, the stored intra coding information can be luma intra mode / chroma intra mode, CCP parameters, etc. g. For example, it can be history-propagated intra information / CCP information. g. For example, more than one temporal candidate can be used for intra prediction / CCP prediction. a. For example, the multiple temporal candidates can be accessed in the reference picture following a predefined checking order. i. For example, the checking order of the temporal candidates can be based on the prediction type of the neighboring blocks of the current video unit (e.g., whether the neighboring blocks are intra coded). ii. For example, the location of the temporal candidates can be adjacent or non-adjacent to the particular temporal video unit. 1. For example, the particular temporal video unit can be identified by a default motion vector, or a motion vector of a neighboring block, or a derived motion vector. 2. For example, the checking location can depend on the block dimension (width and / or height) of the current video unit. 3. For example, the checking location can be in the top and / or left region of the particular temporal video unit. 4. For example, the checking location can be in the bottom and / or right region of the particular temporal video unit. b. For example, the temporal candidates can be reordered. i. For example, the reordering can be based on the template cost computed between the predicted values and the reconstructed values of the samples in the template. c. For example, the checking order of temporal candidates for inter prediction, and / or intra prediction, and / or IBC prediction can be aligned. h. For example, a similarity check can be applied to determine whether a temporal candidate can be used for intra mode / CCP mode. a. For example, whether a temporal candidate is inserted into a candidate list can be determined based on a similarity check (or de-duplication process). i. For example, a temporal candidate can be inserted into a candidate list after a spatial neighboring candidate. 4.14 Regarding chroma fusion and related issues for inter coding and / or intra coding, the following methods are proposed: a. For example, a list of chroma fusion candidates can be generated based on decoding information. a. For example, a chroma fusion candidate can be based on at least one of the following modes: i. Intra / inter CCCM, ii. CCCM with MDF, iii. GL-CCCM, iv. CCLM, v. GLM, vi. GL-CCCM, vii. LBCCP, viii. Single model, ix. Multiple models, x. DIMD, xi. TIMD, xii. DM, xiii. Based on linear model, xiv. Based on non-linear model, xv. Based on convolution model. b. For example, what type of chroma fusion candidate is included in the list can be determined based on predefined rules.b. For example, a chroma fusion candidate can be computed on the fly from a reference region / training region. a. For example, a chroma fusion filter / model can be derived based on minimizing the difference between the luma sample values and the chroma sample values of a reference / training region / block. i. For example, a chroma fusion model can be applied to the luma reconstructed samples of a reference / training region / block and the resulting model estimated samples, then the minimization process is conducted based on the resulting model estimated samples and the chroma reconstructed sample values of the reference / training region / block. ii. For example, in addition, the reference / training region / block can be adjacent / non-adjacent / temporal / collocated to the current block. iii. For example, in addition, the reference / training region / block can be derived based on a block vector. iv. For example, in addition, the reference / training region / block can be derived based on a motion vector. b. For example, the chroma fusion filter / model can be derived based on minimizing the difference between the reference template and the current template. i. For example, the reference template can be adjacent / non-adjacent to the reference block. ii. For example, the current template can be adjacent / non-adjacent to the current block. iii. For example, the model can be applied to the reference template samples and resulting model estimated samples are obtained, and then the minimization process is conducted based on the resulting model estimated samples and the reconstructed current template sample values. c. For example, the above filter / model can be computed based on a training set consisting of a set of samples from {current block, BV / MV guided reference block, template, non-adjacent block, adjacent block, temporal collocated block, temporal block adjacent / non-adjacent to the collocated block, etc.}. i. For example, more than one type of samples can be used. ii. For example, for the computation of a particular model, the training samples used for the model coefficient computation can be derived from a previously coded block that is coded by that particular model. 1. For example, the particular model can be based on CCLM, Intra / Inter / BVG CCCM, CCCLM with MDF, GL-CCCM, GLM, etc. c. For example, the chroma fusion candidate can be inherited from a previously coded block. d. For example, an LBCCP flag can be added to the chroma fusion candidate. a. For example, the LBCCP flag can be inherited from a previous block. e. For example, whether to add the LBCCP coded chroma fusion candidate can be determined / derived / computed based on the template cost (e.g., by comparing the template cost with and without the low pass filter). a. For example, for non-LBCCP multi-model CCP candidates in the list, an LBCCP flag can be added to such candidates. i. For example, the newly generated LBCCP based multi-model CCP candidate can be inserted to replace the original non-LBCCP multi-model CCP candidate. ii. For example, alternatively, the newly generated LBCCP based multi-model CCP candidate can be inserted as an additional new candidate. b. For example, for LBCCP multi-model CCP candidates in the list, the LBCCP flag can be removed from such candidates. i. For example, the newly generated non-LBCCP based multi-model CCP candidate can be inserted to replace the original LBCCP multi-model CCP candidate. ii. For example, alternatively, the newly generated non-LBCCP based multi-model CCP candidate can be inserted as an additional new candidate. f. For example, the prediction of the chroma merge candidate can be fused with a second prediction, where the second prediction can be based on at least one of the following modes: a. regular intra chroma prediction, b. inter chroma prediction, c. intra angular chroma prediction, d. intra non-angular chroma prediction, e. multi-model CCP prediction, f. intra CCP prediction, g. inter CCP prediction, h. intra CCP Merge prediction, i. inter CCP Merge prediction, j. TIMD, k. DIMD, l. DM, m. IBC chroma prediction, n. intra TMP chroma prediction, o. DBV prediction. g. For example, which chroma merge candidate is selected for fusion can be determined based on the cost (e.g., template cost) derived by the decoder. i. For example, the chroma merge candidates in the list can be ordered / reordered. 1. For example, the ordering can be processed based on the template cost. 2. For example, the candidate index can be signaled to indicate which candidate model is finally selected for coding of the current block. 3. Alternatively, the candidate model with the lowest cost after ordering can be used by default for coding of the current block (e.g., without index signaling). ii. For example, for intra CCP / inter CCP Merge mode, the Merge prediction is fused with the chroma merge candidate, where the chroma merge candidate can be determined based on the template cost. h. For example, alternatively, which chroma merge candidate in the list is selected for fusion can be determined at the encoder side and signaled in the bitstream. i. For example, for intraCCP / interCCP modes (e.g., implicit modes), intraCCP / interCCP predictions are merged with chroma merge candidates, where the chroma merge candidates can be signaled in the bitstream. 4.15 Regarding LBCCP filters and related issues, the following approaches are proposed: a. For example, whether to apply a LBCCP filter to a CCP mode / candidate can be determined based on template costs. a. For example, for a CCP mode / candidate, template costs can be computed by applying a low-pass filter to the template and not applying a low-pass filter. i. For example, if applying a low-pass filter brings lower template costs, a LBCCP filter can be added to the CCP candidate. ii. For example, alternatively, if applying a low-pass filter brings higher template costs, a LBCCP filter can be removed from the CCP candidate. iii. For example, the low-pass filter can be based on 3 taps. b. For example, for non-LBCCP multi-model CCP candidates in the list, a LBCCP flag can be added to such candidates. i. For example, a newly generated LBCCP-based multi-model CCP candidate can be inserted to replace the original non-LBCCP multi-model CCP candidate. ii. For example, alternatively, a newly generated LBCCP-based multi-model CCP candidate can be inserted as an additional new candidate. c. For example, for LBCCP multi-model CCP candidates in the list, a LBCCP flag can be removed from such candidates. i. For example, a newly generated non-LBCCP-based multi-model CCP candidate can be inserted to replace the original LBCCP multi-model CCP candidate. ii. For example, alternatively, a newly generated non-LBCCP-based multi-model CCP candidate can be inserted as an additional new candidate. b. For example, whether to apply a LBCCP filter to a CCP candidate can be inherited from a previous block. a. For example, if the CCP candidate selected for the current block is LBCCP coded, a LBCCP filter can be applied to the current block. c. For example, interCCP / intraCCP modes can be applied based on LBCCP candidates. a. For example, a decoder-derived intraCCP / interCCP candidate list can be generated based on LBCCP-based models b. b. For example, the interCCP / intraCCP mode can be a Merge mode. c. For example, the interCCP / intraCCP mode can not be a Merge mode. 4.16 Whether and / or how to apply the methods disclosed above can be signaled at sequence level / group of pictures level / picture level / slice level / tile group level, such as in sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / slice header / tile group header. 4.17 Whether and / or how to apply the methods disclosed above can be signaled at PB / TB / CB / PU / TU / CU / VPDU / CTU / CTU row / slice / tile / subpicture / other kind of region containing more than one sample or pixel. 4.18 Whether and / or how to apply the methods disclosed above can depend on the information being coded, such as block size, color format, mono / bi-tree partitioning, color component, slice / picture type.

[0087] More details of embodiments of the disclosure related to cross-component prediction will be described below. Embodiments of the disclosure should be considered as examples to explain the general concepts, and should not be interpreted in a narrow way. In addition, these embodiments can be applied individually or combined in any way.

[0088] As used herein, the term “video unit” can represent a block, a sub-block, a coding tree block (CTB), a coding tree unit (CTU), a coding block (CB), a coding unit (CU), a prediction unit (PU), a transform unit (TU), a prediction block (PB), a transform block (TB), a tile, a slice, a subpicture, a video processing unit including a plurality of samples / pixels, etc. The video unit can be rectangular or non-rectangular.

[0089] In addition, the chroma component can include a Cb component and / or a Cr component. For example, the Cb component can represent a blue-difference chroma component, and the Cr component can represent a red-difference chroma component. In another example, the Cb component and the Cr component can be replaced by a U component and a V component. It should be understood that the Cb component and / or the Cr component can represent any other suitable color component. In addition, although solutions according to some embodiments of the disclosure will be described with respect to chroma components, the concepts of these solutions can also be applied to any other suitable color component, such as a luma component, a red (R) component, a green (G) component, a blue (B) component, etc. The scope of the disclosure is not limited in this respect.

[0090] As used herein, the term“reference region” can refer to a region used to determine a CCP model. For example, parameters of a CCP model can be determined based on reconstructed luma and chroma samples in the reference region. In this case, these samples used to determine the CCP model can also be referred to as“training samples” or“reference samples”. Furthermore, the terms“reference region”,“reference range”,“training region”, and“training range” can be used interchangeably.

[0091] Figure 27 A flowchart of a method 2700 for video processing is shown in accordance with some embodiments of the disclosure. The method 2700 can be implemented during a conversion between a current video block of a video and a bitstream of the video. As shown in Figure 27

[0092] In some embodiments, the coding information can include a type of the CCP mode. For example, if the CCP mode is a multi-model based mode, the prediction for the chroma component is filtered. Additionally or alternatively, if the CCP mode is a convolutional cross-component model (CCCM) based mode, the prediction for the chroma component is filtered. As an example and not by way of limitation, the CCPM based mode can include a CCCM mode, a gradient and location based convolutional cross-component model (GL-CCCM) mode, a non-down-sampling CCCM mode, and / or the like.

[0093] In some additional or alternative embodiments, if the CCP mode is a non-down-sampling CCCM mode, the prediction for the chroma component is not filtered. Additionally or alternatively, if the CCP mode is a GL-CCCM mode, the prediction for the chroma component is not filtered.

[0094] It should be understood that the above examples are described for purposes of description only. The coding information can also include any other suitable information, such as a type of a template used for the CCP mode, and / or the like. Some further examples will be described in detail below. The scope of the disclosure is not limited in this regard.

[0095] At 2704, the conversion is performed based on the first information. For example, if the first information indicates that the prediction for the chroma component of the current video block is to be filtered. The prediction for the chroma component can be filtered, and the filtered prediction can be used as the final prediction for the chroma component.

[0096] ​In some embodiments, the conversion can comprise encoding the current video block into the bitstream. Alternatively or additionally, the conversion can comprise decoding the current video block from the bitstream. It is to be understood that the above explanations and / or examples are described for the purpose of description only. The scope of the present disclosure is not limited in this respect.

[0097] In view of the above, the chroma prediction of the current video block determined with the CCP is allowed to be filtered. The information related to whether the chroma prediction is filtered depends on the related coding information. In contrast to conventional solutions where such chroma prediction is not filtered, the proposed approach can advantageously support filtering the chroma prediction determined with the CCP. In this way, the coding quality can be improved.

[0098] In some embodiments, the coding information can comprise a type of template used for the CCP mode. In one example embodiment, the coding information comprises whether an extended template is used for the CCP mode. For example, if the extended template is used for the CCP mode, the prediction for the chroma component is not allowed to be filtered. If the extended template is not used for the CCP mode, the prediction for the chroma component is not allowed to be filtered.

[0099] In some embodiments, whether the prediction for the chroma component is allowed to be filtered depends on a syntax element associated with the template used for the CCP mode. For example, the signaling of the prediction filter mode depends on the syntax element.

[0100] In some embodiments, the coding information can comprise a down-sampling filter used for the CCP mode, whether a specific down-sampling filter mode is used, and / or whether a multi-down-sampling filter mode is used.

[0101] In some embodiments, at least one of the following depends on a syntax element associated with a type of down-sampling filter used for the CCP mode: whether the prediction for the chroma component is allowed to be filtered, or whether the first information is indicated in the bitstream. In some alternative embodiments, at least one of the following depends on an index of the down-sampling filter used for the CCP mode: whether the prediction for the chroma component is allowed to be filtered, or whether the first information is indicated in the bitstream. In some further embodiments, at least one of the following depends on a plurality of down-sampling filter modes: whether the prediction for the chroma component is allowed to be filtered, or whether the first information is indicated in the bitstream.

[0102] In some embodiments, how the first information is indicated in the bitstream depends on the type of the CCP mode. In one example embodiment, whether the first information is indicated in the bitstream depends on whether the CCP mode is a non-down-sampling CCCM mode. For example, if the CCP mode is a non-down-sampling CCCM mode, the first information is not indicated in the bitstream. In this case, the first information is inferred to be that the prediction for the chroma component is not filtered.

[0103] In another example embodiment, whether the first information is indicated in the bitstream depends on whether the CCP mode is a GL-CCCM mode. For example, if the CCP mode is a GL-CCCM mode, the first information is not indicated in the bitstream. In this case, the first information is inferred to be that the prediction for the chroma component is not filtered.

[0104] In yet another example embodiment, whether the first information is indicated in the bitstream depends on whether the CCP mode is a gradient linear model (GLM) mode. For example, if the CCP mode is a GLM mode, the first information is not indicated in the bitstream. In this case, the first information is inferred to be that the prediction for the chroma component is not filtered.

[0105] In some embodiments, the coding information can include a slice type of the current video block, and / or a partitioning scheme associated with the current video block. In some further embodiments, how the prediction for the chroma component determined with the CCP mode is filtered depends on the slice type of the current video block, and / or the partitioning scheme associated with the current video block. Additionally or alternatively, whether and / or how the prediction for the chroma component is filtered depends on one of the following: whether the slice type of the current video block is an intra slice, or whether the partitioning scheme is dual tree.

[0106] In some embodiments, for I slices, the prediction for the chroma component is allowed to be filtered. For example, the prediction for the chroma component is only allowed to be filtered for I slices. In some further embodiments, for B slices and / or P slices, the prediction for the chroma component is allowed to be filtered. For example, the prediction for the chroma component is only allowed to be filtered for B slices and / or P slices.

[0107] In some embodiments, the CCP mode includes a CCCM with multiple down-sampling filters (CCCM-MDF) mode. In this case, the prediction for the chroma component determined with the CCCM-MDF mode is filtered based on a filtering scheme. Additionally or alternatively, the first information related to whether the prediction for the chroma component determined with the CCCM-MDF mode is filtered is indicated in the bitstream. For example, a syntax element indicating the first information depends on whether the MMLM_TL mode is used.

[0108] In some embodiments, the same syntax element is used to indicate whether the prediction for the chroma component determined with the CCCM-MDF mode is filtered or whether the prediction for the chroma component determined with another CCP mode is filtered. For example, the other CCP mode can include a multi-model linear model (MMLM) mode, a CCCM mode, a GL-CCCM mode, a CCCM mode without downsampling, etc.

[0109] In some embodiments, the prediction for the chroma component determined with all kinds of CCCM-MDF modes is allowed to be filtered based on a filtering scheme. Alternatively, the prediction for the chroma component determined with a specific CCCM-MDF mode is allowed to be filtered based on a filtering scheme.

[0110] In some embodiments, whether the first information is indicated in the bitstream depends on whether the CCCM-MDF mode is used. For example, if the CCCM-MDF mode is not used for the current video block, the first information is not indicated in the bitstream. Additionally or alternatively, the prediction for the chroma component determined with the CCCM-MDF mode is not filtered. In some further embodiments, whether the first information is indicated in the bitstream depends on whether a specific CCCM-MDF mode is used.

[0111] In some embodiments, the extended template of the current video block includes left neighboring samples beyond the vertical range of the current video block and above neighboring samples beyond the horizontal range of the current video block. Alternatively, the extended template includes left neighboring samples beyond the vertical range of the current video block. In some further embodiments, the extended template includes above neighboring samples beyond the horizontal range of the current video block. In these embodiments, the extended template can include the top-left neighboring sample of the current video block. Alternatively, the extended template does not include the top-left neighboring sample of the current video block.

[0112] In some embodiments, the extended template is not allowed or not used for at least one CCP mode. For example, the at least one CCP mode includes a CCLM mode, a GLM mode, a GL-CCCM mode, a CCCM mode with downsampling, a CCCM mode without downsampling, and / or a CCCM mode based on a multi-downsampling filter.

[0113] In some embodiments, a plurality of downsampling filters is used or allowed for a CCP mode. For example, the CCP mode includes a CCLM mode. In some embodiments, whether the multi-downsampling filter mode is used is indicated by a syntax element or is determined based on a cost or coding information. In some embodiments, at least one model for the CCP mode includes more than one predetermined downsampling filter.

[0114] In some embodiments, the first chroma component and the second chroma component of the current video block are coded using the same coding scheme. The coding scheme can be based on the CCP. For example, the coding scheme determined based on the template cost is used for the first chroma component and the second chroma component of the current video block. By way of example, the template cost is determined based on a result of accumulating the cost for the first chroma component and the cost for the second chroma component.

[0115] In some embodiments, a type of the LM mode is determined jointly for the first chroma component and the second chroma component, the type of the LM mode being used to determine the first prediction for the first chroma component and the second prediction for the second chroma component, in the intra chroma fusion mode, the first prediction is fused with another prediction for the first chroma component determined using a non-LM mode, and in the intra chroma fusion mode, the second prediction is fused with another prediction for the second chroma component determined using a non-LM mode.

[0116] In some embodiments, a threshold is determined jointly for the first chroma component and the second chroma component, the threshold being used to classify samples of the first chroma component and samples of the second chroma component for the multi-model intra chroma fusion. Additionally or alternatively, a range of training samples is determined jointly for the first chroma component and the second chroma component, the range of training samples being used to determine a CCP model for the first chroma component and a CCP model for the second chroma component for the single-model intra chroma fusion.

[0117] In some embodiments, a threshold is determined jointly for the first chroma component and the second chroma component, the threshold being used to classify samples of the first chroma component and samples of the second chroma component for the multi-model CCP mode. Additionally or alternatively, a range of training samples is determined jointly for the first chroma component and the second chroma component, the range of training samples being used to determine a CCP model for the first chroma component and a CCP model for the second chroma component for the CCP mode.

[0118] In some embodiments, whether to use a first number of rows of the training samples or to use a second number of rows of the training samples is determined jointly for the first chroma component and the second chroma component, or whether to use a first number of columns of the training samples or to use a second number of columns of the training samples is determined jointly for the first chroma component and the second chroma component.

[0119] In some embodiments, the video unit level CCP parameters are stored for coding the first and second chroma components of another video block of the video, or the video unit level CCP parameters are inherited for coding the first and second chroma components of another video block of the video. For example, the video unit level CCP parameters include at least one of: multi-model cross-component linear model (MM-CCLM) model parameters for intra chroma fusion blocks, multi-model convolution cross-component model (MM-CCCM) model parameters for intra chroma fusion blocks, or thresholds for multi-model CCP modes for classifying samples into different groups. In some embodiments, the first chroma component is a Cr component, and the second chroma component is a Cb component.

[0120] In some alternative embodiments, the first chroma component of the current video block is coded based on a first coding scheme, while the second chroma component of the current video block is coded based on a second coding scheme. The second chroma component is different from the first chroma component, and the second coding scheme is different from the first coding scheme. In some embodiments, the first chroma component can be a Cb component, and the second chroma component can be a Cr component. Alternatively, the first chroma component can be a Cr component, and the second chroma component can be a Cb component. In some embodiments, the first coding scheme and the second coding scheme are based on cross-component prediction (CCP).

[0121] By way of example and not limitation, different mode decision results can be generated for Cb and Cr components. The mode decision results for the chroma components can indicate the coding modes used to code the chroma components. In addition, the mode decision results can further indicate the parameters and / or configurations of the coding modes, e.g., model parameters for CCP modes, thresholds for multi-model based CCP models, etc.

[0122] In view of the above, different chroma components of the same block are coded with different coding schemes. Compared to the conventional solutions that use the same coding scheme to code different chroma components, the proposed approach can advantageously support independent coding of different chroma components, whereby the coding quality can be improved.

[0123] In some embodiments, the first coding scheme and the second coding scheme are determined based on template cost based schemes. For example, a template cost for the first chroma component and a template cost for the second chroma component can be determined respectively. For example, the template cost for the first chroma component (e.g., Cb) can be computed first, and a mode decision is made for the first chroma component, then the template cost for the second chroma component (e.g., Cr) can be computed, and another mode decision is made for the second chroma component.

[0124] In some embodiments, the first coding scheme includes a first intra-chroma fusion scheme, and the second coding scheme includes a second intra-chroma fusion scheme different from the first intra-chroma fusion scheme. In the intra-chroma fusion scheme, more than one candidate prediction for a chroma component is fused to obtain a final prediction for the chroma component.

[0125] In some embodiments, a prediction for the first chroma component determined with a non-linear model (non-LM) mode is fused with another prediction for the first chroma component determined with a first type of linear model (LM). Further, a prediction for the second chroma component determined with the non-LM mode is fused with another prediction for the second chroma component determined with a second type of LM different from the first type of LM. By way of example and not limitation, the first type of LM includes a multi-model cross-component linear model (MM-CCLM) mode, and the second type of LM includes a multi-model convolution cross-component model (MM-CCCM) mode.

[0126] In some embodiments, both the first intra-chroma fusion scheme and the second intra-chroma fusion scheme are multi-model based. In this case, a threshold used for classifying samples of the first chroma component for the first intra-chroma fusion scheme can be different from a threshold used for classifying samples of the second chroma component for the second intra-chroma fusion scheme. For example, samples are classified into different categories for determining more than one CCP model.

[0127] In some embodiments, both the first intra-chroma fusion scheme and the second intra-chroma fusion scheme are single-model based. In this case, a range of training samples used for determining a CCP model of the first chroma component for the first intra-chroma fusion scheme is different from a range of training samples used for determining a CCP model of the second chroma component for the second intra-chroma fusion scheme.

[0128] In some embodiments, the first coding scheme includes a first multi-model CCP scheme, and the second coding scheme includes a second multi-model CCP scheme different from the first multi-model CCP scheme. For example, a threshold used for classifying samples of the first chroma component for the first multi-model CCP scheme can be different from a threshold used for classifying samples of the second chroma component for the second multi-model CCP scheme.

[0129] In some embodiments, the training samples used to determine the CCP model for the first chroma component for the first intra-chroma fusion scheme are different from the training samples used to determine the CCP model for the second chroma component for the second intra-chroma fusion scheme. By way of example, a first range of the training samples used to determine the CCP model for the first chroma component for the first intra-chroma fusion scheme is different from a second range of the training samples used to determine the CCP model for the second chroma component for the second intra-chroma fusion scheme. For example, the first range includes M rows of training samples and / or N rows of training samples, while the second range includes R rows of training samples and / or Q rows of training samples. Each of M, N, R, and Q is a non-negative integer, such as 1, 2, 4, 5, and so on.

[0130] In some embodiments, the CCP parameters used to code the first chroma component are stored for coding the first chroma component and the second chroma component of another video block of the video. The current video block is coded before the another video block. In other words, the another video block is to be coded after the current video block. Additionally or alternatively, the CCP parameters used to code the first chroma component are inherited for coding the first chroma component and the second chroma component of the another video block.

[0131] In some alternative embodiments, the CCP parameters used to code the second chroma component are stored for coding the first chroma component and the second chroma component of another video block of the video. Additionally or alternatively, the CCP parameters used to code the second chroma component are inherited for coding the first chroma component and the second chroma component of the another video block.

[0132] In some embodiments, the CCP parameters used to code the first chroma component are stored for coding the first chroma component of another video block, and the CCP parameters used to code the second chroma component are stored for coding the second chroma component of the another video block. Additionally or alternatively, the CCP parameters used to code the first chroma component are inherited for coding the first chroma component of the another video block, and the CCP parameters used to code the second chroma component are inherited for coding the second chroma component of the another video block.

[0133] In some embodiments, whether and / or how the method is applied is indicated at one of the following: sequence level, picture group level, picture level, slice level, or tile group level.

[0134] In some embodiments, whether and / or how the method is applied is indicated in one of the following: sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), dependent parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptation parameter set (APS), slice header, or tile group header.

[0135] In some embodiments, whether and / or how the method is applied is indicated at a region that includes more than one sample or pixel. By way of example and not limitation, the region includes at least one of a prediction block (PB), a transform block (TB), a coding block (CB), a prediction unit (PU), a transform unit (TU), a coding unit (CU), a virtual pipeline data unit (VPDU), a coding tree unit (CTU), a CTU row, a slice, a tile, or a subpicture.

[0136] In some embodiments, whether and / or how the method is applied depends on coded information. For example, the coded information includes at least one of a block size, a color format, a single or dual tree partitioning, a dual tree partitioning, a color component, a slice type, or a picture type.

[0137] It should be appreciated that although the solutions according to some embodiments of the disclosure are described with respect to filtering for prediction of a chroma component, the concepts of these solutions can also be applied to filtering for prediction of any other suitable color component, such as a luma component, a red (R) component, a green (G) component, a blue (B) component, etc. The scope of the disclosure is not limited in this regard.

[0138] In view of the above, the solutions according to some embodiments of the disclosure can advantageously improve coding efficiency and coding quality.

[0139] According to further embodiments of the disclosure, a non-transitory computer-readable recording medium is provided. The non-transitory computer-readable recording medium stores a method of a video processing apparatus for generating a bitstream of a video. In the method, first information related to whether to filter prediction for a chroma component determined with a cross-component prediction (CCP) mode for a current video block of the video is obtained. The first information depends on coding information associated with the current video block. Further, the bitstream is generated based on the first information.

[0140] According to still further embodiments of the disclosure, a method for storing a bitstream of a video is provided. In the method, first information related to whether to filter prediction for a chroma component determined with a cross-component prediction (CCP) mode for a current video block of the video is obtained. The first information depends on coding information associated with the current video block. Further, the bitstream is generated based on the first information, and the bitstream is stored in a non-transitory computer-readable recording medium.

[0141] Embodiments of the disclosure can be described according to the following clauses, which features can be combined in any reasonable manner.

[0142] Item 1. A method for video processing, comprising: obtaining, for a conversion between a current video block of a video and a bitstream of the video, first information related to whether a prediction for a chroma component of the current video block is filtered, wherein the prediction for the chroma component is determined with a cross component prediction (CCP) mode, and the first information depends on coding information associated with the current video block; and performing the conversion based on the first information.

[0143] Item 2. The method of item 1, wherein the coding information comprises a type of the CCP mode.

[0144] Item 3. The method of item 2, wherein the prediction for the chroma component is filtered if the CCP mode is a multi-model based.

[0145] Item 4. The method of any of items 2-3, wherein the prediction for the chroma component is filtered if the CCP mode is a convolution cross component model (CCCM) based mode.

[0146] Item 5. The method of item 4, wherein the CCCM based mode comprises at least one of: a CCCM mode, a gradient and location based convolution cross component model (GL-CCCM) mode, or a non-down-sampling CCCM mode.

[0147] Item 6. The method of any of items 2-3, wherein the prediction for the chroma component is not filtered if the CCP mode is a non-down-sampling CCCM mode.

[0148] Item 7. The method of any of items 2-3, wherein the prediction for the chroma component is not filtered if the CCP mode is a GL-CCCM mode.

[0149] Item 8. The method of any of items 1-7, wherein the coding information comprises a type of a template used for the CCP mode.

[0150] Item 9. The method of any of items 1-8, wherein the coding information comprises whether an extended template is used for the CCP mode.

[0151] Item 10. The method of item 9, wherein the prediction for the chroma component is not allowed to be filtered if the extended template is used for the CCP mode.

[0152] Item 11. The method of item 9, wherein the prediction for the chroma components is not allowed to be filtered if the extended template is not used for the CCP mode.

[0153] Item 12. The method of any of items 1 to 11, wherein whether the prediction for the chroma components is allowed to be filtered depends on a syntax element associated with a template used for the CCP mode.

[0154] Item 13. The method of item 12, wherein signaling of a prediction filter mode depends on the syntax element.

[0155] Item 14. The method of any of items 1 to 13, wherein the coding information comprises one of a downsampling filter used for the CCP mode, whether a particular downsampling filter mode is used, or whether a multi-downsampling filter mode is used.

[0156] Item 15. The method of any of items 1 to 14, wherein at least one of whether the prediction for the chroma components is allowed to be filtered or whether the first information is indicated in the bitstream depends on a syntax element associated with a type of downsampling filter used for the CCP mode.

[0157] Item 16. The method of any of items 1 to 14, wherein at least one of whether the prediction for the chroma components is allowed to be filtered or whether the first information is indicated in the bitstream depends on an index of a downsampling filter used for the CCP mode.

[0158] Item 17. The method of any of items 1 to 14, wherein at least one of whether the prediction for the chroma components is allowed to be filtered or whether the first information is indicated in the bitstream depends on a multi-downsampling filter mode.

[0159] Item 18. The method of any of items 1 to 17, wherein how the first information is indicated in the bitstream depends on a type of the CCP mode.

[0160] Item 19. The method of any of items 1 to 18, wherein whether the first information is indicated in the bitstream depends on whether the CCP mode is a non-downsampling CCPM mode.

[0161] Item 20. The method of item 19, wherein if the CCP mode is the non-downsampling CCPM mode, the first information is not indicated in the bitstream.

[0162] Item 21. The method of item 20, wherein the first information is inferred to be that the prediction for the chroma component is not filtered.

[0163] Item 22. The method of any of items 1-18, wherein whether the first information is indicated in the bitstream depends on whether the CCP mode is a GL-CCCM mode.

[0164] Item 23. The method of item 22, wherein if the CCP mode is the GL-CCCM mode, the first information is not indicated in the bitstream.

[0165] Item 24. The method of item 23, wherein the first information is inferred to be that the prediction for the chroma component is not filtered.

[0166] Item 25. The method of any of items 1-18, wherein whether the first information is indicated in the bitstream depends on whether the CCP mode is a gradient linear model (GLM) mode.

[0167] Item 26. The method of item 25, wherein if the CCP mode is the GLM mode, the first information is not indicated in the bitstream.

[0168] Item 27. The method of item 26, wherein the first information is inferred to be that the prediction for the chroma component is not filtered.

[0169] Item 28. The method of any of items 1-27, wherein the coding information comprises at least one of a slice type of the current video block or a partitioning scheme associated with the current video block.

[0170] Item 29. The method of any of items 1-28, wherein how the prediction for the chroma component determined with the CCP mode is filtered depends on at least one of a slice type of the current video block or a partitioning scheme associated with the current video block.

[0171] Item 30. The method of any of items 28-29, wherein whether the prediction for the chroma component is filtered and / or how the prediction for the chroma component is filtered depends on one of whether the slice type of the current video block is an intra slice or whether the partitioning scheme is dual tree.

[0172] Item 31. The method of any of items 28-29, wherein for an I slice, the prediction for the chroma component is allowed to be filtered.

[0173] Item 32. The method of any of items 28-29, wherein the prediction for the chroma component is allowed to be filtered for B slices and / or P slices.

[0174] Item 33. The method of any of items 1-32, wherein the CCP mode comprises a CCCM (CCCM-MDF) mode using a plurality of down-sampling filters, and the prediction for the chroma component determined with the CCCM-MDF mode is filtered based on a filtering scheme.

[0175] Item 34. The method of any of items 1-33, wherein the CCP mode comprises a CCCM-MDF mode, and the first information related to whether the prediction for the chroma component determined with the CCCM-MDF mode is filtered is indicated in the bitstream.

[0176] Item 35. The method of item 34, wherein a syntax element indicating the first information depends on whether a MMLM_TL mode is used.

[0177] Item 36. The method of item 35, wherein a same syntax element is used to indicate at least one of whether the prediction for the chroma component determined with the CCCM-MDF mode is filtered, or whether the prediction for the chroma component determined with another CCP mode is filtered.

[0178] Item 37. The method of item 36, wherein the another CCP mode comprises at least one of a multi-model linear model (MMLM) mode, a CCCM mode, a GL-CCCM mode, or a CCCM mode without down-sampling.

[0179] Item 38. The method of any of items 33-37, wherein predictions for the chroma component determined with all kinds of CCCM-MDF modes are allowed to be filtered based on the filtering scheme.

[0180] Item 39. The method of any of items 33-37, wherein predictions for the chroma component determined with a particular CCCM-MDF mode are allowed to be filtered based on the filtering scheme.

[0181] Item 40. The method of any of items 1-39, wherein whether the first information is indicated in the bitstream depends on whether a CCCM-MDF mode is used.

[0182] Item 41. The method of item 40, wherein the first information is not indicated in the bitstream if the CCCM-MDF mode is not used for the current video block.

[0183] Item 42. The method of any of items 1 to 41, wherein the prediction for the chroma component determined with the CCCM-MDF mode is not filtered.

[0184] Item 43. The method of any of items 1 to 39, wherein whether the first information is indicated in the bitstream depends on whether a particular CCCM-MDF mode is used.

[0185] Item 44. The method of any of items 1 to 43, wherein the extended template for the current video block includes left neighboring samples beyond a vertical range of the current video block and above neighboring samples beyond a horizontal range of the current video block, or wherein the extended template includes left neighboring samples beyond the vertical range of the current video block, or wherein the extended template includes above neighboring samples beyond the horizontal range of the current video block.

[0186] Item 45. The method of item 44, wherein the extended template includes a top-left neighboring sample of the current video block, or the extended template does not include a top-left neighboring sample of the current video block.

[0187] Item 46. The method of any of items 44 to 45, wherein the extended template is not allowed to be used or is not used for at least one CCP mode.

[0188] Item 47. The method of item 46, wherein the at least one CCP mode includes at least one of: a CCLM mode, a GLM mode, a GL-CCCM mode, a CCCM mode with downsampling, a CCCM mode without downsampling, or a CCCM mode based on a multi-downsampling filter.

[0189] Item 48. The method of any of items 1 to 47, wherein a plurality of downsampling filters are used or are allowed to be used for the CCP mode.

[0190] Item 49. The method of item 48, wherein the CCP mode includes a CCLM mode.

[0191] Item 50. The method of any of items 1 to 47, wherein whether a multi-downsampling filter mode is used is indicated by a syntax element, or whether a multi-downsampling filter mode is used is determined based on cost or coding information.

[0192] Item 51. The method of any of items 1 to 50, wherein the at least one model for the CCP mode comprises more than one predetermined down-sampling filter.

[0193] Item 52. The method of any of items 1 to 51, wherein a first chroma component and a second chroma component of the current video block are coded with a same coding scheme.

[0194] Item 53. The method of any of items 1 to 52, wherein whether and / or how the method is applied is indicated at one of: a sequence level, a group of pictures level, a picture level, a slice level, or a tile group level.

[0195] Item 54. The method of any of items 1 to 52, wherein whether and / or how the method is applied is indicated in one of: a sequence header, a picture header, a sequence parameter set (SPS), a video parameter set (VPS), a dependent parameter set (DPS), a decoding capability information (DCI), a picture parameter set (PPS), an adaptation parameter set (APS), a slice header, or a tile group header.

[0196] Item 55. The method of any of items 1 to 52, wherein whether and / or how the method is applied is indicated at a region comprising more than one sample or pixel.

[0197] Item 56. The method of item 55, wherein the region comprises at least one of: a prediction block (PB), a transform block (TB), a coding block (CB), a prediction unit (PU), a transform unit (TU), a coding unit (CU), a virtual pipeline data unit (VPDU), a coding tree unit (CTU), a CTU row, a slice, a tile, or a sub-picture.

[0198] Item 57. The method of any of items 1 to 56, wherein whether and / or how the method is applied depends on coded information.

[0199] Item 58. The method of item 57, wherein the coded information comprises at least one of: a block size, a color format, a single or dual tree partitioning, a dual tree partitioning, a color component, a slice type, or a picture type.

[0200] Item 59. The method of any of items 1 to 58, wherein the conversion comprises encoding the current video block into the bitstream.

[0201] Item 60. The method of any of items 1 to 58, wherein the conversion comprises decoding the current video block from the bitstream.

[0202] Item 61. An apparatus for video processing, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method according to any of items 1 to 60.

[0203] Item 62. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method according to any of items 1 to 60.

[0204] Item 63. A non-transitory computer-readable recording medium storing a bitstream of a video generated by a method performed by a video processing apparatus, wherein the method comprises: obtaining first information related to whether or not to filter a prediction for a chroma component of a current video block of the video, wherein the prediction for the chroma component is determined to utilize a cross-component prediction (CCP) mode, and the first information depends on coding information associated with the current video block; and generating the bitstream based on the first information.

[0205] Item 64. A method for storing a bitstream of a video, comprising: obtaining first information related to whether or not to filter a prediction for a chroma component of a current video block of the video, wherein the prediction for the chroma component is determined to utilize a cross-component prediction (CCP) mode, and the first information depends on coding information associated with the current video block; generating the bitstream based on the first information; and storing the bitstream in a non-transitory computer-readable recording medium. Example device

[0206] Figure 28 A block diagram of a computing device 2800 in which various embodiments of the present disclosure can be implemented is shown. The computing device 2800 can be implemented as the source device 110 (or the video encoder 114 or 200) or the destination device 120 (or the video decoder 124 or 300), or can be included in the source device 110 (or the video encoder 114 or 200) or the destination device 120 (or the video decoder 124 or 300).

[0207] It should be understood that Figure 28 The computing device 2800 shown in FIG. 13 is for purposes of illustration and explanation only and is not intended to imply any limitation on the functionality and scope of embodiments of the present disclosure.

[0208] As Figure 28As shown, computing device 2800 includes a general-purpose computing device 2800. The computing device 2800 can include at least one or more processors or processing units 2810, a memory 2820, a storage unit 2830, one or more communication units 2840, one or more input devices 2850, and one or more output devices 2860.

[0209] In some embodiments, the computing device 2800 can be implemented as any user terminal or server terminal having computing capabilities. The server terminal can be a server provided by a service provider, a mainframe computing device, or the like. The user terminal may, for example, be any type of mobile terminal, fixed terminal, or portable terminal including a mobile phone, a station, a unit, a device, a multimedia computer, a multimedia tablet, an Internet node, a communicator, a desktop computer, a laptop computer, a notebook computer, a netbook computer, a tablet computer, a personal communication system (PCS) device, a personal navigation device, a personal digital assistant (PDA), an audio / video player, a digital camera / camcorder, a positioning device, a television receiver, a radio broadcast receiver, an electronic book device, a game device, or any combination thereof, including accessories and peripherals of these devices or any combination thereof. It is contemplated that the computing device 2800 can support any type of interface to the user (such as "wearable" circuitry, etc.).

[0210] The processing units 2810 can be physical processors or virtual processors and can implement various processing based on programs stored in the memory 2820. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to increase the parallel processing power of the computing device 2800. The processing units 2810 can also be referred to as central processing units (CPUs), microprocessors, controllers, or microcontrollers.

[0211] The computing device 2800 typically includes a variety of computer storage media. Such media can be any media that is accessible by the computing device 2800 and can include, without limitation, both volatile and non-volatile media, or removable and non-removable media. The memory 2820 can be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (such as read only memory (ROM), electrically erasable programmable read only memory (EEPROM) or flash memory), or any combination thereof. The storage unit 2830 can be any removable or non-removable media, and can include machine-readable media, such as a memory, a flash drive, a disk, or other media that can be used to store information and / or data and that can be accessed by the computing device 2800.

[0212] The computing device 2800 can also include additional removable / non-removable storage media, volatile / non-volatile memory media. Although the exemplary environment 2800 is described in terms of a few components, it should be appreciated that other types of devices and / or systems of devices can be used as desired. For example, the functionality of the computing device 2800 can be implemented by one or more state machines that are integrated into a buss and / or a variety of other components.Figure 28 A disk drive can be provided for reading from or writing to a removable nonvolatile disk, and an optical disk drive can be provided for reading from or writing to a removable nonvolatile disk. In this case, each drive can be connected to the bus (not shown) via one or more data media interfaces.

[0213] The communication unit 2840 communicates with another computing device via a communication medium. Additionally, the functionality of the components in the computing device 2800 can be implemented by a single computing cluster or multiple computing machines that can communicate via a communication connection. Thus, the computing device 2800 can operate in a networked environment using logical connections to one or more other servers, networked personal computers (PCs), or other general network nodes.

[0214] The input device 2850 can be one or more of a variety of input devices, such as a mouse, a keyboard, a trackball, a voice input device, or the like. The output device 2860 can be one or more of a variety of output devices, such as a display, a speaker, a printer, or the like. By means of the communication unit 2840, the computing device 2800 can also communicate with one or more external devices (not shown), such as a storage device and a display device, and the computing device 2800 can also communicate with one or more devices that enable a user to interact with the computing device 2800, or, if necessary, the computing device 2800 can also communicate with any device that enables the computing device 2800 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication can be carried out via an input / output (I / O) interface (not shown).

[0215] In some embodiments, some or all of the components of computing device 2800 can also be arranged in a cloud computing architecture, rather than being integrated in a single device. In a cloud computing architecture, components can be provided remotely and work together to implement the functionality described in this disclosure. In some embodiments, cloud computing provides computation, software, data access, and storage services that do not require end-user knowledge of the physical location or configuration of the system that delivers the services. In various embodiments, cloud computing delivers services via the internet using appropriate protocols. For example, a cloud computing provider provides an application via the internet that can be accessed through a web browser or any other computing component. The software or components of the cloud computing architecture, and corresponding data, can be stored on servers at remote locations. Computing resources in a cloud computing environment can be consolidated or distributed at locations remote to the user. Cloud computing infrastructure can provide services through a shared data center, although they appear as a single point of access to the user. Thus, a cloud computing architecture can be used to provide the components and functionality described herein from a service provider at a remote location. Alternatively, the components and functionality described herein can be provided by a conventional server, or installed directly on a client device, either directly or in other ways.

[0216] In embodiments of the disclosure, computing device 2800 can be used to implement video encoding / decoding. Memory 2820 can include one or more video codec modules 2825 having one or more program instructions. These modules are accessible and executable by processing unit 2810 to perform the functions of the various embodiments described herein.

[0217] In example embodiments that perform video encoding, input device 2850 can receive video data as input 2870 to be encoded. The video data can be processed, for example, by video codec module 2825, to generate an encoded bitstream. The encoded bitstream can be provided as output 2880 via output device 2860.

[0218] In example embodiments that perform video decoding, input device 2850 can receive an encoded bitstream as input 2870. The encoded bitstream can be processed, for example, by video codec module 2825, to generate decoded video data. The decoded video data can be provided as output 2880 via output device 2860.

[0219] While the present disclosure has been particularly shown and described with reference to the preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details can be made therein without departing from the spirit and scope of the application as defined by the appended claims. Such variations are intended to be covered by the scope of this application. Therefore, the foregoing description of embodiments of the application is not intended to be limiting.

Claims

1. A method for video processing, comprising: obtaining, for conversion between a current video block of a video and a bitstream of the video, first information related to whether to filter a prediction of a chroma component for the current video block, wherein the prediction for the chroma component is determined using a cross-component prediction (CCP) mode, and the first information depends on codec information associated with the current video block; and The converting is performed based on the first information. 2 . The method according to claim 1 , wherein the codec information includes the type of the CCP mode. 3 . The method of claim 2 , wherein if the CCP mode is multi-model based, the prediction for the chroma component is filtered.

4. The method according to any one of claims 2 to 3, wherein if the CCP mode is a convolutional cross-component model (CCCM) based mode, the prediction for the chroma component is filtered.

5. The method according to claim 4, wherein the CCCM-based mode comprises at least one of the following: CCCM mode, Gradient and Position-based Convolutional Cross-Component Model (GL-CCCM) mode, or CCCM mode without downsampling. 6 . The method according to claim 2 , wherein if the CCP mode is a CCCM mode without downsampling, the prediction for the chroma component is not filtered.

7. The method according to any one of claims 2 to 3, wherein if the CCP mode is GL-CCCM mode, the prediction for the chroma component is not filtered.

8. The method according to any one of claims 1 to 7, wherein the codec information includes the type of template used for the CCP mode.

9. The method according to any one of claims 1 to 8, wherein the codec information includes whether an extended template is used in the CCP mode.

10. The method of claim 9, wherein if the extended template is used in the CCP mode, the prediction for the chroma component is not allowed to be filtered. 11 . The method of claim 9 , wherein if the extended template is not used in the CCP mode, the prediction for the chroma component is not allowed to be filtered.

12. The method according to any one of claims 1 to 11, wherein whether the prediction for the chroma component is allowed to be filtered depends on a syntax element associated with a template used for the CCP mode. The method of claim 12 , wherein signaling of a prediction filter mode depends on the syntax element.

14. The method according to any one of claims 1 to 13, wherein the codec information comprises one of the following: The downsampling filter used for the CCP mode, Whether a specific downsampling filter mode is used, or Whether the multi-downsampling filter mode is used.

15. The method according to any one of claims 1 to 14, wherein at least one of the following depends on a syntax element associated with a type of downsampling filter used for the CCP mode: whether the prediction for the chroma component is allowed to be filtered, or Whether the first information is indicated in the bitstream.

16. The method according to any one of claims 1 to 14, wherein at least one of the following depends on an index of a downsampling filter used for the CCP mode: whether the prediction for the chroma component is allowed to be filtered, or Whether the first information is indicated in the bitstream.

17. The method according to any one of claims 1 to 14, wherein at least one of the following depends on a multi-downsampling filter mode: whether the prediction for the chroma component is allowed to be filtered, or Whether the first information is indicated in the bitstream.

18. The method according to any one of claims 1 to 17, wherein how the first information is indicated in the bitstream depends on the type of the CCP mode.

19. The method according to any one of claims 1 to 18, wherein whether the first information is indicated in the bitstream depends on whether the CCP mode is a CCCM mode without downsampling. 20 . The method of claim 19 , wherein if the CCP mode is the CCCM mode without downsampling, the first information is not indicated in the bitstream. The method according to claim 20 , wherein the first information is inferred that the prediction for the chroma component is not filtered.

22. The method according to any one of claims 1 to 18, wherein whether the first information is indicated in the bitstream depends on whether the CCP mode is a GL-CCCM mode.

23. The method of claim 22, wherein if the CCP mode is the GL-CCCM mode, the first information is not indicated in the bitstream. The method according to claim 23 , wherein the first information is inferred that the prediction for the chroma component is not filtered.

25. The method according to any one of claims 1 to 18, wherein whether the first information is indicated in the bitstream depends on whether the CCP mode is a gradient linear model (GLM) mode.

26. The method of claim 25, wherein if the CCP mode is the GLM mode, the first information is not indicated in the bitstream.

27. The method of claim 26, wherein the first information is inferred that the prediction for the chroma component is not filtered.

28. The method according to any one of claims 1 to 27, wherein the codec information comprises at least one of the following: The slice type of the current video block, or A partitioning scheme associated with the current video block.

29. The method of any one of claims 1 to 28, wherein how the prediction for the chroma component determined using the CCP mode is filtered depends on at least one of: The slice type of the current video block, or A partitioning scheme associated with the current video block.

30. The method according to any one of claims 28 to 29, wherein whether and / or how the prediction for the chroma component is filtered depends on one of: Whether the slice type of the current video block is an intra slice, or Whether the partitioning scheme is a dual-tree.

31. The method of any one of claims 28 to 29, wherein for an I slice, the prediction for the chroma component is allowed to be filtered.

32. The method according to any one of claims 28 to 29, wherein the prediction for the chroma component is allowed to be filtered for B slices and / or P slices.

33. The method of any one of claims 1 to 32, wherein the CCP mode comprises a CCCM using multiple downsampling filters (CCCM-MDF) mode, and the prediction for the chroma component determined using the CCCM-MDF mode is filtered based on a filtering scheme.

34. The method according to any one of claims 1 to 33, wherein the CCP mode comprises a CCCM-MDF mode, and the first information about whether to filter the prediction for the chroma component determined using the CCCM-MDF mode is indicated in the bitstream.

35. The method of claim 34, wherein a syntax element indicating the first information depends on whether MMLM_TL mode is used.

36. The method of claim 35, wherein the same syntax element is used to indicate at least one of: whether to filter the prediction for the chrominance component determined using the CCCM-MDF mode, or Whether to filter the prediction for the chroma component determined using another CCP mode.

37. The method of claim 36, wherein the another CCP mode comprises at least one of: Multiple Model Linear Model (MMLM) mode, CCCM mode, GL-CCCM mode, or CCCM mode without downsampling.

38. The method according to any one of claims 33 to 37, wherein predictions for the chroma components determined using all kinds of CCCM-MDF modes are allowed to be filtered based on the filtering scheme.

39. The method according to any one of claims 33 to 37, wherein a prediction for the chroma component determined using a specific CCCM-MDF mode is allowed to be filtered based on the filtering scheme.

40. The method according to any one of claims 1 to 39, wherein whether the first information is indicated in the bitstream depends on whether CCCM-MDF mode is used.

41. The method of claim 40, wherein if the CCCM-MDF mode is not used for the current video block, the first information is not indicated in the bitstream.

42. The method of any one of claims 1 to 41, wherein the prediction for the chrominance component determined using the CCCM-MDF mode is not filtered.

43. The method according to any one of claims 1 to 39, wherein whether the first information is indicated in the bitstream depends on whether a specific CCCM-MDF mode is used.

44. The method according to claims 1 to 43, wherein the extended template of the current video block includes left neighboring samples exceeding the vertical range of the current video block and top neighboring samples exceeding the horizontal range of the current video block, or wherein the extended template includes left neighboring samples exceeding the vertical range of the current video block, or The extended template includes upper neighboring samples exceeding the horizontal range of the current video block.

45. The method according to claim 44, wherein the extended template comprises a top left neighboring sample of the current video block, or The extended template does not include an upper left neighboring sample of the current video block.

46. ​​The method according to any one of claims 44 to 45, wherein the extended template is not allowed or is not used for at least one CCP mode.

47. The method of claim 46, wherein the at least one CCP mode comprises at least one of: CCLM mode, GLM model, GL-CCCM mode, There is CCCM mode with downsampling, CCCM mode without downsampling, or CCCM mode based on multiple downsampling filters.

48. The method of any one of claims 1 to 47, wherein a plurality of downsampling filters are used or enabled for the CCP mode.

49. The method of claim 48, wherein the CCP mode comprises a CCLM mode.

50. The method according to any one of claims 1 to 47, wherein whether to use the multi-downsampling filtering mode is indicated by a syntax element, or Whether to use the multi-downsampling filtering mode is determined based on the cost or codec information.

51. A method according to any one of claims 1 to 50, wherein at least one model for the CCP mode comprises more than one predetermined downsampling filter.

52. The method of any one of claims 1 to 51, wherein the first chroma component and the second chroma component of the current video block are encoded using the same codec scheme.

53. The method of any one of claims 1 to 52, wherein whether to apply the method and / or how to apply the method is indicated at one of: Sequence level, Picture group level, Picture level, stripe level, or Film group level.

54. The method according to any one of claims 1 to 52, wherein whether to apply the method and / or how to apply the method is indicated in one of the following: Sequence header, Picture header, Sequence Parameter Set (SPS), Video Parameter Set (VPS), Dependency Parameter Set (DPS), Decoding Capability Information (DCI), Picture Parameter Set (PPS), Adaptive Parameter Set (APS), Strip header, or Film group header.

55. A method according to any one of claims 1 to 52, wherein whether and / or how to apply the method is indicated at an area comprising more than one sample or pixel.

56. The method of claim 55, wherein the region comprises at least one of: Prediction Block (PB), Transform Block (TB), Codec Block (CB), Prediction Unit (PU), Transformation Unit (TU), Codec Unit (CU), Virtual Pipeline Data Unit (VPDU), Codec Tree Unit (CTU), CTU line, strips, piece, or Sub-picture.

57. The method according to any one of claims 1 to 56, wherein whether and / or how the method is applied depends on the information being encoded or decoded.

58. The method of claim 57, wherein the encoded information comprises at least one of the following: Block size, Color format, Single and double tree partitioning, Double tree partitioning, Color component, Strip type, or Image type.

59. The method of any one of claims 1 to 58, wherein the converting comprises encoding the current video block into the bitstream.

60. The method of any one of claims 1 to 58, wherein the converting comprises decoding the current video block from the bitstream.

61. An apparatus for video processing, comprising a processor and non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method of any one of claims 1 to 60.

62. A non-transitory computer-readable storage medium storing instructions, wherein the instructions cause a processor to execute the method according to any one of claims 1 to 60.

63. A non-transitory computer-readable recording medium storing a bitstream of a video generated by a method performed by a video processing device, wherein the method comprises: obtaining first information related to whether to filter a prediction of a chroma component for a current video block of the video, wherein the prediction for the chroma component is determined using a cross-component prediction (CCP) mode, and the first information depends on codec information associated with the current video block; as well as The bitstream is generated based on the first information.

64. A method for storing a bitstream of a video, comprising: obtaining first information related to whether to filter a prediction of a chroma component for a current video block of the video, wherein the prediction for the chroma component is determined using a cross-component prediction (CCP) mode, and the first information depends on codec information associated with the current video block; generating the bitstream based on the first information; as well as The bitstream is stored in a non-transitory computer-readable recording medium.