Method and device for video processing and medium

By employing a cross-component prediction model in video processing, utilizing the reference region and samples within the current block for transformation, and applying inter-frame CCP mode and sorted CCP candidates, the problem of insufficient encoding and decoding efficiency and performance in existing technologies is solved, achieving more efficient video data processing.

CN121925849APending Publication Date: 2026-04-24DOUYIN VISION CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
DOUYIN VISION CO LTD
Filing Date
2024-09-25
Publication Date
2026-04-24

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies have room for improvement in terms of encoding and decoding efficiency and performance, especially in the application of cross-component prediction models.

Method used

A cross-component prediction (CCP) model is adopted. By determining the sample points in the reference area or the sample points in the current block as input, the transformation is performed based on the CCP model. The inter-frame CCP mode is applied, and the CCP model candidates are sorted to improve the encoding and decoding efficiency and performance.

Benefits of technology

The application of the CCP model has significantly improved the encoding and decoding efficiency and performance of video processing, and optimized the conversion and storage process of video data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121925849A_ABST
    Figure CN121925849A_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 comprises: for a conversion between a current block of the video and a bitstream of the video, determining that an input of a cross-component prediction (CCP) model comprises at least one of: a sample within a reference region, or a sample within the current block; and performing the conversion based on the CCP model.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of this disclosure generally relate to video processing techniques, and more specifically, to the derivation of cross-component prediction (CCP) models for inter-frame and intra-frame chroma coding and decoding. Background Technology

[0002] Today, digital video capabilities are being applied to all aspects of people's lives. Various video compression technologies have been proposed for video encoding / decoding, such as MPEG-2, MPEG-4, ITU-TH.263, ITU-TH.264 / MPEG-4 Part 10 Advanced Video Codec (AVC), ITU-TH.265 High Efficiency Video Codec (HEVC) standard, and Multifunctional Video Codec (VVC) standard. However, the overall expectation is to further improve the encoding and decoding efficiency of video encoding and decoding technologies. Summary of the Invention

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

[0004] In a first aspect, a method for video processing is proposed. The method includes: for a conversion between a current block of video and the video bitstream, determining that the input to a cross-component prediction (CCP) model includes at least one of the following: samples within a reference region, or samples within the current block; and performing the conversion based on the CCP model. Compared to conventional solutions, the method according to the first aspect of this disclosure advantageously improves encoding / decoding efficiency and performance through the input of the CCP model.

[0005] In a second aspect, another method for video processing is proposed. This method includes: a conversion between a current block of video and a video bitstream; determining a CCP model for a template sample by accessing at least one sample within the current luma block, wherein the at least one sample to be accessed is padded with another value; and performing the conversion based on the CCP model. Compared to conventional solutions, the method according to the second aspect of this disclosure advantageously improves encoding / decoding efficiency and performance by accessing at least one sample within the current luma block.

[0006] In a third aspect, another method for video processing is proposed. This method includes: applying an inter-frame cross-component prediction (CCP) mode to the video blocks for conversion between video blocks and the video bitstream; and performing the conversion based on the inter-frame CCP model. Compared to conventional solutions, the method according to the third aspect of this disclosure advantageously improves encoding / decoding efficiency and performance by applying the inter-frame CCP mode.

[0007] In a fourth aspect, an alternative method for video processing is proposed. This method includes: for the conversion between the current block of the video and the video bitstream, sorting CCP model candidates based on rules; and performing the conversion based on the sorted CCP model candidates. Compared to conventional solutions, the method according to the fourth aspect of this disclosure advantageously improves encoding / decoding efficiency and performance by sorting the CCP model candidates.

[0008] In a fifth aspect, an apparatus for video processing is proposed. The apparatus includes a processor and a non-transitory memory having instructions stored thereon. When executed by the processor, the instructions cause the processor to perform a method according to the first, second, third, or fourth aspect of this disclosure.

[0009] In a sixth aspect, a non-transitory computer-readable storage medium is provided. This non-transitory computer-readable storage medium stores instructions that cause a processor to perform a method according to the first, second, third, or fourth aspect of this disclosure.

[0010] In a seventh aspect, another non-transitory computer-readable recording medium is proposed. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. The method includes: determining that the input to a cross-component prediction (CCP) model for a current block of the video includes at least one of the following: samples within a reference region, or samples within the current block of the video; and generating a bitstream based on the CCP model.

[0011] In the eighth aspect, a method for storing a bitstream of video is proposed. The method includes: determining that the input to a cross-component prediction (CCP) model for the current block of the video includes at least one of the following: samples within a reference region, or samples within the current block of the video; generating a bitstream based on the CCP model; and storing the bitstream in a non-transitory computer-readable recording medium.

[0012] In a ninth aspect, another non-transitory computer-readable recording medium is proposed. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. The method includes: determining a CCP model for template samples of the current block of video by accessing at least one sample within the current luma block, wherein the at least one sample to be accessed is filled with another value; and generating a bitstream based on the CCP model.

[0013] In a tenth aspect, a method for storing a bitstream of video is proposed. The method includes: determining a CCP model for template samples of the current block of video by accessing at least one sample within the current luma block, wherein the at least one sample to be accessed is filled with another value; generating a bitstream based on the CCP model; and storing the bitstream in a non-transitory computer-readable recording medium.

[0014] In the eleventh aspect, another non-transitory computer-readable recording medium is proposed. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. The method includes: applying an inter-frame cross-component prediction (CCP) mode to video blocks of the video; and generating a bitstream based on the inter-frame CCP model.

[0015] In the twelfth aspect, a method for storing video bitstreams is proposed. This method includes: applying an inter-frame cross-component prediction (CCP) mode to video blocks of the video; generating a bitstream based on the inter-frame CCP model; and storing the bitstream in a non-transitory computer-readable recording medium.

[0016] In the thirteenth aspect, another non-transitory computer-readable recording medium is proposed. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. The method includes: ranking CCP model candidates for video units of the video based on rules; and generating a bitstream based on the ranked CCP model candidates.

[0017] In the fourteenth aspect, a method for storing video bitstreams is proposed. The method includes: sorting CCP model candidates based on rules; generating a bitstream based on the sorted CCP model candidates; and storing the bitstream in a non-transitory computer-readable recording medium.

[0018] The present invention is provided to present, in a simplified form, the selection of concepts further described below in the detailed description. The present invention is not intended to identify key or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. Attached Figure Description

[0019] The above and other objects, features, and advantages of exemplary embodiments of the present disclosure will become more apparent from the following detailed description with reference to the accompanying drawings. In the exemplary embodiments of the present disclosure, the same reference numerals generally refer to the same components.

[0020] Figure 1 A block diagram illustrating an example video codec system according to some embodiments of the present disclosure is shown; Figure 2 A block diagram illustrating a first example video encoder according to some embodiments of the present disclosure is shown; Figure 3 A block diagram illustrating an example video decoder according to some embodiments of the present disclosure is shown; Figure 4A schematic diagram illustrating the effect of the slope adjustment parameter "u" is shown, where the left side is the model created using the current CCLM, and the right side is the updated model as proposed. Figure 5 The neighboring blocks (L, A, BL, AR, AL) used in the derivation of the general MPM list are shown. Figure 6 The neighbor reconstructed samples used for the DIMD chromaticity mode are shown; Figure 7 The intra-frame template matching search area used is shown; Figure 8 The use of the IntraTMP block vector for IBC blocks is shown; Figure 9A and Figure 9B The method for dividing angle patterns is shown; Figure 10 An expanded list of MRL candidates is shown; Figure 11 A schematic diagram of the template area is shown; Figure 12 The spatial portion of the convolution filter is shown; Figure 13 The reference region (and its padding) used to derive the filter coefficients is shown. Figure 14 Four Sobel-based gradient modes for GLM are shown; Figure 15 Candidates for the spatial GPM are shown; Figure 16 The GPM template is shown; Figure 17 GPM mixing is shown; Figure 18 The possible locations of the candidate regions are shown; Figure 19 The locations of adjacent airspace candidates are shown; Figure 20 The transformation selection process for directional planar modes is illustrated; Figure 21 The luminance block used to derive the direct block vector is shown; Figure 22 The diagram shows three types of reconstructed regions, comprising thirteen columns or rows of reconstructed pixels. Figure 23 The three types of filter shapes defined are shown, each with fifteen inputs and producing one output. Figures 24A-24C Examples of predictions for different positions within the current block are shown, where... Figure 24AAll inputs to EIP are reconstructed samples. Figure 24B Part of the input consists of reconstructed samples and part consists of predicted samples. Figure 24C All inputs to the EIP are prediction samples; Figure 25 The proposed method is shown on the decoder; Figure 26 The luminance samples L0, ..., L5 are shown relative to the chromaticity sample C; Figure 27 The reference area for BVG-CCCM is shown; Figure 28 The spatial portion of the convolution filter is shown; Figure 29 The location used for block vector derivation from the co-position brightness block is shown; Figure 30 An example of the current template and reference template involved in CCRM encoding and decoding for the current inter-frame block is shown; Figure 31 Examples of the current template and reference template involved in CCRM encoding and decoding for the current IBC block are shown; Figure 32 An example of CCP model calculation for template samples is shown, which requires access to sample values ​​in the current luma block; Figure 33 A flowchart of a method for video processing according to an embodiment of the present disclosure is shown; Figure 34 A flowchart of a method for video processing according to an embodiment of the present disclosure is shown; Figure 35 A flowchart of a method for video processing according to an embodiment of the present disclosure is shown; Figure 36 A flowchart of a method for video processing according to embodiments of the present disclosure is shown; and Figure 37 A block diagram of a computing device in which various embodiments of the present disclosure may be implemented is shown.

[0021] Throughout all the accompanying figures, the same or similar reference numerals generally refer to the same or similar elements. Detailed Implementation

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

[0023] 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 pertains.

[0024] The terms "an embodiment," "embodiment," "example embodiment," etc., used in this disclosure refer to embodiments that may include specific features, structures, or characteristics, but not every embodiment is required to include that specific feature, structure, or characteristic. Furthermore, these phrases do not necessarily refer to the same embodiment. Moreover, when a specific feature, structure, or characteristic is described in conjunction with an example embodiment, it is claimed that, whether explicitly described or not, such a feature, structure, or characteristic affecting its relation to other embodiments is within the knowledge of those skilled in the art.

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

[0026] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the exemplary embodiments. As used herein, the singular forms “a,” “an,” and “the” are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the terms “comprising,” “including,” “having,” “containing,” and / or “comprising” as used herein indicate the presence of the said features, elements, and / or components, but do not exclude the presence or addition of one or more other features, elements, components, and / or combinations thereof.

[0027] Example Environment Figure 1 This is a block diagram illustrating an example video encoding / decoding system 100 from which the techniques of this disclosure may be utilized. As shown, the video encoding / decoding system 100 may include a source device 110 and a destination device 120. The source device 110 may also be referred to as a video encoding device, and the destination device 120 may also be referred to as a video decoding device. In operation, the source device 110 may be configured to generate encoded video data, and the destination device 120 may be configured to decode the encoded video data generated by the source device 110. The source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.

[0028] Video source 112 may include sources such as video capture devices. Examples of video capture devices include, but are not limited to, interfaces for receiving video data from video content providers, computer graphics systems for generating video data, and / or combinations thereof.

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

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

[0031] The video encoder 114 and the video decoder 124 can operate according to video compression standards such as the High Efficiency Video Codec (HEVC) standard, the Multi-Functional Video Codec (VVC) standard, and other existing and / or future standards.

[0032] Figure 2 This is a block diagram illustrating an example of a video encoder 200 according to some embodiments of the present disclosure. The video encoder 200 may be... Figure 1 An example of a video encoder 114 in system 100 is shown.

[0033] The video encoder 200 can be configured to implement any or all of the technologies disclosed herein. Figure 2 In the example, the video encoder 200 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of the video encoder 200. In some examples, the processor can be configured to perform any or all of the techniques described in this disclosure.

[0034] In some embodiments, the video encoder 200 may include a segmentation unit 201, a prediction unit 202, a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213, and an entropy coding unit 214. The prediction unit 202 may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an intra-frame prediction unit 206.

[0035] In other examples, the video encoder 200 may include more, fewer, or different functional components. In one example, the prediction unit 202 may 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.

[0036] Furthermore, although some components (such as motion estimation unit 204 and motion compensation unit 205) can be integrated, for interpretable purposes, these components are... Figure 2 The examples are shown separately.

[0037] The segmentation unit 201 can segment an image into one or more video blocks. The video encoder 200 and the video decoder 300 can support various video block sizes.

[0038] The mode selection unit 203 can, for example, select one of several coding modes (intra-coding or inter-coding) based on the error result, and provide the resulting intra-coded or inter-coded block to the residual generation unit 207 to generate residual block data, and to the reconstruction unit 212 to reconstruct the coded block for use as a reference image. In some examples, the mode selection unit 203 can select an intra-inter-prediction joint prediction (CIIP) mode, in which prediction is based on inter-prediction signals and intra-prediction signals. In the case of inter-prediction, the mode selection unit 203 can also select a resolution for the block based on the motion vector (e.g., sub-pixel precision or integer pixel precision).

[0039] To perform inter-frame prediction on the 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 with the current video block. Motion compensation unit 205 can determine the predicted video block for the current video block based on the motion information and decoded samples of images from buffer 213 other than the image associated with the current video block.

[0040] Motion estimation unit 204 and motion compensation unit 205 can perform different operations on the current video block, for example, depending on whether the current video block is in an I-strip, P-strip, or B-strip. As used herein, an "I-strip" can refer to a portion of an image composed of macroblocks, all of which are based on macroblocks within the same image. Furthermore, as used herein, in some aspects, "P-strip" and "B-strip" can refer to portions of an image composed of macroblocks independent of macroblocks within the same image.

[0041] In some examples, motion estimation unit 204 can perform unidirectional prediction on the current video block, and can search reference images in list 0 or list 1 to find a reference video block for the current video block. Motion estimation unit 204 can then generate a reference index indicating the reference image containing the reference video block in list 0 or list 1, and a motion vector indicating the spatial displacement between the current video block and the reference video block. Motion estimation unit 204 can output the reference index, prediction direction indicator, and 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 of the current video block.

[0042] Alternatively, in other examples, motion estimation unit 204 can perform bidirectional prediction on the current video block. Motion estimation unit 204 can search reference images in list 0 to find a reference video block for the current video block, and can also search reference images in list 1 to find another reference video block for the current video block. Motion estimation unit 204 can then generate multiple reference indices and multiple motion vectors, the multiple reference indices indicating multiple reference images containing multiple reference video blocks in lists 0 and 1, and the 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 multiple motion vectors of 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 of the current video block.

[0043] In some examples, the motion estimation unit 204 can output a complete set of motion information for use in the decoder's decoding process. Alternatively, in some embodiments, the motion estimation unit 204 can reference the motion information of another video block to transmit the motion information of the current video block via a signal. For example, the motion estimation unit 204 can determine that the motion information of the current video block is sufficiently similar to the motion information of neighboring video blocks.

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

[0045] In another example, motion estimation unit 204 can identify another video block and motion vector difference (MVD) in the syntax structure associated with the current video block. The motion vector difference indicates the difference between the motion vector of the current video block and the motion vector of the indicated video block. 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.

[0046] As discussed above, the video encoder 200 can transmit motion vectors via signals 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 Pattern Signaling.

[0047] Intra-prediction unit 206 can perform intra-prediction on the current video block. When intra-prediction unit 206 performs intra-prediction on the current video block, it can generate prediction data for the current video block based on decoded samples from other video blocks in the same frame. The prediction data for the current video block can include the predicted video block and various syntax elements.

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

[0049] In other examples, such as in skip mode, residual data for the current video block may not exist, and residual generation unit 207 may not perform a subtraction operation.

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

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

[0052] The inverse quantization unit 210 and the inverse transform unit 211 can apply inverse quantization and inverse transform to the transform coefficient video block, respectively, to reconstruct the residual video block from the transform coefficient video block. The reconstruction unit 212 can add the reconstructed residual video block to the corresponding samples of one or more predicted 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.

[0053] After the video block is reconstructed by reconstruction unit 212, a loop filtering operation can be performed to reduce video block artifacts in the video block.

[0054] Entropy encoding unit 214 can receive data from other functional components of video encoder 200. When entropy encoding unit 214 receives data, it can perform one or more entropy encoding operations to generate entropy-encoded data and output a bitstream including the entropy-encoded data.

[0055] Figure 3 This is a block diagram illustrating an example of a video decoder 300 according to some embodiments of the present disclosure. The video decoder 300 may be... Figure 1 An example of video decoder 124 in system 100 is shown.

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

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

[0058] Entropy decoding unit 301 can retrieve the encoded bitstream. The encoded bitstream may 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 indices, and other motion information. Motion compensation unit 302 can determine such information, for example, by performing AMVP and Merge mode. AMVP is used, which involves deriving several most likely candidates based on data from neighboring PBs and reference pictures. Motion information typically includes horizontal motion vector displacement values ​​and vertical motion vector displacement values, one or two reference picture indices, and, in the case of a prediction region in a B-strip, an identifier of which reference picture list is associated with each index. As used herein, in some aspects, "Merge mode" may refer to deriving motion information from spatially or temporally neighboring blocks.

[0059] The motion compensation unit 302 can generate motion compensation blocks, possibly by performing interpolation based on an interpolation filter. Identifiers for interpolation filters used with sub-pixel precision can be included in the syntax elements.

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

[0061] Motion compensation unit 302 may use at least some of the syntax information to determine the size of the blocks used to encode the encoded video sequence (multiple frames) and / or (multiple stripes), segmentation information describing how each macroblock of the image of the encoded video sequence is segmented, a pattern indicating how each segment is encoded, one or more reference frames (and a list of reference frames) for each inter-frame coded block, and other information for decoding the encoded video sequence. As used herein, in some respects, a “strip” can refer to a data structure that can be decoded independently of other stripes of the same image in terms of entropy encoding / decoding, signal prediction, and residual signal reconstruction. A strip can be an entire image or a region of an image.

[0062] Intra-prediction unit 303 can use, for example, an intra-prediction mode received in the bitstream to form prediction blocks from spatially adjacent blocks. Dequantization unit 304 dequantizes (i.e., dequantizes) the quantized video block coefficients provided in the bitstream and decoded by entropy decoding unit 301. Inverse transform unit 305 applies an inverse transform.

[0063] The reconstruction unit 306 can obtain the decoded block, for example, by adding the residual block to the corresponding prediction block generated by the motion compensation unit 302 or the intra-frame prediction unit 303. If necessary, a deblocking filter can also be applied to filter the decoded block to remove block artifacts. The decoded video block is then stored in a buffer 307, which provides a reference block for subsequent motion compensation / intra-frame prediction and also generates decoded video for presentation on a display device.

[0064] Some exemplary embodiments of this disclosure will be described in detail below. It should be noted that section headings are used in this document for ease of understanding and not to limit the embodiments disclosed in a section to that section. Furthermore, although some embodiments are described with reference to multi-function video codecs or other specific video codecs, the disclosed techniques are also applicable to other video codec techniques. Furthermore, although some embodiments describe video encoding steps in detail, it should be understood that the corresponding decoding steps for decoding will be implemented by the decoder. Additionally, the term video processing includes video encoding or compression, video decoding or decompression, and video transcoding, in which video pixels are represented from one compression format to another or at different compression bitrates.

[0065] 1. Brief Overview This disclosure relates to video codec technology. Specifically, it concerns cross-component coding and decoding in image / video codecs. It can be applied to existing video codec standards such as HEVC, VVC, etc. It can also be applied to future video codec standards or video codecs.

[0066] 2 Introduction Video codec standards have primarily evolved through the development of well-known ITU-T and ISO / IEC standards. ITU-T developed the H.261 and H.263 standards, while ISO / IEC developed MPEG-1 and MPEG-4 Vision. The two organizations jointly developed the H.262 / MPEG-2 video standard, the H.264 / MPEG-4 Advanced Video Codec (AVC) standard, and the H.265 / HEVC standard. Starting with H.262, video codec standards are based on a hybrid video codec architecture, utilizing temporal prediction plus transform coding. To explore future video codec technologies beyond HEVC, the Joint Video Exploration Team (JVET) was established in 2015 by VCEG and MPEG. JVET meetings are held quarterly. The new video codec standard was officially named Multifunctional Video Codec (VVC) at the April 2018 JVET meeting, and the first version of the VVC Test Model (VTM) was also released at that time. The VVC working draft and the VTM test model are updated after each meeting. The VVC project achieved technical completion (FDIS) at a meeting in July 2020.

[0067] 2.1 Intra-frame prediction In intra-frame prediction, the minimum chroma intra-frame prediction unit (SCIPU) constraint in the VVC is removed. Additionally, the VPDU constraint used to reduce CCLM prediction latency is also removed.

[0068] 2.1.1 Multi-Model Learning (MMLM) The Cross-Component Linear Model (CCLM) included in VVC is extended by adding three multi-model LM (MMLM) modes. In each MMLM mode, neighboring samples are classified into two classes using a threshold that serves as the average of the luminance reconstruction neighboring samples. The linear model for each class is derived using the Least Mean Square (LMS) method. For the CCLM mode, the LMS method is also used to derive the linear model. Slope adjustment is applied to both the Cross-Component Linear Model (CCLM) and the multi-model LM predictions. The adjustment is to slope the linear function that maps luminance values ​​to chrominance values ​​relative to a center point determined by the average luminance values ​​of the reference samples.

[0069] 2.1.1.1 Slope Adjustment of CCLM CCLM uses a two-parameter model to map luminance values ​​to chrominance values. The slope parameter "a" and the bias parameter "b" define the mapping as follows: chromaVal = a * lumaVal + b.

[0070] The slope parameter "u" is adjusted via signal transmission to update the model in the following form: chromaVal = a' * lumaVal + b' in a' = a + u b' = b - u * y r .

[0071] By making this selection, the mapping function revolves around a value with brightness y. r The points are tilted or rotated. The average value of the reference brightness samples used in model creation is used as y. r This is to provide meaningful modifications to the model. The image below illustrates the process.

[0072] Figure 4 This diagram illustrates the effect of the slope adjustment parameter "u". Left side: Model created using the current CCLM. Right side: Updated model as proposed.

[0073] Implementation The slope adjustment parameter is provided as an integer between -4 and 4 (inclusive) and is transmitted via signal in the bitstream. The unit of the slope adjustment parameter is 1 / 8 of the chroma sample value per luminance sample value (for 10-bit content).

[0074] The adjustment can be used in CCLM models (“LM_CHROMA_IDX” and “MMLM_CHROMA_IDX”) that use both reference samples from the top and left sides of the block, but not in “one-sided” mode. This choice is based on a trade-off between encoding / decoding efficiency and complexity.

[0075] When slope adjustment is applied to a multi-mode CCLM model, both models can be adjusted, thus allowing a maximum of two slope updates to be transmitted for a single chroma block.

[0076] Encoder method The proposed encoder method performs a SATD-based search for the optimal slope update for Cr and a similar SATD-based search for Cb. If either results in 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 TU.

[0077] 2.1.2 Gradient PDPC In VVC, PDPC may not be applied in some scenarios due to the unavailability of secondary reference samples. In these cases, gradient-based PDPC (extended from the horizontal / vertical mode) is applied. The PDPC weights (wT / wL) and the nScale parameter used to determine the decay of the PDPC weights relative to the distance from the left / top boundary are set to the corresponding parameters in the horizontal / vertical mode, respectively. Bilinear interpolation is applied when the secondary reference sample is located at the fractional sample position.

[0078] 2.1.3 Secondary MPM A secondary MPM list was introduced. The existing primary MPM (PMPM) list consists of 6 entries, and the secondary MPM (SMPM) list includes 16 entries. First, a general MPM list with 22 entries is constructed. Then, the first 6 entries from this general MPM list are added to 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 following modes: intra-frame modes of the left (L), top (A), bottom left (BL), top right (AR), and top left (AL) neighboring blocks; directional modes with offsets added from the first two available directional modes of the neighboring blocks; and the default mode.

[0079] If the CU block is vertically oriented, the order of the neighboring blocks is A, L, BL, AR, AL; otherwise, the order is L, A, BL, AR, AL.

[0080] Figure 5 The neighboring blocks (L, A, BL, AR, AL) used in the derivation of the general MPM list are shown.

[0081] The PMPM flag is parsed first. If it is equal to 1, the PMPM index is parsed to determine which entry in the PMPM list is selected. Otherwise, the SPMPM flag is parsed to determine whether to parse the SMPM index or the remaining patterns.

[0082] 2.1.4 Reference Sample Interpolation and Smoothing for Intra-Frame Prediction The 4-tap cubic interpolation is replaced by a 6-tap cubic interpolation filter, used to derive the predicted samples from the reference samples.

[0083] For reference sample filtering, a 6-tap Gaussian filter is applied to larger blocks (W>= 32 and H>= 32), otherwise the existing VVC 4-tap Gaussian interpolation filter is applied. The extended intra-frame reference sample using a 4-tap interpolation filter instead of nearest-neighbor rounding is derived.

[0084] 2.1.5 Decoder-side Intra-Frame Mode Derivation (DIMD) When DIMD is applied, two intra-frame modes are derived from reconstructed neighboring samples, and these two predictions are combined with the planar mode predictions, where weights are derived from gradients. The division operation in weight derivation is performed using the same lookup table (LUT)-based integerization scheme used by CCLM. For example, division in direction calculation.

[0085] It is computed using 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 in DivSigTable= { 0, 7, 6, 5 ,5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}.

[0086] The derived intra-frame modes are included in the main list of most probable intra-frame modes (MPMs), so the DIMD process is performed before the MPM list is built. The main derived intra-frame modes of the DIMD block are stored with the block and used to build the MPM lists of neighboring blocks.

[0087] 2.1.5.1 DIMD Chroma Mode The DIMD chroma mode uses the DIMD derivation method to derive the chroma intra-prediction mode for the current block based on neighboring reconstructed Y, Cb, and Cr samples in the second nearest row and column. Specifically, the horizontal and vertical gradients are calculated for each co-located reconstructed luma sample, as well as the reconstructed Cb and Cr samples for the current chroma block, to construct the HoG. The intra-prediction mode with the largest histogram amplitude value is then used to perform chroma intra-prediction for the current chroma block.

[0088] Figure 6 The neighbor reconstructed samples used for the DIMD chromaticity mode are shown.

[0089] 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 transmitted via signaling to indicate whether the proposed DIMD chroma mode is applied.

[0090] 2.1.6 Fusion of Chroma Intra-Frame Prediction Modes The DM mode and the four default modes can be merged with the MMLM_LT mode, as shown below:

[0091] in These are predicted values ​​obtained by applying a non-LM model. These are predicted values ​​obtained by applying the MMLM_LT mode, and This is the final predicted value for the current chroma block. Two weights. and Determined by the intra-prediction mode of adjacent chroma blocks, and It is set to equal to 2. Specifically, when both the upper adjacent block and the left adjacent block are encoded and decoded using LM mode, { }={1, 3}; When both the upper adjacent block and the left adjacent block are encoded and decoded using non-LM mode, { }={3, 1}; otherwise, { }={2, 2}.

[0092] For syntax design, if a non-LM mode is selected, a flag is transmitted via signaling to indicate whether fusion is applied. This method applies only to I-stripes.

[0093] 2.1.7 Intra-frame template matching Intra-Template Matching Prediction (IntraTMP) is a special intra-prediction mode that copies the best prediction block from the reconstructed portion of the current frame, whose L-shaped template matches the current template. For a predefined search range, the encoder searches the reconstructed portion of the current frame for the template most similar to the current template, and uses the corresponding block as the prediction block. The encoder then transmits the use of this mode via signal transmission, and the same prediction operation is performed on the decoder side.

[0094] The prediction signal is obtained by comparing the L-shaped causal nearest neighbors of the current block with... Figure 7 It is generated by matching another block in a predefined search region, which consists of the following parts: R1: Current CTU R2: Top left CTU, R3: Above CTU, R4: Left CTU.

[0095] The sum of absolute differences (SAD) is used as the cost function.

[0096] Within each region, the decoder searches for the template with the minimum SAD relative to the current template, and the decoder uses its corresponding block as the prediction block.

[0097] 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 in" "" is a constant that controls the tradeoff between gain and complexity. In practice, " "Equals 5."

[0098] Figure 7 The intra-frame template matching search area used is shown.

[0099] To accelerate the template matching process, the search range of all search regions 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 accomplished by a second template matching search around the best match with a reduced range. The reduced range is defined as min(BlkW, BlkH) / 2.

[0100] For CUs with width and height dimensions less than or equal to 64, the intra-frame template matching tool is enabled. The maximum CU size for intra-frame template matching is configurable.

[0101] When DIMD is not used for the current CU, the intra-template matching prediction mode is transmitted at the CU level via a dedicated flag.

[0102] 2.1.7.1 Block Vector Candidates Derived for IntraTMP in IBC In this method, the block vector (BV) derived from IntraTMP (Intra-Temporal Matching Prediction) is used for Intra-Block Copy (IBC). The stored IntraTMP BVs of neighboring blocks, together with the IBC BVs, are used as spatial BV candidates in the construction of the IBC candidate list.

[0103] The IntraTMP block vector is stored in the IBC block vector cache, and the current IBC block can use both the IBC BV and the IntraTMP BV of neighboring blocks as BV candidates for the IBC BV candidate list, such as... Figure 8 As shown.

[0104] Figure 8 The use of the IntraTMP block vector for IBC blocks is shown.

[0105] IntraTMP block vectors are added to the IBC block vector candidate list as spatial domain candidates.

[0106] 2.1.8 Fusion for Template-Based Intra-Frame Mode Derivation (TIMD) For each intra-prediction mode in the MPM, the SATD between the predicted and reconstructed samples of the template is calculated. The two intra-prediction modes with the smallest SATD are selected as TIMD modes. These two TIMD modes are fused using weights after applying the PDPC procedure, and this weighted intra-prediction is used for encoding and decoding the current CU. Position-dependent intra-prediction combination (PDPC) is included in the derivation of the TIMD modes.

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

[0108] If the condition is true, fusion is applied; otherwise, only mode 1 is used.

[0109] The weights of the patterns are calculated from their SATD costs as follows: weight1 = costMode2 / (costMode1+ costMode2), weight2 = 1 - weight1.

[0110] Division operations are performed using the same lookup table (LUT)-based integerization scheme used by CCLM.

[0111] 2.1.9 Intra-frame prediction fusion This intra-frame prediction method derives the predicted sample as a weighted combination of multiple predicted values ​​generated from different reference rows. In this process, multiple intra-frame predicted values ​​are generated and then fused by a weighted average. The process of deriving the predicted values ​​to be used in the fusion process is described below: • For the intra-angle prediction mode in the single-mode case including TIMD and DIMD, the proposed method improves upon the representation as... Intra-prediction is derived by weighting the intra-prediction obtained from multiple reference rows, where It is an intra-frame prediction from the default reference line, and This is a prediction from the row above the default reference row. The weights are set to... and .

[0112] • For TIMD modes with hybrid patterns, Used in the first mode ( ),and Used in the second mode ( ).

[0113] • For DIMD patterns with mixing, the number of predicted values ​​selected for the weighted average is increased from 3 to 6.

[0114] When the intra-frame prediction mode has a non-integer slope (requiring reference sample interpolation) and the block size is greater than 16, the intra-frame prediction fusion method is applied to the luma block, used together with MRL, but not to the ISP-encoded block. In the method studied in subtest a, PDPC is applied to the intra-frame prediction mode using the reference line closest to the current block.

[0115] 2.1.10 Combination of CIIP with TIMD and TM Merge In CIIP mode, prediction samples are generated by weighting the inter-prediction signal using CIIP-TM Merge candidate prediction and the intra-prediction signal using the intra-prediction mode derived using TIMD. This method is only applied to codec blocks with an area of ​​1024 or less.

[0116] The TIMD derivation method was used to derive intra-prediction modes in CIIP. Specifically, the intra-prediction mode with the smallest SATD value in the TIMD mode list was selected and mapped to one of 67 regular intra-prediction modes.

[0117] Additionally, it is proposed that if the derived intra-prediction mode is an angle mode, the weights (wIntra, wInter) for the two tests should be modified. For near-horizontal mode (2 <= angle mode index < 34), the current block is vertically partitioned; for near-vertical mode (34 <= angle mode index <= 66), the current block is horizontally partitioned.

[0118] For different sub-blocks (wIntra, wInter) such as Figure 9A and Figure 9B As shown, Figure 9A and Figure 9B The method for dividing angle patterns is shown.

[0119] Table 1. Modified weights for angle mode

[0120] Using CIIP-TM, a CIIP-TM Merge candidate list is constructed for the CIIP-TM pattern. Merge candidates are refined through template matching. CIIP-TM Merge candidates are also reordered as regular Merge candidates using the ARMC method. The maximum number of CIIP-TM Merge candidates is 2.

[0121] 2.1.11 Extended Multi-Reference Row (MRL) List The MRL list in VVC is expanded to include more reference lines for intra-frame prediction. The expanded reference line list consists of line indices {1, 3, 5, 7, 12}. For Template-Based Intra-Frame Mode Derivation (TIMD), only the first two reference line candidates (i.e., {1, 3}), instead of the complete MRL candidate list, are used.

[0122] Figure 10 An expanded list of MRL candidates is shown.

[0123] 2.1.12 Template-based multi-reference row intra-frame prediction Template-based multi-reference line intra-prediction (TMRL) mode combines reference lines and prediction modes, and uses template matching to construct a list of candidate combinations. The indices of the candidate combination list are encoded / decoded to indicate which reference line and prediction mode to use when encoding / decoding the current block. Regular multi-reference line (MRL) for non-TIMD portions is replaced by TMRL mode.

[0124] The TMRL mode expands the reference line candidate list and the intra-prediction mode candidate list. The expanded reference line candidate list is {1, 3, 5, 7, 12}. The restriction on the top CTU line 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 that of MPM, except that planar modes are excluded from the intra-prediction mode candidate list, DC modes are added after the modes of the 5 neighboring PUs and the DIMD mode (if the DC mode is not included), and has a range from... arrive An angle mode with differential angle (compared to existing angle modes in the intra-prediction mode candidate list) has been added.

[0125] The TMRL candidates are constructed as follows. There are 5 x 10 = 50 combinations of extended reference lines and allowed intra-prediction modes for the block. Since the extended reference lines start from reference line 1, the region covered by reference line 0 is used for template matching. Between prediction (generated from the 50 combinations) and reconstruction, the template region is crossed (see...). Figure 11 The SAD cost of each combination is calculated. The 20 combinations with the lowest SAD cost, ordered in ascending order, are selected to form the TMRL candidate list.

[0126] Figure 11 A schematic diagram of the template area is shown.

[0127] For TMR signaling, instead of directly encoding and decoding the reference line and intra-frame mode, the index of the TMRL candidate list is encoded and decoded to indicate which combination of reference line and prediction mode is used to encode and decode the current block.

[0128] 2.1.13 Convolutional Cross-Component Intra-Frame Prediction Model In this method, a convolutional cross-component model (CCCM) is applied to predict chroma samples from reconstructed luminance samples, in a manner similar to that done by the current CCLM model. As with CCLM, when chroma downsampling is used, the reconstructed luminance samples are downsampled to match a lower-resolution chroma grid. Similar to CCLM, top, left, or top and left reference samples are used as templates for model derivation.

[0129] In addition, similar to CCLM, there are options for single-model or multi-model variants using CCCM. The multi-model variant uses two models: one derived for samples above the average luminance reference value, and the other derived for the remaining samples (following the spirit of the CCLM design). The multi-model CCCM mode can be selected for PUs with at least 128 available reference samples.

[0130] 2.1.13.1 Convolution Filter The convolutional 7-tap filter consists of a 5-tap plus-shaped spatial component, a nonlinear term, and a bias term. The input of the 5-tap spatial component of the filter consists of the center (C) luminance sample that is in the same position as the chrominance sample to be predicted, and its upper / north (N), lower / south (S), left / west (W), and right / east (E) neighbors, as shown below.

[0131] Figure 12 The spatial portion of the convolution filter is shown.

[0132] The nonlinear term P is expressed as the square of the center luminance sample C and scaled to the range of sample values ​​for the content: P = ( C*C + midVal ) >> bitDepth.

[0133] That is, for 10 bits of content, P is calculated as: P = (C*C + 512)>>10.

[0134] The bias term B represents the scalar offset between the input and output (similar to the offset term in CCLM) and is set to an intermediate chroma value (512 for 10-bit content).

[0135] The output of the filter is calculated as the filter coefficients c. i The convolution with the input values ​​is then limited to the range of valid chromaticity samples: predChromaVal = c0C + c1N + c2S + c3E + c4W + c5P + c6B.

[0136] 2.1.13.2 Calculation of Filter Coefficients Filter coefficients c i It is calculated by minimizing the MSE between the predicted chromaticity samples and the reconstructed chromaticity samples in the reference region. Figure 13 The reference region is shown, consisting of six rows of chroma samples above and to the left of the PU. The reference region extends one PU width to the right of the PU boundary and one PU height below the PU boundary. The region is adjusted to include only available samples. The extension of the region shown in blue is necessary to support the "side samples" of the plus-shaped spatial filter and is filled in unavailable areas.

[0137] Figure 13 The reference region (and its filling) used to derive the filter coefficients is shown.

[0138] MSE minimization is performed by calculating the autocorrelation matrix for the luma input and the cross-correlation vector between the luma input and the chromaticity output. The autocorrelation matrix is ​​decomposed using LDL, and the final filter coefficients are calculated using inverse substitution. This process roughly follows the calculation of ALF filter coefficients in ECM; however, LDL decomposition is chosen instead of Cholesky decomposition to avoid the use of square root operations.

[0139] The autocorrelation matrix is ​​calculated using reconstructed values ​​of luma and chroma samples. These samples are full-range (e.g., 0 to 1023 for 10-bit content), resulting in relatively large values ​​in the autocorrelation matrix. This necessitates high-bit-depth operations during model parameter computation. A proposed method is to remove a fixed offset from the luma and chroma samples in each PU for each model. This reduces the magnitude of the values ​​used in model creation and allows for a reduction in the precision required for fixed-point arithmetic. Consequently, a method using 16-bit decimal precision is proposed instead of the 22-bit precision of the original CCCM implementation.

[0140] 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 model creation and final prediction (i.e., the luminance and chromaticity in the reference region, and the luminance 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) Furthermore, the chromaticity values ​​are predicted using the following equation, where offsetChroma equals offsetCr for the Cr component and offsetCb for the Cb component: predChromaVal = c0C' + c1N' + c2S' + c3E' + c4W' + c5P' + c6B + offsetChroma.

[0141] To avoid any additional sample-level operations, the luminance offset is removed during luminance reference sample interpolation. For example, this can be achieved by replacing the rounding term used in luminance reference sample interpolation with an updated offset that includes both the rounding term and offsetLuma. The chrominance offset can be removed by directly subtracting the chrominance offset from the reference chrominance samples. Alternatively, the effect of the chrominance offset can be removed from the cross-component vectors, yielding the same result. To add the chrominance offset back to the output of the convolution prediction operation, the chrominance offset is added to the bias term of the convolution model.

[0142] The calculation of CCCM model parameters requires division operations. Division operations are not always considered implementation-friendly. Division operations are replaced by multiplication (using scaling factors) and shift operations, where the scaling factor and the number of shifts are calculated based on the denominator, similar to the method used in calculating CCLM parameters.

[0143] 2.1.13.3 Gradient Linear Model For the YUV 4:2:0 color format, the Gradient Linear Model (GLM) method can be used to predict chromaticity samples from the luminance sample gradient. Two modes are supported: two-parameter GLM mode and three-parameter GLM mode.

[0144] Compared to CCLM, two-parameter GLM uses the gradient of luminance samples to derive a linear model, rather than downsampled luminance values. Specifically, when two-parameter GLM is applied, the input to the CCLM process (i.e., downsampled luminance samples) is... Gradient of brightness sample points Replacement. Other parts of CCLM (e.g., parameter derivation, linear transformation of prediction samples) remain unchanged.

[0145]

[0146] In a three-parameter GLM, chromaticity samples can be predicted based on both the gradient of luminance samples with different parameters and the downsampled luminance values. The model parameters of the three-parameter GLM are derived from neighboring samples in 6 rows and columns using an MSE minimization method based on LDL decomposition, similar to that used in CCCM.

[0147]

[0148] For signaling, when CCLM mode is enabled for the current CU, a flag is transmitted via signaling to indicate whether GLM is enabled for both Cb and Cr components; if GLM is enabled, another flag is transmitted via signaling to indicate which of the two GLM modes is selected, and a syntax element is further transmitted via signaling to select one of the four gradient filters for gradient calculation.

[0149] • Enable four gradient filters for GLM, such as Figure 14 As shown, Figure 14 Four Sobel-based gradient modes for GLM are shown.

[0150] 2.1.13.4 Bitstream Signaling The use of this mode utilizes PU-level flags encoded and decoded by CABAC for signal transmission. A new CABAC context is included to support this. When signaling is involved, CCCM is considered a sub-mode of CCLM. That is, the CCCM flag is only transmitted for signal transmission when the intra-frame prediction mode is LM_CHROMA.

[0151] 2.1.14 Spatial Geometric Partitioning Model (SGPM) SGPM is an intra-frame mode similar to GPM in its inter-frame coding / decoding tools, where two prediction components are generated from the intra-frame prediction process. In this mode, a candidate list is constructed, where each entry contains a segmentation partition and two intra-frame prediction modes, such as... Figure 15 As shown, 26 segmentation modes and 3 intra-frame prediction modes were used to form a combination. The length of the candidate list was set to 16. The selected candidate indices were transmitted via signaling.

[0152] Figure 15 The candidates for the spatial GPM are shown.

[0153] List using templates ( Figure 16The templates are reordered, with the SAD between the template's prediction and reconstruction used for sorting. The template size is fixed at 1.

[0154] Figure 16 The GPM template is shown.

[0155] For each segmentation pattern, the IPM list is derived for each segment using the same intra-inter-frame GPM list derivation. The IPM list size is set to 3. In the list, the TIMD-derived pattern is replaced by two derived patterns, one for the horizontal direction and one for the vertical direction.

[0156] The SGPM pattern is applied with limited block sizes: 4 <= width <= 64, 4 <= height <= 64, width < height * 8, height < width * 8, width * height >= 32.

[0157] Adaptive blending has also been used in spatial GPM, where Figure 17 The mixing depth τ shown is derived as follows: • If min(width, height) == 4, then 1 / 2τ is selected. • Otherwise, if min(width, height) == 8, then τ is selected. • Otherwise, if min(width, height) == 16, then 2τ is selected. • Otherwise, if min(width, height) == 32, then 4τ is selected. • Otherwise, 8τ is selected.

[0158] Figure 17 GPM mixing is shown.

[0159] 2.1.15 Nonlocal cross-component prediction Cross-component prediction (CCP), including CCLM, CCCM, and their variants, is employed by ECM to leverage cross-component correlations. With CCLM or CCCM, training samples are always adjacent to the current block. However, the cross-component relationships of the current block can be more relevant to cross-component relationships in non-local regions.

[0160] Nonlocal cross-component prediction methods have been proposed to improve CCP by gaining more advantages from nonlocal regions.

[0161] Method #1: A Non-Adjacent Cross-Component Prediction (NA-CCP) model is proposed. Using the NA-CCP model, samples from regions that are not adjacent to the current block can be used to derive the CCCM model for the current block. A list of six candidate regions is constructed by sequentially examining potential 8×8 regions. If an examined region is available, it is added to the candidate region list. The top-left position of the potential 8×8 region is predefined 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) and yStep = Max(height, 16). Figure 18 Some possible locations of the candidate regions are shown.

[0162] A flag is transmitted via signaling to indicate whether NA-CCP is applied to the chroma block. If NA-CCP is applied, an index is transmitted via signaling to indicate which candidate in the candidate region list was used to derive the CCCM model.

[0163] Method #2: A history-based cross-component prediction (H-CCP) model is proposed. Using H-CCP, similar to the HMVP table, H-CCLM table, and H-CCCM table are maintained. After decoding a block encoded using CCLM or CCCM, the corresponding table is updated. In the H-CCP implementation, the size of the H-CCLM table or H-CCCM table is 6. If the current block is encoded using 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 from the H-CCLM table or H-CCCM table is selected.

[0164] 2.1.16 Cross-component Merge Mode for Chroma Intra-Frame Coding / Decoding Cross-component prediction (CCP) using methods including Cross-component Linear Model (CCLM), Convolutional Cross-component Model (CCCM), and Gradient Linear Model (GLM) is employed by ECM to leverage cross-component correlations. The Cross-component Merge (CCMerge) mode is proposed as a new CCP mode. The cross-component model parameters of the current chroma block encoded using CCMerge can be inherited from neighboring blocks encoded using CCP. Through CCMerge, CCP can be more efficient and has less signaling overhead.

[0165] In CCMerge, the final cross-component model parameters for the current chroma block can be inherited from its spatially adjacent and non-adjacent neighbors or the default model. A list is created that includes CCP models from spatially adjacent and non-adjacent neighbors encoded and decoded in CCLM, MMLM, CCCM, GLM, chroma blending, and CCMerge modes. After including neighboring CCP models, the default model is further included to fill any remaining empty positions in the list. To avoid including redundant CCP models in the list, a deduplication operation is applied. More details are described below.

[0166] Figure 19 The locations of adjacent airspace candidates are shown.

[0167] • Neighboring candidates with adjacent airspace The positions of adjacent candidates in the airspace are as follows Figure 19 As shown, the airspace candidates are included in the following order: B1 -> A1 -> B0 -> A0 -> B2.

[0168] • Neighboring candidates whose airspace is not adjacent After all spatially adjacent nearest neighbors have been checked, spatially non-adjacent neighbor candidates are considered. In the current ECM design, two sets of spatially non-adjacent neighbor candidates are obtained in inter-frame merge mode. In the proposed method, the positions and inclusion order of the spatially non-adjacent neighbor candidates from the first set are used.

[0169] • CCLM candidates with default scaling parameters After including spatially adjacent and non-adjacent candidates, if the list is not full, CCLM candidates with default scaling parameters are considered. The default scaling parameters are {0, 1 / 8, -1 / 8, 2 / 8, -2 / 8, 3 / 8}, and the offset parameters are derived based on the selected default scaling parameters, the average neighbor reconstructed luminance sample value (Yavg), and the average neighbor reconstructed Cb / Cr sample value (Cavg).

[0170] 2.1.16.1 Candidate Merging Models When merging CCLM candidates, only the scaling parameter is inherited. The offset parameter is derived using the inherited scaling parameter, Yavg, and Cavg.

[0171] When merging MMLM candidates, the scaling parameter and classification threshold are inherited. The offset parameter in each class is derived based on the inherited classification threshold and the Yavg and Cavg in each class. If no neighboring reconstructed samples are available in a class, the offset parameter is directly inherited from the candidate.

[0172] When merging CCCM candidates, all convolutional parameters, offsets (i.e., offsetLuma, offsetCb, and offsetCr), and classification thresholds are inherited.

[0173] When merging GLM candidates, if the GLM candidate is a 3-parameter GLM mode, all gradient mode indices and 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.

[0174] When merging chroma blending candidates, the derived MMLM parameters are inherited and used as the merging MMLM candidates.

[0175] For a CCMerge block, if its Merge candidate mode is CCLM, MMLM, CCCM, or GLM, the Merge candidate mode is stored as the propagation mode of the current chroma block; otherwise, if its Merge candidate mode is chroma blending, the propagation mode is set to MMLM. How CCP parameters are inherited or derived when merging CCMerge candidates depends on the propagation mode of the CCMerge candidate, as described in the five paragraphs above.

[0176] 2.1.16.2 Signaling Following the `cclm_mode_flag` syntax element, an additional flag is signaled indicating whether CCMerge is used. If CCMerge is used, candidate indices are additionally signaled. The signaled candidate indices are shared for the Cb / Cr color components. Currently, the maximum allowed number of candidates is set to the default value of 6. If the maximum allowed number of candidates is modified to 1, candidate indices do not need to be signaled. Each bit of the candidate index is context-encoded using a separate context.

[0177] 2.1.17 Plane Mode with Direction Two additional planar modes are used, where either horizontal interpolation only or vertical interpolation only is used to obtain the predicted samples.

[0178] For the horizontal planar pattern, horizontal linear interpolation is performed only based on the left and upper right reference samples to predict the current sample:

[0179] For the planar vertical mode, vertical linear interpolation is performed only based on the upper reference sample and the lower left reference sample to predict the current sample:

[0180] Transform kernel selection for horizontal and vertical planar modes, as follows: Figure 20 As shown. If the intra-prediction mode of the current block is planar vertical mode, then the horizontal intra-prediction mode is used to derive the transform kernels in the MTS set and LFNST set. Furthermore, if the intra-prediction mode of the current block is planar horizontal mode, then the vertical intra-prediction mode is used to derive the transform kernels in the MTS set and LFNST set.

[0181] Figure 20 The transformation selection process for directional planar modes is shown.

[0182] 2.1.18 Direct block vectors for chroma blocks Direct block vectors are used for chroma blocks in a dual-tree stripe. When the chroma dual-tree is activated, a flag is transmitted via signaling to indicate whether the chroma blocks are encoded or decoded using IBC mode. Figure 21 If one of the luma blocks in the five locations shown is encoded or decoded using IBC or intraTMP mode, its block vector is scaled and used as the block vector for the chroma block. Template matching is used to perform the block vector scaling.

[0183] Figure 21 The luminance block used to derive the direct block vector is shown.

[0184] 2.1.19 Intra-frame prediction mode based on extrapolation filter (EFI mode) The proposed intra-frame prediction based on extrapolation filters is processed in two steps. First, using a predetermined template, the extrapolation filter coefficients are obtained from the neighboring reconstructed pixels of the current block. Second, extrapolation generates predicted values ​​position by position within the current block, from the top left to the bottom right.

[0185] 2.1.19.1 Searching for the mean, minimum, and maximum values Similar to CCCM mode, the mean should be removed when the input is fed to the EIP filter. The DC mode value for the current block is used as the mean for the EIP prediction. The minimum and maximum values ​​are searched from the reconstructed pixels in the reconstructed region with thirteen columns and thirteen rows.

[0186] 2.1.19.2 Calculation of Filter Coefficients Three types of reconstruction regions and three filter shapes are proposed, such as Figure 22 As shown. Figure 22 The diagram illustrates the three types of reconstructed regions defined, comprising thirteen columns or rows of reconstructed pixels. When the current block is predicted using the proposed EIP pattern, the decoder decodes the relevant syntax elements to determine the selected type of reconstructed region and filter shape for the current block.

[0187] Figure 23 The diagram illustrates three types of filter shapes with fifteen inputs and one output.

[0188] The selected filter slides across the selected reconstruction region in a one-pixel step to collect input and output samples for the EIP. The autocorrelation matrix and cross-correlation vector are constructed while the mean is removed from the input and output samples. The EIP coefficients are then obtained using the same method as in CCCM.

[0189] 2.1.19.3 Prediction of the current block EIP mode predicts the current block position by position, such as Figures 24A to 24C As shown.

[0190] For a position located at the top left of the current block, the input to the EIP filter is the reconstructed sample.

[0191] For locations along the boundary of the current block, part of the input to the EIP filter is the reference sample, and part of the input to the EIP filter is the previously predicted sample.

[0192] For other locations in the current block, the input to the EIP filter is the previously predicted samples.

[0193] Figures 24A-24C Examples of predictions for different positions within the current block are shown. Figure 24A In this process, all inputs to EIP are reconstructed samples. Figure 24B In this process, part of the input consists of reconstructed sample points, and part consists of predicted sample points. Figure 24C In this context, all inputs to EIP are prediction samples.

[0194] To reduce prediction error, the searched minimum and maximum values ​​are applied to limit the output range of each predicted value.

[0195] It is the predicted value at (x, y) in the current block. These are the minimum and maximum values ​​searched from the thirteen reconstructed columns and rows. It is the first EIP filter derived. i One coefficient, These are the reconstructed or predicted values ​​used for predictions at the current location. It is a value calculated using the DC prediction model.

[0196] 2.2 Cross-component residual model (CCRM) for inter-frame prediction (also known as interCCCM) A cross-component residual model (CCRM) is proposed to predict chrominance samples from reconstructed luminance samples when using inter-frame prediction or intra-block copy (IBC) for blocks. Figure 25 The decoder side of the method is shown. The cross-component filter is derived using the prediction blocks for both luma and chroma. The derived filter is applied to reconstruct the luma block and mixed with the prediction block for chroma to produce the final chroma prediction block. During the mixing process, the filtered reconstructed luma block uses a mixing weight of 0.75, and the chroma prediction block uses a mixing weight of 0.25.

[0197] Figure 25 The proposed method on the decoder is shown.

[0198] 2.2.1 Calculation of Convolution Filter and Filter Coefficients The proposed 8-tap filter consists of 6 spatial brightness samples, a nonlinear term, and a bias term. For example... Figure 26 As shown, the spatial luminance samples (L0, ..., L5) are obtained from the luminance grid. The six luminance samples closest to the chromaticity position C are selected without downsampling. The predicted chromaticity value is obtained as follows: predChromaVal = c0L0+ c1L1 + c2L2 + c3L3 + c4L4 + c5L5 + c6nonlinear((L0+L3+1)>>1) + c7B, Where non-linearity is the non-linear operator of CCCM, and B is the bias.

[0199] Figure 26 The luminance samples L0, ..., L5 are shown relative to the chromaticity sample C.

[0200] The filter coefficients are derived using the division-free Gaussian elimination method of ECM, and the necessary offset is applied to the samples before the filter derivation.

[0201] For the derivation of filter coefficients, a maximum of 256 chromaticity samples are used.

[0202] The offset of the ECM's division-free Gaussian elimination method (used to solve the CCRM filter coefficients) is obtained by averaging four points of the luminance and chrominance prediction blocks, where the four points correspond to the top left, top right, bottom left, and bottom right of the block.

[0203] 2.2.2 Bitstream Signaling The use of this mode utilizes the TU level flags encoded in CABAC and transmitted via signaling. A new CABAC context is included to support this. The CCRM flags are transmitted via signaling only when the TU's luminance Cbf is not zero and the CU's predMode is MODE_INTER or MODE_IBC.

[0204] 2.2.3 Encoder Operation When the luminance Cbf is not zero and the predMode of the CU is MODE_INTER or MODE_IBC, the encoder performs RD decisions in the transform selection loop for the chrominance component.

[0205] 2.3 Block Vector Guided CCCM The Block Vector Guided CCCM (BVG-CCCM) method uses the block vectors of co-occurring luma blocks encoded in IBC or intraTMP mode to determine the reference region used to calculate CCCM parameters. The reference region in the luma and the corresponding region in the chroma channel are then used to calculate the CCCM parameters. CCCM prediction is performed using the calculated model parameters and co-occurring luma samples. Figure 27 The reference region in the BVG-CCCM method is shown.

[0206] This mode is enabled only in intra-frame stripes. Additionally, an SPS level flag is introduced to enable or disable this mode.

[0207] The BVG-CCCM mode uses an 11-tap filter for cross-component prediction, as shown below: predChromaVal = c0C + c1N + c2S + c3E + c4W + c5P(C) + c6P(N) + c7P(S) +c8P(W) + c9P(E)+ c 10 B.

[0208] like Figure 28 As shown, the input of the spatial domain 5-tap component of the filter consists of the center (C) luminance sample that is in the same position as the chrominance sample to be predicted, and its upper / north (N), lower / south (S), left / west (W), and right / east (E) neighbors.

[0209] The nonlinear term P is represented as the square of the corresponding brightness sample, and B is the bias term.

[0210] Figure 27 The reference area for BVG-CCCM is shown.

[0211] Figure 28 The spatial portion of the convolution filter is shown.

[0212] Similar to the Direct Block Vector (DBV) mode in ECM-9.0, such as Figure 29 As shown, five locations within the same brightness block region were scanned, and the associated block vectors were subsequently used to determine the reference region for parameter calculation in the BVG-CCCM method.

[0213] This mode can use block vectors from both IBC-encoded blocks and intraTMP-encoded blocks from the same brightness region.

[0214] Figure 29 The location used for block vector derivation from the co-position brightness block is shown.

[0215] 2.3.1 Bitstream Signaling The use of this mode utilizes PU-level flags encoded and decoded by CABAC, which are transmitted via signaling. If the co-occurrence block is encoded and decoded in IBC or intraTMP mode, and the cross-component index is LM_CHROMA_IDX or MMLM_CHROMA_IDX, then the BVG-CCCM flag is transmitted via signaling.

[0216] 2.3.2 Encoder Operation The encoder performs two additional RDs for single-model and multi-model CCCM variants for BVG-CCCM.

[0217] 2.4 Cross-component model for residual encoding and decoding in image and video encoding and decoding 2.4.1 Issues related to cross-component models for residual encoding and decoding There are several problems with existing video encoding and decoding technologies, and these problems will be further improved in order to achieve higher encoding and decoding gains.

[0218] 1. Several aspects of the video unit encoded and decoded by CCRM, such as filter terms, model type, and application block type, can be further improved.

[0219] 2. The CCRM-estimated predictions will compete with the original inter-frame predictions. Ultimately, the residual with the lower cost is chosen. However, the concept of fusion can be involved to achieve better results.

[0220] 3. CCRM is applied to inter-blocks as long as the luminance component has a non-zero CBF. CCRM on / off decisions can be further designed.

[0221] 4. Currently, the CCRM model is applied using luminance reconstruction as input and estimated chromaticity prediction as output. However, the estimated chromaticity prediction can be generated by adding the residual block of the CCRM estimate to the chromaticity prediction without CCRM.

[0222] 2.4.2 Related Solutions The specific embodiments described below should be considered as examples for explaining general concepts. These embodiments should not be interpreted in a narrow sense. Furthermore, these embodiments can be combined in any way.

[0223] The term "video unit" or "code-decoder unit" can refer to a picture, strip, slice, code-decoder tree block (CTB), code-decoder tree unit (CTU), code-decoder block (CB), CU, PU, ​​TU, PB, TB.

[0224] The term "block" can refer to code-decode tree block (CTB), code-decode tree unit (CTU), code-decode block (CB), CU, PU, ​​TU, PB, and TB.

[0225] The terms "motion vector" or "block vector" can refer to the vector of horizontal and vertical displacements between the position of a reference block and the position of the current block. The reference block can be a video unit in a reference image within the RPL list. Alternatively, the reference block can be a video unit in the current image.

[0226] The term "LM" can refer to any linear regression-based method, such as CCLM, MMLM, CCCM, GL-CCCM, CCCM without downsampling, GLM, GLM with luminance values, etc. It can also be referred to as "Cross-Component Prediction (CCP)". CCP models can be used for intra-frame prediction, IBC prediction, or inter-frame prediction.

[0227] 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 single-model CCCM without subsampling, a single-model GLM, a single-model GLM with luminance values, a multi-model CCLM, a MMLM, a multi-model CCCM, a multi-model GL-CCCM, a multi-model CCCM without subsampling, a multi-model GLM, a multi-model GLM with luminance values, etc.

[0228] The term "MMLM" can refer to a multi-model LM mode, which can be multi-model CCLM, MMLM, multi-model CCCM, multi-model GL-CCCM, multi-model CCCM without downsampling, multi-model GLM, multi-model GLM with luminance values, etc.

[0229] The term "MFLM" can refer to a multi-filter LM mode, which can be MF-CCLM, MF-CCCM, MF-GLM, MF-CCRM, MF-CCCM for inter-frame, multi-filter IBC filter, multi-filter intraTMP filter and / or variants of the mentioned mode, etc.

[0230] The term "CCCM" can refer to regular CCCM mode, GL-CCCM mode, CCCM without downsampling, CCRM, etc.

[0231] The term "GL-CCCM" can refer to a CCCM mode that takes into account the gradient and location of the samples involved.

[0232] The term "CCCM without downsampling" can refer to a CCCM mode that takes into account unsampled luminance samples.

[0233] The term "CCRM" can refer to residual encoding / decoding or derivation based on cross-component models. It can also refer to inter-frame / IBC prediction based on CCCM models (such as inter-frame / IBC CCCM). It can also refer to intra-frame prediction based on CCCM models (such as intra-frame CCCM). It can refer to the generation and application of cross-component models (such as luma-to-chroma prediction). It can also refer to the generation and application of models within the same component (such as luma-to-luma prediction).

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

[0235] It should be noted that the terms mentioned below are not limited to the specific terms defined in existing standards. Any changes to encoding / decoding tools also apply.

[0236] 1) The residuals (and / or predictions) of chroma blocks can be derived based on cross-component models.

[0237] a. For example, the cross-component model can be a specific extrapolation filter (e.g., EIP, etc.).

[0238] b. For example, the cross-component model can be a specific interpolation filter (e.g., GLM, etc.).

[0239] c. For example, the cross-component model can be a specific convolutional filter (CCCM, GL-CCCM, CCCM without downsampling, CCRM, inter-frame CCCM, intra-frame CCCM, etc.).

[0240] d. For example, the cross-component model can be a specific linear filter (e.g., CCLM, MMLM, etc.).

[0241] 2) Cross-component models for residual coding and decoding (e.g., CCRM) may not include nonlinear terms.

[0242] a. For example, a cross-component model for residual encoding and decoding may include linear terms and / or bias terms, but not nonlinear terms.

[0243] 3) CCRM can be used for intra-frame blocks or IBC blocks.

[0244] a. For example, it can be used for intra-frame blocks or IBC blocks in intra-frame (such as I) stripes.

[0245] b. For example, it can be used for intra-frame blocks or IBC blocks in inter-frame (such as B or P) stripes.

[0246] c. For example, it can also be used for single trees.

[0247] d. For example, it can also be used for two trees.

[0248] e. For example, in a single-tree I-strip, both luminance and chrominance are encoded and decoded in IBC (or intraTMP). Based on the reconstructed luminance and chrominance samples within a reference block retrieved / guided by block vectors, CCRM can be generated, and a residual model is applied to estimate the reconstructed values ​​of the chrominance samples in the current block.

[0249] f. For example, in a dual-tree system, luminance is encoded and decoded in IBC (or intraTMP), while chrominance is encoded and decoded intra-frame. Based on the reconstructed luminance samples within a reference luminance block retrieved / guided by block vectors and the reconstructed chrominance samples co-located (e.g., at the same position) within that luminance block, a CCRM can be generated, and a residual model is applied to estimate the reconstructed values ​​of the chrominance samples in the current block.

[0250] 4) CCRM can be used for chroma blocks encoded and decoded by DBV.

[0251] a. For example, a reference chroma block and its corresponding luma block can be identified based on the block vector of the chroma block encoded and decoded by DBV. These samples can be used as training samples for computation of the CCRM model.

[0252] b. For example, the derived CCRM model is applied to the reconstructed luminance signal of the DBV chromaticity block to produce the final chromaticity prediction.

[0253] 5) Based on the correlation between the luminance and chrominance reconstruction values ​​from neighboring / non-adjacent samples of the current block, the CCRM model can be generated.

[0254] a. For example, alternatively, the CCRM model can be generated based on the correlation between the luminance and chrominance reconstruction values ​​in a reference block of a reference image.

[0255] b. For example, alternatively, the CCRM model can be generated based on the correlation between the luminance and chrominance reconstruction values ​​in a reference block in the current image.

[0256] 6) For example, CCCM for intra-frame prediction and CCCM for inter-frame prediction (e.g., CCRM) can share the same logic.

[0257] a. For example, both can follow the same logic to obtain training samples.

[0258] b. For example, both can follow the same logic to determine the training area.

[0259] 7) CCRM models can be generated based on unsampled luminance samples.

[0260] a. For example, CCRM model coefficients can be solved based on unsampled luminance samples from a reference region used as training samples.

[0261] b. For example, the CCRM model can be applied to chroma blocks, where the chroma prediction of the current chroma block is generated based on the unsampled luminance samples of the co-located luminance block.

[0262] 8) More than one CCRM model (e.g., MM-CCRM model, MF-CCRM model, CCRM Merge model) can be generated for blocks.

[0263] a. For example, the training samples of CCRM can be divided into more than one class (e.g., two classes), and each set of samples can contribute to a unique model. In this way, multiple models can be generated, each with its own filter coefficients. Each derived filter is applied to its corresponding set of luminance reconstruction signals to produce a final prediction value for the current chrominance sample belonging to the corresponding class.

[0264] i. For example, according to the multi-model CCRM (e.g., MM-CCRM) mode, the training sample pairs of the luminance and chrominance sample pairs of the reference block (e.g., these training samples in the reference frame) can be divided into more than one category.

[0265] ii. For example, alternatively, training sample pairs of luminance and chrominance sample pairs of neighboring samples that are adjacent / non-adjacent to the reference block (e.g., these training samples in the reference frame) can be classified into more than one category according to a multi-model CCRM (e.g., MM-CCRM) mode.

[0266] iii. For example, alternatively, training sample pairs of luminance and chrominance sample pairs of neighboring samples that are adjacent / non-adjacent to the current video cell (e.g., these training samples in the current frame) can be classified into more than one class, according to a multi-model CCRM (e.g., MM-CCRM) mode.

[0267] iv. For example, in addition, by following the same criteria (e.g., by a threshold), the luminance samples in the current video unit are divided into more than one group, and for each luminance sample belonging to a category, the corresponding model can be applied to generate model-estimated chrominance samples belonging to that group.

[0268] b. For example, multiple sets of training samples can be used to derive multiple models.

[0269] i. In one example, there are two groups where the distance between the training sample and the current sample is different.

[0270] c. For example, the threshold for separating samples into different categories (e.g., the classification threshold) may depend on the values ​​of samples within or near the training area.

[0271] i. For example, the training region can be a reference block of the current video unit (e.g., these training samples are in the reference frame).

[0272] 1. For example, a reference block can be derived based on a block vector.

[0273] 2. For example, a reference block can be derived based on motion vectors.

[0274] ii. For example, the threshold can be derived based on samples that are adjacent to or not adjacent to the reference block of the current video unit (e.g., these training samples are in the reference frame).

[0275] iii. For example, the threshold can be derived based on samples that are adjacent to or not adjacent to the current video unit (e.g., these training samples are in the current frame).

[0276] iv. For example, the threshold can be derived based on the average / median / intermediate operation of more than one sample within or near the training region.

[0277] v. For example, classification thresholds can be derived based on unsampled brightness sample values.

[0278] 1. Alternatively, the classification threshold can be derived based on the downsampled brightness sample values.

[0279] a. For example, a K-tap (such as K=6) downsampling filter can be used to reduce K surrounding luminance samples to a single downsampled luminance sample value.

[0280] vi. For example, classification thresholds can be derived based on offset removal methods.

[0281] 1. For example, the offset can be derived based on luminance samples located at fixed positions (such as the upper left or center) within the reference video unit.

[0282] 2. For example, the offset values ​​used for classification threshold derivation and CCRM model calculation can be the same.

[0283] vii. For example, classification thresholds can be derived at the sub-block level.

[0284] viii. For example, classification thresholds can be derived based on CU / PU / TU levels.

[0285] ix. For example, the classification threshold can be calculated based on (downsampled or non-downsampled) brightness prediction samples.

[0286] x. For example, the classification threshold can be derived based on the brightness residual sample values.

[0287] 1. For example, for a second video unit (e.g., a sub-block) that does not have a non-zero residual, the predicted samples of such a video unit may not be included in the calculation of the classification threshold for the first video unit.

[0288] a. For example, the second video unit may be a subset of the first video unit.

[0289] b. For example, the second video unit can be equal to the first video unit.

[0290] d. For example, MM-CCRM can be applied at the sub-block level.

[0291] i. For example, the size of the sub-block can be predefined.

[0292] 1. For example, the predefined sub-block size can be 16x16, or 32x32, etc.

[0293] 2. For example, predefined rules can be used to determine the sub-block size of the MM-CCRM for a specific video unit.

[0294] a. For example, the size of a sub-block can be adapted to the block dimensions (width and / or height) of the current video block.

[0295] b. For example, a minimum number of chroma samples can be guaranteed for sub-blocks of video units encoded and decoded by MM-CCRM.

[0296] ii. For example, if a video unit is larger than a predefined sub-block size, the video unit can be divided into more than one sub-block and MM-CCRM can be performed.

[0297] iii. For example, at least one sub-block of a video unit may have more than one CCRM model.

[0298] iv. For example, each sub-block (and its associated training region) can have its own classification threshold.

[0299] 1. For example, the classification threshold for a specific sub-block can be calculated based on the training sample values ​​belonging to that sub-block.

[0300] a. For example, brightness training samples in a reference block can be used to calculate a classification threshold.

[0301] v. For example, all sub-blocks (and their associated training regions) can share the same classification threshold.

[0302] 1. For example, a classification threshold can be calculated and used for all sub-blocks.

[0303] 2. For example, the classification threshold for all sub-blocks in the current video unit can be calculated based on the training sample values ​​of the current video unit.

[0304] 3. For example, the classification threshold for all applicable sub-blocks in the current video unit can be calculated based on the training sample values ​​of the current video unit.

[0305] a. For example, sub-blocks that do not contain non-zero residuals may not be counted.

[0306] vi. For example, each sub-block of a video unit can have its own training samples, and the training samples of a particular sub-block can be divided into more than one category.

[0307] 1. For example, training samples in the reference video unit of a reference image can be classified based on sub-blocks.

[0308] vii. For example, training samples from the current image can be classified into more than one group, but may not be divided into sub-blocks.

[0309] e. For example, MM-CCRM / MF-CCRM / CCRM Merge can be applied at the TU level (or PU / CU level).

[0310] i. For example, MM-CCRM / MF-CCRM / CCRM Merge can be applied based on TU / CU / PU (e.g., for MM-CCRM applications, TU / CU / PU may not be divided into sub-blocks).

[0311] ii. For example, whether to use a multi-model CCRM / MF-CCRM / CCRM Merge based on TU / PU / CU can be determined at the TU / PU / CU level.

[0312] 1. For example, a video unit (e.g., TU / PU / CU) may choose to use a sub-block-based CCRM (e.g., CCRM / MM-CCRM / MF-CCRM / CCRM Merge) or a TU / PU / CU-based CCRM (e.g., CCRM / MM-CCRM / MF-CCRM / CCRM Merge).

[0313] a. For example, decisions can be made at the TU / PU / CU level.

[0314] f. For example, whether and / or how to apply MM-CCRM (and / or CCRM / MF-CCRM / CCRM Merge) can be deduced based on encoding and decoding information from both the encoder and decoder sides (e.g., without signal transmission).

[0315] i. In one example, it can be derived on the fly, for example, using information from previously encoded / reconstructed samples.

[0316] ii. For example, determining whether to use a sub-block-based CCRM / MM-CCRM / MF-CCRM / CCRM Merge or TU / CU / PU level CCRM can be implicitly deduced based on codec information (e.g., without signal transmission).

[0317] iii. For example, determining whether to use CCRM based on M1xM2 subblocks or CCRM based on N1xN2 subblocks can be implicitly deduced based on encoding / decoding information (e.g., without signal transmission).

[0318] 1. For example, M1 = 16 or 8 or 32 or TU / CU / PU.

[0319] 2. For example, M2 = 16 or 8 or 32 or TU / CU / PU.

[0320] 3. For example, N1 = 16 or 8 or 32 or TU / CU / PU.

[0321] 4. For example, N2 = 16 or 8 or 32 or TU / CU / PU.

[0322] 5. For example, M1 != N1 and / or M2 != N2.

[0323] iv. For example, determining whether to use a sub-block-based MM-CCRM / MF-CCRM / CCRM Merge or a TU / CU / PU level MM-CCRM / MF-CCRM / CCRM Merge can be implicitly derived based on codec information (e.g., without signal transmission).

[0324] v. For example, determining whether to use the MM-CCRM / MF-CCRM / CCRM Merge based on M1xM2 sub-blocks or the MM-CCRM / MF-CCRM / CCRM Merge based on N1xN2 sub-blocks can be implicitly deduced based on encoding / decoding information (e.g., without signal transmission).

[0325] 1. For example, M1 = 16 or 8 or 32 or TU / CU / PU.

[0326] 2. For example, M2 = 16 or 8 or 32 or TU / CU / PU.

[0327] 3. For example, N1 = 16 or 8 or 32 or TU / CU / PU.

[0328] 4. For example, N2 = 16 or 8 or 32 or TU / CU / PU.

[0329] 5. For example, M1 != N1 and / or M2 != N2.

[0330] vi. For example, determining whether to use SM-CCRM / MF-CCRM / CCRM Merge or MM-CCRM / MF-CCRM / CCRMMerge can be implicitly deduced based on codec information (e.g., without signal transmission).

[0331] vii. For example, determining a cost-based method that can be derived from the decoder.

[0332] 1. For example, the cost of decoder derivation can be calculated based on minimizing the SAD / SATD / SSE / MSE between the model estimated sample values ​​and the true reconstructed sample values, where a sample can refer to at least one training sample among the training samples.

[0333] 2. For example, a method with lower cost can be chosen as the final method to be applied to the current video unit.

[0334] viii. For example, information can be determined based on a reference image.

[0335] 1. For example, the POC distance between the current image and its reference image can be determined.

[0336] 2. For example, the determination can be based on a reference index.

[0337] g. Alternatively, whether to apply and / or how to apply MM-CCRM (and / or CCRM / MF-CCRM / CCRM Merge) can be signaled in the bitstream.

[0338] i. For example, syntax elements (e.g., flags, indices, etc.) can be signaled based on whether the current block is coded / decoded with CCRM.

[0339] 1. For example, if a video unit is coded / decoded with CCRM, syntax elements (e.g., flags, indices, etc.) can also be signaled to indicate whether it is MM-CCRM / MF-CCRM / CCRM Merge.

[0340] ii. For example, syntax elements (e.g., flags, indices, etc.) can be signaled to indicate whether it is MM-CCRM based on sub-blocks or MM-CCRM / MF-CCRM / CCRM Merge based on TU / CP / PU.

[0341] iii. For example, syntax elements (e.g., flags, indices, etc.) can be signaled to indicate whether it is CCRM based on sub-blocks or CCRM / MF-CCRM / CCRM Merge based on TU / CP / PU.

[0342] iv. For example, syntax elements can be signaled based on the block dimensions (width and / or height).

[0343] 1. For example, if W*H < T (such as T = 16 or 32), the syntax elements may not be signaled.

[0344] v. For example, syntax elements can be signaled based on the residual / coefficients of the current luma block.

[0345] 1. For example, whether to signal the syntax elements can be conditional on whether there is a residual (or non-zero coefficients) in the current luma block.

[0346] 2. For example, whether to signal the syntax elements can be conditional on the distribution / number / value of the residuals (or non-zero coefficients) in the current luma block.

[0347] vi. For example, syntax elements can be signaled based on the prediction method of neighboring blocks.

[0348] 1. For example, it can be based on whether neighboring blocks (such as left and / or upper neighbors) use the CCRM / MM-CCRM / MF-CCRM / CCRM Merge mode.

[0349] vii. For example, the context model of a syntax element may depend on the coding / decoding information of neighboring blocks or the current block.

[0350] 1. For example, the context model can be derived based on whether neighboring blocks (such as left and / or upper neighbors) use the CCRM / MM-CCRM / MF-CCRM / CCRM Merge mode.

[0351] 2. For example, the context model can be derived based on whether the block dimensions of the current block meet specific conditions.

[0352] a. For example, if the current block (e.g., TU / PU / CU) is long or wide (e.g., W > a*H, and / or H > b*W, where W and H are the width and height of the current block, and a and b are predefined constants, e.g., a = b = 2), then the specified context model can be used.

[0353] h. For example, block restrictions can be applied to indicate that the MM-CCRM mode is allowed.

[0354] i. In one example, assuming that the width and height of the chrominance CU / PU / TU are represented as W and H, then MM-CCRM can be allowed when at least one of the following conditions is met: 1. W*H > T0 or W*H >= T0 (e.g., T0 = 16 or 32 or 64 or 128).

[0355] 2. W > T1, or, W >= T1.

[0356] 3. H > T2, or, H >= T2.

[0357] 4. Min (W,H) > T3, or, Min (W,H) >= T3.

[0358] 5. Max (W,H) < T4, or, Max (W,H) <= T4.

[0359] 6. W < T5*H, or, W <= T5*H.

[0360] 7. W > T6*H, or, W >= T6*H.

[0361] 8. H < T7*W, or, H <= T7*W.

[0362] 9. H > T8*W, or, H >= T8*W.

[0363] 10. W* H < T9, or W*H <= T9.

[0364] ii. In one example, MM-CCRM can be disabled for blocks with specific tools enabled (e.g., affine motion compensation is enabled).

[0365] i. For example, video units encoded and decoded by CCRM can always use multi-model CCRM.

[0366] i. Alternatively, video units encoded and decoded by CCRM can use either single-model CCRM or multi-model CCRM.

[0367] 9) Chromaticity Cb and Cr can share a single CCRM.

[0368] a. Alternatively, chromaticity Cb and Cr can construct their own CCRM.

[0369] 10) For filter design of CCRM models, sample values ​​and / or gradient and / or location information can be taken into account.

[0370] a. For example, at least one K-tap filter can be used in a CCRM model, which consists of (multiple) K1 sample terms, (multiple) K2 gradient terms, (multiple) K3 location / positioning terms, (multiple) K4 nonlinear terms, (multiple) K5 bias terms, etc.

[0371] i. For example, K1 = 0 or 1 or 2 or 5 or 6.

[0372] ii. For example, K2 = 0, 1, 2, or 4.

[0373] iii. For example, K3 = 0, 1, 2, or 4.

[0374] iv. For example, K4 = 0, 1, 2, or 4.

[0375] v. For example, K5 = 0 or 1.

[0376] vi. For example, K = K1 + K2 + K3 + K4 + K5.

[0377] vii. For example, the sample item can be calculated based on the luminance sample value.

[0378] viii. For example, the gradient term can be calculated based on more than one sample adjacent to a particular brightness sample.

[0379] ix. For example, the position / location item can be calculated based on the horizontal and / or vertical coordinates of a specific brightness sample point, where the coordinates can be relative to the upper left position of a specific reference area.

[0380] x. For example, a nonlinear term can be the square of a specific value (e.g., an intermediate value related to bit depth, such as 512 or 256, or a specific brightness value).

[0381] xi. For example, a nonlinear term can be the square of the gradient value based on a specific gradient term.

[0382] xii. For example, the offset can be subtracted from the terms of the K-tap filter.

[0383] 1. For example, the offset can be derived based on predefined rules such as the value of the top-left training sample in the training region, or the average / median value of more than one sample in the training region.

[0384] xiii. For example, the coefficients of a K-tap filter can be solved using a Gaussian elimination solver.

[0385] xiv. For example, the coefficients of a K-tap filter can be solved using the LDL decomposition method.

[0386] i. For example, the coefficients of a K-tap filter can be solved using linear regression.

[0387] ii. For example, the coefficients of a K-tap filter can be solved using linear equations.

[0388] b. For example, more than one filter can be used, and the final prediction can be derived by fusing the filtered outputs of multiple filters together.

[0389] i. For example, the weights that fuse multiple filter values ​​can be solved using a Gaussian elimination solver.

[0390] ii. For example, the weights for fusing multiple filter values ​​can be solved using the LDL decomposition method.

[0391] 11) For example, more than one filter may be allowed for a video unit encoded and decoded by CCRM, and the final selection of which filter can be transmitted through the signal or derived.

[0392] a. For example, syntax elements can be transmitted via signals to indicate which filter (e.g., CCLM or CCCM) is used in CCRM mode.

[0393] b. For example, indicating which filter (e.g., CCLM or CCCM) is used in CCRM mode can be determined based on template costs from both the encoder and decoder.

[0394] c. For example, indicating which filter (e.g., CCLM or CCCM) is used in CCRM mode can be determined based on the cost derived from both the encoder and decoder.

[0395] 12) The filter output can be limited to a value.

[0396] a. For example, the filter output can be clipped based on the reconstructed values ​​in the training region.

[0397] i. For example, the training region can be derived based on block vectors (or motion vectors).

[0398] ii. For example, the training region can be adjacent to the current block.

[0399] iii. For example, the training region can be the reference region of the current block.

[0400] iv. For example, the filter output can be limited to the minimum and maximum values ​​of the reconstructed (or predicted) luminance sample values ​​in the training region.

[0401] b. For example, the filter output can be limited based on the reconstructed (or predicted) value in the co-located luminance block of the current chroma block.

[0402] i. For example, it can be limited to the minimum and maximum values ​​of the current block brightness reconstruction (or prediction) value.

[0403] c. For example, if the value is outside the valid range, the filter output can be ignored / discarded / not used.

[0404] 13) CCRM parameters can be stored in the cache and used for encoding and decoding of future blocks.

[0405] a. For example, CCRM parameters for video units (e.g., CU, PU, ​​color components, Cb, Cr, etc.) may include model type, model coefficients, whether it is a single model or multiple models, threshold for separating samples into multiple models, etc.

[0406] b. For example, CCRM parameters can be stored in a local cache for encoding and decoding future blocks in the current image.

[0407] c. For example, CCRM parameters can be stored in the temporal domain / image / frame buffer for encoding and decoding future blocks in future decoded images.

[0408] i. For example, the CCRM parameters of the current frame / image can be stored and referenced for the CCP process of future frames / images.

[0409] ii. For example, CCRM parameters can be stored in association with motion and pattern information of the video unit.

[0410] 14) Video blocks can inherit model parameters from previous filter-based encoder-decoder blocks. In the following sub-items, CCRM can refer to any filter model that includes cross-component models or same-component models.

[0411] a. For example, a cross-component model can refer to a cross-component residual model or cross-component prediction model used within or between frames, where model generation and application are based on the relationship between different color components (such as luminance and chrominance, chrominance Cb and chrominance Cr).

[0412] b. For example, a common component model can refer to an inter-frame / IBC / IBC-LIC / inter-frame-LIC / intraTMP / EIF filter, where model generation and model application are based on the relationship in the common components (such as luminance and luminance S).

[0413] c. For example, video blocks can be encoded and decoded using a CCP inheritance pattern.

[0414] d. For example, video blocks can be encoded and decoded using a CCP Merge (e.g., CCMerge) mode.

[0415] e. For example, video blocks can be encoded and decoded using a filter model inheritance / merge pattern. For example, model parameters of previously encoded and decoded blocks using CCRM can be stored in a cache (e.g., local cache, image cache, temporal cache, history-based LUT, etc.).

[0416] f. In one example, parameters may refer to filter information, linear or nonlinear parameters of the model, model index, etc.

[0417] g. For example, at least one syntax element can be signaled at the video unit level (e.g., block level, tu / pu / cu level, etc.) to specify whether and / or how to use CCRM model inheritance modes (e.g., CCRM Merge mode, or CCP Merge mode, or IBC / intraTMP filter Merge mode).

[0418] i. For example, an indicator can be transmitted via signaling at the video unit level to specify whether the current video unit uses the regular CCRM mode or the CCRM model inheritance mode.

[0419] 1. For example, alternatively, based on at least one type of CCRM (e.g., conventional CCRM mode) used for the current video unit, the indicator is conditionally transmitted via signaling.

[0420] 2. For example, a first syntax is transmitted via signal to indicate the CCRM mode type used by the current video unit, and then a second syntax is also transmitted via signal to indicate which type of CCRM mode is being used.

[0421] a. In addition, alternatively, the second syntax may be transmitted via signaling only if there is at least one available CCRM candidate (e.g., at least one valid CCRMMerge candidate exists).

[0422] ii. For example, alternatively, if the CCRM model inheritance pattern is used, another syntax (e.g., index) can also be signaled to specify which CCRM model candidate is selected to be inherited.

[0423] 1. For example, candidate indexes can be encoded or decoded to indicate CCRM candidates from a candidate list.

[0424] 2. For example, candidate indices can be encoded or decoded using the Rice (TR) binarization process, the Truncation Binary (TB) binarization process, the k-th exponential Columbus (EGk) binarization process, or the fixed-length (FL) binarization process.

[0425] 3. For example, the maximum allowed CCRM candidates (e.g., the maximum length of the candidate list) can be specified in the codec (such as 12 or 8 or 4 or 2, etc.).

[0426] iii. For example, alternatively, an indicator may be transmitted via signaling at the video unit level to specify whether the current video unit uses the CCRM model inheritance mode, and / or which candidate is used for the CCRM model inheritance mode.

[0427] iv. For example, syntax elements can be conditional on the residual / coefficient of the current luminance block being transmitted via signal.

[0428] 1. For example, whether to transmit a syntax element via signal can be conditional on whether there is a residual (or non-zero coefficient) in the current luma block.

[0429] 2. For example, whether the signal transmission syntax element can be conditional on the distribution / number / value of the residuals (or non-zero coefficients) in the current luma block.

[0430] v. For example, syntax elements can be transmitted via signaling based on a prediction method of neighboring blocks.

[0431] 1. For example, syntax elements can be based on whether CCRM / CCRM Merge mode is used based on neighboring blocks (such as left and / or top neighbors).

[0432] vi. For example, the context model of a syntax element can depend on the encoding / decoding information of neighboring blocks or the current block.

[0433] 1. For example, the context model can be derived based on whether neighboring blocks (such as left and / or top neighbors) use the CCRM / MM-CCRM / MF-CCRM / CCRM Merge pattern.

[0434] 2. For example, a context model can be derived based on whether the block dimension of the current block satisfies specific conditions.

[0435] a. For example, if the current block (e.g., TU / PU / CU) is long or wide (e.g., W>a*H, and / or H>b*W, where W and H are the width and height of the current block, and a and b are predefined constants, e.g., a=b=2), then the specified context model can be used.

[0436] h. For example, if the CCRM model inheritance pattern is used, a list of CCRM model candidates can be generated.

[0437] i. For example, the maximum length of the list size can be predefined in the bitstream (e.g., the size is equal to 6, 10, or 12 candidate models).

[0438] 1. In addition, the size of the history table can be predefined (e.g., size equal to 5 or 6).

[0439] ii. For example, CCRM model candidates can be obtained based on previously encoded and decoded CCRM blocks that are spatially adjacent nearest neighbors, and / or temporal candidates, and / or spatially non-adjacent nearest neighbors, and / or historical CCRM candidates, and / or shifted candidates, and / or default CCRM candidates.

[0440] 1. For example, the candidate insertion order can follow predefined rules, such as spatially adjacent -> temporally adjacent -> spatially non-adjacent -> history -> shift -> default.

[0441] a. Alternatively, the candidate insertion order can follow predefined rules, such as spatially adjacent -> spatially non-adjacent (if applicable) -> history (if applicable) -> shift (if applicable) -> default (if applicable).

[0442] 2. For example, CCRM candidates can be inspected at a sub-block (e.g., 4x4) granularity.

[0443] a. For example, each consecutive sub-block within a predefined area can be inspected; for instance, all 4x4 sub-blocks above and to the left of the current video unit can be inspected.

[0444] b. Alternatively, a predefined distributed check order can be used.

[0445] 3. For example, the location of non-adjacent neighboring blocks can be based on the block dimension of the current video unit, such as a specific distance from the current video unit, where the distance is proportional to the width and / or height of the current video unit.

[0446] 4. For example, motion displacement (e.g., zero vector or non-zero vector) can be used to locate temporal candidates.

[0447] a. For example, motion displacement can be based on the motion vectors of neighboring blocks.

[0448] b. For example, temporal candidates can come from co-located images.

[0449] c. Alternative locations: Temporal candidates can be derived from reference images, which do not necessarily have to be co-located images.

[0450] 5. For example, history-based CCRM candidates can come from a first-in-first-out history table.

[0451] a. For example, history tables can be initialized at the slice / ctu row / strip / image level.

[0452] 6. For example, time-domain candidates can be derived based on motion displacement.

[0453] a. For example, the temporal candidate of a block encoded by IBC / IntraTMP / inter-frame coding can be derived based on the MV / BV of neighboring blocks.

[0454] iii. For example, it can be based on the MV / BV of the current block. For example, deduplication / redundancy / similarity checks can be applied to CCRM candidate list construction.

[0455] 1. For example, if the candidate to be inserted is different from a specified candidate already existing in the list, the candidate to be inserted is inserted into the list.

[0456] a. For example, specifying a candidate can refer to all available CCRM candidates in the list.

[0457] b. Alternatively, the specified candidate may refer to one or more specified CCRM candidates in the list (e.g., the last one, and / or the last X in the list, where X is a predefined constant).

[0458] 2. For example, the same deduplication / redundancy / similarity check rules can be applied to all types of CCRM candidates.

[0459] a. Alternatively, different deduplication / redundancy / similarity check rules can be applied to different types of CCRM candidates.

[0460] iv. For example, CCRM candidate reordering can be applied.

[0461] 1. For example, CCRM candidates in the list can be sorted based on the cost derived by the decoder (e.g., template cost).

[0462] 2. For example, the cost can be derived based on applying CCRM candidates to the reference region / block of the current video unit.

[0463] a. For example, a reference region / block can be identified by the motion vector of the current block.

[0464] b. For example, for each CCRM candidate, the model is first applied to a reference luminance to obtain a predicted reference chromaticity, and then the cost is calculated as the absolute difference between the true reference chromaticity and the predicted reference chromaticity.

[0465] 3. For example, the cost can be derived based on applying CCRM candidates to the neighboring regions / blocks of the current video unit.

[0466] a. For example, a neighboring region / block can be the one above or to the left of the current block.

[0467] b. For example, for each CCRM candidate, the model is first applied to the neighboring luminance to obtain the predicted neighboring chromaticity, and then the cost is calculated as the absolute difference between the true neighboring chromaticity and the predicted neighboring chromaticity.

[0468] 4. For example, based on the cost derived from the decoder above, CCRM candidates can be sorted from the lowest cost to the highest cost, and the CCRM candidate with the lowest cost is sorted first in the list.

[0469] i. For example, if the CCRM model inheritance mode is used, the specified CCRM candidate model is directly applied to the current video unit without model estimation.

[0470] i. For example, the first candidate in the CCRM list can always be used in the CCRM model inheritance pattern.

[0471] ii. Alternatively, which candidate from the CCRM list is used for blocks encoded and decoded via the CCRM model inheritance mode can be transmitted via signaling in the bitstream.

[0472] iii. For example, for an RRIBC block encoded and decoded using a CCRM mode inheritance mode, the inherited CCRM model can be applied based on the inherited RRIBC flip type.

[0473] 1. For example, if the inherited RRIBC flip type indicates that the inherited CCRM model comes from a block encoded and decoded by RRIBC (e.g., the inherited RRIBC flip type is not zero), then the CCRM filter taps for the current block can be flipped according to the inherited RRIBC flip type.

[0474] a. For example, when generating CCRM filter taps from unsampled luminance samples, the filter taps of the unsampled luminance samples can be swapped / flipped.

[0475] 2. For example, suppose an 8-tap CCRM model consists of 6 spatial luminance samples, a nonlinear term, and a bias term. The spatial luminance samples (L0, ..., L5) are obtained from the luminance grid, selecting the 6 luminance samples closest to the chromaticity position C without downsampling. The predicted chromaticity value is obtained as: predChromaVal = c0 L0 + c1L1 + c2L2 + c3L3 + c4L4 + c5L5 + c6 nonlinear((L0 + L3 + 1) >> 1) + c7 B, where nonlinearity is the nonlinear operator of CCRM, and B is the bias.

[0476] a. For example, if the inherited CCRM model comes from a block encoded with RRIBC using a horizontal flip, then when the inherited CCRM model is applied to the current block (e.g., regardless of whether the current block is encoded with RRIBC), luma sample L1 and luma sample L2 can be swapped. And luma sample L4 and luma sample L5 can be swapped.

[0477] b. For example, if the inherited CCRM model comes from a block encoded with RRIBC using a vertical flip, then when the inherited CCRM model is applied to the current block (e.g., regardless of whether the current block is encoded with RRIBC), luma sample L1 and luma sample L4 can be swapped. Furthermore, luma sample L0 and luma sample L3 can be swapped. Additionally, luma sample L2 and luma sample L5 can be swapped.

[0478] Figure 26 The luminance samples L0, ..., L5 are shown relative to the chromaticity sample C.

[0479] j. For example, the CCRM model of a block encoded and decoded by CCRM can be stored in a cache.

[0480] i. For example, the stored CCRM model information may include the following information.

[0481] 1. CCRM model coefficients / tap / parameters for Cb and Cr components.

[0482] 2. The median of the block encoded and decoded by CCRM.

[0483] 3. Bit depth of the block encoded and decoded by CCRM.

[0484] 4. The offset value of the Y component of the block encoded and decoded by CCRM.

[0485] 5. Offset values ​​of the U and / or V components of the block encoded and decoded by CCRM.

[0486] 6. RRIBC flip type of blocks encoded and decoded by CCRM.

[0487] ii. Alternatively, model offsets may not be stored in the cache.

[0488] 1. For example, the model offset of a neighboring block may not be reused / inherited for the current block.

[0489] 2. For example, the model offset of the current block is recalculated based on specific available samples.

[0490] k. Alternatively, filter model information (e.g., model coefficients / tap / parameters / offsets for the Y component) can be stored in a cache, where the filter coefficients are calculated based on the relationship between samples in the same component (e.g., all training samples are in the luminance component domain).

[0491] i. Alternatively, model offsets may not be stored in the cache.

[0492] 1. For example, the model offset of a neighboring block may not be reused / inherited for the current block.

[0493] 2. For example, the model offset of the current block is recalculated based on specific available samples.

[0494] 15) The final prediction can be generated from a weighted sum of multiple hypotheses, where at least one hypothesis is based on predictions of CCPs (e.g., CCRM, CCRM Merge, CCP Merge, CCLM, LM, CCCM, GLM, etc.).

[0495] a. In one example, the final prediction of a block can be generated based on multiple prediction candidates from different CCPs (e.g., CCRM, CCRMMerge, CCP Merge, CCLM, LM, CCCM, GLM, etc.).

[0496] i. For example, more than one CCP prediction can be merged together.

[0497] ii. For example, the weights / coefficients of different fusion terms can be solved based on the Gaussian elimination method.

[0498] iii. For example, the weights / coefficients of different fusion terms can be solved based on the LDL decomposition method.

[0499] iv. For example, bias terms can be involved for fusion.

[0500] v. For example, nonlinear terms can be involved for fusion.

[0501] b. In one example, multiple CCP models can be derived to obtain a fused prediction.

[0502] i. Fusion predictions can refer to predictions generated through weighted summation.

[0503] ii. In one example, P0 in luminance and chrominance can be used to derive CCP model M0, P1 in luminance and chrominance can be used to derive CCP model M1, and the final chrominance prediction can be derived as wc0×Pc0+wc1×Pc1, where Pc0 and Pc1 are chrominance predictions obtained using M0 and M1, and wc0 and wc1 are weighting factors.

[0504] iii. P0 and P1 can be predictions from two different directions in a bidirectional prediction.

[0505] iv. For example, two hypothetical predictions can be generated based on the top two candidates in the CCP Merge pattern list, and the final prediction can be derived based on the weighted sum of the two hypothetical predictions.

[0506] c. In one example, the chromaticity prediction obtained through CCP can be fused with other predictions.

[0507] i. For example, chromaticity predictions obtained through CCP can be fused with intra-frame angular predictions.

[0508] ii. For example, chromaticity predictions obtained through CCP can be fused with CCLM predictions.

[0509] iii. For example, chromaticity predictions obtained through CCP can be fused with CCCM predictions.

[0510] iv. For example, chroma predictions obtained through CCP can be fused with original predictions (e.g., intra-frame, inter-frame, or IBC predictions) without CCP.

[0511] 1. For example, suppose the final chromaticity prediction can be derived as (w0×P0 + w1×P1 + offset) >> shift, where P0 represents the chromaticity prediction obtained through CCRM, and P1 represents the chromaticity prediction without CCP. a. The fusion weights w0 and w1 can be fixed and / or predefined, for example, w0=3 and w1=1, or w0=2 and w1=2.

[0512] b. The shift value can be a constant value that can be derived from w0 and w1, for example, shift = log2(w0 + w1).

[0513] c. The offset can be a constant value that can be derived based on the shift and / or fusion weights, for example, offset = shift >> 1, or offset = log2(w0+w1) >> 1.

[0514] d. Alternatively, the fusion weights w0 and w1 can be adaptively determined based on encoding and decoding information (e.g., block dimension, prediction patterns of nearest neighbors, etc.).

[0515] d. In one example, the weighting factors for different hypotheses in the fusion / mixing process can be derived based on predefined rules. The final prediction P is assumed to be derived as P = w0 × P0 + w1 × P1 + w2 × P2 + ..., where w0, w1, and w2 are weighting factors.

[0516] i. For example, fixed values ​​can be assigned to w0, w1, w2… ii. For example, block-based w0, w1, w2... can be assigned.

[0517] iii. For example, for each prediction, a sample-based weighting factor can be assigned (e.g., for different samples in a hypothetical prediction block, at least two different weights can be applied).

[0518] iv. For example, w0, w1, w2 can be derived on the fly (e.g., based on decoded neighboring samples, nearest neighbor prediction patterns, and / or template costs).

[0519] e. In one example, indicators of the weighting factors for different assumptions in the fusion / mixing process can be transmitted via signals in the bitstream.

[0520] i. For example, a lookup table containing multiple sets of weighting factors can be defined, and the index can be signaled to look up the corresponding weight.

[0521] f. For example, the sample values ​​of the final fused / mixed prediction can be clipped to a predefined range, e.g., it can be required to be no less than T1 and no greater than T2, where T2 can depend on the bit depth. For example, Clip1(x) = Clip3(0, (1< <BitDepth ) 1, x).

[0522] g. For example, the proposed method can be applied to fuse more than one hypothesis, where at least one hypothesis is based on the prediction of the filter model.

[0523] i. For example, filter coefficients can be calculated based on the relationship between two sets of samples in the same component domain (e.g., one set consists of luminance samples adjacent to the current block and the other set consists of luminance samples adjacent to the reference block).

[0524] ii. For example, a filter-based prediction can refer to a prediction generated based on applying a filter to a MC-compensated video cell.

[0525] 1. For example, filters can be based on IBC filters, intraTMP filters, LICs for inter-frame, LICs for IBC, EIF, etc.

[0526] iii. For example, predictions based on filter models can be generated based on filter-based merge / inheritance patterns (e.g., IBC filter-based merge / inheritance pattern, intraTMP filter-based merge / inheritance pattern, inter-frame LIC-based merge / inheritance pattern, IBC LIC-based merge / inheritance pattern, EIF-based merge / inheritance pattern).

[0527] 1. For example, a filter-based Merge pattern can refer to a pattern in which the filter model is inherited / derived from the candidate model (e.g., derived from a list of candidate models).

[0528] iv. For example, a prediction based on a filter model (e.g., encoded by prediction type A) can be fused with another prediction (e.g., encoded by prediction type B).

[0529] 1. For example, prediction type B may not be a prediction based on a filter model.

[0530] 2. For example, prediction type B can be a prediction based on a filter model, but the filter types in A and B are different.

[0531] 3. Alternatively, prediction type B can be a prediction based on a filter model, and the filter types in A and B are the same.

[0532] a. For example, two hypothetical predictions can be generated based on the top two candidates in a filter-based Merge pattern list, and the final prediction can be derived based on a weighted sum of the two hypothetical predictions.

[0533] 16) Whether CCRM predictions are fused with another prediction can be transmitted via signaling in the bitstream.

[0534] a. For example, a flag can be transmitted via signaling at the video unit level (e.g., TU / PU / CU / strip header / picture header / SPS / PPS level) to indicate such a CCRM fusion mode.

[0535] b. Alternatively, CCRM predictions can always be merged with another prediction without signal transmission.

[0536] 17) For CCRM, bidirectional forecasts can be managed in a different way than unidirectional forecasts. In the following discussion, it is assumed that the forecasts from the two directions are P0 and P1, and that bidirectional forecasts are expressed as Pb = w0 × P0 + w1 × P1, where w0 and w1 are weighting factors.

[0537] a. In one example, Pb in luminance and chrominance can be used to derive the CCRM model.

[0538] b. In one example, P0 or P1 in luminance and chrominance can be used to derive the CCRM model.

[0539] c. In one example, which prediction was used to deduce that the CCRM model could be transmitted via signaling?

[0540] 18) The permission for the CCRM model may depend on at least one of the following aspects: a. Prediction mode of video unit (e.g., MODE_INTRA, MODE_INTER, MODE_IBC, MODE_PLT, etc.).

[0541] b. Transformation type of the video unit (e.g., ACT, color transformation, transformation skip, etc.).

[0542] c. SBT (e.g., whether SBT is applied to the current video unit).

[0543] d. The number of non-zero coefficients in a video unit.

[0544] e. Luminance coefficients (e.g., luminance coefficient values, the absolute sum of all luminance coefficients, the last scan position of non-zero luminance coefficients, AC values, DC values, etc.) and segmentation tree type (e.g., single tree, dual tree).

[0545] f. Strip type (e.g., I strip, B strip, P strip).

[0546] g. Color format (e.g., whether it is 4:0:0).

[0547] h. Availability of chromaticity components.

[0548] i. For example, CCRM may not be allowed for ACT and / or 4:0:0 color formats.

[0549] j. For example, CCRM on / off can be determined based on the last scan position of a non-zero luminance coefficient.

[0550] i. For example, if the last scan position is less than a threshold, CCRM can be presumed to be disabled for the current chroma unit, and therefore no syntax element is used for CCRM to be transmitted via signaling.

[0551] 1. For example, the threshold can be a fixed constant (such as 1).

[0552] 2. For example, the threshold can be a variable based on encoding / decoding information such as block dimensions.

[0553] ii. For example, if the brightness is not transformed and the encoding / decoding is skipped, such a condition can be checked.

[0554] iii. For example, conditions such as skipping encoding / decoding regardless of whether the brightness is transformed can be checked.

[0555] k. For example, CCRM on / off can be determined based on the absolute sum of non-zero luminance coefficients.

[0556] i. For example, it can be determined based on the absolute sum of all luminance coefficients (e.g., both AC and DC).

[0557] ii. For example, it can be determined based on the absolute sum of all luminance AC coefficients.

[0558] iii. For example, it can be determined based on the luminance DC coefficient value.

[0559] iv. For example, it can be determined based on at least one luminance coefficient value (e.g., DC and / or AC).

[0560] v. For example, if the absolute sum is less than the threshold, then for the current chroma unit, CCRM can be presumed to be disabled, and therefore no syntax element is used for CCRM to be transmitted via signaling.

[0561] 1. For example, the threshold can be a fixed constant value.

[0562] 2. For example, the threshold can be a variable based on encoding / decoding information such as block dimensions.

[0563] vi. For example, if the brightness is not transformed and encoding / decoding is skipped, such a condition can be checked.

[0564] vii. For example, conditions such as skipping encoding / decoding regardless of whether the brightness is transformed can be checked.

[0565] viii. For example, such conditions can be checked together with conditions based on block size (e.g., TU width and / or width).

[0566] l. For example, if a transform skip is used on the luminance component, CCRM may not be applied to the chrominance component.

[0567] i. For example, if a transform skip is used on the luminance component, CCRM can be presumed to be disabled for the current chromaticity unit (e.g., Cb and / or Cr).

[0568] 1. Furthermore, in this case, no syntax element is transmitted via signal for CCRM use on this video unit.

[0569] ii. Alternatively, if transform skip is used on the luminance component, CCRM can be presumed to always be enabled for the current chromaticity unit (e.g., Cb and / or Cr).

[0570] 1. Furthermore, in this case, no syntax element is transmitted via signal for CCRM use on this video unit.

[0571] 19) The application of CCRM can depend on template information.

[0572] a. For example, whether CCRM can be used for video units may depend on the template cost.

[0573] i. For example, if it is determined by a template cost-based method that CCRM is disabled for the current video unit (i.e., CCRM on / off is presumed rather than transmitted via signaling), then no syntax element is used for CCRM usage on that video unit via signaling.

[0574] b. For example, such as Figure 30 As shown, assuming the current block is inter-frame encoded / decoded, two costs (e.g., SAD) can be calculated: the first cost is calculated based on the absolute difference between the current template predicted by the CCRM model and the actual reconstruction of the current template, and the second cost is calculated based on the difference between the reference template and the actual reconstruction of the current template. If the first cost is lower than the second cost, CCRM is presumed to be used for the current chroma unit; otherwise, the current chroma unit is encoded / decoded without CCRM.

[0575] i. For example, the CCRM model can be calculated based on the relationship between a reference luminance block (yellow tint) and a reference chrominance block (yellow tint).

[0576] ii. For example, if it is determined that CCRM is used, the CCRM model can be applied to the current luminance reconstruction block (i.e., the input of the CCRM model) and generate the current chromaticity prediction predicted by the CCRM model (i.e., the output of the CCRM model).

[0577] iii. For example, in this case (i.e., CCRM on / off is presumed rather than transmitted via signal), no syntax element is transmitted via signal for CCRM use on this video unit.

[0578] iv. For example, such a template cost method can be applied to blocks that have undergone inter-frame encoding and decoding.

[0579] c. For example, such as Figure 31 As shown, assuming the current block is IBC encoded / decoded, two costs (e.g., SAD) can be calculated: the first cost is calculated based on the absolute difference between the current template predicted by the CCRM model and the actual reconstruction of the current template, and the second cost is calculated based on the difference between the reference template and the actual reconstruction of the current template. If the first cost is lower than the second cost, CCRM is presumed to be used for the current chroma unit; otherwise, the current chroma unit is encoded / decoded without CCRM.

[0580] i. For example, the CCRM model can be calculated based on the relationship between a reference luminance block (yellow tint) and a reference chrominance block (yellow tint).

[0581] ii. For example, if it is determined that CCRM is used, the CCRM model can be applied to the current luminance reconstruction block (i.e., the input of the CCRM model) and generate the current chromaticity prediction predicted by the CCRM model (i.e., the output of the CCRM model).

[0582] iii. For example, in this case (i.e., CCRM on / off is presumed rather than transmitted via signal), no syntax element is transmitted via signal for CCRM use on this video unit.

[0583] iv. For example, such a template cost method can be applied to blocks encoded and decoded by IBC.

[0584] d. For example, whether a template cost-based approach is used to determine CCRM on / off may depend on whether the current video unit (e.g., TU) has residual / non-zero coefficients and / or SBT usage.

[0585] i. For example, for the residual zeroing portion of the current CU after SBT encoding and decoding, the CCRM decision based on template cost may not be applied.

[0586] ii. For example, for the portion of the current CU with residuals after SBT encoding and decoding, the CCRM decision based on template cost may not be applied.

[0587] iii. For example, if the CBF flag of the current luminance TU is false, then the CCRM decision based on template cost may not be applied.

[0588] e. For example, for a TU generated from a CU encoded and decoded by SBT (e.g., the TU size is smaller than the CU size), the template can be constructed from neighboring samples outside the entire CU.

[0589] f. For example, in inter-frame / IBC modes based on sub-blocks / sub-segments, since each sub-block can have its own motion vector, the motion vectors of predefined sub-blocks can be used to locate the reference template.

[0590] i. For example, for a TU encoded with affine / sbTMVP, the MV of a specific sub-block (e.g., the top left corner or the center) can be used.

[0591] ii. For example, for a TU that has been codified by GPM inter-frame-to-inter-frame encoding, a specific segment of the MV (e.g., part 0 or part 1) can be used.

[0592] iii. For example, for a TU that has been encoded and decoded via GPM inter-intra-frame, the MV of the inter-frame portion can be used.

[0593] iv. For example, for a TU encoded and decoded by GPM, the MV after TM / MMVD can be used.

[0594] 1. Alternatively, the MV prior to TM / MMVD can be used.

[0595] v. Alternatively, if the current TU is encoded and decoded in a sub-block / sub-segmentation-based inter-frame / IBC mode, such a template-based approach may not be applied to CCRM on / off decisions.

[0596] g. For example, if sub-block-based CCRM is applied, the samples of the current template predicted by the CCRM model can be constructed based on sub-blocks.

[0597] i. For example, the sample points of the current template predicted by the CCRM model can be constructed by applying multiple CCRM models with boundary sub-blocks (e.g., upper and / or left boundary sub-blocks).

[0598] ii. For example, if the boundary sub-block does not have a valid CCRM model, the corresponding template samples may not be computed for cost calculation.

[0599] 1. For example, alternative sites can be filled with real reconstructed template points.

[0600] h. For example, the samples of the current template predicted by the CCRM model can be constructed from the same CCRM model.

[0601] Figure 30 An example of the current template and reference template involved in CCRM encoding and decoding for the current inter-frame block is shown.

[0602] Figure 31 Examples of the current template and reference template involved in CCRM encoding and decoding for the current IBC block are shown.

[0603] 20) The CCRM model can be applied to the luminance residual block and output the chrominance residual block estimated by CCRM.

[0604] a. For example, the final chromaticity prediction block can be generated by adding the first candidate to the second candidate.

[0605] i. For example, the first candidate can be based on the chromaticity residual block estimated by CCRM, and the second candidate can be based on the chromaticity prediction block that precedes or precedes CCRM.

[0606] ii. Alternatively, the two candidates can be mixed / fused based on a weighted sum method.

[0607] 1. For example, the weights of two candidates can be fixed and / or based on predefined rules.

[0608] b. For example, the model can be derived from reference reconstructed samples and applied to the current residual samples.

[0609] i. For example, CCRM model coefficients can be solved / derived based on a set of training samples, where the training samples can refer to luminance (unsampled or downsampled) and chrominance samples in a reference block.

[0610] ii. For example, the derived model coefficients can be applied to the luminance residual block (unsampled or downsampled) and output the chrominance residual block estimated by CCRM.

[0611] c. For example, different offset values ​​can be used during the CCRM model coefficient derivation and CCRM model application processes. Assume an 8-tap CCRM model consists of 6 spatial luminance samples, a nonlinear term, and an offset term; for model coefficient derivation, the estimated reference chromaticity value is obtained as estChromaVal. ref = c0 (L0 ref – offset ref ) + c1(L1ref –offset ref )+ c2(L2 ref – offset ref )+ c3(L3 ref – offset ref )+ c4(L4 ref – offset ref )+ c5(L5 ref – offset ref )+ c6 nonlinear((L0 ref +L3 ref +1)>>1) + c7 B ref , of which (L0 ref ,…,L5 ref ) represents the six brightness reconstruction samples in the reference block, and nonlinearity is the nonlinear operator of CCCM, B ref It is a bias, and offset ref These are block-based variables; for model applications, the estimated current chromaticity residual value is obtained as estChromaResiVal. cur = c0 (L0 cur – offset cur ) + c1(L1 cur – offset cur )+ c2(L2 cur –offset cur )+ c3(L3 cur – offset cur )+ c4(L4 cur – offset cur )+ c5(L5 cur – offset cur )+ c6nonlinear((L0 cur +L3 cur +1)>>1) + c7 B cur , of which (L0 cur ,…,L5 cur ) represents the six luminance residual samples in the current block, and nonlinearity is the nonlinear operator of CCCM, B cur It is a bias, and offset cur These are block-based variables.

[0612] i. For example, the offset value can be derived based on at least one training sample.

[0613] 1. For example, the offset can be derived based on specific luminance training samples (e.g., luminance training samples at fixed positions in the luminance reference block, such as upper left or center sample values).

[0614] 2. For example, the offset can be derived based on the average / median of at least two training samples (e.g., all brightness training samples).

[0615] ii. For example, the offset can be defined as a fixed constant (e.g., 0).

[0616] iii. For example, the first offset (e.g., offset) ref ) can be used in the derivation of model coefficients (e.g., c0…c7).

[0617] 1. For example, a Gaussian elimination solver can be used to minimize the difference between the reference chromaticity block estimated by the CCRM model (e.g., the model input could be a true reference luminance reconstruction block) and the true reference chromaticity reconstruction block.

[0618] 2. For example, the first offset (e.g., offset) ref The average of all sample values ​​in the reconstructed block can be derived based on the true reference brightness.

[0619] iv. For example, the second offset (e.g., offset) cur () can be used in the model application process.

[0620] 1. For example, the CCRM model associated with the derived model coefficients can be applied to the current luminance residual block and output an estimated chrominance residual block for the current block.

[0621] 2. For example, the second offset (e.g., offset) cur ) can be fixed to be equal to 0.

[0622] d. For example, different bias values ​​can be used during the CCRM model coefficient derivation process and the CCRM model application process.

[0623] i. For example, the bias value can be derived based on the bit depth of the luminance and chrominance prediction / reconstruction samples in the bitstream (e.g., it can be equal to 1 << (bit depth - 1)).

[0624] 1. Alternatively, it can be equal to a fixed constant (e.g., 0).

[0625] ii. For example, the first bias (e.g., B) ref () can be used in the derivation of model coefficients.

[0626] 1. For example, B refIt can be equal to 1 << (bit depth - 1).

[0627] iii. For example, the second offset (e.g., B) cur () can be used in the model application process.

[0628] 1. For example, B cur It can be fixed to be equal to 0.

[0629] e. For example, whether the CCRM model is used to predict the current chromaticity prediction or the current chromaticity residual can be transmitted via signaling in the bitstream.

[0630] i. Alternatively, it can be implicitly inferred based on decoder information.

[0631] ii. Alternatively, the CCRM model can always be applied to predict the current chromaticity residual.

[0632] 21) The disclosed CCRM pattern can be based on one of the following filters: a. CCLM and / or its variants.

[0633] b. MMLM and / or its variants.

[0634] c. CCCM and / or its variants (e.g., GL-CCCM, non-subsampled CCCM, BVG-CCCM, inter-frame CCCM, intra-frame CCCM, etc.).

[0635] d. GLM and / or its variants.

[0636] e. Any cross-component prediction that uses information from one channel / component to predict information from another channel / component.

[0637] f. Any filter-based prediction, where the filter coefficients are solved based on the correlation between the prediction and / or reconstruction information.

[0638] 22) Block restrictions can be applied to limit the application of specific types of CCP patterns.

[0639] a. For example, CCP mode is only allowed to be used for block sizes that satisfy predefined rules.

[0640] b. For example, syntax elements can only be transmitted via signals when CCP mode is applicable.

[0641] c. For example, if CCP patterns are not allowed to be used, a syntax element can be presumed to have a specific value that indicates that no such CCP pattern is used for such a block.

[0642] d. For example, at least one of the following block restrictions can be applied to the CCRM mode (assuming W represents the block width and H represents the block height): i. W < T1, or, W <= T1, ii. H < T2, or, H <= T2, iii. Min (W,H) > T3, or, Min (W,H) >= T3, iv. Max (W,H) < T4, or, Max (W,H) <= T4, v. W < T5 * H, or, W <= T5 * H, vi. W > T6 * H, or, W >= T6 * H, vii. H < T7 * W, or, H <= T7 * W, viii. H > T8 * W, or, H >= T8 * W, ix. W * H < T9, or W * H <= T9.

[0643] x. For example, T1, T2,... T9 can be predefined integer constants.

[0644] e. For example, the CCRM mode is only allowed for small blocks.

[0645] i. For example, the CCRM mode can be allowed for blocks smaller than 4x4, or 8x8, or 16x16, or 32x32.

[0646] ii. For example, the CCRM mode can be allowed for blocks with a number of samples less than 32, or 64, or 128.

[0647] iii. For example, the CCRM mode can be allowed for blocks with a number of samples less than 32, or 64, or 128.

[0648] iv. For example, for a 2xN block, the CCRM mode may not be allowed, where N can be greater than 4 or 8 or 16.

[0649] v. For example, for an Nx2 block, the CCRM mode may not be allowed, where N can be greater than 4 or 8 or 16.

[0650] 23) The disclosed method can be used in a single tree.

[0651] 24) The disclosed method can be used in a dual tree.

[0652] 25) The disclosed method can be used in inter - frame (such as B or P) strips.

[0653] 26) The disclosed method can be used in intra-frame (such as I) stripes.

[0654] 27) The “block vector” in the disclosed method can be a “motion vector”.

[0655] 28) The training / reference samples in the disclosed method may refer to the predicted samples and / or reconstructed samples in the training / reference region.

[0656] 29) Whether and / or how the methods disclosed above can be applied can be transmitted via signaling at the sequence level / picture group level / picture level / strip level / piece group level, such as in the sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / strip header / piece group header.

[0657] 30) Whether and / or how the methods disclosed above can be applied to transmit signals at PB / TB / CB / PU / TU / CU / VPDU / CTU / CTU lines / strips / films / sub-images / other types of areas containing more than one sample point or pixel.

[0658] 31) Whether and / or how to apply the methods disclosed above may depend on the encoded / decoded information, such as block size, color format, single-tree splitting / double-tree splitting, color components, stripe / picture type.

[0659] 2.5 Derivation of the Inter-Frame CCPCCM Model 2.5.1 Issues related to the derivation of the inter-frame CCPCCM model 1) For CCP modes in inter-frame stripes / pictures, copying / inheriting the CCP model from a previously encoded / decoded CCP mode is not permitted. However, inter-frame CCP models can be derived based on CCP models from previously encoded / decoded CCP modes.

[0660] a. In addition, the generated / converted CCP model can be used.

[0661] 2.5.2 Related Solutions The specific embodiments described below should be considered as examples for explaining general concepts. These embodiments should not be interpreted in a narrow sense. Furthermore, these embodiments can be combined in any way.

[0662] The term "video unit" or "code-decoder unit" can refer to a picture, strip, slice, code-decoder tree block (CTB), code-decoder tree unit (CTU), code-decoder block (CB), CU, PU, ​​TU, PB, TB.

[0663] The term "block" can refer to a codec tree block (CTB), a codec tree unit (CTU), or a codec block (CB).

[0664] The term "CCCM" can refer to intra-frame CCCM mode, inter-frame CCCM mode, IBC CCCM mode, intraTMP CCCM mode, etc. It can be a regular CCCM mode or a variant of the regular CCCM mode (e.g., GL-CCCM, CCCM without downsampling, CCRM, etc.).

[0665] The term "CCP" can refer to any cross-component prediction method, such as any kind of LM / CCLM / CCCM / GLM / GL-CCCM. It can be an inter-frame CCP, an intra-frame CCP, or a BV-guided CCP.

[0666] The term "CCP mode" can refer to either CCP mode or CCP Merge mode. Examples of CCP Merge modes include inter-frame CCCM Merge mode, intra-frame CCCM Merge mode, inter-frame CCP Merge mode, intra-frame CCP Merge mode, etc. CCP modes can be based on a single model or multiple models. CCP modes can be based on a single filter or multiple filters.

[0667] The term "CCP model" in CCP mode can be calculated based on decoding information such as neighboring samples or reference samples. It can also be inherited / copied / converted / generated from previously encoded / decoded blocks such as CCP Merge mode, inter-frame CCCM Merge mode, etc. The CCP model can be based on linear, non-linear, or convolutional models.

[0668] In this regard, when talking about block dimensions such as block width and block height, "W" is used to represent block width and "H" is used to represent block height, and the block can be TU / PU / TU.

[0669] It should be noted that the terms mentioned below are not limited to the specific terms defined in existing standards. Any changes to encoding / decoding tools also apply.

[0670] 1) The CCP model of the current block can be derived from the previous block encoded and decoded using the CCP model, where the previous block encoded and decoded using the CCP model can be derived based on the block vector (BV).

[0671] a. For example, a BV can be associated with the current block or derived from a previously encoded / decoded block.

[0672] i. For example, a BV can be associated with the current block.

[0673] 1. For example, the current block can be encoded or decoded in IBC or intraTMP mode.

[0674] ii. For example, BV can be derived based on previously encoded or decoded blocks.

[0675] 1. For example, the current block can be encoded and decoded in inter-frame mode.

[0676] 2. For example, the current block can be encoded or decoded in intra-frame mode.

[0677] 3. For example, the current block can be encoded or decoded in IBC or intraTMP mode.

[0678] 4. For example, previously encoded or decoded blocks may be adjacent to or not adjacent to the current block.

[0679] 5. For example, a previously encoded / decoded block may be located in the same picture / strip / subpicture / slice of the current block, or in a different picture / strip / subpicture / slice of the current block.

[0680] iii. For example, BV can be derived based on the historical BV associated with the block.

[0681] 1. For example, even if a block is not encoded or decoded using BV, BV can still be stored in association with the block.

[0682] a. For example, if a block's reference is BV encoded or decoded, its BV can be stored and / or updated in association with the block.

[0683] b. For example, at least one CCP model candidate can be derived from BV.

[0684] i. For example, a candidate CCP model guided by BV can be allowed to be used as the CCP model of the current block.

[0685] 1. For example, a candidate guided by BV can refer to a candidate block retrieved via BV and the current position.

[0686] 2. For example, a BV-guided candidate can refer to a candidate block that is retrieved by adding the BV to a predefined position relative to the current position.

[0687] ii. For example, a candidate guided by BV can be located in the same picture as the current block.

[0688] 1. Alternatively, BV-guided candidates can be located in the reference image of the current block.

[0689] iii. For example, more than one CCP model candidate can be derived from BV.

[0690] 1. For example, a predefined list of locations can be examined; for instance, BV can be added as a displacement vector to a predefined location. Qualified CCP models associated with the blocks at those locations can be considered as potential CCP model candidates to be used for encoding and decoding the current block.

[0691] 2) The CCP model of the current block can be derived from the previous block encoded and decoded using the CCP model, where the previous block encoded and decoded using the CCP model can be derived based on motion vectors (MV).

[0692] a. For example, an MV can be associated with the current block or derived from a previously encoded / decoded block.

[0693] i. For example, MV can be associated with the current block.

[0694] 1. For example, the current block can be encoded and decoded in inter-frame mode.

[0695] ii. For example, an MV can be derived from a previously encoded or decoded block.

[0696] 1. For example, previously encoded / decoded blocks can be encoded / decoded in inter-frame mode.

[0697] 2. For example, the current block can be encoded or decoded in inter-frame mode, or IBC mode, or intra-frame mode.

[0698] 3. For example, previously encoded or decoded blocks may be adjacent to or not adjacent to the current block.

[0699] 4. For example, a previously encoded / decoded block may be located in the same picture / strip / subpicture / slice of the current block, or in a different picture / strip / subpicture / slice of the current block.

[0700] iii. For example, MV can be derived based on the historical MV associated with the block.

[0701] 1. For example, even if the block is not encoded or decoded by MV, the MV can still be stored in association with the block.

[0702] a. For example, if a block's reference is encoded or decoded using MV, then its MV can be stored and / or updated in association with the block.

[0703] b. For example, at least one CCP model candidate can be derived from MV.

[0704] i. For example, the CCP model of a reference block in a temporally encoded or decoded image can be used as a CCP model candidate for the current block.

[0705] 1. For example, the position of the reference block can be retrieved by adding a motion displacement to a predefined position relative to the current position.

[0706] a. For example, motion displacement can be derived based on the MV of the current block.

[0707] b. For example, motion displacement can be derived based on the MV of the spatial nearest neighbors of the current block.

[0708] c. For example, the displacement of motion can be a zero vector.

[0709] ii. Furthermore, more than one CCP model candidate can be derived from the temporal reference image.

[0710] 1. For example, at least one motion displacement can be used.

[0711] a. For example, the first available motion displacement can be used, and the CCP model candidate list can be derived by adding the motion displacement to a predefined list of positions.

[0712] 2. In addition, for example, more than one motion displacement may be permitted.

[0713] a. For example, the MV of the current block and the MV of neighboring blocks can both be used as motion displacements to derive CCP model candidates, and all qualified CCP model candidates retrieved based on the motion displacements are derived.

[0714] 3) For the current block, the CCP model for generation / transformation / shifting can be derived.

[0715] a. For example, a linear model can be generated / converted from a previously encoded / decoded nonlinear CCP model.

[0716] b. For example, shifted candidates can be generated / converted from a previously encoded / decoded CCP model by shifting at least one model parameter (such as adding a difference value).

[0717] c. For example, linear models that generate / transform / shift can be inserted into the candidate list.

[0718] i. For example, more than one linear model can be generated based on a list of nonlinear model candidates already in the list.

[0719] ii. For example, assuming the maximum allowed length of the candidate list is “M”, and the number of nonlinear model candidates already in the list is “m”, then “MN” linear model candidates can be generated / transformed / shifted and then inserted into the list.

[0720] iii. For example, linear model candidates can be generated / transformed by setting the nonlinear term of the available nonlinear model to zero.

[0721] d. For example, a multi-filter model can be generated / converted from a previously encoded / decoded CCP model.

[0722] i. For example, a multi-filter model can be a weighted sum of more than one single-filter model that is already in the list.

[0723] 1. For example, the weighting factor for each hypothesis can be predefined.

[0724] 2. For example, the weighting factor for each hypothesis can be calculated based on the decoded information.

[0725] 4) For example, the derived CCP model can be inserted into the CCP candidate model list.

[0726] a. For example, deduplication / redundancy checks can be performed by comparing the CCP model to be inserted with the CCP candidate models already available in the list. The CCP model to be inserted can be inserted as a new candidate as long as there are no duplicate CCP models in the list.

[0727] 5) For example, the CCP candidate model list may include adjacent spatial domain candidates, and / or history-based candidates, and / or generation / transformation / shifting candidates.

[0728] 6) For example, the maximum candidate list size for CCP mode can be defined in the bitstream, but the candidate list for a specific block may not be full.

[0729] a. For example, if the candidate list for a particular block is not full, the list may not be populated with additional candidates.

[0730] b. Alternatively, if the candidate list for a particular block is not full, the list can be filled with additional candidates (such as candidates for generation / transformation / shifting) until the list is full.

[0731] 7) For example, the derived CCP model and other CCP model candidates can be reordered / ranked based on the decoding derivation cost / SAD (e.g., based on evaluating the difference between the model-predicted chromaticity sample values ​​after applying the candidate CCP model to a set of luminance samples and the actual reconstructed chromaticity sample values ​​corresponding to that set of luminance samples).

[0732] 8) For example, the CCP model can refer to the inter-frame CCP model.

[0733] a. For example, the CCP model could be an inter-frame based LM / CCLM / CCCM / GLM / GL-CCCM.

[0734] b. Alternatively, for example, the CCP model could refer to the intra-frame CCP model.

[0735] i. For example, the CCP model can be an intra-frame LM / CCLM / CCCM / GLM / GL-CCCM.

[0736] c. Alternatively, for example, the CCP model could refer to the BV-guided CCP model.

[0737] i. For example, the CCP model can be a BV-guided LM / CCLM / CCCM / GLM / GL-CCCM.

[0738] 9) For example, the current block can be encoded and decoded in a CCP model Merge mode.

[0739] a. For example, the model parameters of the current block can be copied / inherited / derived from previously encoded / decoded blocks, rather than being calculated on the spot.

[0740] b. For example, the current block can be encoded and decoded in an inter-frame CCCM Merge mode.

[0741] c. Alternatively, the current block can be encoded or decoded in an inter-frame CCP Merge mode.

[0742] d. Alternatively, the current block can be encoded or decoded in an intra-frame CCP Merge mode.

[0743] 10) The disclosed method can be used in a single tree.

[0744] 11) The disclosed method can be used in two trees.

[0745] 12) The disclosed method can be used in inter-frame (such as B or P) stripes.

[0746] 13) The disclosed method can be used in intra-frame (such as I) stripes.

[0747] 14) Whether and / or how the methods disclosed above can be applied can be transmitted via signaling at the sequence level / picture group level / picture level / strip level / piece group level, such as in the sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / strip header / piece group header.

[0748] 15) Whether and / or how the methods disclosed above can be applied to transmit signals at PB / TB / CB / PU / TU / CU / VPDU / CTU / CTU lines / strips / films / sub-images / other types of areas containing more than one sample point or pixel.

[0749] 16) Whether and / or how to apply the methods disclosed above may depend on the encoded / decoded information, such as block size, color format, single-tree splitting / double-tree splitting, color components, stripe / picture type.

[0750] 2.6 Application of Inter-Frame CCPCCM Mode 2.6.1 Issues related to the application of inter-frame CCPCCM mode 1) The permission of a CCP mode may depend on decoding information such as temporal layer, luma factor, block dimension, etc.

[0751] 2) Signaling for a CCP mode can depend on decoding information, such as proximity prediction mode, block dimension, etc.

[0752] 3) The determination of a specific CCP mode can be based on the cost assessment derived from the decoder.

[0753] a. In addition, a bias factor can be introduced for cost assessment.

[0754] 4) Currently, for CCP model calculation and threshold calculation in multi-model CCP mode, all samples in the corresponding luma block are used. However, for inter-frame CCCM mode, a maximum of 256 luma samples are limited to data collection for single-model inter-frame CCCM model parameter calculation. Whether and how to apply such a limitation can be redesigned.

[0755] 5) When the intra-frame CCP Merge mode is used, a candidate sorting / reordering process is applied to sort CCP candidates in ascending order based on template cost. However, diversity criteria can be applied during the sorting process.

[0756] a. If applicable, the diversity criteria can be extended to the inter-frame CCP Merge mode.

[0757] b. If applicable, the diversity standard can be extended to the inter-frame CCCM Merge mode.

[0758] 2.6.2 Related Solutions The specific embodiments described below should be considered as examples for explaining general concepts. These embodiments should not be interpreted in a narrow sense. Furthermore, these embodiments can be combined in any way.

[0759] The term "video unit" or "code-decoder unit" can refer to a picture, strip, slice, code-decoder tree block (CTB), code-decoder tree unit (CTU), code-decoder block (CB), CU, PU, ​​TU, PB, TB.

[0760] The term "block" can refer to a codec tree block (CTB), a codec tree unit (CTU), or a codec block (CB).

[0761] The term "CCCM" can refer to intra-frame CCCM mode, inter-frame CCCM mode, IBC CCCM mode, intraTMP CCCM mode, etc. It can be a regular CCCM mode or a variant of the regular CCCM mode (e.g., GL-CCCM, CCCM without downsampling, CCRM, etc.).

[0762] The term "CCP" can refer to any cross-component prediction method, such as any kind of LM / CCLM / CCCM / GLM / GL-CCCM. It can be an inter-frame CCP, an intra-frame CCP, or a BV-guided CCP.

[0763] The term "CCP mode" can refer to either CCP mode or CCP Merge mode. Examples of CCP Merge modes include inter-frame CCCM Merge mode, intra-frame CCCM Merge mode, inter-frame CCP Merge mode, intra-frame CCP Merge mode, etc. CCP modes can be based on a single model or multiple models. CCP modes can be based on a single filter or multiple filters.

[0764] The term "CCP model" in CCP mode can be calculated based on decoding information such as neighboring samples or reference samples. It can also be inherited / copied / converted / generated from previously encoded / decoded blocks such as CCP Merge mode, inter-frame CCCM Merge mode, etc. The CCP model can be based on linear, non-linear, or convolutional models.

[0765] In this regard, when talking about block dimensions such as block width and block height, "W" is used to represent block width and "H" is used to represent block height, and the block can be TU / PU / TU.

[0766] It should be noted that the terms mentioned below are not limited to the specific terms defined in existing standards. Any changes to encoding / decoding tools also apply.

[0767] 1) Whether a specific CCP mode is allowed may depend on the decoding information.

[0768] a. For example, a specific CCP mode can be inter-frame CCCM Merge mode, intra-frame CCCM Merge mode, inter-frame CCP Merge mode, intra-frame CCP Merge mode, etc.

[0769] i. For example, the CCP model can be inherited / copied / converted / generated from previously encoded / decoded blocks.

[0770] b. For example, a specific CCP mode can be an inter-frame CCCM mode, an intra-frame CCCM mode, or an LM / CCLM / CCCM / GLM / GL-CCCM, etc.

[0771] i. For example, the CCP model can be calculated based on decoded information (such as neighboring samples or reference samples).

[0772] c. For example, a specific CCP mode can be single-model-based or multi-model-based.

[0773] d. For example, a specific CCP mode can be single-filter-based or multi-filter-based.

[0774] e. For example, whether a specific CCP mode is allowed can depend on the dimensions / width / height of a block (such as a TU / PU / CU, etc.).

[0775] i. For example, only the CCP mode is allowed to be used for block sizes that meet predefined rules.

[0776] ii. For example, at least one of the following block restrictions can be applied to the CCP mode: 1. a0*W < b0*H, or, a0*W <= b0*H, 2. a1*W > b1*H, or, a1*W >= b1*H, 3. a2*H < b2*W, or, a2*H <= b2*W, 4. a3*H > b3*W, or, a3*H >= b3*W, 5. Min (W, H) > T0, or, Min (W, H) >= T0, 6. Max (W, H) < T1, or, Max (W, H) <= T1, 7. W* H < T2, or W*H <= T2.

[0777] 8. For example, a0, a1, a2, a3, b0, b1, b2, b3 can be predefined integers.

[0778] 9. For example, T0, T1, T2 can be predefined values.

[0779] iii. For example, if the current TU / PU / CU meets the condition of W*H <= T1 (such as T1 = 8 or 16), the inter-frame CCCM (and / or the inter-frame CCCM Merge mode, and / or the multi-model inter-frame CCCM mode) may not be allowed to be used.

[0780] iv. For example, if the current TU / PU / CU satisfies the condition "W>=T2*H" or "H>=T3*W" (such as T2=T3=16 or 8), then inter-frame CCCM (and / or inter-frame CCCM Merge mode, and / or multi-model inter-frame CCCM mode) may not be allowed to be used.

[0781] f. For example, whether a particular CCP mode is allowed can depend on the time-domain layer.

[0782] i. For example, a particular CCP mode may be allowed only if the temporal layer ID of the video unit meets certain conditions (such as being less than or greater than a specific value).

[0783] ii. Alternatively, a particular CCP mode may be allowed for a particular predefined time-domain layer.

[0784] g. For example, whether a particular CCP mode is allowed can depend on the luminance coefficient.

[0785] i. For example, whether a particular CCP mode is allowed can depend on the sum of the luminance coefficients.

[0786] ii. For example, whether a particular CCP mode is allowed may depend on the scan position with a non-zero luminance coefficient.

[0787] iii. For example, whether a particular CCP mode is allowed can depend on the number of non-zero luminance coefficients.

[0788] iv. For example, whether a multi-model CCP mode is allowed can depend on the luminance coefficient.

[0789] v. For example, whether a single-model CCP mode is allowed can depend on the luminance coefficient.

[0790] h. For example, syntax elements associated with a CCP mode can only be transmitted via signals if the CCP mode is permitted.

[0791] i. For example, if a CCP pattern is not allowed, its associated syntax element can be presumed to have a specific value that indicates that no such CCP pattern is allowed / applicable / used for such a block.

[0792] 2) Whether and / or how CCP mode is transmitted via signal transmission can be based on decoded information.

[0793] a. For example, CCP mode can be based on inter-frame CCCM mode, or intra-frame CCCM mode, or inter-frame CCCM Merge mode, or intra-frame / inter-frame CCP Merge mode, or multi-model inter-frame / intra-frame CCP / CCCM mode.

[0794] b. For example, encoding / decoding information can refer to prediction mode / method, block width / height, luminance sample value, temporal layer of the current block, etc.

[0795] c. For example, whether or how CCP mode is transmitted via signaling can depend on the encoding and decoding information of some specific previously encoded and / or current block.

[0796] i. For example, a particular previously encoded / decoded block can refer to at least one neighboring block of the current block.

[0797] 1. For example, neighboring blocks can be adjacent to and / or not adjacent to the current block.

[0798] 2. For example, a neighboring block can be the TU / PU / CU in the M rows above and / or the N columns to the left of the current block.

[0799] a. For example, M and N can be based on CTU size and / or maximum TU / PU / CU size.

[0800] b. Alternatively, M and N can be fixed values, such as 32 or 16 or 8 or 4 or 2.

[0801] 3. For example, neighboring blocks can be defined based on a predefined inspection order (such as LUTs or rules).

[0802] 4. For example, neighboring blocks may be temporally co-located and / or in the same picture as the current block.

[0803] 5. For example, neighboring blocks can be defined based on a history-based table (such as a FIFO table that stores prediction methods for previously encoded and decoded blocks).

[0804] ii. For example, whether a syntax element of mode B is transmitted via signaling can be based on whether some specific previously encoded or decoded block of mode A is utilized.

[0805] 1. For example, mode A can be inter-frame CCCM, and mode B can be a sub-mode of inter-frame CCCM (such as inter-frame CCCM Merge mode or multi-model inter-frame CCCM, etc.).

[0806] 2. For example, mode A can be intra / inter-frame CCP, and mode B can be a sub-mode of intra / inter-frame CCP (such as intra / inter-frame CCP Merge mode, multi-model intra / inter-frame CCP, etc.).

[0807] 3. For example, if there are at least K blocks encoded using pattern A (e.g., adjacent to or preceding the current block), then syntax elements of pattern B can be signaled. Otherwise, pattern B can be presumed to be unused.

[0808] iii. For example, the maximum length of the candidate list size for mode B can be based on whether some specific previously encoded blocks of mode A have been utilized.

[0809] 1. For example, mode A can be inter-frame CCCM, and mode B can be a sub-mode of inter-frame CCCM (such as inter-frame CCCM Merge mode, etc.).

[0810] 2. For example, mode A can be intra / inter-frame CCP, and mode B can be a sub-mode of intra / inter-frame CCP (such as intra / inter-frame CCP Merge mode, etc.).

[0811] 3. For example, if the number of previously encoded / decoded blocks meets certain conditions (such as being less than a certain value), a smaller value can be assigned as the maximum length of the candidate list size.

[0812] a. Alternatively, a larger value may be assigned as the maximum length of the candidate list size, provided that the number of previously encoded / decoded blocks meets certain conditions (such as being greater than a certain value).

[0813] iv. For example, how to transmit a signal via a candidate index in the candidate list of mode B can be based on whether some specific previously encoded blocks of mode A are utilized.

[0814] 1. For example, mode A can be inter-frame CCCM, and mode B can be a sub-mode of inter-frame CCCM (such as inter-frame CCCM Merge mode, etc.).

[0815] 2. For example, mode A can be intra / inter-frame CCP, and mode B can be a sub-mode of intra / inter-frame CCP (such as intra / inter-frame CCP Merge mode, etc.).

[0816] 3. For example, if the number of previously encoded / decoded blocks meets certain conditions (such as being less than a certain value), fewer bits can be allocated to encode / decode candidate indices.

[0817] a. Alternatively, if the number of previously encoded / decoded blocks meets certain conditions (such as being greater than a certain value), more bits can be allocated to encode / decode candidate indices.

[0818] d. For example, whether or how CCP mode is transmitted via signaling can depend on the encoding / decoding information of the current block.

[0819] i. For example, whether a syntax element of signal transmission mode B can be conditional on whether the current mode is encoded or decoded using mode A.

[0820] 1. For example, pattern B can be a subpattern of pattern A.

[0821] 2. For example, whether the flag for inter-frame CCCM Merge mode is transmitted via signal transmission can be conditional upon the presence of the inter-frame CCCM mode flag.

[0822] a. For example, the inter-frame CCCM Merge mode can be considered a sub-mode of the inter-frame CCCM mode.

[0823] b. For example, if the inter-frame CCCM mode flag is true, the inter-frame CCCM Merge flag can be transmitted via signaling.

[0824] i. For example, if the inter-frame CCCM Merge mode flag is equal to 0 and the inter-frame CCCM mode flag is true, it indicates that regular inter-frame CCCM, rather than inter-frame CCCM Merge mode, is used (e.g., the inter-frame CCCM model parameters are calculated from the training samples, rather than inherited).

[0825] 3. For example, whether the flag for transmitting multi-mode inter-frame CCCM mode via signal transmission can be conditional upon the presence of the inter-frame CCCM mode flag.

[0826] a. For example, multi-model inter-frame CCCM mode can be regarded as a sub-mode of inter-frame CCCM mode.

[0827] b. For example, if the inter-frame CCCM mode flag is true, the multi-model inter-frame CCCM flag can be transmitted via signaling.

[0828] i. For example, if the multi-model inter-frame CCCM mode flag is equal to 0 and the inter-frame CCCM mode flag is true, it indicates that single-model inter-frame CCCM is used.

[0829] ii. Alternatively, the flag of mode B may be transmitted via signaling independently of the presence of mode A.

[0830] 1. For example, even if the inter-frame CCCM flag is equal to 0, the inter-frame CCCM Merge mode can still be used / transmitted via signaling.

[0831] e. For example, whether CCP mode can be transmitted via signaling can be determined at the CU / PU / TU level, CTU level, slice level, sub-picture level, strip (header) level, picture (header) level, picture group level, sequence level, etc.

[0832] f. For example, syntax elements of CCP mode can be encoded and decoded in context.

[0833] i. For example, at least one context model can be used.

[0834] ii. For example, more than one context model can be used.

[0835] 1. For example, which context model is used may depend on the width and / or height of the block (e.g., TU / PU / CU).

[0836] a. For example, if the block size satisfies the condition W>a*H or H>b*W, a specific context model can be used, where a and b are constants, such as a=b=2.

[0837] 2. For example, which context model to use can depend on the prediction patterns of neighboring blocks.

[0838] a. For example, the context model of pattern B may depend on whether a particular neighbor (left and / or above) is encoded or decoded using pattern A.

[0839] i. For example, which context model is used for the inter-frame CCCM Merge mode flag can depend on whether the left and / or upper neighboring frames are encoded or decoded using the inter-frame CCCM Merge mode.

[0840] ii. For example, which context model is used for the multi-model inter-frame CCCM mode flag can depend on whether the left and / or upper neighboring frames are encoded or decoded using the multi-model inter-frame CCCM mode.

[0841] b. For example, the context model of pattern B may depend on whether the left and / or upper neighbors are encoded or decoded using pattern B.

[0842] i. For example, which context model is used for the inter-frame CCCM Merge mode flag can depend on whether the left and / or upper neighboring frames are encoded or decoded using inter-frame CCCM mode.

[0843] ii. For example, which context model is used for the multi-model inter-frame CCCM mode flag can depend on whether the left and / or upper neighboring frames are encoded or decoded using inter-frame CCCM mode.

[0844] 3) Bias factors can be used to determine the use of a specific CCP mode.

[0845] a. For example, assuming that the determination of the use of a particular CCP mode is based on a cost comparison derived from the decoder, a bias factor can be introduced for cost evaluation.

[0846] i. For example, the cost of decoding derivation for a specific pattern can be derived based on the difference between the true reconstructed sample values ​​and the pattern-predicted sample values ​​in a predefined region of the sample.

[0847] 1. For example, the predefined region of a sample point can be the neighboring sample points surrounding the current block.

[0848] 2. Alternatively, the predefined region of a sample point can be a reference sample point in a reference block in the current image (e.g., a BV-guided reference block).

[0849] 3. Alternatively, the predefined area of ​​the sample point can be a reference sample point in a reference block in a reference image (e.g., a reference block guided by an MV).

[0850] ii. For example, whether to use the first mode or the second mode can be determined by a cost evaluation derived from the decoder.

[0851] 1. For example, the cost of two decoding derivations can be calculated for each mode, such as by cost A and cost B, and whether the first mode is selected can be determined by whether the following condition is true.

[0852] a. ((a*cost A + offset)>>shift)<cost B, where a / offset / shift is the bias factor.

[0853] 2. For example, the first mode can be a multi-model CCP mode, while the second mode can be a single-model CCP.

[0854] a. For example, in addition, CCP can be inter-frame CCCM.

[0855] 3. For example, the first mode can be a multi-filter CCP mode, while the second mode can be a single-filter CCP mode.

[0856] a. For example, in addition, CCP can be inter-frame CCCM.

[0857] b. For example, in addition, CCP can be an intra-frame CCCM.

[0858] iii. For example, the value of the bias factor can depend on the decoded information.

[0859] 1. For example, it can be based on the time domain layer.

[0860] 2. Alternatively, the bias factor can be set to a predefined constant.

[0861] 4) Luminance samples used for CCP model calculations can be downsampled based on block size.

[0862] a. For example, CCP mode can be inter-frame CCCM mode, inter-frame CCP mode, or intra-frame CCP mode.

[0863] b. For example, the downsampling factor can depend on the block size.

[0864] i. For example, the downsampling factor may not depend on the chroma format.

[0865] ii. For example, a larger downsampling factor can be assigned for larger blocks.

[0866] iii. For example, the downsampling factor can be predefined based on the block width and / or height (e.g., based on LUT).

[0867] c. For example, downsampled luminance blocks can be used for CCP model calculations.

[0868] i. For example, downsampled blocks can be used for data collection to compute CCP model parameters.

[0869] ii. For example, downsampled blocks can be used to compute thresholds for multi-model sample point classification / classification.

[0870] d. For example, the maximum allowed number of samples calculated for a specific CCP model can be equal to X (where X is a predefined constant, such as X = 256, 1024, or 4096).

[0871] i. For example, regardless of the original block size (e.g., even for 256x256, 128x128, or 64x64 blocks), the number of samples used for calculation of a particular CCP model may not exceed the value of X.

[0872] ii. For example, alternatively, different X values ​​can be used for different CCP modes.

[0873] 1. For example, X1 can be used for single-model inter-frame CCCM mode; while X2 can be used for multi-model inter-frame CCCM mode, where X2>=X1.

[0874] 2. For example, X1 can be used for single-model inter-frame CCP mode; while for multi-model inter-frame CCP mode, X2 can be used, where X2>=X1.

[0875] iii. Alternatively, the limitation may not be applied to the maximum allowed number of samples calculated for a specific CCP model.

[0876] 1. For example, all samples of a block (without downsampling) can be used for CCP model calculations.

[0877] 2. For example, X1 can be used for single-model inter-frame CCCM mode; while for multi-model inter-frame CCCM mode, there are no restrictions on its use.

[0878] 3. For example, X1 can be used for single-model inter-frame CCP mode; while for multi-model inter-frame CCP mode, there are no restrictions on its use.

[0879] 4. For example, the maximum allowed number of samples for a specific CCP model can be unrestricted, regardless of whether it is a multi-model or single-model CCP / CCCM model calculation.

[0880] 5) Diversity criteria can be applied to reorder / rank multiple candidate CCP patterns.

[0881] a. For example, CCP model candidates in the candidate list can be reordered / ranked according to diversity criteria.

[0882] b. For example, diversity criteria could be based on the cost difference between the current candidate and its predecessor in the list.

[0883] i. For example, cost can refer to the cost deduced by the decoder based on decoding information (e.g., template cost, reference block prediction cost, etc.).

[0884] ii. For example, diversity candidates can be placed at the beginning of the list.

[0885] 1. In addition, for example, redundant candidates can be placed after non-redundant candidates.

[0886] iii. For example, if the minimum cost difference between the current candidate and its predecessor is less than a threshold, the current candidate can be considered redundant.

[0887] 1. For example, the threshold can depend on the Lagrange parameter.

[0888] 2. For example, thresholds can be predefined according to rules.

[0889] 3. For example, the threshold can be a constant.

[0890] 4. For example, the threshold can depend on the decoding information (such as the temporal layer, block dimension, etc.).

[0891] c. For example, the final CCP model can be selected from a candidate list of reordering / sorting of the encoding and decoding for the current block.

[0892] i. In addition, for example, indicators (e.g., indices) can be transmitted via signals in the bitstream to specify the final candidate selected from the entire candidate list.

[0893] d. For example, CCP Merge modes (e.g., intra-frame CCP Merge mode, inter-frame CCP Merge mode, inter-frame CCCM Merge mode, etc.) can be applied based on a reordered / sorted candidate list.

[0894] 6) Whether to use a model computed on the fly or a derived model can be determined based on the method of derivation by the decoder (rather than encoder selection).

[0895] a. For example, the CCP model can be calculated on the fly (e.g., the CCP model can be calculated from reference luminance samples and reference chrominance samples), or it can be derived / inherited from the CCP model associated with previously encoded / decoded CCP blocks.

[0896] b. For example, whether the computed CCP model or the deduced / inherited CCP model is used for the current block (or, which CCP model will be used) may depend on the cost evaluation method deduced by the decoder.

[0897] i. For example, cost evaluation methods derived from decoder derivation can be applied based on decoder-side information such as reference samples.

[0898] ii. For example, given a candidate model, the predicted chromaticity samples can be obtained by applying the candidate model to reference luminance samples, and the cost can be calculated by accumulating the differences between the predicted and reconstructed chromaticity samples. In this way, each candidate model can calculate its own cost.

[0899] iii. For example, comparisons can be made based on comparing the cost of the model computed on the fly with the cost of the model derived / inherited, and the model with the lower cost can be determined as the final model for the current block.

[0900] iv. For example, comparisons can be made based on comparing the cost of the first derivation / inheritance model and the cost of the second derivation / inheritance model, and the model with the lower cost can be determined as the final model for the current block.

[0901] c. For example, no syntax element can be signaled to indicate whether a computed CCP model or a derivation / inherited CCP model (or, which CCP model will be used) is used for the current CCP-encoded block.

[0902] i. For example, it can be determined on the decoder side.

[0903] ii. For example, encoder search based on rate-distortion optimization (RDO) may not be necessary.

[0904] d. For example, the CCP model for a block encoded and decoded by inter-frame CCCM can be calculated from reference samples or derived / inherited from a previous block encoded and decoded by inter-frame CCCM, but it is not necessary to know where the signal transmission model comes from.

[0905] i. For example, only one flag (e.g., the inter-frame CCCM flag) can be signaled to specify whether the current block is encoded or decoded using inter-frame CCCM. However, it is not necessary to signal additional flags to specify whether it is an on-the-fly computation model or an inherited / derived model.

[0906] 7) The presence (or how syntax elements are signaled) of syntax elements (e.g., pattern flags, candidate indices, etc.) can depend on whether there are (or how many) neighbors are encoded / decoded using a specific prediction pattern / method.

[0907] a. For example, whether or not a signal transmission mode flag is used can depend on this.

[0908] i. For example, if no nearest neighbor is encoded or decoded using prediction mode / method A, the mode flag for prediction mode / method B for the current block may not be transmitted via signaling (e.g., it is presumed to be equal to 0).

[0909] ii. For example, if the number of the upper (and / or left) nearest neighbors encoded with prediction mode / method A is less than a certain value, the mode flag for prediction mode / method B for the current block may not be transmitted via signaling (e.g., it is presumed to be equal to 0).

[0910] b. For example, whether a prediction pattern / method is allowed for the current block may depend on this.

[0911] i. For example, if no nearest neighbor is encoded or decoded using prediction mode / method A, then prediction mode / method B may not be applied to the current block.

[0912] ii. For example, if the number of the top (and / or left) nearest neighbors encoded / decoded using prediction mode / method A is less than a certain value, then prediction mode / method B may not be applied to the current block.

[0913] c. For example, how candidate indices are transmitted via signals may depend on this.

[0914] i. For example, the maximum allowed number of Merge candidates can depend on this.

[0915] ii. For example, if the number of upper (and / or left) nearest neighbors encoded / decoded using a specific prediction mode / method is equal to K0, then the maximum allowed number of merge candidates for the current block can be equal to L0. Otherwise, if the number of upper (and / or left) nearest neighbors encoded / decoded using a specific prediction mode / method is equal to K1, then the maximum allowed number of merge candidates for the current block can be equal to L1, where K0, K1, L0, and L1 are predefined values.

[0916] iii. For example, the binarization process may depend on this.

[0917] d. For example, the context model for syntax signaling can depend on this.

[0918] i. For example, which context model to use can depend on how many nearest neighbors are encoded / decoded using prediction mode / method A.

[0919] e. For example, the size of the Merge list can depend on this.

[0920] i. For example, if the number of above (and / or left) nearest neighbors encoded / decoded using a specific prediction mode / method is equal to K0, then the size of the Merge list for the current block can be equal to L0. Otherwise, if the number of above (and / or left) nearest neighbors encoded / decoded using a specific prediction mode / method is equal to K1, then the size of the Merge list for the current block can be equal to L1, where K0, K1, L0, and L1 are predefined values.

[0921] f. For example, the nearest neighbors to be checked can be based on the current TU / PU / CU above M rows and / or to the left N columns.

[0922] g. For example, the nearest neighbors to be examined can be based on spatial proximity and / or non-proximity and / or candidates based on the temporal domain.

[0923] i. For example, nearest neighbors can be checked based on the candidate check order of the Merge list.

[0924] 1. For example, deduplication may not be applied.

[0925] 2. For example, reconstructed samples may not be checked.

[0926] 3. For example, filling candidates may not be checked.

[0927] h. For example, the existence of syntax flags for pattern B can depend on the encoding and decoding information of neighboring blocks (such as whether the nearest neighbor is encoded and decoded using pattern A).

[0928] i. For example, pattern B can be a subpattern of pattern A.

[0929] ii. For example, pattern B can be equivalent to pattern A.

[0930] iii. For example, the presence of the CCP Merge / submode flag can depend on whether neighboring blocks are encoded or decoded using CCP mode.

[0931] iv. For example, the presence of the inter-frame CCCM Merge / submode flag can depend on whether neighboring blocks are encoded or decoded using inter-frame CCCM mode.

[0932] v. For example, the presence of the CIIP TM / submode flag can depend on whether neighboring blocks are encoded or decoded using inter-frame / CIIP / TM mode.

[0933] vi. For example, the presence of the DIMD Merge / submode flag can depend on whether neighboring blocks are encoded or decoded using intra-frame / DIMD / TIMD modes.

[0934] vii. For example, the presence of the TIMD Merge / submode flag can depend on whether neighboring blocks are encoded or decoded using intra-frame / DIMD / TIMD modes.

[0935] 8) Multiple assumptions: CCP can be applied to video blocks.

[0936] a. For example, the prediction of chroma blocks can be generated based on the mixing / fusion of the first CCP prediction and the second CCP prediction.

[0937] i. For example, the first CCP prediction and the second CCP prediction can be different.

[0938] b. For example, chroma block predictions can be generated based on a mixture / fusion of regular inter-frame (or intra-frame) predictions and CCP predictions.

[0939] c. For example, CCP prediction can be generated based on inter-frame CCCM mode, inter-frame CCP mode, intra-frame CCP mode, etc.

[0940] d. For example, CCP predictions can be generated based on CCP models of previously encoded and decoded CCP blocks (such as spatially adjacent, non-adjacent, history-based, and time-based CCP candidates).

[0941] e. For example, CCP predictions can be generated based on the calculation of a CCP model using neighboring sample information (or reference sample information).

[0942] f. For example, a weighted sum of multiple hypotheses can be considered as the final prediction of a video block.

[0943] i. For example, average weighting (e.g., equal weights) can be applied.

[0944] ii. For example, fixed weighting factors (e.g., predefined unequal weights) can be used.

[0945] iii. For example, weights can be determined based on reconstruction / decoding information for neighboring samples / blocks.

[0946] 1. For example, if the energy of the residual signal in the decoded region is low, a higher weight can be assigned to the hypothesis (e.g., the energy of the residual signal in the decoded region can be calculated based on the absolute difference of the cumulative neighboring sample regions, in the case of prediction methods / patterns with and without hypotheses).

[0947] iv. For example, weights can be derived based on syntactic information.

[0948] 9) The disclosed method can be used in a single tree.

[0949] 10) The disclosed method can be used in two trees.

[0950] 11) The disclosed method can be used in inter-frame (such as B or P) stripes.

[0951] 12) The disclosed method can be used in intra-frame (such as I) stripes.

[0952] 13) Whether and / or how the methods disclosed above can be applied can be transmitted via signaling at the sequence level / picture group level / picture level / strip level / piece group level, such as in the sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / strip header / piece group header.

[0953] 14) Whether and / or how the methods disclosed above can be applied to transmit signals at PB / TB / CB / PU / TU / CU / VPDU / CTU / CTU lines / strips / films / sub-images / other types of areas containing more than one sample point or pixel.

[0954] 15) Whether and / or how to apply the methods disclosed above may depend on the encoded / decoded information, such as block size, color format, single-tree splitting / double-tree splitting, color components, and stripe / picture type.

[0955] 3 questions In the current ECM, intra-blocks can be encoded and decoded using an intra-CCP model, where intra-CCP model parameters can be inherited from neighboring intra-codec blocks or calculated on the fly from a reference region consisting of luminance and chrominance reconstructed samples adjacent to the current block.

[0956] Furthermore, inter-frame or IBC blocks can be encoded and decoded using an inter-frame CCCM model, where the parameters of the inter-frame CCCM model are calculated in real time from a reference region consisting of luminance and chrominance samples in the inter-frame or IBC prediction block.

[0957] Furthermore, due to BV-guided CCCM, IBC or intraTMP blocks can be encoded and decoded using a BV-guided CCCM model, where the parameters of the BV-guided CCCM model are calculated in real time from the reference area pointed to by the block vector of the co-position luminance block.

[0958] The above design is insufficient. Theoretically, CCP model parameters from previous codec blocks can be reused / inherited for subsequent codec blocks, regardless of whether the subsequent codec block is intra-frame, inter-frame, or IBC. Furthermore, given a codec block and a reference region, different types of CCP models can be computed from the reference region, regardless of whether the codec block is intra-frame, inter-frame, or IBC.

[0959] In the current ECM, CCP model computation can use samples from the current block, and CCP model application can use samples from the reference region. The use of samples from the current block and the reference region can be decoupled.

[0960] 4 Specific Solutions The specific embodiments described below should be considered as examples for explaining general concepts. These embodiments should not be interpreted in a narrow sense. Furthermore, these embodiments can be combined in any way.

[0961] The term "video unit" or "code-decoder unit" can refer to a picture, strip, slice, code-decoder tree block (CTB), code-decoder tree unit (CTU), code-decoder block (CB), CU, PU, ​​TU, PB, TB.

[0962] The term "block" can refer to code-decode tree block (CTB), code-decode tree unit (CTU), code-decode block (CB), CU, PU, ​​TU, PB, and TB.

[0963] The term "CCP" can refer to any cross-component prediction method, such as any kind of LM / CCLM / MMLM / CCCM / GLM / GL-CCCM. It can be an inter-frame CCP, an intra-frame CCP, or a BV-guided CCP.

[0964] The term "CCP mode" can refer to either CCP mode or CCP Merge mode. Examples of CCP Merge modes include inter-frame CCCM Merge mode, intra-frame CCCM Merge mode, inter-frame CCP Merge mode, intra-frame CCP Merge mode, etc. CCP mode can be based on a single model or multiple models. CCP mode can be based on a single filter or multiple filters. CCP mode can be applied to inter-frame blocks, intra-frame blocks, or IBC blocks.

[0965] The term "CCP model" in CCP mode can be computed based on decoded information such as neighboring samples or reference samples. It can also be inherited / copied / transformed / generated from previously encoded / decoded blocks. CCP models can be based on linear, nonlinear, or convolutional models.

[0966] The term "CCCM" can refer to intra-frame CCCM mode, inter-frame CCCM mode, BVG CCCM mode, IBC CCCM mode, intraTMP CCCM mode, etc. It can be a regular CCCM mode or a variant of a regular CCCM mode (e.g., GL-CCCM, CCCM without downsampling, CCRM, etc.). CCCM mode can be based on a single model or multiple models.

[0967] In this regard, when talking about block dimensions such as block width and block height, "W" is used to represent block width and "H" is used to represent block height, and the block can be TU / PU / TU.

[0968] It should be noted that the terms mentioned below are not limited to the specific terms defined in existing standards. Any changes to encoding / decoding tools also apply.

[0969] 1) Given the current inter-frame (or IBC) block, a specific type of CCP model can be used, and the CCP model parameters can be calculated from the reference region.

[0970] a. For example, the CCP model can be a style of intra-frame CCP model, such as LM / CCLM / MMLM / GLM / CCCM / intra-frame CCCM and / or its variant models.

[0971] b. For example, the CCP model could be inter-frame CCCM.

[0972] c. For example, CCP model parameters can be calculated on the fly from the reference region.

[0973] d. For example, a reference region may consist of luminance reconstruction samples and chrominance reconstruction samples adjacent to the current block (e.g., within the current frame).

[0974] i. For example, the reference area can consist of up to M columns of luminance and chrominance reconstructed samples at the top and left of the current block, and N rows of luminance and chrominance reconstructed samples, such as M=N=6.

[0975] e. For example, the reference region may consist of luminance reconstructed samples and chrominance reconstructed samples retrieved based on block vectors (e.g., within the current frame).

[0976] i. For example, block vectors can be derived based on previously encoded or decoded IBC or intraTMP blocks.

[0977] ii. For example, the reference region may consist of luminance and chrominance samples of the reference block to which the block vector points.

[0978] f. For example, the reference region may consist of luminance reconstruction samples and chrominance reconstruction samples retrieved based on motion vectors (e.g., within the reference frame).

[0979] i. For example, motion vectors can be derived based on the current block or previously encoded inter-frame blocks.

[0980] ii. For example, the reference region may consist of luminance and chrominance samples of the reference block to which the motion vector points.

[0981] g. For example, the calculated CCP model may be based on at least one of the following models (or variations thereof): i. Linear regression model / Model based on linear regression filter ii. Convolutional Models / Models Based on Convolutional Filters iii. Model based on extrapolation filter iv. Single-model LM v. Multi-model LM vi. Single-model GLM (e.g., considering gradient information) vii. Multi-model GLM (e.g., considering gradient information) viii. Single-model intra-frame CCCM ix. Multi-model intra-frame CCCM x. Single-model intra-frame CCCM without lumen downsampling xi. Multi-model intra-frame CCCM without lumen downsampling xii. Intra-frame GL-CCCM for a single model (e.g., considering gradient and position information) xiii. Multi-model intra-frame GL-CCCM (e.g., considering gradient and position information) xiv. Single-model intra-frame MDF-CCCM (e.g., considering multiple filters) xv. Multi-model intra-frame MDF-CCCM (e.g., considering multiple filters) xvi. Single-model inter-frame CCCM xvii. Multi-model Inter-frame CCCM xviii. Single-model inter-frame CCCM without lumen downsampling xix. Multi-model inter-frame CCCM without lumen downsampling xx. Single-model inter-frame GL-CCCM (e.g., considering gradient and position information) xxi. Multi-model inter-frame GL-CCCM (e.g., considering gradient and position information) xxii. Single-model inter-frame MDF-CCCM (e.g., considering multiple filters) xxiii. Multi-model inter-frame MDF-CCCM (e.g., considering multiple filters) xxiv. The model above can be based on both the upper neighboring samples / templates and the left neighboring samples / templates (e.g., a TL-based model). xxv. The model above can be based on the upper neighboring sample points / template or the left neighboring sample points / template (e.g., a T-based pattern or an L-based pattern). xxvi. The chroma predictions from the model above can also be fused / blended with the second prediction to form the final prediction block for encoding and decoding. 2) Given the current inter-frame (or IBC) block, a specific type of CCP model can be used, and the CCP model parameters can be derived / inherited from the previous CCP model.

[0982] a. For example, CCP model parameters can be derived / inherited from previously encoded / decoded inter-frame blocks (e.g., TU / CU / PU).

[0983] i. For example, the previously encoded / decoded block could be encoded / decoded via inter-frame CCCM.

[0984] ii. For example, a previously encoded block may not be encoded using inter-frame CCCM, but it has a reference block encoded using inter-frame CCCM or BVG CCCM.

[0985] iii. For example, the previously encoded block may not be encoded using inter-frame CCCM, but it has a reference block encoded using intra-frame CCP (such as LM / CCLM / MMLM / GLM / CCCM).

[0986] b. For example, CCP model parameters can be derived / inherited from previously encoded / decoded intra-blocks.

[0987] i. For example, previously encoded / decoded blocks can be encoded / decoded using intra-frame CCP (such as LM / CCLM / MMLM / GLM / intra-frame CCCM or variants thereof) models.

[0988] c. For example, CCP model parameters can be derived / inherited from previously encoded / decoded IBC blocks (e.g., TU / CU / PU).

[0989] i. For example, the previously encoded / decoded block could be encoded / decoded using BVG CCCM.

[0990] ii. For example, the previously encoded / decoded block may have been encoded / decoded via inter-frame CCCM.

[0991] iii. For example, a previously encoded block may not be encoded using BVG or inter-frame CCCM, but it has a reference block encoded using inter-frame CCCM, BVG CCCM, or intra-frame CCP (such as LM / CCLM / MMLM / GLM / CCCM).

[0992] d. For example, CCP model parameters can be derived / inherited based on spatially adjacent neighboring blocks or spatially non-adjacent neighboring blocks.

[0993] e. For example, CCP model parameters can be derived / inherited based on time-domain blocks.

[0994] i. For example, a temporal block can be pointed to by a motion displacement (e.g., the current MV, neighboring MVs, etc.).

[0995] ii. For example, a time-domain block can be in the same position as the current block.

[0996] f. For example, CCP model parameters can be derived / inherited based on a history-based lookup table.

[0997] i. For example, historical candidates could be inter-frame CCCM models.

[0998] ii. For example, historical candidates can be intra-frame CCP models (such as LM / CCLM / MMLM / GLM / intra-frame CCCM or variants thereof).

[0999] g. For example, the derived / inherited CCP model can be applied, using the current inter-frame (or IBC) luminance reconstruction block as input, and then outputting the estimated / predicted inter-frame (or IBC) chrominance prediction block.

[1000] 3) Given the current intra-frame block, the inter-frame CCCM model can be used, and the parameters of the inter-frame CCCM model can be derived / inherited from the previous inter-frame CCCM model.

[1001] a. For example, the current intra-frame block can belong to a B-strip or a P-strip.

[1002] b. For example, the previous inter-frame CCCM model could come from blocks that have been inter-frame encoded and decoded.

[1003] c. For example, previous inter-frame CCCM models could be derived based on spatially adjacent neighboring blocks or spatially non-adjacent neighboring blocks.

[1004] d. For example, previous inter-frame CCCM models could be derived based on temporal blocks.

[1005] i. For example, a temporal block can be pointed to by a motion displacement (e.g., the current MV, neighboring MVs, etc.).

[1006] ii. For example, a time-domain block can be in the same position as the current block.

[1007] e. For example, previous inter-frame CCCM models could be derived based on history-based lookup tables.

[1008] i. For example, the inter-frame CCCM model in the history table can come from previously encoded and decoded inter-frame blocks.

[1009] f. For example, the derived / inherited inter-frame CCCM model can be applied, using the current intra-frame luma reconstruction block as input, and then outputting the estimated / predicted intra-frame chroma prediction block.

[1010] 4) For the current inter-frame / IBC / intra-frame block, more than one type of CCP model can be calculated / inherited / derived.

[1011] a. For example, types and / or variants of LM / CCLM and / or MMLM can be calculated.

[1012] b. For example, the type and / or variant models of GLM can be calculated.

[1013] c. For example, the type of intra-frame CCCM and / or multi-model intra-frame CCCM and / or its variant models can be calculated.

[1014] d. For example, the type of inter-frame CCCM and / or its variant models can be calculated.

[1015] e. For example, the type and / or variant model of BVG CCCM can be calculated.

[1016] f. For example, the CCP model can be derived / inherited from a previously encoded / decoded block, and the CCP model is associated with that block.

[1017] g. For example, the CCP model can be calculated (instantly) from the reference region.

[1018] h. For example, the same / uniform reference region can be used to calculate model parameters for these different types of CCP models.

[1019] i. For example, all LM, CCLM, MMLM, GLM, intra-frame CCCM, inter-frame CCCM, and BVGCCCM model parameters can be calculated based on the same reference region based on inter-frame (or IBC) prediction.

[1020] ii. For example, all LM, CCLM, MMLM, GLM, intra-frame CCCM, inter-frame CCCM, and BVGCCCM model parameters can be calculated based on the same reference region based on neighboring samples.

[1021] i. Alternative locations: Different reference regions can be used for calculating parameters of different types of CCP models.

[1022] i. For example, the inter-frame CCCM model can use a reference region based on inter-frame prediction, and the BVG CCCM model can use a reference region based on IBC prediction, while the LM / CCLM / MMLM / GLM / intra-frame CCCM model can use a reference region based on neighboring samples.

[1023] 5) Different types of CCP model candidates for the current block can be inserted into the candidate model list.

[1024] a. For example, only inherited / derived CCP models can be inserted into the candidate list (i.e., those candidates computed on the spot can be excluded from such a candidate list).

[1025] b. For example, only CCP models computed on the spot can be inserted into the candidate list (i.e., those inherited / derived candidates may not be inserted into such a candidate list).

[1026] c. For example, both inherited / derived CCP models and just-in-time computed CCP models can be inserted into a single candidate list.

[1027] d. For example, one of these candidates in the candidate list can be selected for encoding and decoding the current block.

[1028] e. For example, what type of CCP model can be transmitted via signal in the bitstream and ultimately used for the current block.

[1029] i. For example, model indexes can be transmitted via signals.

[1030] ii. For example, some pattern flags can be transmitted via signals.

[1031] f. For example, which CCP model is ultimately used for the current block can be deduced at both the encoder and decoder sides (e.g., not through signal transmission).

[1032] i. For example, costs / rules / standards based on decoded information can be used.

[1033] g. For example, which CCP model is ultimately used for the current block can be based on predefined rules (e.g., not via signaling).

[1034] i. For example, a list of candidate models can be constructed and sorted according to rules, and then candidates in a fixed order of the list (e.g., first order) can be ultimately selected.

[1035] 6) CCP model candidates can be sorted according to rules.

[1036] a. For example, the cost of decoder derivation can be computed for each model candidate to be ranked.

[1037] i. For example, the cost of sorting can be derived based on a template.

[1038] 1. For example, a template can refer to the brightness reconstruction samples in M ​​columns and N rows at the top and left of the current block, such as M=N=1 or 2 or 3.

[1039] ii. Alternatively, the cost of sorting can be derived based on inter-frame / IBC prediction blocks.

[1040] iii. For example, each candidate to be ranked can follow the same cost evaluation criteria to calculate its own cost.

[1041] iv. For example, among all these candidates to be sorted, the model candidate with the lowest cost can be selected for the next step of processing.

[1042] b. For example, only inherited / derived CCP model candidates can be sorted (i.e., inter-frame CCCM models computed on the fly can be left unsorted).

[1043] c. For example, only CCP models that are computed on the fly can be sorted.

[1044] d. For example, both inherited / derived CCP models and just-in-time computed CCP models can be sorted.

[1045] i. For example, inherited / derived CCP models can be sorted according to rule A, while those computed on the fly can be sorted according to rule B.

[1046] 1. For example, rule A can calculate the cost based on a reference region consisting of inter-frame / IBC prediction blocks.

[1047] 2. For example, rule B can calculate the cost based on a reference region composed of templates.

[1048] ii. For example, both inherited / derived CCP models and just-in-time computed CCP models can be sorted according to the same rules.

[1049] 1. For example, the cost of all candidates can be calculated based on the same reference region (e.g., inter-frame prediction block, IBC prediction block, template with adjacent neighboring samples, etc.).

[1050] e. For example, a sorting process with more than one round can be used in the CCP pattern.

[1051] i. For example, in order to derive the final CCP model for a block that has been encoded and decoded by inter-frame CCP, more than one round of sorting process can be applied.

[1052] ii. For example, suppose CCP model candidates are classified into two groups. The first group of CCP model candidates is derived based on the motion information of the current block, while the second group of CCP model candidates is derived without the motion information of the current block. The first group of CCP model candidates may not be sorted / reordered together with the second group of CCP model candidates.

[1053] a. For example, the first group of CCP model candidates may include at least one of the following CCP model candidates: i. Real-time computed CCP models (e.g., inter-frame CCCM, intra-frame CCCM, intra-frame CCLM, intra-frame GLM, etc.) ii. CCP model derived from spatially adjacent blocks iii. CCP model derived based on spatially non-adjacent blocks iv. CCP model derived from history-based lookup table v. A CCP model based on temporal block derivation, where temporal blocks are derived from motion information of neighboring blocks (e.g., candidates for temporal shifts). vi. Default CCP model (e.g., generated from existing CCP candidates using predefined rules, generated based on CCLM, generated without considering the motion information of the current block, etc.) b. For example, the second group of CCP model candidates may include CCP models of time-domain blocks derived from motion information of the current block.

[1054] c. For example, the first group of CCP model candidates can be sorted together in the first round of sorting.

[1055] i. For example, the M candidates with the lowest cost after the first round of ranking can be considered as input and further ranked together with the second group of CCP model candidates in the second round of ranking.

[1056] d. For example, the second group of CCP model candidates can be ranked together in the first round of ranking.

[1057] i. For example, the N candidates with the lowest cost after the first round of sorting can be considered as input and further sorted together with the first group of CCP model candidates in the second round of sorting.

[1058] f. For example, a temporal CCP model candidate for CCP mode can be derived without motion information of the current block.

[1059] i. For example, CCP mode can refer to inter-frame CCP mode.

[1060] g. For example, the real-time computed inter-frame CCCM model may not be ordered together with those CCP models derived from previously encoded / decoded blocks.

[1061] h. For example, real-time computed inter-frame CCCM models may not be ordered together with those real-time computed intra-frame CCP models.

[1062] i. Alternatively, the real-time computed inter-frame CCCM model may be ordered together with other CCP models (e.g., the real-time computed intra-frame CCP model, and / or the intra-frame CCP model derived from previously encoded / decoded blocks, and / or the intra-frame CCP model, etc.). 7) The CCP model of the current block can be stored in a cache (e.g., image cache, history table) and can be used as a model candidate for encoding and decoding the next block.

[1063] a. For example, the current block can be intra-frame encoded or decoded.

[1064] i. For example, the stored CCP model can be a model based on intra-frame CCP (such as LM / CCLM / MMLM / GLM / CCCM).

[1065] ii. For example, the stored CCP model can be an inter-frame CCCM or a BV-guided CCCM model.

[1066] b. For example, the current block can be non-intra-frame (e.g., inter-frame or IBC) encoded / decoded.

[1067] i. For example, the stored CCP model can be an inter-frame CCCM or a BV-guided CCCM model.

[1068] ii. For example, the stored CCP model can be a model based on intra-frame CCP (such as LM / CCLM / MMLM / GLM / CCCM).

[1069] c. For example, each stored piece of information may include CCP model information and an index of the CCP model information.

[1070] d. For example, the information stored may include CCP model information and its corresponding block location / sub-block location / index / ID.

[1071] e. For example, information in the cache can be accessed for the encoding and decoding of the next block.

[1072] i. For example, the next piece could belong to the current image.

[1073] ii. For example, the next block could be an inter-frame encoded / decoded block.

[1074] iii. For example, the next block could be an intra-frame encoded / decoded block.

[1075] f. For example, information in the cache can be accessed for the encoding and decoding of the next image.

[1076] i. For example, an intra-frame CCP model can be used as a temporal model candidate for encoding and decoding the next picture patch.

[1077] 1. For example, the next image block could be an inter-frame encoded block.

[1078] 2. For example, the next image block can be an intra-frame encoded block.

[1079] ii. For example, the inter-frame CCCM model can be used as a temporal model candidate for encoding and decoding the next picture patch.

[1080] 1. For example, the next image block could be an inter-frame encoded block.

[1081] 2. For example, the next picture block could be an intra-frame encoded block in a B-strip / P-strip.

[1082] 8) For example, given a block encoded / decoded via inter-frame / IBC, the CCP model can be stored in association with such a block, even if it is not encoded / decoded via the CCP model.

[1083] a. For example, a model of inter-frame MV (or IBC-BV) propagation can be stored in association with such a block.

[1084] i. For example, the model of inter-frame MV propagation can be based on the motion vectors of such inter-frame blocks being retrieved.

[1085] ii. For example, the model of IBC-BV propagation can be based on the block vector of such IBC blocks being retrieved.

[1086] iii. For example, the CCP model of a reference block pointed to by an inter-frame MV (or IBC-BV) (e.g., assuming the reference block is encoded and decoded using a CCP model) can be stored in association with such a block.

[1087] b. For example, the stored CCP model can be an inter-frame CCCM or a BV-guided CCCM model.

[1088] c. For example, the stored CCP model can be a model based on intra-frame CCP (such as LM / CCLM / MMLM / GLM / CCCM).

[1089] 9) For a given block (such as CU, PU, ​​or TU), different components can be encoded and decoded using different encoding and decoding modes.

[1090] a. For example, a given block can be encoded and decoded using a single-tree structure.

[1091] b. For example, for a given block (such as CU, PU, ​​or TU), the luminance component can be encoded and decoded using a first mode, and the chrominance component can be encoded and decoded using a second mode.

[1092] i. For example, the first mode can be AMVP inter-frame, Merge inter-frame, Merge skip, AMVP affine inter-frame, affine Merge inter-frame, affine Merge skip, sbTMVP, IBC AMVP, IBC Merge, IBC Merge skip, angular intra-frame prediction, MIP intra-frame prediction, CCLM or its variants, MM-CCLM or its variants, CCCM or its variants, MM-CCCM or its variants, CCPMerge mode, GPM, CIIP, TM-Merge, SGPM, intra-frame template, etc.

[1093] ii. For example, the second mode can be AMVP inter-frame, Merge inter-frame, Merge skip, AMVP affine inter-frame, affine Merge inter-frame, affine Merge skip, sbTMVP, IBC AMVP, IBC Merge, IBC Merge skip, angular intra-frame prediction, MIP intra-frame prediction, CCLM or its variants, MM-CCLM or its variants, CCCM or its variants, MM-CCCM or its variants, CCPMerge mode, GPM, CIIP, TM-Merge, SGPM, intra-frame template, etc.

[1094] 10) In one example, at least one SE can be transmitted via signal to indicate whether different components can be encoded or decoded using different encoding / decoding modes.

[1095] a. In one example, if SE is not transmitted via signal, then SE can be implicitly interpreted as "false".

[1096] b. In one example, the SE can only be transmitted via signal if the luminance component is encoded or decoded using a specific mode or a specific mode.

[1097] c. In one example, the SE can only be transmitted via signal if the width and / or height of the block meets one or more specific conditions.

[1098] 11) In one example, at least one SE can be signaled to indicate a mode for chroma encoding / decoding that is different from the mode signaled for luminance.

[1099] a. In one example, the SE can only be transmitted via signal if it indicates that the luminance and chrominance components can be encoded and decoded using different encoding and decoding modes.

[1100] b. In one example, a set of candidate patterns can be determined, and the SE can indicate one of the candidate patterns in the set of candidate patterns.

[1101] i. For example, a set of candidate patterns can be determined in a predefined manner.

[1102] ii. For example, a set of candidate patterns can be determined on the spot for the current block.

[1103] 1. This group can depend on the brightness mode.

[1104] 2. This group can depend on the width and / or height of the block.

[1105] 3. This group may depend on neighboring information.

[1106] c. Alternatively, the mode used for chroma encoding and decoding can be determined at the decoder without being transmitted via signal.

[1107] i. In one example, different patterns can be applied to the template of the current block to calculate the cost, and the pattern with the lowest cost can be selected for chroma.

[1108] 12) The model candidate checking rules for inter-frame CCP model inheritance / Merge mode and intra-frame CCP model inheritance / Merge mode can be the same.

[1109] a. For example, for CCP model inheritance / Merge mode, the same CCP model checklist can be defined regardless of the prediction mode of the current block (e.g., whether the current block is inter-frame or intra-frame encoded).

[1110] b. For example, the CCP model checklist may contain candidates from at least one of the following locations, in a predefined order.

[1111] i. Spatial adjacency candidates.

[1112] ii. Temporal candidates at predefined locations.

[1113] iii. Temporal candidates with shifted MVs (e.g., current MV, neighboring MVs, generated MVs, etc.).

[1114] iv. Non-adjacent candidates at predefined locations.

[1115] v. Non-adjacent candidates with shifted BVs (e.g., current BV, neighboring BVs, generated BVs, etc.).

[1116] vi. A history-based lookup table.

[1117] vii. Default candidate.

[1118] viii. Model candidates calculated on the fly (e.g., calculated from a reference region).

[1119] c. For example, a model candidate can be inserted into the list if at least one of the following conditions is met.

[1120] i. The candidate is intra-frame CCP encoded / decoded.

[1121] ii. The candidates are encoded and decoded via inter-frame CCP.

[1122] iii. The candidate is different from the candidate already inserted in the list.

[1123] d. Alternatively, different model candidate checking rules can be applied to inter-frame CCP model inheritance / Merge mode and intra-frame CCP model inheritance / Merge mode.

[1124] i. For example, different types of models can be examined.

[1125] ii. For example, inter-frame CCP model inheritance / Merge mode may not check temporal candidates.

[1126] iii. For example, inter-frame CCP model inheritance / Merge mode may not check the default candidate.

[1127] iv. For example, inter-frame CCP model inheritance / Merge mode can examine candidates for on-the-fly computation.

[1128] 13) The final chromaticity prediction of the block can be a mixture of chromaticity prediction based on the first CCP model and chromaticity prediction based on the second non-CCP model.

[1129] a. For example, the final chroma prediction for an intra-block can be fused from intra-CCP chroma prediction and chroma prediction based on angle / plane / DC / LM.

[1130] i. For example, the intra-frame CCP model can be inherited from previous blocks.

[1131] ii. For example, an intra-frame CCP model can be computed from a reference region.

[1132] b. For example, the final chroma prediction for an inter-frame block can be fused from inter-frame CCP chroma prediction and chroma prediction based on inter-frame motion compensation.

[1133] i. For example, the inter-frame CCP model can be inherited from previous blocks.

[1134] ii. For example, inter-frame CCP models can be computed from the reference region.

[1135] 14) For CCP model computation and / or application, access to / use of samples in the reference region (training region) and access to / use of samples in the current block can be decoupled.

[1136] a. For example, for chroma samples in the reference region (training region), the CCP model input may not include samples within the current block.

[1137] b. For example, for chroma samples in the reference region (training region), the CCP model input can include only the samples in the reference region (training region).

[1138] c. For example, for chroma samples within the current block, the CCP model input may not include samples from the reference region (training region).

[1139] d. For example, for chroma samples within the current block, the CCP model input may only include samples within the current block (e.g., luminance samples within the current block).

[1140] 15) The CCP model of the current chroma block can be calculated based on reference samples only (e.g., without accessing internal samples from the current luma block).

[1141] a. For example, model calculations for the CCP / CCCM model for encoding and decoding the current inter-frame (or IBC) chroma block may not use samples from the current luma block.

[1142] i. For example, it can occur during the inter-frame CCP Merge mode process.

[1143] ii. For example, it can occur during a regular inter-frame CCP mode process.

[1144] b. For example, model calculations for the CCP / CCCM model encoding / decoding the current intra-frame chroma block may not use samples from the current luma block.

[1145] i. For example, it can occur during an intra-frame CCP Merge mode process.

[1146] ii. For example, it can occur during a regular intra-frame CCP mode process.

[1147] c. For example, when the CCP model calculation for the current chroma block requires access to samples within the current luma block (e.g., if the training region (reference region) contains the uppermost / adjacent sample to the current chroma block), then the southern term of the CCCM model input for that reference sample (e.g.) Figure 12 As shown, it may require samples within the current chroma block; for another example, if the training region (reference region) contains the leftmost sample closest to / adjacent to the current chroma block, then the Eastern term (e.g., ...) input to the CCCM model for that reference sample may be required. Figure 12 (As shown) may require samples within the current luminance block, and one of the following methods can be applied: i. For example, replacing sample values ​​(instead of the sample values ​​of the current luma block) can be used.

[1148] 1. Default values ​​can be used. a. For example, default values ​​can be predefined. b. For example, the default value could be based on the bit depth of the samples in the luminance or chrominance array. 2. Sample values ​​from neighboring brightness samples (within the reference area) can be used.

[1149] a. For example, if the training region (reference region) contains the upper sample point that is closest to / adjacent to the current chroma block, then the southern term of the CCCM model input for that reference sample point (such as...) Figure 12 (As shown) can be set to the value of the brightness sample above.

[1150] b. For another example, if the training region (reference region) contains the leftmost / adjacent sample point to the current chroma patch, then the Eastern term (e.g., ...) input to the CCCM model for that reference sample point... Figure 12 (As shown) can be set to the value of the left-hand brightness sample point.

[1151] ii. For example, if a specific sample in the training region (reference region) needs to access a sample within the current luminance block, then that training sample can be excluded / discarded from the set of training samples computed for that CCP model.

[1152] 16) The cost calculation process for the decoder derivation used to evaluate the CCP model can be calculated based solely on reference samples (e.g., without accessing internal samples from the current block).

[1153] a. For example, it can occur during the candidate ranking / re-ranking process in the CCP model.

[1154] b. For example, it can occur when computing a CCP model on a template (e.g., the template includes at least one sample point that is adjacent to the current block and outside the current block).

[1155] c. For example, the cost calculation for the decoder derivation used to evaluate the CCP model can be calculated based on inter-frame prediction blocks in a reference image.

[1156] d. For example, the cost calculation for the decoder derivation used to evaluate the CCP model can be calculated based on a BV-guided reference block in the current image.

[1157] i. In addition, the distance between the current block and the reference block guided by BV can be greater than N samples, for example, N=1.

[1158] e. For example, if the CCP model calculation for a template sample requires access to samples within the current lumen block (e.g., if the template sample is adjacent to the current block above it), then the southern term of the CCCM model input for that template sample (e.g.) Figure 12 As shown, it may require samples within the current luminance block; for another example, if the template sample is adjacent to the left side of the current block, then the Eastern term (e.g., ...) input to the CCCM model for that template sample is needed. Figure 12 (As shown) may require samples within the current luminance block, and one of the following methods can be applied: i. For example, replacing sample values ​​(instead of the sample values ​​of the current luma block) can be used.

[1159] 1. Default values ​​can be used.

[1160] a. For example, default values ​​can be predefined.

[1161] b. For example, the default value can be based on the bit depth of the samples in the luminance or chrominance array.

[1162] 2. Sample values ​​from neighboring brightness samples (within the reference area) can be used.

[1163] a. For example, if the template sample is adjacent to the current block above it, then the southern term (e.g., ...) input to the CCCM model for that template sample... Figure 12 (As shown) can be set to the value of the brightness sample above.

[1164] b. If the template sample point is adjacent to the left side of the current block, then the Eastern term (e.g., ...) input to the CCCM model for that template sample point... Figure 12 (As shown) can be set to the value of the left-hand brightness sample point.

[1165] ii. For example, if the CCP model computation for template samples requires access to samples within the current luma block, then the training sample can be excluded / discarded from the set of training samples computed for that CCP model.

[1166] iii. For example, in cases where CCP model calculations for template samples require access to at least one sample within the current luma block (e.g.) Figure 32 As shown, assuming the first row and first column of the current luminance block, which are painted yellow, will be accessed, and (x, y) represents the sample point located in the x-th row and y-th column of the current luminance block, the sample points to be accessed within the current luminance block can be filled with other values.

[1167] 1. For example, other values ​​can be based on neighboring samples (e.g., in the reference region, training region, decoding region, etc.).

[1168] 2. For example, the first row of samples to be accessed within the current luminance block (e.g., in...). Figure 32 The value (0, 0)...(0, 7) can be obtained from neighboring samples in the row above the current brightness block (e.g., in...). Figure 32 The neighboring sample points (-1, 0)...(-1, 7) are filled in.

[1169] a. For example, additionally, the upper left sample point (e.g., in...) Figure 32 The value represented as (0, 0) can be filled in another way (e.g., not from sample values ​​from (-1, 0)).

[1170] 3. For example, the first column of the samples to be accessed within the current luminance block (e.g., in...). Figure 32 The value (0, 0)...(7, 0) can be obtained from neighboring samples in the left column outside the current brightness block (e.g., in...). Figure 32 The neighboring sample points (0, -1)...(7, -1) are filled in.

[1171] a. For example, additionally, the upper left sample point (e.g., in...) Figure 32 The value represented as (0, 0) can be filled in another way (e.g., not from sample values ​​from (0, -1)).

[1172] 4. For example, the upper left sample of the sample to be accessed within the current luminance block (e.g., in...). Figure 32 The value (0, 0) can be represented by the upper-left neighboring sample outside the current brightness block (e.g., in the...). Figure 32 The middle is represented as (-1, -1)).

[1173] a. Alternatively, it can be a sample from the left neighboring point outside the current brightness block (e.g., in...). Figure 32 The middle is represented as (0, -1).

[1174] b. Alternatively, it can be a sample point located above the current luminance block (e.g., in...). Figure 32 The middle is represented as (-1, 0) filled.

[1175] c. Alternative locations, which can be filled with values ​​from sample points at predefined locations.

[1176] d. Alternatively, it can be filled with predefined values ​​(e.g., 1 << (BITDEPTH-1), where BITDEPTH is the bit depth of the sample points of the luminance or chrominance array).

[1177] 5. For example, the first row of samples to be accessed within the current luminance block can be filled first, followed by the filling process of the first column of samples to be accessed within the current luminance block.

[1178] a. Alternatively, the first column of the sample points to be accessed within the current luminance block can be filled first, followed by the filling process of the first row of the sample points to be accessed within the current luminance block.

[1179] 6. For example, the fill value of the current brightness sample can be used as an intermediate for CCP model calculation or CCP model cost calculation for the template.

[1180] a. For example, the fill value of the current brightness sample may not be used in subsequent processing of the current block (e.g., CCP model application for the current block, prediction / reconstruction derivation for the current block, etc.).

[1181] Figure 32The diagram illustrates a CCP model calculation for template samples (dark gray), which requires access to sample values ​​(light gray, note that each grid represents a sample) in the current luminance block, where (x, y) in the figure represents the sample located in the x-th row and y-th column of the current luminance block.

[1182] 17) The CCP model application for the current block / region can be applied only based on samples within the current block / region (e.g., without accessing samples outside the current block / region).

[1183] a. For example, in cases where CCP model computation for the current block / region requires access to samples outside the current block / region (e.g., for a chromaticity sample located at the top boundary of the current block / region, the northern term of the CCCM model input for that sample (e.g.) Figure 12 (As shown) may require samples outside the current block / region; for another example, for a chromaticity sample located at the left boundary of the current block / region, the Western term of the CCCM model input for that sample (such as...) Figure 12 (As shown) may require samples outside the current block / region), one of the following methods can be applied: i. For example, replacing sample values ​​(instead of sample values ​​outside the current block / region) can be used.

[1184] 1. Default values ​​can be used. a. For example, default values ​​can be predefined. b. For example, the default value could be based on the bit depth of the samples in the luminance or chrominance array. 2. The sample values ​​of the current luminance block can be used.

[1185] a. For example, for a chromaticity sample point located at the top boundary of the current block / region, the northern term of the CCCM model input for that sample point (e.g.) Figure 12 (As shown) can be set to the value equal to the current brightness sample.

[1186] b. For example, for a chromaticity sample located at the left boundary of the current block / region, the Western term of the CCCM model input for that sample (e.g.) Figure 12 (As shown) can be set to the value equal to the current brightness sample.

[1187] 18) Inter-frame CCP mode may be permitted to be applied to video blocks when at least one of the following conditions is met: a. The current stripe type (e.g., whether it is a B / P stripe, etc.). b. Two trees or one tree (e.g., whether it is a single tree, etc.) c. Merge type (e.g., whether it is encoded / decoded using the Merge mode, or the regular Merge mode, or the sub-block Merge mode, etc.) d. AMVP type (e.g., whether it is encoded / decoded without AMVP, etc.) e. Reference picture information (e.g., whether it is encoded / decoded using traditional bi-predictive coding, where the two reference pictures come from different directions, whether it is uni-predictive coding, whether it is a low-delay picture, where all reference pictures are before the current picture in display order, etc.) i. Additionally, whether it is a low-delay picture / strip and is encoded / decoded using Merge f. cbf information (e.g., whether it has non-zero luminance coefficients, etc.) g. Residual / coefficient information (e.g., the absolute value of the luminance residual / coefficient, the number of non-zero luminance coefficients, etc.) h. The TB size and CB size of the current video block (e.g., whether TB is equal to CB, etc.) i. Non-SBT encoding / decoding j. Prediction mode (e.g., whether it is an inter-frame mode and / or an IBC mode, etc.) k. Picture resolution (e.g., whether it is non-4K) i. For example, whether the picture height is not greater than 1080 ii. For example, if the height of the current picture is greater than T (such as T = 1080, etc.), the inter-frame CCP mode may not be allowed iii. For example, if the width of the current picture is greater than R (such as R = 4096, etc.), the inter-frame CCP mode may not be allowed l. Block dimensions, such as block height H and / or block width W i. a0*W < b0*H, or, a0*W <= b0*H ii. a1*W > b1*H, or, a1*W >= b1*H iii. a2*H < b2*W, or, a2*H <= b2*W iv. a3*H > b3*W, or, a3*H >= b3*W v. Min (W, H) > T0, or, Min (W, H) >= T0 vi. Max (W, H) < T1, or, Max (W, H) <= T1 vii. W * H < T2, or W*H <= T2 viii. For example, a0, a1, a2, a3, b0, b1, b2, b3 can be predefined integers.

[1188] ix. For example, T0, T1, and T2 can be predefined values.

[1189] x. For example, inter-frame CCP mode may not be allowed for transform blocks (TB) with W*H > 1024 or 516. xi. For example, inter-frame CCP mode may not be allowed for transform blocks (TB) with W*H <= 8, 16, or 32. xii. For example, inter-frame CCP mode may not be allowed for transform blocks (TB) with 16*W <= H. xiii. For example, inter-frame CCP mode may not be allowed for transform blocks (TB) with 16*H <= W. General aspects : 1) The disclosed method can be used in a single tree.

[1190] 2) The disclosed method can be used in two trees.

[1191] 3) The disclosed method can be used for chroma encoding and decoding.

[1192] 4) The disclosed method can be used in inter-frame (such as B or P) stripes.

[1193] 5) The disclosed method can be used in intra-frame (such as I) stripes.

[1194] 6) Whether and / or how the methods disclosed above can be applied can be transmitted via signaling at the sequence level / picture group level / picture level / strip level / piece group level, such as in the sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / strip header / piece group header.

[1195] 7) Whether and / or how the methods disclosed above can be applied to transmit signals at PB / TB / CB / PU / TU / CU / VPDU / CTU / CTU lines / strips / films / sub-images / other types of areas containing more than one sample point or pixel.

[1196] 8) Whether and / or how to apply the methods disclosed above may depend on the encoded / decoded information, such as block size, color format, single-tree splitting / double-tree splitting, color components, and stripe / image type.

[1197] Figure 33 A flowchart of a method 3300 for video processing according to an embodiment of the present disclosure is shown. Method 3300 is implemented during the conversion between video units of a video and a bitstream of a video.

[1198] At box 3310, for the conversion between the current block of the video and the bitstream of the video, the input to the cross-component prediction (CCP) model is determined to include at least one of the following: samples within the reference region or samples within the current block.

[1199] At box 3320, the conversion is performed based on the CCP model. In some embodiments, the conversion may include encoding video units into a bitstream. Alternatively, the conversion may include decoding video units from the bitstream.

[1200] Method 3300 enables the determination of the input to the CCP model. Compared to traditional solutions, determining the input to the CCP model can advantageously improve encoding / decoding efficiency and performance.

[1201] In some embodiments, the CCP model input for chroma samples in a reference region may include samples within the reference region. In some examples, the reference region may include a training region. In some other embodiments, the CCP model input for chroma samples within the current block may include samples within the current block. For example, samples within the current block may include luminance samples within the current block.

[1202] In some embodiments, the determination of the input to the CCP model can be used in at least one of the following: single-tree or dual-tree. In some embodiments, the determination of the input to the CCP model can be used for chroma encoding / decoding. In some embodiments, the determination of the input to the CCP model can be used in inter-frame stripes. For example, inter-frame stripes can be B-strips or P-strips. In some other embodiments, the determination of the input to the CCP model can be used in intra-frame stripes. For example, intra-frame stripes can be I-strips.

[1203] In some embodiments, the indication of whether the input of the CCP model includes at least one of the samples within the reference region or the samples within the current block and / or how to determine that the input of the CCP model includes at least one of the samples within the reference region or the samples within the current block may be indicated at one of the following: sequence level, picture group level, picture level, strip level, or slice group level. In some embodiments, the indication of whether the input of the CCP model includes at least one of the samples within the reference region or the samples within the current block and / or how to determine that the input of the CCP model includes at least one of the samples within the reference region or the samples within the current block may be indicated at 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 slice group header.

[1204] In some embodiments, an indication of whether the input of the CCP model includes at least one of the samples within a reference region or the samples within the current block and / or how to determine that the input of the CCP model includes at least one of the samples within a reference region or the samples within the current block may be included in one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, strip, slice, sub-picture, or region containing more than one sample or pixel.

[1205] In some embodiments, method 3300 may further include: determining, based on the encoded and decoded information of the current block of the video, whether the input of the CCP model includes at least one of samples within a reference region or samples within the current block, and / or how to determine that the input of the CCP model includes at least one of samples within a reference region or samples within the current block. The encoded and decoded information may include at least one of the following: block size, color format, single-tree segmentation and / or dual-tree segmentation, color components, stripe type, or image type.

[1206] According to another embodiment of this disclosure, a non-transitory computer-readable recording medium is provided. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. The method includes: determining that the input to a cross-component prediction (CCP) model for a current block of the video includes at least one of the following: samples within a reference region, or samples within the current block of the video; and generating a bitstream based on the CCP model.

[1207] According to further embodiments of this disclosure, a method for storing a bitstream of video is provided. The method includes: determining that the input to a cross-component prediction (CCP) model for a current block of the video includes at least one of the following: samples within a reference region, or samples within the current block of the video; generating a bitstream based on the CCP model; and storing the bitstream in a non-transitory computer-readable recording medium.

[1208] Figure 34 A flowchart of a method 3400 for video processing according to an embodiment of the present disclosure is shown. Method 3400 is implemented during the conversion between video units of a video and a bitstream of a video.

[1209] At box 3410, for the conversion between the current block of the video and the video bitstream, the CCP model for the template sample is determined by accessing at least one sample within the current luma block. In this case, the at least one sample to be accessed is filled with another value.

[1210] At box 3420, the conversion is performed based on the CCP model. In some embodiments, the conversion may include encoding video units into a bitstream. Alternatively, the conversion may include decoding video units from the bitstream.

[1211] Method 3400 enables the CCP model for template samples to be determined by accessing at least one sample within the current luma block. Compared to conventional solutions, accessing at least one sample within the current luma block can advantageously improve encoding / decoding efficiency and performance.

[1212] Figure 32 This illustrates an example of CCP model calculation for template samples (dark gray), which requires access to sample values ​​(light gray, note that each grid represents one sample) in the current brightness block. Figure 32 In this context, (x, y) represents a sample point located in the x-th row and y-th column of the current luminance block. In some embodiments, Figure 32 The first row and first column samples (light gray) within the current brightness block shown can be accessed.

[1213] In some embodiments, this other value may be based on neighboring samples. For example, neighboring samples may be included in one of the following: a reference region, a training region, or a decoding region. In some other embodiments, the first row of samples to be accessed within the current luma block (e.g., in...) Figure 32 The value (0, 0)...(0, 7) can be filled with neighboring samples, which are located on the row above the current luminance block (e.g., in...). Figure 32 The neighboring samples are represented as (-1, 0)...(-1, 7)). In some examples, the upper-left sample to be accessed within the current brightness block (e.g., in...) Figure 32 The value (0, 0) can be left unfilled with neighboring samples located on the row above the current luminance block (e.g., not from...). Figure 32 Instead of the sample values ​​of (-1, 0) in the sample, they are filled in another way.

[1214] In some embodiments, the first column sample point to be accessed within the current luminance block (e.g., in...) Figure 32 The value (0, 0)...(7, 0) can be filled with neighboring samples located on the left column outside the current luminance block (e.g., in...). Figure 32 The neighboring samples are represented as (0, -1)...(7, -1)). In some examples, the upper-left sample to be accessed within the current brightness block (e.g., in...) Figure 32 The value (0, 0) can be left unfilled with neighboring samples located on the left column outside the current brightness block (e.g., not from...). Figure 32Instead of using the sample values ​​of (0, -1) in the sample, they are filled in a different way.

[1215] In some embodiments, the upper left sample point to be accessed within the current luminance block (e.g., in...) Figure 32 The value (0, 0) can be filled with the upper-left neighboring sample outside the current brightness block (e.g., in the...). Figure 32 In some embodiments, the upper left sample point to be accessed within the current luminance block (e.g., in...) is represented as (-1, -1)). Figure 32 The value (0, 0) can be filled with the left neighboring sample points outside the current brightness block (e.g., in the...). Figure 32 In this context, it is represented as (0, -1). In some embodiments, the upper left sample point to be accessed within the current luminance block (e.g., in...) Figure 32 The value (0, 0) can be filled with the upper neighboring samples outside the current brightness block (e.g., in...). Figure 32 The value is represented as (-1, 0). In some other embodiments, the upper-left sample point to be accessed within the current luminance block (e.g., in...) Figure 32 The value (0, 0) can be filled with the value of the sample point at a predetermined position. Alternatively, the upper-left sample point to be accessed within the current luminance block (e.g., in...) Figure 32 The values ​​(0, 0) can be filled with predetermined values. For example, the top-left sample to be accessed within the current luma block can be filled with 1 << (BITDEPTH - 1). In this case, BITDEPTH is the bit depth of the luma or chroma array sample.

[1216] In some embodiments, the first row of samples to be accessed within the current luminance block may be filled first. In some embodiments, the first column of samples to be accessed within the current luminance block may be filled after the first row of samples to be accessed within the current luminance block is filled. Alternatively, the first column of samples to be accessed within the current luminance block may be filled first. In some embodiments, the first row of samples to be accessed within the current luminance block may be filled after the first column of samples to be accessed within the current luminance block is filled.

[1217] In some embodiments, another value for the padding of at least one sample to be accessed within the current lumen block may be used for the calculation of the CCP model or the calculation of the cost of the CCP model for the template. Alternatively, another value for the padding of at least one sample to be accessed within the current lumen block may not be used in subsequent processing of the current block. For example, subsequent processing of the current block may include at least one of the following: application of the CCP model for the current block, prediction derivation for the current block, or reconstruction derivation for the current block.

[1218] In some embodiments, the determination of at least one sample to be accessed may be used in at least one of the following: single-tree or dual-tree. In some embodiments, the determination of at least one sample to be accessed may be used for chroma encoding / decoding. In some embodiments, the determination of at least one sample to be accessed may be used in inter-frame stripes. For example, inter-frame stripes may be B-strips or P-strips. In some other embodiments, the determination of at least one sample to be accessed may be used in intra-frame stripes. For example, intra-frame stripes may be I-strips.

[1219] In some embodiments, an indication of whether it is determined that at least one sample to be accessed within the current luma block is filled with another value and / or how to determine that at least one sample to be accessed within the current luma block is filled with another value may be indicated at one of the following: sequence level, picture group level, picture level, strip level, or slice group level. In some embodiments, an indication of whether it is determined that at least one sample to be accessed within the current luma block is filled with another value and / or how to determine that at least one sample to be accessed within the current luma block is filled with another value may be indicated at 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 slice group header.

[1220] In some embodiments, an indication of whether it is determined that at least one sample to be accessed within the current luminance block is filled with another value and / or how to determine that at least one sample to be accessed within the current luminance block is filled with another value may be included in one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, strip, slice, sub-picture, or region containing more than one sample or pixel.

[1221] In some embodiments, method 3400 may further include: determining, based on the encoded and decoded information of the current block of video, whether it is determined that at least one sample to be accessed within the current luma block is filled with another value and / or how to determine that at least one sample to be accessed within the current luma block is filled with another value. The encoded and decoded information may include at least one of the following: block size, color format, single-tree segmentation and / or dual-tree segmentation, color components, stripe type, or picture type.

[1222] According to another embodiment of this disclosure, a non-transitory computer-readable recording medium is provided. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. The method includes: determining a CCP model of template samples for the current block of video by accessing at least one sample within a current luma block, wherein the at least one sample to be accessed is filled with another value; and generating a bitstream based on the CCP model.

[1223] According to further embodiments of this disclosure, a method for storing a bitstream of video is provided. The method includes: determining a CCP model for template samples of the current block of video by accessing at least one sample within a current luma block, wherein the at least one sample to be accessed is filled with another value; generating a bitstream based on the CCP model; and storing the bitstream in a non-transitory computer-readable recording medium.

[1224] Figure 35 A flowchart of a method 3500 for video processing according to an embodiment of the present disclosure is shown. Method 3500 is implemented during the conversion between video units of a video and a bitstream of a video.

[1225] At box 3510, for the conversion between video blocks and video bitstreams, the inter-frame cross-component prediction (CCP) mode is applied to the video blocks.

[1226] At box 3520, the conversion is performed based on the inter-frame CCP model. In some embodiments, the conversion may include encoding video units into a bitstream. Alternatively, the conversion may include decoding video units from the bitstream.

[1227] Method 3500 enables the application of inter-frame cross-component prediction (CCP) mode. Compared to traditional solutions, applying inter-frame CCP mode can significantly improve encoding and decoding efficiency and performance.

[1228] In some embodiments, whether an inter-frame CCP mode is permitted to be applied to a video block can be determined based on at least one of the following: the stripe type of the current stripe, dual-tree or single-tree, Merge type, Advanced Motion Vector Prediction (AMVP) type, information of the reference picture, codec block flag (CBF) information, residual information, coefficient information, TB size and CB size of the current video block, non-subblock transform (non-SBT) codec, prediction mode, picture resolution, or block dimension.

[1229] In some embodiments, the inter-frame CCP mode being allowed to be applied to video blocks can be determined based on whether the current slice's slice type is a B-slice or a P-slice. In some other embodiments, the inter-frame CCP mode being allowed to be applied to video blocks can be determined based on whether the current slice is a single-tree or whether the current block is a single-tree. In some embodiments, the inter-frame CCP mode being allowed to be applied to video blocks can be determined based on whether the video block is encoded using one of the following: Merge mode, regular Merge mode, or sub-block Merge mode. Alternatively, the inter-frame CCP mode being allowed to be applied to video blocks can be determined based on whether the video block is not encoded using AMVP. In some embodiments, the inter-frame CCP mode being allowed to be applied to video blocks can be determined based on whether the current block is encoded using conventional bidirectional prediction. In this case, conventional bidirectional prediction may include two reference images from different directions.

[1230] In some embodiments, the inter-frame CCP mode being allowed to be applied to video blocks can be determined based on whether the inter-frame CCP mode is unidirectionally predictive encoded or decoded. In some embodiments, the inter-frame CCP mode being allowed to be applied to video blocks can be determined based on whether the information of the reference image is a low-latency image. In this case, the reference image precedes the current image in display order. In some other embodiments, the inter-frame CCP mode being allowed to be applied to video blocks can be determined based on whether the current strip is a low-latency strip and whether the video block is merge encoded or decoded. In some embodiments, the inter-frame CCP mode being allowed to be applied to video blocks can be determined based on whether the CBF information includes a non-zero luminance coefficient.

[1231] In some embodiments, the residual information or coefficient information of the video block may include at least one of the following: the absolute value of the luminance residual or coefficient, or the number of non-zero luminance coefficients. In some other embodiments, the permission to apply the inter-frame CCP mode to the video block may be determined based on whether the TB size of the current video block is equal to the CB size of the current video block. Alternatively, the permission to apply the inter-frame CCP mode to the video block may be determined based on whether the prediction mode is an inter-frame mode and / or whether the prediction mode is an intra-block copy (IBC) mode. In some embodiments, the permission to apply the inter-frame CCP mode to the video block may be determined based on whether the image resolution is not 4K. In some examples, the permission to apply the inter-frame CCP mode to the video block may be determined based on whether the image height is not greater than 1080. In some other examples, if the current image height is greater than a third number, the inter-frame CCP mode may not be permitted to be applied to the video block. For example, the third number may be equal to 1080. Alternatively, if the current image width is greater than a fourth number, the inter-frame CCP mode may not be permitted to be applied to the video block. For example, the fourth number may be equal to 4096.

[1232] In some embodiments, if the block dimension of a video block satisfies at least one of the following conditions, the inter-frame CCP mode may be allowed to be applied to the video block: a0*W < b0*H, or a0*W <= b0*H; a1*W > b1*H, or a1*W >= b1*H; a2*H < b2*W, or a2*H <= b2*W; a3*H > b3*W, or a3*H >= b3*W; min(W, H) > T0, or min(W, H) >= T0; max(W, H) < T1, or max(W, H) <= T1; or W*H < T2, or W*H <= T2. In this case, W represents the block width and H represents the block height. In some embodiments, a0, a1, a2, a3, b0, b1, b2, and b3 may be predetermined integers. In some other embodiments, T0, T1, and T2 may be predetermined values.

[1233] In some embodiments, if W*H > 1024, the inter-frame CCP mode may not be allowed to be used for the transform block (TB). In some other embodiments, if W*H > 516, the inter-frame CCP mode may not be allowed to be used for the transform block (TB). In some embodiments, if W*H <= 8, the inter-frame CCP mode may not be allowed to be used for the transform block (TB). In some other embodiments, if W*H <= 16, the inter-frame CCP mode may not be allowed to be used for the transform block (TB). Alternatively, if W*H <= 32, the inter-frame CCP mode may not be allowed to be used for the transform block (TB). In some embodiments, if 16*W <= H, the inter-frame CCP mode may not be allowed to be used for the transform block (TB). Alternatively, if 16*H <= W, the inter-frame CCP mode may not be allowed to be used for the transform block (TB).

[1234] In some embodiments, the application of the inter-frame CCP mode may be used in at least one of the following: single tree or double tree. In some embodiments, the application of the inter-frame CCP mode may be used for chrominance coding and decoding. In some embodiments, the application of the inter-frame CCP mode may be used in an inter-frame stripe. For example, the inter-frame stripe may be a B stripe or a P stripe. In some other embodiments, the application of the inter-frame CCP mode may be used in an intra-frame stripe. For example, the intra-frame stripe may be an I stripe.

[1235] In some embodiments, an indication of whether and / or how inter-frame CCP mode is applied to a video block may be given at one of the following levels: sequence level, picture group level, picture level, strip level, or slice group level. In some embodiments, an indication of whether and / or how inter-frame CCP mode is applied to a video block may be given at one of the following levels: 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 slice group header.

[1236] In some embodiments, an indication of whether and / or how to apply inter-frame CCP mode to a video block may be included in one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, strip, slice, sub-picture, or region containing more than one sample point or pixel.

[1237] In some embodiments, method 3500 may further include: determining, based on the encoded and decoded information of the video units, whether and / or how to apply the inter-frame CCP mode to the video blocks. The encoded and decoded information may include at least one of the following: block size, color format, single-tree segmentation and / or dual-tree segmentation, color components, stripe type, or picture type.

[1238] According to another embodiment of this disclosure, a non-transitory computer-readable recording medium is provided. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by means of a video processing apparatus. The method includes: applying an inter-frame cross-component prediction (CCP) mode to video blocks of the video; and generating a bitstream based on the inter-frame CCP model.

[1239] According to further embodiments of this disclosure, a method for storing a bitstream of video is provided. The method includes: applying an inter-frame cross-component prediction (CCP) mode to video blocks of the video; generating a bitstream based on the inter-frame CCP model; and storing the bitstream in a non-transitory computer-readable recording medium.

[1240] Figure 36 A flowchart of a method 3600 for video processing according to an embodiment of the present disclosure is shown. Method 3600 is implemented during the conversion between video units of a video and a bitstream of a video.

[1241] At box 3610, for the conversion between the current block of the video and the video bitstream, the CCP model candidates are sorted according to rules.

[1242] At box 3620, the conversion is performed based on the sorted CCP model candidates. In some embodiments, the conversion may include encoding video units into a bitstream. Alternatively, the conversion may include decoding video units from the bitstream.

[1243] Method 3600 enables CCP model candidates to be ranked based on rules. Compared to traditional solutions, ranking CCP model candidates can significantly improve encoding / decoding efficiency and performance.

[1244] In some embodiments, a multi-round sorting process can be used for CCP modes. In some embodiments, the multi-round sorting process can be applied to derive the final CCP model for a block encoded and decoded via inter-frame CCP. In some embodiments, if CCP model candidates are classified into two groups, the first group of CCP model candidates can be derived based on motion information of the current block, and the second group of CCP model candidates can be derived without motion information of the current block. In some embodiments, the first group of CCP model candidates may not be sorted together with the second group of CCP model candidates, or may be reordered.

[1245] In some embodiments, the first set of CCP model candidates may include at least one of the following CCP model candidates: a real-time computed CCP model, a CCP model derived based on spatially adjacent blocks, a CCP model derived based on spatially non-adjacent blocks, a CCP model derived according to a history-based lookup table, a CCP model derived based on a temporal block, which is derived from motion information of neighboring blocks, or a default CCP model. In some embodiments, the real-time computed CCP model may include at least one of the following: an inter-frame convolutional cross-component model (CCCM), an intra-frame CCCM, an intra-frame cross-component linear model (CCLM), or an intra-frame gradient linear model (GLM). In some other embodiments, the temporal block derived from motion information of neighboring blocks may include temporally shifted candidates. Alternatively, the default CCP model may be generated from existing CCP candidates using predetermined rules. For example, the default CCP model may be generated based on CCLM. In some examples, the default CCP model may not be generated based on motion information of the current block. Alternatively, the second group of CCP model candidates may include CCP models of time-domain blocks derived from motion information of the current block.

[1246] In some embodiments, the first group of CCP model candidates may be sorted in the first round of sorting. For example, a first number of candidates with the lowest cost after the first round of sorting may be the input to the second round of sorting. Furthermore, the first number of candidates may be sorted together with the second group of CCP model candidates in the second round of sorting. Alternatively, the second group of CCP model candidates may be sorted in the first round of sorting. In some examples, a second number of candidates with the lowest cost after the first round of sorting may be the input to the second round of sorting. Furthermore, the second number of candidates may be sorted together with the first group of CCP model candidates in the second round of sorting.

[1247] In some embodiments, temporal CCP model candidates for a CCP mode can be derived without motion information of the current block. For example, the CCP mode may include an inter-frame CCP mode. In some embodiments, a real-time computed inter-frame CCP model may not be sorted together with CCP models derived from previously encoded / decoded blocks. In some other embodiments, a real-time computed inter-frame CCP model may not be sorted together with a real-time computed intra-frame CCP model. Alternatively, a real-time computed inter-frame CCP model may be sorted together with at least one of the following CCP models: a real-time computed intra-frame CCP model, an intra-frame CCP model derived from a previously encoded / decoded block, or an intra-frame CCP model.

[1248] In some embodiments, the ordering of CCP model candidates can be used in at least one of the following: single-tree or dual-tree. In some embodiments, the ordering of CCP model candidates can be used for chroma encoding / decoding. In some embodiments, the ordering of CCP model candidates can be used in inter-frame stripes. For example, inter-frame stripes can be B-strips or P-strips. In some other embodiments, the ordering of CCP model candidates can be used in intra-frame stripes. For example, intra-frame stripes can be I-strips.

[1249] In some embodiments, an indication of whether and / or how CCP model candidates are ranked based on rules may be given at one of the following levels: sequence level, picture group level, picture level, strip level, or slice group level. In some embodiments, an indication of whether and / or how CCP model candidates are ranked based on rules may be given at one of the following levels: 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 slice group header.

[1250] In some embodiments, an indication of whether and / or how to rank CCP model candidates based on rules may be included in one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, strip, slice, sub-picture, or region containing more than one sample point or pixel.

[1251] In some embodiments, method 3600 may further include: determining, based on the encoded and decoded information of video units of the video, whether and / or how to rank CCP model candidates according to rules. The encoded and decoded information may include at least one of the following: block size, color format, single-tree segmentation and / or dual-tree segmentation, color components, stripe type, or image type.

[1252] According to another embodiment of this disclosure, a non-transitory computer-readable recording medium is provided. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. The method includes: sorting CCP model candidates for video units of the video based on rules; and generating a bitstream based on the sorted CCP model candidates.

[1253] According to further embodiments of this disclosure, a method for storing a bitstream of video is provided. The method includes: sorting CCP model candidates for video units of the video based on rules; generating a bitstream based on the sorted CCP model candidates; and storing the bitstream in a non-transitory computer-readable recording medium.

[1254] The embodiments of this disclosure can be described according to the following entries, and their features can be combined in any reasonable manner.

[1255] Item 1. A method for video processing, comprising: for a conversion between a current block of a video and a bitstream of the video, determining that the input to a cross-component prediction (CCP) model includes at least one of the following: samples within a reference region, or samples within the current block; and performing the conversion based on the CCP model.

[1256] Item 2. The method according to Item 1, wherein the CCP model input for the chromaticity samples in the reference region includes the samples in the reference region.

[1257] Item 3. The method according to Item 2, wherein the reference region includes the training region.

[1258] Item 4. The method according to Item 1, wherein the CCP model input for the chroma samples within the current block includes the samples within the current block.

[1259] Item 5. The method according to Item 4, wherein the sample points within the current block include luminance sample points within the current block.

[1260] Item 6. The method according to Item 1, wherein the determination of the input of the CCP model is used in at least one of the following: single tree or double tree.

[1261] Item 7. The method according to Item 1, wherein the determination of the input of the CCP model is used for chroma encoding and decoding.

[1262] Item 8. The method according to Item 1, wherein the determination of the input of the CCP model is used in inter-frame stripes.

[1263] Item 9. The method according to Item 8, wherein the inter-frame stripe is a B stripe or a P stripe.

[1264] Item 10. The method according to Item 1, wherein the determination of the input of the CCP model is used in an intra-frame stripe.

[1265] Item 11. The method according to Item 10, wherein the intra-frame stripe is an I-strip.

[1266] Item 12. The method according to any one of Items 1 to 11, wherein an indication of whether it is determined that the input of the CCP model includes at least one of the samples in the reference region or the samples in the current block and / or how to determine that the input of the CCP model includes at least one of the samples in the reference region or the samples in the current block is indicated at one of the following: sequence level, picture group level, picture level, strip level, or slice group level.

[1267] Item 13. The method according to any one of Items 1 to 11, wherein an indication of whether it is determined that the input of the CCP model includes at least one of the samples in the reference region or the samples in the current block and / or how to determine that the input of the CCP model includes at least one of the samples in the reference region or the samples in the current block 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 slice header.

[1268] Item 14. The method according to any one of Items 1 to 11, wherein an indication of whether it is determined that the input of the CCP model includes at least one of the samples in the reference region or the samples in the current block and / or how to determine that the input of the CCP model includes at least one of the samples in the reference region or the samples in the current block is included in one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, strip, slice, sub-picture, or region containing more than one sample or pixel.

[1269] Item 15. The method according to any one of items 1 to 11 further comprises: determining, based on the encoded and decoded information of the current block of the video, whether it is determined that the input of the CCP model includes at least one of the samples in the reference region or the samples in the current block and / or how to determine that the input of the CCP model includes at least one of the samples in the reference region or the samples in the current block, wherein the encoded and decoded information includes at least one of the following: block size, color format, single-tree segmentation and / or dual-tree segmentation, color components, stripe type, or picture type.

[1270] Item 16. A method for video processing, comprising: a conversion between a current block of video and a bitstream of the video; determining a CCP model for template samples by accessing at least one sample within the current luma block, wherein the at least one sample to be accessed is filled with another value; and performing the conversion based on the CCP model.

[1271] Item 17. According to the method described in Item 16, the first row sample and the first column sample within the current luminance block will be accessed.

[1272] Item 18. The method according to Item 16, wherein the other value is based on neighboring samples.

[1273] Item 19. The method according to Item 18, wherein the neighboring sample is included in one of the following: a reference region, a training region, or a decoding region.

[1274] Item 20. The method according to Item 17, wherein the first row of samples to be accessed within the current luminance block is filled with neighboring samples on the upper row outside the current luminance block.

[1275] Item 21. The method according to Item 20, wherein the upper left sample to be accessed within the current luminance block is not filled with neighboring samples on the upper row outside the current luminance block.

[1276] Item 22. The method according to Item 17, wherein the first column sample point to be accessed within the current luminance block is filled with neighboring sample points on the left column outside the current luminance block.

[1277] Item 23. The method according to Item 22, wherein the upper left sample to be accessed within the current luminance block is not filled with neighboring samples on the left column outside the current luminance block.

[1278] Item 24. The method according to Item 17, wherein the upper left sample to be accessed within the current luminance block is filled with the upper left neighboring sample outside the current luminance block.

[1279] Item 25. The method according to Item 17, wherein the upper left sample to be accessed within the current luminance block is filled with the left neighboring sample outside the current luminance block.

[1280] Item 26. The method according to Item 17, wherein the upper left sample to be accessed within the current luminance block is filled with the upper neighboring sample outside the current luminance block.

[1281] Item 27. The method according to Item 17, wherein the upper left sample to be accessed within the current luminance block is filled with the value of the sample at a predetermined position.

[1282] Item 28. The method according to Item 17, wherein the upper left sample point to be accessed within the current luminance block is filled with a predetermined value.

[1283] Item 29. The method according to Item 28, wherein the upper left sample to be accessed within the current luma block is filled with 1 << (BITDEPTH-1), where BITDEPTH is the bit depth of the sample in the luma array or chroma array.

[1284] Item 30. The method according to Item 17, wherein the first row sample point to be accessed within the current luminance block is first filled, or wherein the first column sample point to be accessed within the current luminance block is first filled.

[1285] Item 31. The method according to Item 30, wherein the first column sample to be accessed within the current luminance block is filled after the first row sample to be accessed within the current luminance block is filled, or wherein the first row sample to be accessed within the current luminance block is filled after the first column sample to be accessed within the current luminance block is filled.

[1286] Item 32. The method according to Item 26, wherein the other value of the fill of the at least one sample to be accessed within the current luminance block is used for the calculation of the CCP model or the calculation of the cost of the CCP model for the template.

[1287] Item 33. The method according to Item 22, wherein the other value of the padding of the at least one sample to be accessed within the current luminance block is not used for subsequent processing of the current block.

[1288] Item 34. The method according to Item 33, wherein the subsequent processing of the current block includes at least one of the following: application of the CCP model to the current block, prediction derivation to the current block, or reconstruction derivation to the current block.

[1289] Item 35. The method according to Item 16, wherein the determination of the at least one sample to be accessed is used in at least one of the following: single tree or double tree.

[1290] Item 36. The method according to Item 16, wherein the determination of the at least one sample to be accessed is used for chroma encoding / decoding.

[1291] Item 37. The method according to Item 16, wherein the determination of the at least one sample to be accessed is used in an inter-frame stripe.

[1292] Item 38. The method according to Item 37, wherein the inter-frame stripe is a B stripe or a P stripe.

[1293] Item 39. The method according to Item 16, wherein the determination of the at least one sample to be accessed is used in an intra-frame stripe.

[1294] Item 40. The method according to Item 39, wherein the intra-frame stripe is an I-strip.

[1295] Item 41. The method according to any one of items 16 to 40, wherein an indication of whether it is determined that the at least one sample to be accessed within the current luminance block is filled with the other value and / or how to determine that the at least one sample to be accessed within the current luminance block is filled with the other value is indicated at one of the following: sequence level, picture group level, picture level, strip level, or slice group level.

[1296] Item 42. The method according to any one of items 16 to 40, wherein an indication of whether it is determined that the at least one sample to be accessed within the current luma block is filled with the other value and / or how to determine that the at least one sample to be accessed within the current luma block is filled with the other value 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 slice header.

[1297] Item 43. The method according to any one of items 16 to 40, wherein an indication of whether it is determined that the at least one sample to be accessed within the current luminance block is filled with the other value and / or how to determine that the at least one sample to be accessed within the current luminance block is filled with the other value is included in one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, strip, slice, sub-picture, or region containing more than one sample or pixel.

[1298] Item 44. The method according to any one of items 16 to 40, further comprising: determining, based on encoded information of the current block of the video, whether it is determined that the at least one sample to be accessed within the current luminance block is filled with the other value and / or how to determine that the at least one sample to be accessed within the current luminance block is filled with the other value, the encoded information including at least one of the following: block size, color format, single-tree segmentation and / or dual-tree segmentation, color components, stripe type, or picture type.

[1299] Item 45. A method for video processing, comprising: a conversion between a video block of a video and a bitstream of the video, applying an inter-frame cross-component prediction (CCP) model to the video block; and performing the conversion based on the inter-frame CCP model.

[1300] Item 46. According to the method described in Item 45, whether the inter-frame CCP mode is allowed to be applied to the video block is determined based on at least one of the following: the stripe type of the current stripe, dual-tree or single-tree, Merge type, Advanced Motion Vector Prediction (AMVP) type, information of the reference picture, codec block flag (CBF) information, residual information, coefficient information, TB size and CB size of the current video block, non-subblock transform (non-SBT) codec, prediction mode, picture resolution, or block dimension.

[1301] Item 47. The method according to Item 46, wherein the inter-frame CCP mode is allowed to be applied to the video block is determined based on whether the current slice type is a B slice or a P slice.

[1302] Item 48. The method according to Item 46, wherein the inter-frame CCP mode is allowed to be applied to the video block is determined based on whether the current stripe is a single tree or whether the current block is a single tree.

[1303] Item 49. The method according to Item 46, wherein the inter-frame CCP mode is permitted to be applied to the video block is determined based on whether the video block is encoded or decoded using one of the following: Merge mode, regular Merge mode, or sub-block Merge mode.

[1304] Item 50. The method according to Item 46, wherein the inter-frame CCP mode is allowed to be applied to the video block based on whether the video block has not been encoded or decoded by AMVP.

[1305] Item 51. The method according to Item 46, wherein the inter-frame CCP mode is allowed to be applied to the video block based on whether the current block is encoded or decoded using conventional bidirectional prediction, wherein conventional bidirectional prediction includes two reference images from different directions.

[1306] Item 52. The method according to Item 46, wherein the inter-frame CCP mode is permitted to be applied to the video block based on whether the inter-frame CCP mode is unidirectionally predictive encoded or decoded.

[1307] Item 53. The method according to Item 46, wherein the inter-frame CCP mode is allowed to be applied to the video block based on whether the information of the reference picture is a low-latency picture, wherein the reference picture precedes the current picture in the display order.

[1308] Item 54. The method according to Item 46, wherein the inter-frame CCP mode is allowed to be applied to the video block based on whether the current stripe is a low-latency stripe and whether the video block is merged.

[1309] Item 55. The method according to Item 46, wherein the inter-frame CCP mode is allowed to be applied to the video block based on whether the CBF information includes a non-zero luminance coefficient.

[1310] Item 56. The method according to Item 46, wherein the residual information or coefficient information of the video block includes at least one of the following: the absolute value of the luminance residual or coefficient, or the number of non-zero luminance coefficients.

[1311] Item 57. The method according to Item 46, wherein the inter-frame CCP mode is allowed to be applied to the video block is determined based on whether the TB size of the current video block is equal to the CB size of the current video block.

[1312] Item 58. The method according to Item 46, wherein the inter-frame CCP mode is allowed to be applied to the video block is determined based on whether the prediction mode is an inter-frame mode and / or whether the prediction mode is an intra-frame block copy (IBC) mode.

[1313] Item 59. The method according to Item 46, wherein the inter-frame CCP mode is allowed to be applied to the video block based on whether the image resolution is non-4K.

[1314] Item 60. The method according to Item 59, wherein the inter-frame CCP mode is allowed to be applied to the video block based on whether the image height is not greater than 1080.

[1315] Item 61. The method according to Item 59, wherein if the current image height is greater than a third number, the inter-frame CCP mode is not allowed to be applied to the video block.

[1316] Item 62. The method according to Item 61, wherein the third number is equal to 1080.

[1317] Item 63. The method according to Item 59, wherein if the current image width is greater than the fourth number, the inter-frame CCP mode is not allowed to be applied to the video block.

[1318] Item 64. The method according to Item 63, wherein the fourth number is equal to 4096.

[1319] Item 65. The method according to Item 46, wherein if the block dimension of the video block satisfies at least one of the following conditions, the inter-frame CCP mode is allowed to be applied to the video block: a0*W < b0*H, or a0*W <= b0*H; a1*W > b1*H, or a1*W >= b1*H; a2*H < b2*W, or a2*H <= b2*W; a3*H > b3*W, or a3*H >= b3*W; min(W, H) > T0, or min(W, H) >= T0; max(W, H) < T1, or max(W, H) <= T1; or W*H < T2, or W*H <= T2, where W represents the block width and H represents the block height.

[1320] Item 66. The method according to Item 65, wherein a0, a1, a2, a3, b0, b1, b2, and b3 are predetermined integers.

[1321] Item 67. The method according to Item 65, wherein T0, T1, and T2 are predetermined values.

[1322] Item 68. The method according to Item 65, wherein if W*H > 1024, the inter-frame CCP mode is not allowed to be used for the transform block (TB), or wherein if W*H > 516, the inter-frame CCP mode is not allowed to be used for the transform block (TB).

[1323] Item 69. The method according to Item 65, wherein if W*H <= 8, the inter-frame CCP mode is not allowed to be used for the transform block (TB), or wherein if W*H <= 16, the inter-frame CCP mode is not allowed to be used for the transform block (TB), or wherein if W*H <= 32, the inter-frame CCP mode is not allowed to be used for the transform block (TB).

[1324] Item 70. The method according to Item 65, wherein if 16*W <= H, the inter-frame CCP mode is not allowed to be used for the transform block (TB).

[1325] Item 71. The method according to Item 65, wherein if 16*H <= W, the inter-frame CCP mode is not allowed to be used for the transform block (TB).

[1326] Item 72. The method according to Item 45, wherein the application of the inter-frame CCP mode is used in at least one of the following: single tree or double tree.

[1327] Item 73. The method according to Item 45, wherein the application of the inter-frame CCP mode is used for chrominance coding and decoding.

[1328] Item 74. The method according to Item 45, wherein the application of the inter-frame CCP mode is used in inter-frame stripes.

[1329] Item 75. The method according to Item 74, wherein the inter-frame stripe is a B stripe or a P stripe.

[1330] Item 76. The method according to Item 45, wherein the application of the inter-frame CCP mode is used in an intra-frame stripe.

[1331] Item 77. The method according to Item 76, wherein the intra-frame stripe is an I-strip.

[1332] Item 78. The method according to any one of items 45 to 77, wherein an indication of whether and / or how the inter-frame CCP mode is applied to the video block is indicated at one of the following: sequence level, picture group level, picture level, strip level, or slice group level.

[1333] Item 79. The method according to any one of items 45 to 77, wherein an indication of whether and / or how the inter-frame CCP mode is applied to the video block 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 slice header.

[1334] Item 80. The method according to any one of items 45 to 77, wherein an indication of whether and / or how the inter-frame CCP mode is applied to the video block is included in one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, strip, slice, sub-picture, or region containing more than one sample point or pixel.

[1335] Item 81. The method according to any one of items 45 to 77 further comprises: determining, based on encoded and decoded information of the video units of the video, whether and / or how the inter-frame CCP mode is applied to the video block, the encoded and decoded information including at least one of the following: block size, color format, single-tree segmentation and / or dual-tree segmentation, color components, stripe type, or picture type.

[1336] Item 82. A method for video processing, comprising: sorting CCP model candidates based on rules for a conversion between a current block of a video and a bitstream of the video; and performing the conversion based on the sorted CCP model candidates.

[1337] Item 83. The method described in Item 82, wherein a multi-round sorting process is used in CCP mode.

[1338] Item 84. The method according to Item 83, wherein the multi-round sorting process is applied to derive the final CCP model for blocks encoded and decoded via inter-frame CCP.

[1339] Item 85. The method according to Item 83, wherein if CCP model candidates are classified into two groups, the first group of CCP model candidates is derived based on the motion information of the current block, and the second group of CCP model candidates is derived without the motion information of the current block.

[1340] Item 86. The method according to Item 85, wherein the first group of CCP model candidates is not sorted or reordered together with the second group of CCP model candidates.

[1341] Item 87. The method according to Item 86, wherein the first group of CCP model candidates includes at least one of the following CCP model candidates: a real-time computed CCP model, a CCP model derived based on spatially adjacent blocks, a CCP model derived based on spatially non-adjacent blocks, a CCP model derived based on a history-based lookup table, a CCP model derived based on temporal blocks, wherein the temporal blocks are derived from motion information of neighboring blocks, or a default CCP model.

[1342] Item 88. The m...

Claims

1. A method for video processing, comprising: For the conversion between the current block of the video and the bitstream of the video, the input to the cross-component prediction (CCP) model is determined to include at least one of the following: samples within a reference region, or samples within the current block; as well as The transformation is performed based on the CCP model.

2. The method of claim 1, wherein the CCP model input for the chromaticity samples in the reference region includes the samples in the reference region.

3. The method according to claim 2, wherein the reference region includes the training region.

4. The method of claim 1, wherein the CCP model input for the chroma samples within the current block includes the samples within the current block.

5. The method of claim 4, wherein the sample points within the current block include luminance sample points within the current block.

6. The method of claim 1, wherein the determination of the input of the CCP model is used in at least one of the following: single tree or double tree.

7. The method of claim 1, wherein the determination of the input of the CCP model is used for chroma encoding / decoding.

8. The method of claim 1, wherein the determination of the input of the CCP model is used in inter-frame stripes.

9. The method of claim 8, wherein the inter-frame stripe is a B-strip or a P-strip.

10. The method of claim 1, wherein the determination of the input of the CCP model is used in an intra-frame stripe.

11. The method of claim 10, wherein the intra-frame stripe is an I-strip.

12. The method according to any one of claims 1 to 11, wherein an indication of whether it is determined that the input of the CCP model includes at least one of the samples within the reference region or the samples within the current block and / or how to determine that the input of the CCP model includes at least one of the samples within the reference region or the samples within the current block is indicated at one of the following: sequence level, Image group level, Image quality, strip level, or Film series level.

13. The method according to any one of claims 1 to 11, wherein an indication of whether it is determined that the input of the CCP model includes at least one of the samples within the reference region or the samples within the current block and / or how to determine that the input of the CCP model includes at least one of the samples within the reference region or the samples within the current block is indicated in one of the following: Sequence header, Image header, Sequence Parameter Set (SPS) Video Parameter Set (VPS) Dependency Parameter Set (DPS) Decoding Capability Information (DCI) Image Parameter Set (PPS) Adaptive Parameter Set (APS) strip head, or The beginning of the film.

14. The method according to any one of claims 1 to 11, wherein an indication of whether it is determined that the input of the CCP model includes at least one of the samples within the reference region or the samples within the current block and / or how to determine that the input of the CCP model includes at least one of the samples within the reference region or the samples within the current block is included in one of the following: Predicted blocks (PB). Transform block (TB) Code block (CB) Prediction Unit (PU) Transformer Unit (TU) Codec Unit (CU) Virtual Pipeline Data Unit (VPDU). Code-decode tree unit (CTU) CTU line, strip, piece, Sub-images, or A region containing more than one sample point or pixel.

15. The method according to any one of claims 1 to 11, further comprising: Based on the encoded and decoded information of the current block of the video, determine whether it is determined that the input of the CCP model includes at least one of the samples in the reference region or the samples in the current block and / or how to determine that the input of the CCP model includes at least one of the samples in the reference region or the samples in the current block, wherein the encoded and decoded information includes at least one of the following: Block size, Color format, Single-tree partitioning and / or dual-tree partitioning, Color components, Strip type, or Image type.

16. A method for video processing, comprising: For the conversion between the current block of the video and the bitstream of the video, a CCP model for a template sample is determined by accessing at least one sample within the current luma block, wherein the at least one sample to be accessed is filled with another value; and The transformation is performed based on the CCP model.

17. The method of claim 16, wherein the first row sample and the first column sample within the current luminance block are accessed.

18. The method of claim 16, wherein the other value is based on neighboring samples.

19. The method of claim 18, wherein the neighboring sample is included in one of the following: a reference region, a training region, or a decoding region.

20. The method of claim 17, wherein the first row of samples to be accessed within the current luminance block is filled with neighboring samples on an upper row outside the current luminance block.

21. The method of claim 20, wherein the upper left sample to be accessed within the current luminance block is not filled with neighboring samples, the neighboring samples being on the upper row outside the current luminance block.

22. The method of claim 17, wherein the first column sample point to be accessed within the current luminance block is filled with neighboring sample points on the left column outside the current luminance block.

23. The method of claim 22, wherein the upper left sample point to be accessed within the current luminance block is not filled with neighboring samples, the neighboring samples being on the left column outside the current luminance block.

24. The method of claim 17, wherein the upper left sample point to be accessed within the current luminance block is filled with the upper left adjacent sample points outside the current luminance block.

25. The method of claim 17, wherein the upper left sample point to be accessed within the current luminance block is filled with the left adjacent sample point outside the current luminance block.

26. The method of claim 17, wherein the upper left sample point to be accessed within the current luminance block is filled with upper adjacent samples outside the current luminance block.

27. The method of claim 17, wherein the upper left sample point to be accessed within the current luminance block is filled with the value of the sample point at a predetermined position.

28. The method of claim 17, wherein the upper left sample point to be accessed within the current luminance block is filled with a predetermined value.

29. The method of claim 28, wherein the upper left sample to be accessed within the current luminance block is filled with 1 << (BITDEPTH-1), where BITDEPTH is the bit depth of the sample of the luminance array or chrominance array.

30. The method of claim 17, wherein the first row sample points to be accessed within the current luminance block are first filled, or The first column sample point to be accessed within the current luminance block is first filled.

31. The method of claim 30, wherein the first column sample to be accessed within the current luminance block is filled after the first row sample to be accessed within the current luminance block is filled, or The first row sample point to be accessed within the current luminance block is filled after the first column sample point to be accessed within the current luminance block is filled.

32. The method of claim 26, wherein the other value of the padding of the at least one sample to be accessed within the current luminance block is used for the calculation of the CCP model or the calculation of the cost of the CCP model for the template.

33. The method of claim 22, wherein the other value of the padding of the at least one sample to be accessed within the current luminance block is not used for subsequent processing of the current block.

34. The method of claim 33, wherein the subsequent processing of the current block includes at least one of the following: application of the CCP model to the current block, prediction derivation to the current block, or reconstruction derivation to the current block.

35. The method of claim 16, wherein the determination of the at least one sample to be accessed is used in at least one of: single-tree or dual-tree.

36. The method of claim 16, wherein the determination of the at least one sample to be accessed is used for chroma encoding / decoding.

37. The method of claim 16, wherein the determination of the at least one sample to be accessed is used in an inter-frame stripe.

38. The method of claim 37, wherein the inter-frame stripe is a B-strip or a P-strip.

39. The method of claim 16, wherein the determination of the at least one sample to be accessed is used in an intra-frame stripe.

40. The method of claim 39, wherein the intra-frame stripe is an I-strip.

41. The method according to any one of claims 16 to 40, wherein an indication of whether it is determined that the at least one sample point to be accessed within the current luminance block is filled with the other value and / or how to determine that the at least one sample point to be accessed within the current luminance block is filled with the other value is indicated at one of the following: sequence level, Image group level, Image quality, strip level, or Film series level.

42. The method of any one of claims 16 to 40, wherein an indication of whether it is determined that the at least one sample point to be accessed within the current luminance block is filled with the other value and / or how to determine that the at least one sample point to be accessed within the current luminance block is filled with the other value is indicated in one of the following: Sequence header, Image header, Sequence Parameter Set (SPS) Video Parameter Set (VPS) Dependency Parameter Set (DPS) Decoding Capability Information (DCI) Image Parameter Set (PPS) Adaptive Parameter Set (APS) strip head, or The beginning of the film.

43. The method of any one of claims 16 to 40, wherein an indication of whether it is determined that the at least one sample point to be accessed within the current luminance block is filled with the other value and / or how to determine that the at least one sample point to be accessed within the current luminance block is filled with the other value is included in one of the following: Predicted blocks (PB). Transform block (TB) Code block (CB) Prediction Unit (PU) Transformer Unit (TU) Codec Unit (CU) Virtual Pipeline Data Unit (VPDU). Code-decode tree unit (CTU) CTU line, strip, piece, Sub-images, or A region containing more than one sample point or pixel.

44. The method according to any one of claims 16 to 40, further comprising: Based on the encoded and decoded information of the current block of the video, determine whether it is determined that the at least one sample to be accessed within the current luminance block is filled with the other value and / or how to determine that the at least one sample to be accessed within the current luminance block is filled with the other value, wherein the encoded and decoded information includes at least one of the following: Block size, Color format, Single-tree partitioning and / or dual-tree partitioning, Color components, Strip type, or Image type.

45. A method for video processing, comprising: For the conversion between video blocks and the bitstream of the video, the inter-frame cross-component prediction (CCP) mode is applied to the video blocks; as well as The conversion is performed based on the inter-frame CCP model.

46. ​​The method of claim 45, wherein whether the inter-frame CCP mode is permitted to be applied to the video block is determined based on at least one of the following: The current stripe type. Two trees or one tree, Merge type, Advanced Motion Vector Prediction (AMVP) type, Refer to the information in the image. Code block flag (CBF) information, Residual information Coefficient information The current video block's TB size and CB size, Non-subblock transform (non-SBT) encoding and decoding, Predictive patterns Image resolution, or Block dimension.

47. The method of claim 46, wherein the inter-frame CCP mode is allowed to be applied to the video block based on whether the current slice type is a B slice or a P slice.

48. The method of claim 46, wherein the inter-frame CCP mode is allowed to be applied to the video block based on whether the current stripe is a single tree or whether the current block is a single tree.

49. The method of claim 46, wherein the inter-frame CCP mode is permitted to be applied to the video block based on whether the video block is encoded or decoded using one of the following: Merge mode, regular Merge mode, or sub-block Merge mode.

50. The method of claim 46, wherein the inter-frame CCP mode is permitted to be applied to the video block based on whether the video block has not been encoded or decoded by AMVP.

51. The method of claim 46, wherein the inter-frame CCP mode is allowed to be applied to the video block based on whether the current block is encoded or decoded using conventional bidirectional prediction, wherein conventional bidirectional prediction includes two reference images from different directions.

52. The method of claim 46, wherein the inter-frame CCP mode is permitted to be applied to the video block based on whether the inter-frame CCP mode is unidirectionally predictive encoded or decoded.

53. The method of claim 46, wherein the inter-frame CCP mode is allowed to be applied to the video block based on whether the information of the reference image is a low-latency image, wherein the reference image precedes the current image in the display order.

54. The method of claim 46, wherein the inter-frame CCP mode is allowed to be applied to the video block based on whether the current stripe is a low-latency stripe and whether the video block is merged.

55. The method of claim 46, wherein the inter-frame CCP mode is allowed to be applied to the video block based on whether the CBF information includes a non-zero luminance coefficient.

56. The method of claim 46, wherein the residual information or coefficient information of the video block includes at least one of the following: the absolute value of the luminance residual or coefficient, or the number of non-zero luminance coefficients.

57. The method of claim 46, wherein the inter-frame CCP mode is allowed to be applied to the video block based on whether the TB size of the current video block is equal to the CB size of the current video block.

58. The method according to claim 46, wherein whether the inter-frame CCP mode is allowed to be applied to the video block is determined based on whether the prediction mode is an inter-frame mode and / or whether the prediction mode is an intra-block copy (IBC) mode.

59. The method according to claim 46, wherein whether the inter-frame CCP mode is allowed to be applied to the video block is determined based on whether the picture resolution is non-4K.

60. The method according to claim 59, wherein whether the inter-frame CCP mode is allowed to be applied to the video block is determined based on whether the picture height is no greater than 1080.

61. The method according to claim 59, wherein if the current picture height is greater than a third number, the inter-frame CCP mode is not allowed to be applied to the video block.

62. The method according to claim 61, wherein the third number is equal to 1080.

63. The method according to claim 59, wherein if the current picture width is greater than a fourth number, the inter-frame CCP mode is not allowed to be applied to the video block.

64. The method according to claim 63, wherein the fourth number is equal to 4096.

65. The method according to claim 46, wherein if the block dimensions of the video block satisfy at least one of the following conditions, the inter-frame CCP mode is allowed to be applied to the video block: a0*W < b0*H, or a0*W <= b0*H; a1*W > b1*H, or a1*W >= b1*H; a2*H < b2*W, or a2*H <= b2*W; a3*H > b3*W, or a3*H >= b3*W; min (W, H) > T0, or min (W, H) >= T0; max (W, H) < T1, or max (W, H) <= T1; or W * H < T2, or W * H <= T2, where W represents the block width and H represents the block height.

66. The method according to claim 65, wherein a0, a1, a2, a3, b0, b1, b2, and b3 are predetermined integers.

67. The method according to claim 65, wherein T0, T1, and T2 are predetermined values.

68. The method according to claim 65, wherein if W * H > 1024, the inter-frame CCP mode is not allowed for the transform block (TB), or wherein if W * H > 516, the inter-frame CCP mode is not allowed for the transform block (TB).

69. The method according to claim 65, wherein if W * H <= 8, the inter-frame CCP mode is not allowed for the transform block (TB), or wherein if W * H <= 16, the inter-frame CCP mode is not allowed for the transform block (TB), or wherein if W * H <= 32, the inter-frame CCP mode is not allowed for the transform block (TB).

70. The method of claim 65, wherein if 16 * W <= H, the inter-frame CCP mode is not permitted for transform blocks (TB).

71. The method of claim 65, wherein if 16 * H <= W, the inter-frame CCP mode is not permitted for transform blocks (TB).

72. The method of claim 45, wherein the application of the inter-frame CCP mode is used in at least one of the following: single-tree or dual-tree.

73. The method of claim 45, wherein the application of the inter-frame CCP mode is used for chroma encoding and decoding.

74. The method of claim 45, wherein the application of the inter-frame CCP mode is used in an inter-frame stripe.

75. The method of claim 74, wherein the inter-frame stripe is a B-strip or a P-strip.

76. The method of claim 45, wherein the application of the inter-frame CCP mode is used in an intra-frame stripe.

77. The method of claim 76, wherein the intra-frame stripe is an I-strip.

78. The method according to any one of claims 45 to 77, wherein an indication of whether and / or how to apply the inter-frame CCP mode to the video block is indicated at one of the following: sequence level, Image group level, Image quality, strip level, or Film series level.

79. The method according to any one of claims 45 to 77, wherein an indication of whether and / or how to apply the inter-frame CCP mode to the video block is indicated in one of the following: Sequence header, Image header, Sequence Parameter Set (SPS) Video Parameter Set (VPS) Dependency Parameter Set (DPS) Decoding Capability Information (DCI) Image Parameter Set (PPS) Adaptive Parameter Set (APS) strip head, or The beginning of the film.

80. The method according to any one of claims 45 to 77, wherein an indication of whether and / or how the inter-frame CCP mode is applied to the video block is included in one of the following: Predicted blocks (PB). Transform block (TB) Code block (CB) Prediction Unit (PU) Transformer Unit (TU) Codec Unit (CU) Virtual Pipeline Data Unit (VPDU). Code-decode tree unit (CTU) CTU line, strip, piece, Sub-images, or A region containing more than one sample point or pixel.

81. The method according to any one of claims 45 to 77, further comprising: Based on the encoded and decoded information of the video unit of the video, it is determined whether and / or how to apply the inter-frame CCP mode to the video block, wherein the encoded and decoded information includes at least one of the following: Block size, Color format, Single-tree partitioning and / or dual-tree partitioning, Color components, Strip type, or Image type.

82. A method for video processing, comprising: For the conversion between the current block of the video and the bitstream of the video, the CCP model candidates are sorted according to rules; as well as The transformation is performed based on the sorted CCP model candidates.

83. The method of claim 82, wherein the multi-round sorting process is used in CCP mode.

84. The method of claim 83, wherein the multi-round sorting process is applied to derive the final CCP model for blocks encoded and decoded via inter-frame CCP.

85. The method of claim 83, wherein if CCP model candidates are classified into two groups, the first group of CCP model candidates is derived based on the motion information of the current block, and the second group of CCP model candidates is derived without the motion information of the current block.

86. The method of claim 85, wherein the first group of CCP model candidates is not sorted or reordered together with the second group of CCP model candidates.

87. The method of claim 86, wherein the first set of CCP model candidates includes at least one of the following CCP model candidates: Real-time computed CCP model The CCP model derived from spatially adjacent blocks CCP model derived from spatially non-adjacent blocks Based on the CCP model derived from the historical lookup table, The CCP model is based on temporal block derivation, where the temporal block is derived from the motion information of neighboring blocks, or The default CCP model.

88. The method of claim 87, wherein the real-time computed CCP model includes at least one of the following: inter-frame convolutional cross-component model (CCCM), intra-frame CCCM, intra-frame cross-component linear model (CCLM), or intra-frame gradient linear model (GLM).

89. The method of claim 87, wherein the time-domain block derived from the motion information of the neighboring blocks includes candidates for time-domain shifting.

90. The method of claim 88, wherein the default CCP model is generated from existing CCP candidates using predetermined rules.

91. The method of claim 90, wherein the default CCP model is generated based on CCLM.

92. The method of claim 91, wherein the default CCP model is not generated based on the motion information of the current block.

93. The method of claim 86, wherein the second set of CCP model candidates includes CCP models of time-domain blocks derived from motion information of the current block.

94. The method of claim 86, wherein the first group of CCP model candidates is sorted in the first round of sorting.

95. The method of claim 94, wherein the first number of candidates with the lowest cost after the first round of sorting is the input for the second round of sorting.

96. The method of claim 95, wherein the first number of candidates is sorted together with the second group of CCP model candidates in the second round of sorting.

97. The method of claim 86, wherein the second group of CCP model candidates is sorted in the first round of sorting.

98. The method of claim 97, wherein the second number of candidates with the lowest cost after the first round of sorting is the input for the second round of sorting.

99. The method of claim 98, wherein the second number of candidates is sorted together with the first group of CCP model candidates in the second round of sorting.

100. The method of claim 82, wherein the temporal CCP model candidate for the CCP mode is derived without motion information of the current block.

101. The method of claim 100, wherein the CCP mode includes an inter-frame CCP mode.

102. The method of claim 82, wherein the real-time computed inter-frame CCCM model is not sorted together with the CCP model derived from previously encoded / decoded blocks.

103. The method of claim 82, wherein the real-time computed inter-frame CCCM model is not sorted together with the real-time computed intra-frame CCP model.

104. The method of claim 82, wherein the real-time computed inter-frame CCCM model is sorted together with at least one of the following CCP models: Real-time computed intra-frame CCP model. Intra-frame CCP model derived from previously encoded and decoded blocks, or Intra-frame CCP model.

105. The method of claim 82, wherein the ranking of the CCP model candidates is used in at least one of the following: single-tree or double-tree.

106. The method of claim 82, wherein the ranking of CCP model candidates is used for chroma encoding and decoding.

107. The method of claim 82, wherein the ordering of the CCP model candidates is used in inter-frame stripes.

108. The method of claim 107, wherein the inter-frame stripe is a B-strip or a P-strip.

109. The method of claim 82, wherein the ordering of the CCP model candidates is used in intra-frame stripes.

110. The method of claim 109, wherein the intra-frame stripe is an I-strip.

111. The method according to any one of claims 82 to 110, wherein an indication of whether and / or how to rank the CCP model candidates based on the rule is indicated at one of the following: sequence level, Image group level, Image quality, strip level, or Film series level.

112. The method according to any one of claims 82 to 110, wherein the indication of whether and / or how to rank the CCP model candidates based on the rule is indicated in one of the following: Sequence header, Image header, Sequence Parameter Set (SPS) Video Parameter Set (VPS) Dependency Parameter Set (DPS) Decoding Capability Information (DCI) Image Parameter Set (PPS) Adaptive Parameter Set (APS) strip head, or The beginning of the film.

113. The method according to any one of claims 82 to 110, wherein an indication of whether and / or how the CCP model candidates are ranked based on the rule is included in one of the following: Predicted blocks (PB). Transform block (TB) Code block (CB) Prediction Unit (PU) Transformer Unit (TU) Codec Unit (CU) Virtual Pipeline Data Unit (VPDU). Code-decode tree unit (CTU) CTU line, strip, piece, Sub-images, or A region containing more than one sample point or pixel.

114. The method according to any one of claims 82 to 110, further comprising: Based on the encoded and decoded information of the video units of the video, determine whether and / or how to sort the CCP model candidates based on the rules, wherein the encoded and decoded information includes at least one of the following: Block size, Color format, Single-tree partitioning and / or dual-tree partitioning, Color components, Strip type, or Image type.

115. The method according to any one of claims 1 to 114, wherein the conversion comprises encoding the video unit into the bitstream.

116. The method according to any one of claims 1 to 114, wherein the conversion comprises decoding the video unit from the bitstream.

117. An apparatus for video processing, comprising a processor and a nontransitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method according to any one of claims 1 to 116.

118. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method according to any one of claims 1 to 116.

119. A non-transitory computer-readable recording medium storing a bitstream of video generated by a method performed by means of a video processing apparatus, wherein the method includes: The input to the cross-component prediction (CCP) model for the current block of the video includes at least one of the following: samples within a reference region, or samples within the current block of the video; as well as The bitstream is generated based on the CCP model.

120. A method for storing a bitstream of video, comprising: The input to the cross-component prediction (CCP) model for the current block of the video includes at least one of the following: samples within a reference region, or samples within the current block of the video; The bitstream is generated based on the CCP model; as well as The bitstream is stored in a non-transitory computer-readable recording medium.

121. A non-transitory computer-readable recording medium for storing a bitstream of video generated by a method performed by means of a video processing apparatus, wherein the method includes: A CCP model for template samples of the current block of the video is determined by accessing at least one sample within the current luma block, wherein the at least one sample to be accessed is filled with another value; and The bitstream is generated based on the CCP model.

122. A method for storing a bitstream of video, comprising: A CCP model for template samples of the current block of the video is determined by accessing at least one sample within the current luminance block, wherein the at least one sample to be accessed is filled with another value. The bitstream is generated based on the CCP model; as well as The bitstream is stored in a non-transitory computer-readable recording medium.

123. A non-transitory computer-readable recording medium for storing a bitstream of video generated by a method performed by means of a video processing apparatus, wherein the method includes: Apply the cross-component prediction (CCP) mode to video blocks of the video; as well as The bitstream is generated based on the inter-frame CCP model.

124. A method for storing a bitstream of video, comprising: Apply the cross-component prediction (CCP) mode to video blocks of the video; The bitstream is generated based on the inter-frame CCP model; as well as The bitstream is stored in a non-transitory computer-readable recording medium.

125. A non-transitory computer-readable recording medium for storing a bitstream of video generated by a method performed by means of a video processing apparatus, wherein the method includes: The CCP model candidates for the video units of the video are ranked according to the rules. as well as The bitstream is generated based on the sorted CCP model candidates.

126. A method for storing a bitstream of video, comprising: The CCP model candidates for the video units of the video are ranked according to the rules. The bitstream is generated based on the sorted CCP model candidates; as well as The bitstream is stored in a non-transitory computer-readable recording medium.