Method and device for video processing and medium
By introducing a cross-component prediction candidate list mode, the problem of insufficient encoding and decoding efficiency in existing video encoding and decoding technologies is solved, and more efficient video processing is achieved.
Patent Information
- Application Number
- CN202480022132.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-05-08
- Filing Date
- 2024-04-01
- Publication Date
- 2025-11-11
AI Technical Summary
Existing video encoding and decoding technologies have room for improvement in encoding and decoding efficiency, especially in cross-component prediction, where it is difficult to effectively improve encoding and decoding efficiency.
By introducing a cross-component prediction (CCP) candidate list mode into video processing, the applicability of the current video block can be determined based on encoding and decoding information, thus realizing the application of the cross-component prediction mode.
It improves the effectiveness and efficiency of encoding and decoding, thereby enhancing the performance of video processing.
Smart Images

Figure CN120937345A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of this disclosure generally relate to video processing techniques, and more specifically, to cross-component prediction (CCP) models. Background Technology
[0002] Digital video capabilities are now 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 Multi-Functional 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 video block and a video bitstream, determining whether a cross-component prediction (CCP) candidate list pattern is applicable to the current video block based on encoding / decoding information of at least one of the following: the current chroma block, or a co-occurring luma block; and performing the conversion based on this determination. The method according to the first aspect of this disclosure enables the application of determining the CCP candidate list pattern based on encoding / decoding information. Encoding / decoding efficiency and effectiveness can therefore be improved.
[0005] In a second aspect, an apparatus for video processing is provided. The apparatus includes a processor and a non-transitory memory having instructions thereon. When executed by the processor, the instructions cause the processor to perform the method according to the first aspect of this disclosure.
[0006] In a third aspect, a non-transitory computer-readable storage medium is proposed. This non-transitory computer-readable storage medium stores instructions that cause a processor to perform the method according to the first aspect of this disclosure.
[0007] In a fourth 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, based on encoding / decoding information of at least one of the following, whether a cross-component prediction (CCP) candidate list pattern is applicable to the current video block: the current chroma block, or a co-occurring luma block; and generating a bitstream based on this determination.
[0008] In a fifth aspect, a method for storing a bitstream of video is proposed. The method includes: determining whether a cross-component prediction (CCP) candidate list pattern is applicable to the current video block of the video based on encoding / decoding information of at least one of the following: the current chroma block, or a co-occurring luma block; generating a bitstream based on this determination; and storing the bitstream in a non-transitory computer-readable recording medium.
[0009] 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
[0010] 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.
[0011] Figure 1 A block diagram illustrating an example video codec system according to some embodiments of the present disclosure is shown;
[0012] Figure 2 A block diagram illustrating a first example video encoder according to some embodiments of the present disclosure is shown;
[0013] Figure 3 A block diagram illustrating an example video decoder according to some embodiments of the present disclosure is shown;
[0014] Figure 4 The nominal vertical and horizontal positions of the 4:2:2 luminance and chrominance samples in the image are shown.
[0015] Figure 5 An example of an encoder block diagram is shown;
[0016] Figure 6 67 intra-frame prediction modes are shown;
[0017] Figure 7 Reference samples for wide-angle intra-frame prediction are shown;
[0018] Figure 8 This illustrates the problem of discontinuities when the orientation exceeds 45°;
[0019] Figure 9 The locations of the sample points used to derive α and β are shown;
[0020] Figure 10 An example of classifying neighboring samples into two groups is shown;
[0021] Figure 11A This is a schematic diagram illustrating the definition of the sample points used by the PDPC applied to the upper right diagonal mode;
[0022] Figure 11B This is a schematic diagram illustrating the definition of the sample points used by the PDPC applied to the lower left diagonal mode;
[0023] Figure 11C This is a schematic diagram illustrating the definition of the sample points used by the PDPC applied to the adjacent diagonal top right pattern;
[0024] Figure 11D This is a schematic diagram illustrating the definition of the sample points used by the PDPC applied to the adjacent diagonal lower left pattern;
[0025] Figure 12 This is a schematic diagram illustrating the gradient method for non-vertical / non-horizontal patterns;
[0026] Figure 13 This is a schematic diagram illustrating the nScale value relative to nTbH and the number of modes; the gradient method is used for all cases where nScale < 0;
[0027] Figure 14 This is a schematic diagram showing the flowcharts of the current PDPC and the proposed PDPC;
[0028] Figure 15 This is a schematic diagram illustrating the neighboring blocks (L, A, BL, AR, AL) used in the derivation of the general MPM list;
[0029] Figure 16 This is a schematic diagram illustrating an example of the proposed intra-frame reference mapping;
[0030] Figure 17 This is a schematic diagram showing an example of four reference rows adjacent to the prediction block;
[0031] Figure 18A This is a schematic diagram illustrating examples of sub-segments for 4×8 and 8×4 CU;
[0032] Figure 18B This is a schematic diagram illustrating examples of sub-segments for CUs other than 4×8, 8×4, and 4×4;
[0033] Figure 19 This is a schematic diagram illustrating the matrix-weighted intra-frame prediction process;
[0034] Figure 20 This is a schematic diagram showing the target sample, template sample, and template reference sample used in DIMD;
[0035] Figure 21This is a schematic diagram illustrating the proposed intra-frame block decoding process;
[0036] Figure 22 This is a schematic diagram illustrating the HoG calculation from a template with a width of 3 pixels;
[0037] Figure 23 This is a schematic diagram illustrating the prediction fusion by weighted averaging of two HoG modes and a plane;
[0038] Figure 24 This is a schematic diagram showing the spatial portion of a convolutional filter;
[0039] Figure 25 This is a schematic diagram showing the reference region (with its filling) used to derive the filter coefficients;
[0040] Figure 26 This is a schematic diagram illustrating four Sobel-based gradient modes used for GLM;
[0041] Figure 27 This is a schematic diagram showing the spatial sampling points used in GL-CCCM;
[0042] Figure 28 This is a schematic diagram showing unsampled brightness points;
[0043] Figure 29 The spatial GPM candidates are shown;
[0044] Figure 30 The GPM template is shown;
[0045] Figure 31 GPM mixing is shown;
[0046] Figure 32 The binarization of cross-component prediction modes in ECM is shown, where Figure 32 In this context, “CCLM” can be replaced with “CCCM”;
[0047] Figure 33 An example of the brightness samples to be prepared is shown;
[0048] Figure 34 An example of a potential candidate region (shared block) is shown;
[0049] Figures 35A to 35C Possible templates are shown respectively;
[0050] Figure 36 Various downsampling filters used in the proposed cross-component model are shown;
[0051] Figure 37 The location of the chromaticity sample points is shown;
[0052] Figures 38A to 38C Possible templates are shown respectively;
[0053] Figure 39 The adjacent neighboring blocks are shown;
[0054] Figure 40 A flowchart of a method for video processing according to embodiments of the present disclosure is shown; and
[0055] Figure 41 A block diagram of a computing device in which various embodiments of the present disclosure may be implemented is shown.
[0056] Throughout all the accompanying figures, the same or similar reference numerals generally refer to the same or similar elements. Detailed Implementation
[0057] 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.
[0058] 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.
[0059] 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.
[0060] 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.
[0061] 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. Example Environment
[0062] 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.
[0063] 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.
[0064] 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.
[0065] 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.
[0066] 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.
[0067] 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.
[0068] 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.
[0069] 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.
[0070] 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.
[0071] 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 2The examples are shown separately.
[0072] 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.
[0073] 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).
[0074] 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.
[0075] 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.
[0076] 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.
[0077] 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.
[0078] 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.
[0079] In one example, the motion estimation unit 204 may indicate a value in the syntax structure associated with the current video block that indicates to the video decoder 300 that the current video block has the same motion information as another video block.
[0080] In another example, motion estimation unit 204 may 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.
[0081] 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.
[0082] 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.
[0083] 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.
[0084] 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.
[0085] 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.
[0086] 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.
[0087] 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.
[0088] 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.
[0089] 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.
[0090] 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.
[0091] The video decoder 300 can be configured to perform any or all of the technologies disclosed herein. Figure 3In 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.
[0092] 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.
[0093] 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.
[0094] 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.
[0095] 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.
[0096] 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 aspects, 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.
[0097] 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.
[0098] 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.
[0099] 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. 1. Brief Overview This disclosure relates to video coding and decoding techniques. Specifically, it relates to cross-component prediction. It can be applied to existing video coding and decoding standards such as HEVC or VVC. It can also be applied to future video coding and decoding standards or video codecs. 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. These 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 jointly established by VCEG and MPEG in 2015. Since then, JVET has adopted many new methods and incorporated them into reference software called the Joint Exploration Model (JEM). In April 2018, the Joint Video Experts Group (JVET) between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) was established to work on the VVC standard, with the goal of reducing the bit rate by 50% compared to HEVC. 2.1. Color Space and Chromaticity Downsampling A color space, also known as a color model (or color system), is an abstract mathematical model that simply describes a range of colors as tuples of numbers, typically 3 or 4 values or color components (e.g., RGB). Essentially, a color space is a refinement of a coordinate system and its subspaces. For video compression, the most commonly used color spaces are YCbCr and RGB. YCbCr, Y'CbCr, or Y Pb / Cb Pr / Cr, also written as YCBCR or Y'CBCR, is a family of color spaces used as part of the color image pipeline in video and digital photography systems. Y' is the luminance component, and CB and CR are the blue and red difference chromaticity components. Y' (with an apostrophe) is distinguished from Y, which is luminance, meaning that light intensity is encoded non-linearly based on gamma-corrected RGB primary colors. Chromaticity downsampling is a practice of encoding images at a lower resolution for chromaticity information than for luminance information, taking advantage of the fact that the human visual system is less sensitive to color differences than to luminance. 2.1.1.4:4:4 Each of the three Y'CbCr components has the same sample rate, therefore there is no chromaticity downsampling. This scheme is sometimes used in high-end film scanners and film post-production. 2.1.2.4:2:2 The two chroma components are sampled at half the luminance sampling rate: the horizontal chroma resolution is halved, while the vertical chroma resolution remains unchanged. This reduces the bandwidth of the uncompressed video signal by one-third with little or no visual difference. Examples of the nominal vertical and horizontal positions for the 4:2:2 color format are shown in the VVC working draft. Figure 4 It is depicted in the middle. Figure 4 The nominal vertical and horizontal positions of the 4:2:2 luminance and chrominance samples in the image are shown. 2.1.3.4:2:0 In 4:2:0, the horizontal sampling is doubled compared to 4:1:1, but the vertical resolution is halved because the Cb and Cr channels are sampled only on each alternating row. Therefore, the data rate remains the same. Cb and Cr are downsampled by a factor of 2 in both the horizontal and vertical directions. There are three variations of the 4:2:0 scheme with different horizontal and vertical positioning. ● In MPEG-2, Cb and Cr are co-located in the horizontal direction. Cb and Cr are located between pixels in the vertical direction (at the gap position). ● In JPEG / JFIF, H.261, and MPEG-1, Cb and Cr are located at intervening positions, in the middle of alternating luminance samples. ● In 4:2:0 DV, Cb and Cr are co-located in the horizontal direction. In the vertical direction, Cb and Cr are co-located on alternating rows. Table 1 shows the SubWidthC and SubHeightC values derived from chroma_format_idc and separate_colour_plane_flag. chroma_format_idc separate_colour_plane_flag Color format SubWidthC SubHeightC 0 0 monochrome 1 1 1 0 4:2:0 2 2 2 0 4:2:2 2 1 3 0 4:4:4 1 1 3 1 4:4:4 1 1 2.2. Encoding and decoding process of a typical video codec Figure 5 An example of a VVC encoder block diagram is shown, which contains three loop filtering blocks: a deblocking filter (DF), a sample adaptive compensation (SAO), and an ALF. Unlike the DF, which uses predefined filters, the SAO and ALF utilize the original samples of the current image, reducing the mean square error between the original and reconstructed samples by adding compensation and by applying a finite impulse response (FIR) filter, respectively, and by utilizing the encoded / decoded side information through signal transmission compensation and filter coefficients. The ALF is located in the last processing stage of each image and can be viewed as a tool to attempt to capture and repair artifacts caused by previous stages. 2.3. Intra-mode encoding and decoding with 67 intra-prediction modes To capture arbitrary edge directions presented in natural videos, such as Figure 6As shown, the number of intra-frame directional modes has expanded from 33 used in HEVC to 65. Figure 6 Sixty-seven intra-prediction modes are shown, with the planar mode and DC mode remaining unchanged. These denser directional intra-prediction modes are applicable to all block sizes and both luma and chroma intra-prediction. In HEVC, each intra-coded block is square-shaped, and the length of each side is a power of 2. Therefore, no division is needed to generate intra-prediction values using DC mode. In VVC, blocks can be rectangular, and division is generally required for each block. To avoid division for DC prediction, only the longer sides are used to calculate the average of non-square blocks. 2.3.1. Wide-angle intra-frame prediction Although 67 modes are defined in VVC, the precise prediction direction for a given intra-prediction mode index depends on the block shape. Regular angular intra-prediction directions are defined clockwise from 45 degrees to -135 degrees. In VVC, for non-square blocks, several regular angular intra-prediction modes are adaptively replaced with wide-angle intra-prediction modes. The replaced modes are transmitted via signaling using the original mode index, which is then remapped to the wide-angle mode index after resolution. The total number of intra-prediction modes remains unchanged at 67, and the intra-mode encoding / decoding method remains unchanged. Figure 7 The reference samples used for wide-angle intra-frame prediction are shown. To support these prediction directions, a top reference of length 2W+1 and a left reference of length 2H+1 are defined, as follows: Figure 7 As shown. The number of modes replaced in the wide-angle directional mode depends on the aspect ratio of the block. The replaced intra-prediction modes are shown in Table 2. Table 2 shows the intra-prediction modes replaced by the wide-angle mode. Aspect Ratio Replaced intra-prediction mode W / H = 16 Patterns 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 W / H==8 Patterns 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 W / H==4 Patterns 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 W / H==2 Patterns 2, 3, 4, 5, 6, 7, 8, 9 W / H==1 none W / H = 1 / 2 Patterns 59, 60, 61, 62, 63, 64, 65, 66 W / H = 1 / 4 Patterns 57, 58, 59, 60, 61, 62, 63, 64, 65, 66 W / H = 1 / 8 Patterns 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66 W / H = 1 / 16 Patterns 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66 Figure 8 This illustrates the problem of discontinuities when the orientation exceeds 45°. For example... Figure 8 As shown, in the case of wide-angle intra-frame prediction, two vertically adjacent prediction samples can use two non-adjacent reference samples. Therefore, a low-pass reference sample filter and edge smoothing are applied to wide-angle prediction to reduce the increased gap Δp. αThe negative impact of wide-angle mode. If the wide-angle mode represents a non-fractional offset. There are 8 wide-angle modes that satisfy this condition, namely [-14, -12, -10, -6, 72, 76, 78, 80]. When a block is predicted through these modes, the samples in the reference cache are directly copied without applying any interpolation. This modification reduces the number of samples that need to be smoothed. In addition, it aligns the design of non-fractional modes in regular prediction modes with that of wide-angle modes. In VVC, in addition to 4:2:0, 4:2:2 and 4:4:4 chroma formats are also supported. The chroma derivation mode (DM) derivation table for the 4:2:2 chroma format was originally ported from HEVC, with the number of entries expanded from 35 to 67 to align with the expansion of intra-prediction modes. Since the HEVC specification does not support prediction angles below -135 degrees and above 45 degrees, the luma intra-prediction mode range from 2 to 5 is mapped to 2. Therefore, the chroma DM derivation table for the 4:2:2 chroma format is updated by replacing some values in the mapping table entries to more accurately convert the prediction angle for chroma blocks. 2.4. Intra-prediction mode encoding and decoding for chroma components For the chroma component of the intra-frame prediction unit (PU), the encoder selects the optimal chroma prediction mode from five modes that directly copy the intra-frame prediction modes, including planar, DC, horizontal, vertical, and luma components. The mapping between the intra-frame prediction direction of chroma and the intra-frame prediction mode number is shown in Table 3. When the intra-prediction mode number for the chroma component is 4, the intra-prediction direction for the luma component is used for the generation of intra-prediction samples for the chroma component. When the intra-prediction mode number for the chroma component is not 4 and is the same as the intra-prediction mode number for the luma component, the intra-prediction direction of 66 is used for the generation of intra-prediction samples for the chroma component. 2.5. Inter-frame prediction For each inter-frame prediction CU, motion parameters consist of a motion vector, a reference picture index, a reference picture list usage index, and additional information required for the new encoding / decoding features of the VVC to be used in the generation of inter-frame prediction samples. Motion parameters can be transmitted via signaling in an explicit or implicit manner. When a CU is encoded / decoded in skip mode, the CU is associated with a PU and does not have significant residual coefficients, encoded / decoded motion vector differences, or reference picture indices. A Merge mode is specified, whereby motion parameters for the current CU are obtained from neighboring CUs, including spatial and temporal candidates, as well as additional scheduling introduced in the VVC. Merge mode can be applied to any inter-frame prediction CU, not just skip mode. An alternative to Merge mode is explicit transmission of motion parameters, where for each CU, the motion vector, the corresponding reference picture index for each reference picture list, the reference picture list usage flag, and other required information are explicitly transmitted via signaling. 2.6. Intra-Block Copying (IBC) Intra-Block Copy (IBC) is a tool used in the HEVC extension on SCC. IBC is well known to significantly improve the encoding and decoding efficiency of screen content material. Since IBC mode is implemented as a block-level encoding and decoding mode, block matching (BM) is performed at the encoder to find the optimal block vector (or motion vector) for each CU. Here, the block vector is used to indicate the displacement from the current block to a reference block that has already been reconstructed within the current image. The luma block vector of a CU encoded with IBC is integer precise. The chroma block vector is also rounded to integer precision. When combined with AMVR, IBC mode can switch between 1-pixel motion vector precision and 4-pixel motion vector precision. CUs encoded with IBC are considered a third prediction mode, distinct from intra-prediction mode or inter-prediction mode. IBC mode is suitable for CUs with a width and height of 64 luma samples or less. On the encoder side, hash-based motion estimation for IBC is performed. The encoder performs RD check on blocks with a width or height no greater than 16 luminance samples. For non-Merge mode, block vector search is first performed using a hash-based search. If the hash search does not return valid candidates, a local search based on block matching is performed. In hash-based search, hash key matching (32-bit CRC) between the current block and reference blocks is extended to all allowed block sizes. Hash key calculation for each location in the current image is based on 4x4 sub-blocks. For the larger current block, a hash key is determined to match the hash key of a reference block when all hash keys of all 4x4 sub-blocks match the hash key at the corresponding reference location. If multiple reference block hash keys are found to match the hash key of the current block, the block vector cost of each matching reference is calculated, and the one with the lowest cost is selected. In block matching search, the search scope is set to cover both the previous CTU and the current CTU. At the CU level, the IBC mode is transmitted via a flag, and it can be transmitted via a flag as either IBC AMVP mode or IBC Skip / Merge mode, as follows: –IBC Skip / Merge Mode: The Merge candidate index is used to indicate which block vector from the list of neighboring candidate IBC codec blocks is used to predict the current block. The Merge list consists of spatial candidates, HMVP candidates, and paired candidates. –IBC AMVP Mode: Block vector differences are encoded and decoded in the same way as motion vector differences. The block vector prediction method uses two candidates as prediction values, one from the left neighbor and one from the upper neighbor (if IBC encoded and decoded). When either neighbor is unavailable, the default block vector is used as the prediction value. A flag is transmitted via signaling to indicate the block vector prediction value index. 2.7. Prediction using a cross-component linear model To reduce cross-component redundancy, a cross-component linear model (CCLM) prediction mode is used in VVC. For this CCLM prediction mode, chroma samples are predicted based on reconstructed luminance samples from the same CU using the following linear model: pred C (i,j)=α·rec L ′(i,j)+ β (2-1) Among them, pred C (i,j) represents the predicted chromaticity sample points in the CU, and rec L (i,j) represents the reconstructed luminance samples downsampled from the same CU. The CCLM parameters (α and β) are derived using at most four neighboring chroma samples and the corresponding downsampled luminance samples. Assuming the current chroma block dimension is W x H, then W' and H' are set to... – When applying the LM pattern, W' = W, H' = H; – When applying LM_T mode, W' = W + H; – When applying the LM_L mode, H' = H + W. The upper neighboring positions are denoted as S[0,-1]…S[W'-1,-1], and the left neighboring positions are denoted as S[-1,0]…S[-1,H'-1]. Then the four sample points are selected as... –When LM mode is applied and both the upper neighboring sample and the left neighboring sample are available, S[W' / 4,-1],S[3*W' / 4,-1],S[-1,H' / 4],S[-1,3*H' / 4]; – When applying LM_T mode or when only the upper neighboring sample points are available, S[W' / 8,-1],S[3*W' / 8,-1],S[5*W' / 8,-1],S[7*W' / 8,-1]; – When applying LM_L mode or when only the left neighboring sample is available, S[-1,H' / 8],S[-1,3*H' / 8],S[-1,5*H' / 8],S[-1,7*H' / 8]. The four nearest brightness samples at the selected location are downsampled and compared four times to find the two larger values: x 0 A and x 1 A and two smaller values: x 0 B and x 1 B Their corresponding chromaticity sample values are represented as y. 0 A y 1 A y 0 B and y 1 B Then x A x B y A and y B It is deduced as: X a =(x 0 A +x 1 A +1)>>1;X b =(x 0 B +x 1 B +1)>>1;Y a =(y 0 A +y 1 A +1)>>1;Y b =(y 0B +y 1 B +1)>>1 (2-2). Finally, the linear model parameters α and β are obtained according to the following formula. β=Y b -α·X b (2-4). Figure 9 This shows an example of the positions of the left and top samples involved in CCLM mode, as well as the samples of the current block. Figure 9 The locations of the sample points used to derive α and β are shown. The division operation for calculating the parameter α is implemented using a lookup table. To reduce the memory required to store this table, the diff value (the difference between the maximum and minimum values) and the parameter α are represented using exponent notation. For example, the diff is approximated using a 4-bit significant part and an exponent. Therefore, the table for 1 / diff is reduced to 16 elements for the 16 values of the significant numbers, as follows: DivTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (2-5). This will have the advantages of reducing computational complexity and the memory size required to store the tables. In addition to the top and left templates being used together to calculate linear model coefficients, they can also be used alternatively in the other two LM modes (called LM_T and LM_L modes). In LM_T mode, only the upper template is used to calculate the linear model coefficients. To obtain more samples, the upper template is expanded to (W+H) samples. In LM_L mode, only the left template is used to calculate the linear model coefficients. To obtain more samples, the left template is expanded to (H+W) samples. In LM mode, the left and top templates are used to calculate the coefficients of the linear model. To match the chroma sample locations of a 4:2:0 video sequence, two types of downsampling filters are applied to the luminance samples to achieve a 2:1 downsampling ratio in both the horizontal and vertical directions. The selection of the downsampling filters is specified by the SPS level flag. The two downsampling filters are as follows, corresponding to "Type 0" and "Type 2" content, respectively. Note that when the upper reference line is at the CTU boundary, only one luminance line (the general line buffer in intra-frame prediction) is used to create downsampled luminance samples. This parameter calculation is performed as part of the decoding process, not just as part of the encoder's search operation. As a result, no syntax is used to pass the α and β values to the decoder. For chroma intra-mode encoding and decoding, a total of eight intra-modes are allowed. These modes include five regular intra-modes and three cross-component linear model modes (LM, LM_T, and LM_L). The chroma mode signaling and derivation process are shown in Table 3. Chroma mode encoding and decoding directly depend on the intra-prediction mode of the corresponding luma block. Since separate block partitioning structures for luma and chroma components are enabled in I-strips, one chroma block can correspond to multiple luma blocks. Therefore, for chroma DM mode, the intra-prediction mode of the corresponding luma block covering the center position of the current chroma block is directly inherited. Table 3. Derivation of chromaticity prediction mode from luminance mode when CCLM is enabled. As shown in Table 4, a single binarization table is used regardless of the value of sps_cclm_enabled_flag. Table 4. Unified Binarization Table for Colorimetric Prediction Mode In Table 4, the first bit indicates whether it is normal (0) or LM mode (1). If it is LM mode, the next bit indicates whether it is LM_CHROMA (0). If it is not LM_CHROMA, the next bit indicates whether it is LM_L (0) or LM_T (1). In this case, when sps_cclm_enabled_flag is 0, the first bit of the binarization table corresponding to intra_chroma_pred_mode can be discarded before entropy encoding / decoding. Or, in other words, the first bit is presumed to be 0 and therefore not encoded / decoded. This single binarization table is used for cases where sps_cclm_enabled_flag equals 0 and 1. The first two bits in Table 4 are context-encoded using their own context model, and the remaining bits are bypassed. Additionally, to reduce luma-chroma latency in dual-tree systems, when a 64x64 luma codec tree node is split using Not Split (and the ISP is not used for 64x64 CU) or QT, the chroma CU in a 32x32 / 32x16 chroma codec tree node is allowed to use CCLM in the following manner: – If the 32x32 chroma node is not partitioned or is partitioned by QT, then all chroma CUs in the 32x32 node can use CCLM. – If a 32x32 chroma node is divided by a horizontal BT, and the 32x16 child node is not divided or is divided by a vertical BT, then all chroma CUs in the 32x16 chroma node can use CCLM. Under all other luma and chroma codec tree partitioning conditions, CCLM is not permitted for chroma CU. 2.8. Multimodel Linear Model (MMLM) Using MMLM, there can be more than one linear model between luma and chroma samples in the CU. In this method, the neighboring luma and chroma samples of the current block are classified into several groups, and each group is used as a training set to derive the linear model (i.e., specific α and β are derived for a specific group). In addition, the samples of the current luma block are also classified according to the same rules as the classification of the neighboring luma samples. Neighboring samples can be classified into M groups, where M is 2 or 3. In addition to the original LM mode, the MMLM method with M=2 and M=3 is designed as two additional chromaticity prediction modes, called MMLM2 and MMLM3. The encoder selects the optimal mode during the RDO process and transmits that mode via signal transmission. When M equals 2 Figure 10 An example of classifying neighboring samples into two groups is shown. The threshold is calculated as the average of the neighboring reconstructed brightness samples. Rec'L[x,y] <= threshold Rec' L Neighbor samples with [x,y] ≤ the threshold are classified into group 1; while Rec′ L The neighboring samples of [x,y]>threshold Rec'L[x,y]>threshold are classified into group 2. Similar to CCLM, MMLM has 3 modes, namely MMLM, MMLM_T, and MMLM_L. The two models are derived as follows: The threshold is the average of the reconstructed brightness from neighboring samples. Linear models for each category are derived using either the Least Mean Square (LMS) method (if enabled) or the minimum / maximum method of VVC. 2.9. Location-dependent intra-frame prediction combination In VVC, the results of intra-frame prediction for DC, planar, and multiple angle modes are further modified using the Position-Dependent Intra-Prediction Combination (PDPC) method. PDPC is an intra-frame prediction method that calls a combination of boundary reference samples and HEVC-style intra-frame predictions with filtered boundary reference samples. PDPC is applied to the following intra-frame modes without signal transmission: planar, DC, intra-frame angles less than or equal to horizontal, and intra-frame angles greater than or equal to vertical and less than or equal to 80 degrees. PDPC is not applied if the current block is in BDPCM mode or the MRL index is greater than 0. The predicted sample point pred(x', y') is predicted using an intra-frame prediction mode (DC, plane, angle) and a linear combination of reference samples according to Equation 2-8 below: pred(x', y') = Clip(0, (1< <BitDepth)–1,(wL×R -1,y’ +wT×R x’,-1 +(64-wL-wT)×pred(x',y')+32)>>6) (2-9) Where R x,-1 R -1,y These represent the reference sample points located at the top and left boundaries of the current sample point (x, y), respectively. If PDPC is applied to DC, planar, horizontal, and vertical intra-frame modes, additional boundary filters are not required, as in the case of HEVC DC mode boundary filters or horizontal / vertical mode edge filters. The PDPC procedure is the same for DC and planar modes. For angular modes, if the current angular mode is HOR_IDX or VER_IDX, the left-side reference sample or top-side reference sample is not used, respectively. The PDPC weights and scaling factors depend on the prediction mode and the block size. PDPC is applied to blocks with both width and height greater than or equal to 4. Figure 11A This is a schematic diagram illustrating the definition of the sample points used by the PDPC applied to the upper right diagonal mode. Figure 11B This is a schematic diagram illustrating the definition of the sample points used by the PDPC applied to the lower left diagonal mode. Figure 11C This is a schematic diagram illustrating the definition of the sample points used by the PDPC applied to the adjacent diagonal upper right pattern. Figure 11D This is a schematic diagram illustrating the definition of the sample points used by the PDPC applied to the adjacent diagonal lower left pattern. Figures 11A to 11D The reference samples (R) of PDPC applied to various prediction modes are shown. x,-1 and R -1,y The definition of a prediction sample (pred(x', y')) is as follows: The prediction sample pred(x', y') is located at (x', y') within the prediction block. For example, the reference sample R... x,-1 The coordinates x are given by the following formula: x = x' + y' + 1, and the reference point R is... -1,y The coordinates y are similarly given by the following formula: y = x' + y' + 1 (for diagonal mode). For other angle modes, refer to sample point R. x,-1 and R -1,y It can be located at a fractional sample point position. In this case, the sample value at the nearest integer sample point position is used. 2.10. Gradient PDPC like Figure 12 As shown, the gradient-based method is extended for non-vertical / non-horizontal modes. Here, the gradient is calculated as r(-1,y) – r(-1+d,-1), where d is the horizontal displacement depending on the angular direction. Several points need to be noted here: The gradient term r(-1,y)–r(-1+d,-1) needs to be calculated once for each row because it does not depend on the x position. The calculation of d is already part of the original intra-frame prediction process that can be reused, so there is no need to calculate d separately. Therefore, d has 1 / 32 pixel precision. When d is at the fractional position, a two-tap (linear) filter is used. That is, if dPos is a displacement with a precision of 1 / 32 pixel, dInt is the integer part (rounded down) (dPos >> 5), and dFract is the fractional part with a precision of 1 / 32 pixel (dPos & 31), then r(-1 + d) is calculated as: r(-1+d)=(32–dFrac)*r(-1+dInt)+dFrac*r(-1+dInt+1). As explained in a, the 2-tap filter is performed once for each row (if necessary). Finally, the predicted signal is calculated. p(x,y)=Clip(((64–wL(x))*p(x,y)+wL(x)*(r(-1,y)-r(-1+d,-1))+32)>>6) Where wL(x) = 32 >> ((x << 1) >> nScale2), and nScale2 = (log2(nTbH) + log2(nTbW) – 2) >> 2, this is the same as the vertical / horizontal pattern. In short, the same process is applied compared to the vertical / horizontal pattern (in fact, d = 0 indicates the vertical / horizontal pattern). Secondly, when nScale < 0, or when PDPC cannot be applied due to the unavailability of the secondary reference sample, a gradient-based approach is activated for non-vertical / non-horizontal modes. The values of nScale relative to the TB size and angle mode are as follows: Figure 13 As shown, to better visualize the use of gradient methods. Additionally, in Figure 14 In the diagram, flowcharts for the current PDPC and the proposed PDPC are shown. Figure 14 This is a schematic diagram showing the flowcharts of the current PDPC (left) and the proposed PDPC (right). 2.11 times MPM 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 included in the PMPM list, and the remaining entries form the SMPM list. The first entry in the general MPM list is a flat pattern. The remaining entries consist of the following: Figure 15 The intra-frame modes of the left (L), top (A), bottom left (BL), top right (AR), and top left (AL) neighboring blocks shown, the directional modes with offsets added from the first two available directional modes of the neighboring blocks, and the default mode. If the CU block is vertically oriented, the order of neighboring blocks is A, L, BL, AR, AL; otherwise, the order of neighboring blocks is L, A, BL, AR, AL. 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. 2.12.6 Tapped Intraframe Interpolation Filter To improve prediction accuracy, a 6-tap interpolation filter is proposed to replace the 4-tap cubic interpolation filter. The filter coefficients are derived based on the same polynomial regression model, but the polynomial order is 6. The filter coefficients are shown below. {0,0,256,0,0,0}, / / 0 / 32 position {0,-4,253,9,-2,0}, / / position 1 / 32 {1,-7,249,17,-4,0}, / / 2 / 32 position {1,-10,245,25,-6,1}, / / 3 / 32 position {1,-13,241,34,-8,1}, / / position 4 / 32 {2,-16,235,44,-10,1}, / / position 5 / 32 {2,-18,229,53,-12,2}, / / position 6 / 32 {2,-20,223,63,-14,2}, / / 7 / 32 position {2,-22,217,72,-15,2}, / / position 8 / 32 {3,-23,209,82,-17,2}, / / 9 / 32 position {3,-24,202,92,-19,2}, / / position 10 / 32 {3,-25,194,101,-20,3}, / / position 11 / 32 {3,-25,185,111,-21,3}, / / position 12 / 32 {3,-26,178,121,-23,3}, / / position 13 / 32 {3,-25,168,131,-24,3}, / / position 14 / 32 {3,-25,159,141,-25,3}, / / position 15 / 32 {3,-25,150,150,-25,3}, / / Half-pixel position The reference samples used for interpolation are derived from reconstructed samples or, as in HEVC, are filled, so that condition checks for the availability of reference samples are not required. A method using a 4-tap cubic interpolation filter, instead of the nearest-nearest-round operation, is proposed to derive the extended intra-frame reference samples. For example... Figure 16 As shown in the example, a four-tap interpolation filter is used to derive the value of the reference sample P, whereas in JEM-3.0 or HM, P is directly set to X1. 2.13. Multi-reference line (MRL) intra-frame prediction Multi-reference line (MRL) intra-prediction uses more reference lines for intra-prediction. Figure 17 The example depicts four reference lines, where the samples for segments A and F are not obtained from reconstructed neighboring samples, but are instead filled with the nearest samples from segments B and E, respectively. HEVC intra-frame image prediction uses the nearest reference line (i.e., reference line 0). In MRL, two additional lines (reference line 1 and reference line 2) are used. The index (mrl_idx) of the selected reference line is signaled and used to generate the intra-prediction value. For reference line indices greater than 0, only the additional reference line mode is included in the MPM list, and only the MPM index is signaled, while the remaining modes are not. The reference line index is signaled before the intra-prediction mode, and if a non-zero reference line index is signaled, the planar mode is excluded from the intra-prediction modes. MRL is disabled for the first row block within the CTU to prevent the use of extended reference samples outside the current CTU row. Additionally, PDPC is disabled when additional rows are used. For MRL mode, the derivation of the DC value in the intra-frame prediction mode for a non-zero reference row index is aligned with the derivation for reference row index 0. MRL requires storing three neighboring luma reference rows as well as the CTU to generate predictions. The Cross-Component Linear Model (CCLM) tool also requires three neighboring luma reference rows for its downsampling filter. The definition of MRL using the same three rows is aligned with CCLM to reduce the decoder's storage requirements. 2.14. Intra-Frame Sub-Segmentation (ISP) Intra-frame sub-segmentation (ISP) divides the luma intra-prediction block vertically or horizontally into 2 or 4 sub-segments depending on the block size. For example, the minimum block size for ISP is 4x8 (or 8x4). If the block size is larger than 4x8 (or 8x4), the corresponding block is divided into 4 sub-segments. It has been noted that M×128 and (with M≤64) and 128×N and (with N≤64) ISP blocks may generate potential problems related to 64×64 VDPUs. For example, an M×128 CU in a single-tree case has M×128 luma TBs and two corresponding... Chroma TB. If the CU uses an ISP, the luminance TB will be divided into four M×32 TBs (horizontal division is possible only), each TB smaller than a 64×64 block. However, in the current ISP design, the chroma block is not divided. Therefore, both chroma components will have a size larger than a 32×32 block. Similarly, a 128×NCU using an ISP can cause a similar situation. Therefore, these two cases are problems for a 64×64 decoder pipeline. For this reason, the CU size that can use an ISP is limited to a maximum of 64×64. Figure 18A and Figure 18B Examples of two possibilities are shown. All sub-segments satisfy the condition of having at least 16 samples. In ISP, the dependency of 1xN / 2xN sub-block prediction on the reconstructed values of previously decoded 1xN / 2xN sub-blocks of the codec block is not allowed, making the minimum prediction width of the sub-block 4 samples. For example, an 8xN (N>4) codec block encoded and decoded using an ISP with vertical partitioning is divided into two prediction regions of size 4xN and four transforms of size 2xN. Furthermore, a 4xN codec block encoded and decoded using an ISP with vertical partitioning is predicted using the entire 4xN block; four 1xN transforms are used. Although 1xN and 2xN transform sizes are allowed, it is asserted that the transforms of these blocks within the 4xN region can be performed in parallel. For example, when a 4xN prediction region contains four 1xN transforms, there are no transforms in the horizontal direction; the transform in the vertical direction can be performed as a single 4xN transform in the vertical direction. Similarly, when a 4xN prediction region contains two 2xN transform blocks, the transform operations of the two 2xN blocks in each direction (horizontal and vertical) can be performed in parallel. Therefore, processing these smaller blocks does not increase latency compared to processing intra-frame blocks of regular 4x4 encoding and decoding. Figure 18A This is a schematic diagram illustrating examples of sub-segmentation for 4x8 and 8x4 CUs. Figure 18B This is a schematic diagram illustrating examples of sub-segments for CUs other than 4x8, 8x4, and 4x4. Table 5 Entropy Encoding / Decoding Coefficient Group Size For each sub-segment, the reconstructed samples are obtained by adding the residual signal to the prediction signal. Here, the residual signal is generated through processes such as entropy decoding, inverse quantization, and inverse transform. Therefore, the reconstructed sample values of each sub-segment can be used to generate the prediction for the next sub-segment, and each sub-segment is processed repeatedly. Furthermore, the first sub-segment to be processed is the one containing the upper-left samples of the CU, and then processing continues downwards (horizontal division) or to the right (vertical division). As a result, the reference samples used to generate the sub-segment prediction signal are only located to the left and top of the row. All sub-segments share the same intra-frame mode. The following is an overview of the interaction between the ISP and other codec tools. - Multiple Reference Line (MRL): If a block has an MRL index other than 0, the ISP encoding / decoding mode will be presumed to be 0, and therefore the ISP mode information will not be sent to the decoder. – Entropy Encoding Coefficient Group Size: The size of the entropy encoding sub-blocks has been modified so that they have 16 samples in all possible cases, as shown in Table 5. Note that the new size only affects blocks generated by the ISP with one dimension less than 4 samples. In all other cases, the coefficient group remains 4×4. –CBF encoding / decoding: Assume that at least one subsegment has a non-zero CBF. Therefore, if n is the number of subsegments and the first n-1 subsegments have produced zero CBF, then the CBF of the nth subsegment is presumed to be 1. – Transformation size limitation: All ISP transforms with a length greater than 16 points use DCT-II. –MTS Flag: If the CU uses ISP codec mode, the MTS CU flag will be set to 0, and this flag will not be sent to the decoder. Therefore, the encoder will not perform RD tests for each different available transform in the resulting sub-segment. Instead, the transform selection for ISP mode will be fixed and selected based on the intra-frame mode utilized, the processing order, and the block size. Therefore, no signal transmission is required. For example, let t H and t V Let and be the horizontal and vertical transformations selected for w×h and the sub-segment, respectively, where w and are the width, and h and are the height. The transformations are selected according to the following rules: – If w = 1 or h = 1, then there is no horizontal or vertical transformation, respectively. – If w ≥ 4 and w ≤ 16, then t H =DST-VII, otherwise, t H =DCT-II. – If h ≥ 4 and h ≤ 16, then t V =DST-VII, otherwise, t V =DCT-II. In ISP mode, all 67 intra-prediction modes are allowed. PDPC is also applied if the corresponding width and height are at least 4 sample lengths. Furthermore, the reference sample filtering process (reference smoothing) and the conditions for selecting intra-interpolation filters no longer exist, and in ISP mode, a cubic (DCT-IF) filter is always applied to fractional position interpolation. 2.15. Matrix-Weighted Intra-Prediction (MIP) Matrix-weighted intra-prediction (MIP) is a new intra-prediction technique added to VVC. To predict samples of a rectangular block of width W and height H, MIP takes H reconstructed neighboring boundary samples from the left row of the block and W reconstructed neighboring boundary samples from the top row of the block as input. If reconstructed samples are unavailable, they are generated in the same manner as in regular intra-prediction. The generation of the predicted signal is based on three steps: averaging, matrix-vector multiplication, and linear interpolation, as follows: Figure 19 As shown. 2.15.1. Calculate the average of neighboring samples. In the boundary samples, four or eight samples are selected by averaging based on the block size and shape. Specifically, the input boundary bdry is calculated by averaging neighboring boundary samples according to predefined rules depending on the block size. top Hehe bdry left and reduced to a smaller boundary and Then, the two narrowing boundaries Hehe spliced to the reduced boundary vector bdry red Therefore, for blocks with a shape of 4×4, bdry red The size is 4, while for all other shapes of blocks, bdry red The size is 8. If mode refers to MIP mode, then the splicing is defined as follows: 2.15.2. Matrix Multiplication Using averaged samples as input, matrix-vector multiplication is performed, followed by an offset. The result is a scaled-down prediction signal on a downsampled set of samples from the original block. Based on the scaled-down input vector bdry red And, the reduced prediction signal pred red , and is generated, pred red , and are of width W red And the height is H red The signal on the downsampled block of W. Here, W red and H red Defined as: Reduced prediction signal pred red It is calculated by calculating the matrix-vector product and adding an offset: pred red =A·bdry red +b (2-13) Here, if W = H = 4, then A has W. red·H red b is a matrix with 4 rows and 4 columns, and in all other cases, a matrix with 8 columns. b is a matrix of size W. red ·H red The vector. Matrix A and offset vector b are taken from one of sets S0, S1, and S2. The index idx = idx(W, H) is defined as follows: Here, each coefficient of matrix A is represented with 8 bits of precision. Set S0 consists of 16 matrices. i∈{0,…,15} and 16 offset vectors The set consists of matrices i∈{0,…,16}, each matrix having 16 rows and 4 columns, and each offset vector having a size of 16. The matrices and offset vectors of this set are used in blocks of size 4×4. Set S1 consists of 8 matrices. i∈{0,…,7} and 8 offset vectors The set S2 consists of 6 matrices, each with 16 rows and 8 columns, and each offset vector has a size of 16. The matrix i ∈ {0,…,7} is composed of these matrices. i∈{0,…,5} and 6 offset vectors The matrix is composed of i∈{0,…,5}, each matrix has 64 rows and 8 columns, and each offset vector has a size of 64. 2.15.3. Interpolation The predicted signals at the remaining locations are generated from the predicted signals on the downsampled set through linear interpolation, which is a single-step linear interpolation in each direction. Regardless of the block shape or size, the interpolation is first performed in the horizontal direction and then in the vertical direction. 2.15.4. Signaling in MIP mode and coordination with other codec tools For each codec unit (CU) in intra-frame mode, a flag indicating whether MIP mode should be applied is sent. If MIP mode is to be applied, the MIP mode (predModeIntra) is transmitted via signaling. For MIP mode, a transpose flag (isTransposed) determining whether the mode is transposed, and a MIP mode Id (modeId) determining which matrix to use for a given MIP mode are derived, as follows: isTransposed=predModeIntra&1 modeId=predModeIntra>>1 (2-15). The MIP codec mode coordinates with other codec tools by taking into account the following aspects: – For MIPs on large blocks, LFNST is enabled. Here, the LFNST transform for planar mode is used. – The reference sample derivation for MIP is performed exactly the same as the reference sample derivation for regular intra-prediction modes. – For the upsampling step used in MIP prediction, the original reference sample is used instead of the downsampling reference sample. - The limiting is performed before upsampling, not after upsampling. – Regardless of the maximum transform size, MIP is allowed up to 64x64. For sizeId=0, the number of MIP patterns is 32; for sizeId=1, the number of MIP patterns is 16; and for sizeId=2, the number of MIP patterns is 12. 2.16. Derivation of Intra-Frame Mode on the Decoder Side In JEM-2.0, the number of intra-frame modes has been expanded from 35 in HEVC to 67, and these modes are derived at the encoder and explicitly transmitted to the decoder via signaling. In JEM-2.0, a significant amount of overhead is incurred in intra-frame mode encoding and decoding. For example, in a full intra-frame codec configuration, intra-frame mode signaling overhead can reach 5–10% of the total bit rate. This contribution proposes a decoder-side intra-frame mode derivation method to reduce intra-frame mode encoding and decoding overhead while maintaining prediction accuracy. To reduce the overhead of intra-frame mode signaling, this contribution proposes a decoder-side intra-frame mode derivation (DIMD) method. In the proposed method, instead of explicitly transmitting the intra-frame mode via signaling, information is derived at both the encoder and decoder from the reconstructed samples of the current block's neighbors. The intra-frame mode derived via DIMD is used in two ways: 1) For a 2Nx2N CU, when the corresponding CU level DIMD flag is turned on, the DIMD mode is used as the intra-frame mode for intra-frame prediction. 2) For NxN CU, the DIMD mode is used to replace a candidate in the existing MPM list to improve the efficiency of intra-mode encoding and decoding. 2.16.1. Template-based intra-frame mode derivation Figure 20 This is a schematic diagram showing the target sample, template sample, and reference sample of the template used in DIMD. For example... Figure 20 As shown, the target represents the current block (block size N), for which the intra-frame prediction mode will be estimated. The template (made by...) Figure 20The patterned region indicator (in the image) specifies a set of reconstructed samples used to derive the intra-frame mode. The stencil size is represented as the number of samples within the stencil that extend to the top and left of the target block, denoted as L. In the current implementation, stencil size 2 (i.e., L = 2) is used for 4x4 and 8x8 blocks, and stencil size 4 (i.e., L = 4) is used for 16x16 and larger blocks. The stencil reference (by...) Figure 20 The dashed area (indicated by JEM-2.0) refers to a set of neighboring samples from above and to the left of the template. Unlike template samples, which always come from the reconstructed region, the template's reference samples may not have been reconstructed when encoding / decoding the target block. In this case, JEM-2.0's existing reference sample replacement algorithm is utilized to replace unavailable reference samples with available ones. For each intra-prediction mode, DIMD calculates the absolute difference (SAD) between the reconstructed template sample and the predicted sample obtained from the reference sample of the template. The intra-prediction mode that produces the minimum SAD is selected as the final intra-prediction mode for the target block. 2.16.2. DIMD for intra-frame 2N×2N CUs For each intra-frame 2Nx2N CU, DIMD is used as an additional intra-frame mode, which is adaptively selected by comparing the DIMD intra-frame mode with the optimal normal intra-frame mode (i.e., the intra-frame mode explicitly transmitted via signaling). For each intra-frame 2Nx2N CU, a flag is transmitted via signaling to indicate the use of DIMD. If the flag is 1, the CU is predicted using the intra-frame mode derived from DIMD; otherwise, DIMD is not applied, and the CU is predicted using the intra-frame mode explicitly transmitted via signaling in the bitstream. When DIMD is enabled, the chroma component always reuses the same intra-frame mode derived for the luma component, i.e., the DM mode. Additionally, for each CU encoded / decoded by DIMD, blocks within the CU can adaptively choose to derive their intra-frame mode at either the PU level or the TU level. Specifically, when the DIMD flag is 1, another CU-level DIMD control flag is signaled to indicate the level at which DIMD is performed. If the flag is 0, it means that DIMD is performed at the PU level, and all TUs in the PU use the same derived intra-frame mode for their intra-frame prediction; otherwise (i.e., the DIMD control flag is 1), it means that DIMD is performed at the TU level, and each TU in the PU derives its own intra-frame mode. Furthermore, when DIMD is enabled, the number of angular directions increases to 129, while DC mode and planar mode remain unchanged. To accommodate the increased granularity of the angular intra-frame modes, the precision of intra-frame interpolation filtering for DIMD-encoded CUs increases from 1 / 32 pixel to 1 / 64 pixel. Additionally, in order to use the derived intra-frame modes of DIMD-encoded CUs as MPM candidates for neighboring intra-frame blocks, these 129 directions of the DIMD-encoded CUs are converted to "normal" intra-frame modes (i.e., 65 angular intra-frame directions) before being used as MPMs. 2.16.3. DIMD for intra-frame N×N CU In the proposed method, the intra-frame modes of the NxN CUs are always transmitted via signaling. However, to improve the efficiency of intra-frame mode encoding and decoding, intra-frame modes derived from DIMD are used as MPM candidates to predict the intra-frame modes of the four PUs in the CU. To avoid increasing the overhead of MPM index signaling, DIMD candidates are always placed at the first position in the MPM list, and the last existing MPM candidate is removed. Furthermore, a deduplication operation is performed so that if a DIMD candidate is redundant, it will not be added to the MPM list. 2.16.4. Intra-frame mode search algorithm for DIMD To reduce encoding / decoding complexity, a direct and fast intra-frame mode search algorithm is used for DIMD. First, an initial estimation process is performed to provide a good starting point for the intra-frame mode search. Specifically, an initial candidate list is created by selecting N fixed patterns from the allowed intra-frame modes. Then, the SAD (Shortest Aspect Ratio) is calculated for all candidate intra-frame modes, and the candidate intra-frame mode that minimizes the SAD is selected as the starting intra-frame mode. To achieve a good complexity / performance tradeoff, the initial candidate list consists of 11 intra-frame modes, including DC, planar, and every fourth of the 33 intra-frame directions defined in HEVC, i.e., intra-frame modes 0, 1, 2, 6, 10…30, 34. If the initial intra-mode is DC or planar, it is used as the DIMD mode. Otherwise, based on the initial intra-mode, a refinement process is then applied, where the optimal intra-mode is identified through an iterative search. It works by comparing the SAD values of three intra-modes separated by a given search interval in each iteration and maintaining the intra-mode that minimizes the SAD. The search interval is then halved, and the selected intra-mode from the last iteration becomes the center intra-mode for the current iteration. For the current DIMD implementation with 129 angular intra-mode directions, a maximum of four iterations are used in the refinement process to find the optimal DIMD intra-mode. 2.17. Derivation of the decoder-side intra-frame mode by calculating the gradient of neighboring samples. Three angular patterns are selected from the gradient histograms (HoGs) calculated based on the neighboring pixels of the current block. Once the three patterns are selected, their predicted values are calculated normally, and then a weighted average of the predicted values is used as the final predicted value for the block. To determine the weights, the corresponding magnitudes in the HoG are used for each of the three patterns. The DIMD pattern is used as an alternative prediction pattern and is always checked in the FullRD pattern. The current version of DIMD has modified several aspects of signaling, HoG computation, and prediction fusion. The aim of these modifications is to improve encoding / decoding performance and address the complexity issues raised during the last meeting (i.e., throughput of 4x4 blocks). The following sections describe the modifications to each aspect. 2.17.1. Signaling Figure 21 This is a schematic diagram illustrating the proposed intra-frame block decoding process. Figure 21 The order of the parsing flags / indexes integrated with the proposed DIMD in VTM5 is shown. As can be seen, the DIMD flag of the block is first resolved using a single CABAC context, which is initialized to the default value of 154. If the flag is 0, the parsing continues normally. Otherwise (if flag == 1), only the ISP index is resolved, and the following flags / indexes are presumed to be zero: BDPCM flag, MIP flag, and MRL index. In this case, the entire IPM resolution is also skipped. During the resolution phase, when a regular non-DIMD block queries the IPM of its DIMD nearest neighbor, the pattern PLANA_IDX is used as the virtual IPM for the DIMD block. 2.17.2. Texture Analysis Figure 22 This is a schematic diagram illustrating HoG calculation from a template with a width of 3 pixels. DIMD texture analysis includes Histogram of Gradients (HoG) calculation. Figure 22 The HoG calculation is performed by applying horizontal and vertical Sobel filters to pixels in a 3-width stencil surrounding the block. However, if the pixels in the upper stencil fall into a different CTU, they are not used in the texture analysis. Once calculated, the IPM corresponding to the two highest histogram bars is selected for the block. In previous versions, all pixels in the middle row of the template participated in the HoG calculation. However, the current version improves the throughput of this process by applying the Sobel filter more sparsely across the 4x4 block. For this purpose, only one pixel from the left and one pixel from the top are used. This... Figure 22 It is shown in the middle. In addition to reducing the number of operations used for gradient calculation, this feature simplifies the selection of the two best modes from the HoG, since the resulting HoG cannot have more than two non-zero amplitudes. 2.17.3. Predictive Fusion The current method uses a fusion of three predictions for each block. However, the choice of prediction mode differs, and it leverages the proposed combined assumption of an intra-prediction method, where a planar mode is considered to be used in combination with other modes when computing intra-prediction candidates. In the current version, two IPMs corresponding to the two highest HoG bars are combined with the planar mode. Predictive fusion is applied as a weighted average of the three predictions above. For this purpose, the weight of the plane is fixed at 21 / 64 (~1 / 3). Then, the remaining weight of 43 / 64 (~2 / 3) is shared between the two HoG PMS, proportional to the magnitude of their HoG bars. Figure 23 The process was visualized. Figure 23 This is a schematic diagram illustrating the prediction fusion by weighted averaging of two HoG modes and a plane. 2.18. Template-Based Intra-Frame Mode Derivation (TIMD) This contribution proposes a template-based intra-frame mode derivation (TIMD) method using MPM, where TIMD modes are derived from MPM using neighboring templates. TIMD modes are used as an additional intra-frame prediction method for CU. 2.18.1. Derivation of TIMD Mode For each intra-prediction mode in the MPM, the SATD between the predicted and reconstructed samples of the template is calculated. The intra-prediction mode with the minimum SATD is selected as the TIMD mode and used for intra-prediction of the current CU. Position-dependent intra-prediction combination (PDPC) is included in the derivation of the TIMD mode. 2.18.2. TIMD Signaling Flags are signaled in the Sequence Parameter Set (SPS) to enable / disable the proposed method. When a flag is true, a CU-level flag is signaled to indicate whether the proposed TIMD method is used. The TIMD flag is signaled immediately after the MIP flag. If the TIMD flag is true, the remaining syntax elements related to the luma intra-prediction mode (including MRL, ISP, and the normal parsing phase for the luma intra-prediction mode) are skipped. 2.18.3. Interaction with new encoding / decoding tools A planar DIMD method with predictive fusion is integrated into EE2. When the EE2 DIMD flag is true, the proposed TIMD flag is not transmitted through the signal and is set to false. Similar to PDPC, gradient PDPC is also included in the derivation of TIMD modes. When the secondary MPM is enabled, both the primary MPM and the secondary MPM are used to derive the TIMD pattern. The 6-tap interpolation filter is not used in the derivation of TIMD modes. 2.18.4. Modifications to the MPM list construction in the derivation of the TIMD pattern During the construction of the MPM list, the intra-prediction modes of neighboring blocks are derived as planes when they are inter-coded. To improve the accuracy of the MPM list, the propagated intra-prediction modes are derived using motion vectors and reference images when neighboring blocks are inter-coded and are used in the construction of the MPM list. This modification is only applied to the derivation of TIMD modes. 2.18.5. TIMD with Fusion Instead of selecting a single mode with the minimum SATD cost, this contribution proposes selecting the top two modes with the minimum SATD cost for intra-modes derived using the TIMD method, then fusing them with weights, and using such weighted intra-mode prediction for encoding and decoding the current CU. The costs of the two selected modes are compared with a threshold, and a cost factor of 2 is applied in the test as follows: costMode2 < 2 × costMode1. If the condition is true, fusion is applied; otherwise, only mode1 is used. The weights of the patterns are calculated from their SATD costs as follows: weight1=costMode2 / (costMode1+costMode2), weight2 = 1 – weight1. 2.19. Convolutional Cross-Component Model (CCCM) for Intra-Frame Prediction We propose to use a convolutional cross-component model (CCCM) similar in spirit to that achieved by the current CCLM model to predict chroma samples from reconstructed luminance samples. As with CCLM, when using chroma downsampling, the reconstructed luminance samples are downsampled to match a lower-resolution chroma grid. In addition, similar to CCLM, there are options for single-model or multi-model variants of CCCM. The multi-model variant uses two models: one model is derived for samples above the average luminance reference value, and the other model is 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. 2.19.1. Convolution Filter The proposed 7-tap convolutional filter consists of a 5-tap spatial component with a sign shape, a nonlinear term, and a bias term. The input to the 5-tap spatial component of the filter comprises the center (C) luminance sample co-located with 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. Figure 24 As shown, Figure 24 The spatial portion of the convolution filter is shown. The nonlinear term P is represented 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. That is, for 10 bits of content, it is calculated as: P = (C*C + 512) >> 10. 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). 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. 2.19.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 25 This is a schematic diagram showing the reference region (with its filling) used to derive the filter coefficients. Figure 25 The reference region is shown, consisting of six rows of chroma samples above and to the left of the PU. The reference region extends to the right of the PU boundary by one PU width and downwards by one PU height. The region is adjusted to include only available samples. The extension of the region shown in blue is necessary to support the "edge samples" of the shape spatial filter and is filled when in unavailable areas. MSE minimization is performed by calculating the autocorrelation matrix for the luminance input and the cross-correlation vector between the luminance input and chrominance output. The autocorrelation matrix is decomposed using LDL, and the final filter coefficients are calculated using inverse substitution. This process largely 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. The proposed method uses only integer arithmetic. 2.19.3. Bitstream Signaling The use of modes utilizes PU-level flags encoded and decoded by CABAC, which are transmitted via signaling. 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 transmitted via signaling only when the intra-frame prediction mode is LM_CHROMA_IDX (to enable single-mode CCCM) or MMLM_CHROMA_IDX (to enable multi-mode CCCM). 2.20. Gradient Linear Model (GLM) Compared to CCLM, GLM uses the gradient of luminance samples to derive a linear model, rather than using downsampled luminance values. Specifically, when GLM is applied, the input to the CCLM process (i.e., the downsampled luminance sample L) is replaced by the luminance sample gradient G. Other parts of CCLM (e.g., parameter derivation, linear transformation of predicted samples) remain unchanged. C = α·G + β. For signaling, when CCLM mode is enabled for the current CU, two flags are transmitted separately for the Cb and Cr components to indicate whether GLM is enabled for each component; if GLM is enabled for a component, a syntax element is further transmitted to select one of the four gradient filters for gradient calculation. like Figure 26 As shown, four gradient filters are enabled for GLM. GLM with brightness In ECM-6.0, GLM uses the gradient of luminance samples to predict chrominance samples, as shown below: pred C (i,j)=α·G(i,j)+β Among them, pred C (i,j) represents the predicted value of the chromaticity sample, G(i,j) represents the gradient of the corresponding reconstructed luminance sample, and the linear model parameters α and β are derived from the neighboring reconstructed samples based on the same linear minimum mean square error (LMMSE) method as CCLM. A novel GLM mode is proposed, in which chromaticity samples are based on the gradient G(i,j) of luminance samples and the reconstructed value rec′ of downsampled luminance samples with different parameters. L (i,j) and predicted: pred C (i,j)=α0·G(i,j)+α1·rec′ L (i,j)+α2·midValue The model parameters α0, α1, and α2 are derived from six rows and six columns of adjacent samples using the same LDL decomposition method as the CCCM model in ECM-6.0. 2.21. Gradient- and position-based convolutional cross-component model (GL-CCCM) for intra-frame prediction The proposed GL-CCCM method uses gradient and location information to replace the four spatially neighboring samples in the CCCM filter. The predicted GL-CCCM filter is as follows: predChromaVal=c0C+c1G y +c2G x +c3Y+c4X+c5P+c6B. Among them G y and G x These are the vertical gradient and the horizontal gradient, respectively, and are calculated as follows: G y =(2N+NW+NE)–(2S+SW+SE), G x = (2W+NW+SW)–(2E+NE+SE). In addition, the Y and X parameters are the vertical and horizontal positions of the center brightness sample point, and they are calculated relative to the top-left coordinates of the block. The remaining parameters are the same as those in the CCCM tool. The reference area used for parameter calculation is the same as that in the CCCM method. Figure 27 This is a schematic diagram showing the spatial sampling points used in GL-CCCM. Bitstream signaling The mode is used by transmitting PU-level flags via signaling, which are encoded and decoded using CABAC. A new CABAC context is included to support this. When signaling is involved, GL-CCCM is considered a submode of CCCM. That is, the GL-CCCM flag is transmitted via signaling only if the original CCCM flag is true. Encoder operation The encoder performs two new RD checks in the chromaticity prediction mode loop: one RD check for single-model GL-CCCM mode and one RD check for multi-model GL-CCCM mode. 2.22. CCCM using unsampled luminance samples 2.22.1. Block Level In this contribution, a CCCM using unsampled luminance samples is proposed, where chrominance samples are predicted directly from the original reconstructed luminance samples, i.e., without downsampling. Figure 28 This is a schematic diagram showing unsampled brightness samples. For example... Figure 28 As shown, the proposed CCCM filter consists of a 6-tap spatial term, two nonlinear terms, and a bias term. The 6-tap spatial term corresponds to the 6 neighboring luminance samples (i.e., L0, L1, ..., L5) of the chrominance sample (i.e., C) to be predicted. Where α i Is with L i The associated coefficients, and β, are the offset. Similar to existing CCCM designs, no more than 6 rows / columns of chroma samples above and to the left of the current CU are applied to derive the filter coefficients. The filter coefficients are derived based on the same LDL decomposition method used in CCCM. In this contribution, in addition to the existing CCCM model, the proposed method is also transmitted as an additional CCCM model via signaling. For signaling, when CCCM is selected, a single flag is transmitted via signaling and used for both chroma components to indicate whether the default CCCM model or the proposed CCCM model is applied. 2.22.2. High-level control For content with sharp details (such as SCC content), downsampling of the luminance component may not be optimal for CCCM model derivation. This contribution proposes disabling luminance downsampling, deriving and applying the model directly on unsampled luminance samples. If downsampling is not applied, the CCCM model has a rhombus shape of 5x5. An SPS flag is transmitted via signaling to indicate whether luminance downsampling is applied to the CCCM. 2.23. Airspace GPM (SGPM) In the spatial GPM, a candidate list consisting of segmentation and two intra-prediction modes is constructed. No more than 11 intra-prediction modes are used in the MPM to form a combination, and the length of the candidate list is set to 16. The selected candidate indices are transmitted via signaling. Figure 29 The spatial GPM candidates are shown. (Using...) Figure 29 The template shown is used to reorder the list. The GPM blending process is not used in the template, and the SAD between the template's prediction and reconstruction is used for sorting. The SGPM mode is applied to blocks whose width and height meet the same constraints as in inter-frame GPM. Figure 30 The GPM template is shown. Consider the following items: ●Airspace GPM segmentation mode: 26 predefined patterns. An adaptive derivation algorithm based on the ratio of horizontal gradient to vertical gradient. ● Intra-frame prediction mode selection: List of IPMs with and without TIMD: For each segmentation pattern, an intra-frame to inter-frame GPM list is used for derivation, and an IPM list is derived for each segment. The IPM list size is 3. In the list, a TIMD-derived pattern is replaced by two derived patterns with horizontal and vertical directions (using top or left templates), or the TIMD-derived pattern is excluded. MPM list: A uniform MPM list (up to 11 elements) is used for all splitting patterns. ● Template size (left and top): 1 or 4. ● Expanded block size: The spatial domain GPM is extended to be further applied to 4x8, 8x4, 4x16 and 16x4 blocks, which can be described as 4 <= width <= 64, 4 <= height <= 64, width < height * 8, height < width * 8, width * height >= 32. ●Adaptive Hybridization: For the adaptive mixing of spatial GPM tests, the mixing depth τ 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. Figure 31 GPM mixing is shown. 2.24. Signaling for cross-component prediction modes in ECM Figure 32 The binarization of cross-component prediction modes in ECM is shown. Figure 32 In this context, “CCLM” can be replaced with “CCCM”. In ECM-7, cross-component modes include CCLM, CCLM-L, CCLM-T, MM-CCLM, MM-CCLM-L, MM-CCLM-T and CCCM, CCCM-L, CCCM-T, MM-CCCM, MM-CCCM-L, MM-CCCM-T. A flag is transmitted via signaling to determine whether it is a CCCM mode or a CCLM mode. A rounding unary code is used to indicate such... Figure 32 The CCLM or CCCM mode shown. CCLM or CCCM: 0. MM-CCLM or MM-CCCM: 10. CCLM-L or CCCM-L: 110. CCLM-T or CCCM-T: 1110. MM-CCLM-L or MM-CCCM-L: 11110. MM-CCLM-T or MM-CCCM-T: 11110. 2.25. Slope Adjustment for 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. A method is proposed to adjust the slope parameter "u" via signal transmission to update the model to the following form: chromaVal = a'*lumaVal+b' in a' = a + u, b'=bu*y r . Using this selection, the mapping function revolves around a value with brightness y. r The points are tilted or rotated. It is proposed to use the average of the reference brightness samples used in model creation as y. r This is to provide meaningful modifications to the model. The image below illustrates this process. 2.26. Fusion of Chroma Intra-Frame Prediction Modes In test 1.2b, it was proposed that the DM mode and four default modes can be merged with the MMLM_LT mode, as shown below: pred=(w0*pred0+w1*pred1+(1<<(shift-1)))>>shift Where pred0 is the prediction value obtained by applying non-LM mode, pred1 is the prediction value obtained by applying MMLM_LT mode, and pred and are the final prediction values of the current chroma block. The two weights w0 and w1 are determined by the intra-prediction modes of adjacent chroma blocks, and shift is set to equal to 2. Specifically, when the upper adjacent block and the left adjacent block are both encoded and decoded using LM mode, {w0,w1} = {1,3}; when the upper adjacent block and the left adjacent block are both encoded and decoded using non-LM mode, {w0,w1} = {3,1}; otherwise, {w0,w1} = {2,2}. For the syntax design, if a non-LM mode is selected, a flag is transmitted via signaling to indicate whether fusion is applied. Furthermore, the proposed fusion is applied only to I-stripes. 2.27. Historical Cross-Component Prediction (H-CCP) 1. It is proposed that (multiple) models of cross-component prediction (CCP) (such as CCLM or CCCM) in blocks can be stored in a history table (HT). a.HT is a list with ordered entries. i. Each entry has an index. For example, the first entry has an index of 0, and subsequent entries have indices of 1, 2, 3, ... b. The model parameters for CCLM and its variants may include a, b, and shift, which controls the accuracy of the calculation. c. The model parameters of CCLM and its variants may include linear components (such as c0 to c4) and nonlinear components (such as c5). d. The model may include models for different color components (such as Cb and Cr). i. For example, models for Cb and Cr can be coupled in entries. e. In one example, different CCPs such as CCLM and CCCM can share the same HT. i. In one example, the segments in an HT entry can reflect the type of the (multiple) CCP models stored in the entry. f. In one example, different CCPs such as CCLM and CCCM can have different HTs. i. In one example, a CCLM_HT can store models of CCLM and its variants (such as CCLM-L or CCLM-T). ii. In one example, a CCCM_HT can store a model of CCCM and its variants (such as CCCM-T or CCCM-T). g. In one example, CCPs with a single model (such as CCLM or CCCM) and CCPs with multiple models (such as MM-CCLM or MM-CCCM) can have different HTs. h. In one example, CCPs with a single model (such as CCLM or CCCM) and CCPs with multiple models (such as MM-CCLM or MM-CCCM) can share the same HT. i. In one example, the segments in an HT entry can reflect the number of models stored in the entry. ii. In one example, the segments in the entries of HT may reflect at least one threshold used to classify samples into different model groups. i. In one example, the first HT is used to store models of CCLM and its variants. i. In one example, CCLM variants may include CCLM-L, CCLM-T, MM-CCLM, MM-CCLM-L, MM-CCLM-T, GLM, and CCLM with slope adjustment. 1) The segments in an HT entry can reflect the number of models stored in the entry. 2) The segments in the HT entries can reflect at least one threshold used to classify samples into different model groups. 3) The sections in the HT entries can reflect whether GLM is being applied. 4) The segments in the HT entries can reflect the downsampling filter of the GLM. j. In one example, the second HT is used to store models of CCCM and its variants. i. In one example, CCCM variants may include CCCM-L, CCCM-T, MM-CCCM, MM-CCCM-L, and MM-CCCM-T. 1) The segments in an HT entry can reflect the number of models stored in the entry. 2) The segments in the HT entries can reflect at least one threshold used to classify samples into different model groups. 2. It is proposed that blocks can be encoded and decoded using a history-based CCP (H-CCP) mode, in which at least one CCP model used by the current block is obtained or derived from HT. a. In one example, at least one syntax element (SE) can be signaled to indicate whether H-CCP is applied. i. In one example, the SE can be transmitted via signaling conditionally. For example, the SE may only be transmitted via signaling when a specific mode (such as CCCM or CCLM) is used. 1) For example, SE is only transmitted via signaling when the current mode is CCCM or CCLM. b. In one example, at least one syntax element (SE) can be signaled to indicate which entry in the HT is retrieved to derive the model(s) for cross-component prediction. i.SE can reflect the index in HT. 1) In one example, SE can be set to be equal to f(k), where k is an index and f is a function. 2) In one example, SE can be set to be equal to f(k,M), where k is the index, M is the number of valid entries in HT, and f is a function. a) In another example, M is the size of HT. 3) In one example, SE can be set to be equal to k, where k is the index. 4) In one example, SE can be set to be equal to M-1-k, where k is the index and M is the number of valid entries in HT. a) In another example, M is the size of HT. ii.SE can reflect the index of the list, and the list can be constructed based on HT. 1) In one example, list L is constructed by reversing HT. For example, L[i] = HT[M-1-i], where M is the number of valid entries in HT. a) In another example, M is the size of HT. b) In one example, L can have a fixed size. c) In one example, if L is not full, the empty entries are filled with default entries. iii. In one example, the SE may be transmitted via signaling conditionally. For example, the SE may be transmitted via signaling only if H-CCP is applicable. iv. SE can only be transmitted via signal if more than one entry in HT can be selected. The maximum value of v.SE (denoted as V) is determined by the number of entries to be selected. 1) For example, V = K, or V = K-1, or V = K+1, or V = K-2, or V = K+2. c. In one example, at least one syntax element (SE) can be signaled to indicate which HT is used. i. In one example, the SE may be transmitted via signaling conditionally. For example, the SE may only be transmitted via signaling if H-CCP is applicable. ii. SE can only be transmitted via signal if more than one HT can be selected. d. In one example, it can be deduced at the encoder / decoder which HT is used. i. In one example, if the current mode is CCLM, the first HT of the model storing CCLM and its variants is used. ii. In one example, if the current mode is CCCM, then the second HT of the model storing CCCM and its variants is used. e. In one example, the current block can be predicted using a CCP model obtained from the determined entries of the determined HT. f. In one example, the current block can be predicted using CCCM or CCLM based on whether the first HT or the second HT is applied. g. In one example, the current block can be predicted using multiple models. i. Whether a single model or multiple models are applied can be derived / obtained from the determined entries of the determined HT. ii. At least one threshold for classifying samples into different model groups can be obtained / derived from the determined entries of the determined HT. HT maintenance 3. The maximum size of HT can be predetermined, such as 5 or 6. a. Alternatively, the maximum size of the HT can be transmitted as an SE at the block level / sequence level / picture group level / picture level / strip level / piece group level, such as in the codec structure of CTU / CU / TU / PU / CTB / CB / TB / PB or sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / strip header / piece group header. b. Alternatively, the maximum size of the HT can be derived using the following encoding / decoding information: i. The pattern of the current block; ii. Neighboring block pattern; iii. The mode of the luminance blocks in the same region as the current block; iv. Patterns of luminance blocks in the co-location region of neighboring blocks; v.QP; vi. Strip / image type; vii. Image width / height; viii. Block width / height; ix. Reconstructed sample points. 4. HT can be refreshed at the beginning of the encoded / decoded sequence / image / strip / film / sub-image / CTU line / CTU. a. For example, HT can be refreshed by clearing the table. b. For example, HT can be refreshed by utilizing the default entry completion table. 5. The HT can be updated after the encoding / decoding block (such as CU). a. For example, when applying dual-tree encoding / decoding, the CU must be a chroma CU. b. For example, the CU must be a CU with CCP mode. c. For example, which HT to be updated may depend on the CU's encoding / decoding mode. i. For example, if the CU is encoded and decoded using CCLM modes (such as CCLM, CCLM-L, CCLM-T, MM-CCLM, MM-CCLM-L, MM-CCLM-T, GLM and CCLM with slope adjustment), then the (multiple) models and related information (such as (multiple) thresholds for classifying samples into different model groups) are stored in the first HT. ii. For example, if the CU is encoded and decoded using CCCM modes (such as CCCM, CCCM-L, CCCM-T, MM-CCCM, MM-CCCM-L, MM-CCCM-T), then (multiple) models and related information (such as (multiple) thresholds for classifying samples into different model groups) are stored in the first HT. d. For example, a set of information related to the CCP model(s) used by the current block can be put into HT. i. This group may include one or more CCP models. ii. This group may include the number of models. iii. This group may include (multiple) thresholds for classifying samples into different model groups. iv. This group may include slope adjustment. e. In one example, if the current block is encoded or decoded using CCLM with slope adjustment, the CCP model can be adjusted before it is used to update the HT. 6. How a new set of information related to (multiple) CCP models is placed into the HT can depend on whether the HT is full. a. For example, if the HT is not full, the new set can be placed into the first empty entry of the HT. i. For example, the first empty entry is the empty entry with the smallest index. ii. For example, the first empty entry is the empty entry with the largest index. iii. After being placed in the HT, the new group can be placed as the last occupied entry in the HT. 1) The last occupied entry can be the occupied entry with the largest index. 2) The last occupied entry can be the occupied entry with the smallest index. b. For example, if the HT is full, an existing entry in the HT can be removed. i. In one example, HT can be managed in a first-in, first-out manner. ii. Existing entries with the minimum index can be removed. 1) The updated HT' can be set as: HT'[i] = HT[i+1], for 0 <= i <= N-2, and HT'[N-1] = new group, where N is the size of HT. iii. Existing entries with the largest index can be removed. 1) The updated HT' can be set as: HT'[i] = HT[i-1] for 1 <= i <= N-1, and HT'[0] = new group, where N is the size of HT. 7. In one example, a new group can be compared with at least one existing entry in the HT to determine whether to put it into the new group and / or how to update the HT. 8. In one example, if a new group is identical or similar to one of the existing entries in HT, the new group will not be placed in HT. This assumes the new group is identical or similar to a specific entry in HT. a. For example, in this case, the special entry can be placed first in the HT, and the entry that was originally before the special entry is pushed back one position. i. For example, suppose the entry is HT[i] (where i = 0, 1, ...) and the special entry is HT[k], then the updated HT' will be as follows: HT'[0] = HT[k]; HT'[i] = HT[i-1] (for 1 <= i <= k); HT'[i] = HT[i] (for i > k). b. For example, in this case, the special entry can be placed at the end of HT, and the entry that was originally before the special entry is moved forward one position. i. For example, suppose the entry is HT[i] (where i = 0, 1, ...), and the special entry is HT[k], then the updated HT' will be as follows: HT'[N-1] = HT[k]; HT'[i] = HT[i+1] (for k <= i <= N-2); HT'[i] = HT[i] (for i <k)。 9. In one example, whether to put a new group and / or how to update the HT may depend on the codec information of the CU with the new group. 10. In one example, if the new group is a CU encoded using H-CCP mode, the new group is not placed in the HT. Assume that a special entry in the HT is used by a CU encoded using H-CCP mode. a. For example, in this case, the special entry can be placed first in the HT, and the entry that was originally before the special entry is pushed back one position. i. For example, suppose the entry is HT[i] (where i = 0, 1, ...) and the special entry is HT[k], then the updated HT' will be as follows: HT'[0] = HT[k]; HT'[i] = HT[i-1] (for 1 <= i <= k); HT'[i] = HT[i] (for i > k). b. For example, in this case, the special entry can be placed at the end of HT, and the entry that was originally before the special entry is moved forward one position. i. For example, suppose the entry is HT[i] (where i = 0, 1, ...), and the special entry is HT[k], then the updated HT' will be as follows: HT'[N-1] = HT[k]; HT'[i] = HT[i+1] (for k <= i <= N-2); HT'[i] = HT[i] (for i <k)。 11. It is proposed that entries for HT may include models for more than one chromaticity component (such as Cb and Cr). a. If an entry is selected, the model for components Cb and Cr is applied to the two components respectively. 12. It is proposed that entries for HT may include models for only one component (such as Cb or Cr). a. If an entry is selected, the model for a specific component, such as Cb or Cr, is applied to that specific component. b. In one example, different HTs can be constructed for different components. List mode 13. A list of at least one CCP model that can be constructed is proposed. a. In one example, chroma blocks can be predicted using a CCP model in a list, via a “list pattern”. b. In one example, list L can be populated with a CCP model of one type, such as CCCM. c. In one example, the list can be populated with multiple types of CCP models, such as both CCCM and CCLM. i. In one example, the type of CCP model will be stored in a list along with the CCP model. d. In one example, at least one syntax element (SE) can be signaled to indicate whether a CCP model in the list is used. i. In one example, the SE can be transmitted via signaling conditionally. For example, the SE may only be transmitted via signaling when a specific mode (such as CCCM or CCLM) is used. 1) For example, SE is only transmitted via signaling when the current mode is CCCM or CCLM. 2) For example, SE is transmitted via signal only when “list mode” is applicable. e. In one example, at least one syntax element (SE) can be signaled to indicate which entry in the list is used to derive the model(s) for cross-component prediction. i.SE can reflect the index in the list. 1) In one example, SE can be set to be equal to f(k), where k is an index and f is a function. 2) In one example, SE can be set to be equal to f(k,M), where k is the index, M is the number of valid entries in the list, and f is a function. a) In another example, M is the size of the list. 3) In one example, SE can be set to be equal to k, where k is the index. 4) In one example, SE can be set to be equal to M-1-k, where k is the index and M is the number of valid entries in the list. a) In another example, M is the size of the list. f. In one example, L can have a fixed size. g. In one example, multiple lists can be constructed. i. For example, at least one syntax element (SE) can be signaled to indicate which list is being used. ii. In one example, SE may be conditionally transmitted via semaphore. For example, SE may be transmitted via semaphore only if "list mode" is applicable. iii. SE can only be transmitted via signal if more than one list can be selected. h. In one example, it can be inferred at the encoder / decoder which list is used. i. In one example, if the current mode is CCLM, then the first list of models storing CCLM and its variants is used. ii. In one example, if the current mode is CCCM, a second list of models storing CCCM and its variants is used. 14. The proposed list of entries may include models for more than one chromaticity component (such as Cb and Cr). a. If an entry is selected, the model for components Cb and Cr is applied to the two components respectively. 15. The entries in the proposed list may include models for only one component (such as Cb or Cr). a. If an entry is selected, the model for a specific component, such as Cb or Cr, is applied to that specific component. 16. Multiple candidates can be placed in the list, including: a. CCP model of adjacent neighboring blocks. b. CCP model for non-adjacent neighboring blocks. c. Refer to the CCP model of the corresponding block in the reference image. d. CCP model of the reference block in the reference image. e. CCP model in the history table. f. CCP model derived from non-adjacent sample points. g. Default CCP mode. 17. In one example, the list can be constructed by examining possible candidates in order. a. For example, the order could be adjacent neighboring blocks, non-adjacent neighboring blocks, models in a history table, or models derived from non-adjacent samples. b. For example, if the number of candidates in the list reaches the maximum allowed size of the list (such as 5 or 6), then the list construction is complete. c. For example, if the number of candidates in the list reaches f(d), then the list construction is complete, where d is the index of the selected candidate and f is a function. For example, f(d) = d + 1. d. For example, if all possible candidates have been checked and the construction is not yet complete, the default model can be added to the list. 18. In one example, if a potential candidate is placed in a list, it can be compared with at least one existing candidate in the list. a. For example, if a potential candidate is the same as or similar to an existing candidate, the potential candidate is not added to the list. b. In one example, if a potential entry for CCP information is placed in a history-based table, it can be compared with at least one existing entry in the list. i. For example, if a potential entry is the same as or similar to an existing entry, the potential entry is not added to the list. c. In one example, two CCP candidates or entries are determined to be different if: i. Different CCP types. ii. The number of models is different. iii. If CCP has multiple models, the thresholds will be different. iv. At least one model is different. v. Different luminance sample offsets. (Applicable only if the type is CCCM, GL-CCCM, or GLM, or if a CCCM without downsampled luminance samples is used). vi. The sample point positions are displaced differently. (Applicable only when the type is GL-CCCM). 19. For example, CCP information based on entries in a historical table or candidate CCP information in a CCP candidate list may include: a. The type of CCP method, such as CCLM, CCCM, GLM, GLM with luminance, GL-CCCM, or CCCM using unsampled luminance samples. i. In one example, GLM methods using different downsampling filters can be considered as different types. ii. In one example, GLM methods with brightness that use different downsampling filters can be considered as different types. iii. In one example, the type could be CCCM, CCLM, four types of GLM using different downsampling filters, four types of GLM with luminance using different downsampling filters, GL-CCCM, and CCCM using unsampled luminance samples. iv. "Not using CCP encoding / decoding" (referred to as NonCCP) can also be considered a type. b. Position (x, y). c. The number of models. i. For example, the number of models can be 1 or 2. ii. In one example, the number of models can be considered as part of the CCP type. For example, CCLM and MM-CCLM can be considered as two types. d. At least one threshold for classifying samples for different models. i. The threshold is only used when the number of models is at least 2. e. At least one luminance sample value offset. i. When luminance sample value offset is used to derive chromaticity prediction values, the luminance sample value offset can be added to the luminance sample (which can be downsampled) or subtracted from the luminance sample. ii. Luminance sample value offset can be used only for specific types, such as CCCM, GLM with luminance, GL-CCCM, and CCCM using unsampled luminance samples. f. At least one chromaticity sample value offset. i. The chromaticity sample value offset can be added to or subtracted from the chromaticity prediction value derived from the CCP model to generate the final prediction. g. At least one model for at least one chromaticity component. i. For example, it can include different models for the Cb component and the Cr component. ii. For example, the number of models for each component can be included as part of the information. iii. The model can be represented in the form of a CCLM or CCCM or GLM or a GLM or GL-CCCM with luminance or a CCCM using unsampled luminance samples. h. represents the position displacement of at least one sample point in (dX, dY). i. When the chromaticity sample point position displacement is used to derive the chromaticity prediction value, the chromaticity sample point position displacement can be added to or subtracted from the sample point position (x, y). ii. Chroma sample position displacement can be used only for specific types, such as GL-CCCM. 20. For example, the CCP encoding / decoding information of chroma blocks after encoding / decoding can be stored in a history-based table or in a CCP candidate list. a. In one example, CCP encoding / decoding information can only be stored if the chroma block is encoded / decoded using CCP mode. i. In one example, if the chroma block is encoded and decoded using at least one CCP mode, such as by fusion of chroma intra-prediction modes, the CCP encoding and decoding information can be stored. 1) The stored type can be set to the CCP type used in the fusion of chroma frame prediction modes. b. In one example, CCP codec information can be stored for any chroma block. i. If the chroma block is not encoded or decoded using CCP mode, the type is stored as "NonCCP". c. If the chroma block is encoded and decoded using CCP mode, the type of information can be stored depending on the encoding / decoding mode. i. If the mode is CCCM, or CCCM-T, or CCCM-L, or MM-CCCM, or MM-CCCM-T, or MM-CCCM-L, then the type is set to "CCCM". ii. If the mode is CCLM, or CCLM-T, or CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, then the type is set to "CCLM". iii. If the mode is CCLM with slope adjustment, or CCLM-T, or CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, then the type is set to "CCLM". iv. If the mode is GLM using filter X, the type is set to "GLM using filter X". v. If the mode is a luminous GLM using filter X, the type is set to "luminous GLM using filter X". vi. If the mode is GL-CCCM, the type is set to "GL-CCCM". vii. If the mode is to use unsampled CCCM, the type is set to "Use unsampled CCCM". viii. If the mode is a fusion of chroma intra-predictive modes, the type is set to "CCLM". d. The number of models can be stored as the number of models for chroma blocks. i. For example, if the mode is MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, or any other multi-model CCP mode (such as GLM, or GL-CCCM, or CCCM with multiple models using unsampled luminance samples), then the number of models is set to 2. e. Information such as thresholds, luminance / chrominance sample value offsets, and sample position displacements can be stored as information used by chrominance blocks. f. A component's CCP model can be stored as the model used by the chroma block. i. The model can be derived by any CCP method (such as CCLM, or CCLM-T, or CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, or CCCM, or CCCM-T, or CCCM-L, or MM-CCCM, or MM-CCCM-T, or MM-CCCM-L, or GLM using different downsampling filters, or GLM with luminance using different downsampling filters, or GL-CCCM, or CCCM using unsampled luminance samples). ii. The stored model can be the model for the final application, such as a model that has been modified by slope adjustment. 21. In one example, a historical table of CCP information following the encoding / decoding regions (such as CU / CTU / CTU lines) can be stored, called a storage table. a. The historical table of CCP information maintained for the current block (called the online table) can be used together with the historical table of CCP information storage. b. In one example, entries in the storage table and the online table can be checked sequentially to generate new candidates. i. In one example, entries in the online table can be checked before all entries in the storage table. ii. In one example, entries in the storage table can be checked before all entries in the online table. iii. For example, the kth entry in the storage table can be checked after the kth entry in the online table. iv. For example, the kth entry in the online table can be checked after the kth entry in the storage table. v. For example, the k-th entry in the online table can be checked after the m-th entry in the storage table (m = 0…S, where S is an integer). vi. For example, the k-th entry in the storage table can be checked after the m-th entry in the online table (m = 0…S, where S is an integer). vii. For example, the kth entry in the online table can be checked after the mth entry in the storage table (m = S…maxT, where S is an integer and maxT is the last entry). viii. For example, the kth entry in the storage table can be checked after the mth entry in the online table (m = S…maxT, where S is an integer and maxT is the last entry). c. In one example, the storage tables(s) to be used may depend on the dimension and / or location of the current block. i. For example, a table stored in the CTU above the current CTU can be used. ii. For example, a table stored in the CTU to the upper left of the current CTU can be used. iii. For example, a table stored in the CTU to the upper right of the current CTU can be used. d. In one example, whether to use a storage table and / or how to use a storage table can depend on the dimension and / or location of the current block. i. In one example, whether to use a storage table and / or how to use a storage table can depend on whether the current CU is located at the top boundary of the CTU and whether the neighboring CTUs above it are available. 1) For example, a storage table can only be used if the current CU is at the top boundary of the CTU and the adjacent CTU above it is available. 2) For example, if the current CU is located at the top boundary of the CTU and the adjacent CTU above it is available, at least one entry in the storage table can be moved to a more prominent position. e. In one example, entries in two storage tables can be checked sequentially to generate new candidates. i. For example, a first (or second) storage table stored in a CTU above the current CTU can be used. ii. For example, the first (or second) storage table stored in the CTU to the left of the current CTU can be used. iii. For example, the first (or second) storage table stored in the CTU to the upper right of the current CTU can be used. 2.28. Non-adjacent cross-component prediction (NA-CCP) 1. Several models for cross-component prediction (such as CCLM or CCCM) in blocks are proposed that can be derived based on a set of samples that are not adjacent to the current block, called Non-Adjacent Cross-Component Prediction (NA-CCP). a. In one example, a set of samples is not adjacent to the current block only if no sample in the set is adjacent to the current block (such as adjacent above or to the left of the current block). b. In one example, a set of samples is reconstructed before the current block is encoded / decoded. c. Samples may include chromaticity samples and / or their corresponding luminance samples. If the color format is 4:2:0 or 4:2:2, luminance samples may be generated by downsampling. 2. In one example, at least one syntax element (SE) may be signaled to indicate whether non-adjacent cross-component predictions are applied. a. In one example, the SE may be transmitted via signaling conditionally. For example, the SE may only be transmitted via signaling when a specific mode (such as CCCM or CCLM) is used. 3. In one example, more than one set of samples that are not adjacent to the current block can be used to derive (multiple) models for cross-component prediction. a. In one example, samples from more than one group can be combined to derive (multiple) models for cross-component prediction. b. In one example, one of multiple candidate groups can be selected to derive (multiple) models for cross-component prediction. 4. In one example, at least one syntax element (SE) may be signaled to indicate which non-adjacent sample group is used to derive the model(s) for cross-component prediction. a. In one example, the SE may be transmitted via signaling conditionally. For example, the SE may only be transmitted via signaling if NA-CCP is applicable. b. SE can only be transmitted via signal if more than one set of non-adjacent samples can be selected. c. The maximum value of SE (denoted as V) is determined by the number of non-adjacent samples to be selected (denoted as K). i. For example, V = K, or V = K-1, or V = K+1, or V = K-2, or V = K+2. 5. Whether or not to apply NA-CCP / how to apply NA-CCP can be the same for more than one color component (such as Cb and Cr). a. Alternatively, whether to apply NA-CCP / how to apply NA-CCP can vary for different components (such as Cb and Cr). 6. Whether NA-CCP is applicable can depend on the dimension / location of the current block. 7. In one example, a set of non-adjacent samples may include samples in a region. a. In one example, a region can be a codec block (e.g., a CU). b. In one example, a region can be represented by its location relative to that region. c. In one example, the region can be an M×N rectangle (e.g., M=N=8). d. In one example, a rectangular region can be represented by its position relative to the region (such as the top-left position of the region (x, y)) and its dimension M×N. e. In one example, regions of non-adjacent samples from different groups can share the same shape and size. f. In one example, the regions of non-adjacent samples from different groups can have different shapes or sizes. g. Sample points in the region must be reconstructed. i. Alternative sites should be filled if the samples in the area have not been reconstructed. 8. In one example, luminance samples corresponding to a set of non-adjacent chromaticity samples can be prepared or generated for use in training a cross-component model. a. In one example, if the color format is 4:2:0 or 4:2:2, downsampling can be applied to generate the corresponding luminance samples. b. In one example, the generated luminance sample point may correspond to a larger area than the area of non-adjacent chrominance sample points. i. In one example, assuming the region of non-adjacent chromaticity samples is an M×N rectangle, the generated luminance samples can correspond to a (M+T+B)×(N+L+R) chromaticity rectangle, such as... Figure 33 As shown. Figure 33 An example of the brightness samples to be prepared is shown. 1) In one example, T = B = L = R = 1. c. In one example, if the luminance sample to be generated is unavailable (e.g., it is outside the image boundary, or it has not been reconstructed, or it is in a different CTU that has not yet been reconstructed, etc.), the luminance sample can be specially handled. i. In one example, it can be filled, such as by repeatedly filling with nearby available generated brightness values. ii. In one example, it may not be generated and may be marked as "unavailable". 1) The dimension of the brightness area can be set to the available area. 9. In one example, whether a region including non-adjacent samples is a valid set of samples for deriving (multiple) models can be determined by the availability of at least one sample in the region. a. For example, the region is a rectangle. b. For example, a region is considered valid only if both the upper left and lower right reconstructed samples are available. c. For example, a region is considered valid only if both the upper right and lower left reconstructed samples are available. 10. In one example, the list of regions can be constructed to record multiple sets of non-adjacent samples. a. In one example, the index of the list can be transmitted as an SE to indicate which set of non-adjacent samples was used to derive the (multiple) model for cross-component prediction. i. For example, SE can be binarized into a rounded unary code. ii. In one example, the SE may be transmitted via signaling conditionally. For example, the SE may only be transmitted via signaling when NA-CCP is applied. iii. SE can only be transmitted via signal if more than one set of non-adjacent samples can be selected. iv. The maximum value of SE (denoted as V) is determined by the number of non-adjacent samples to be selected (denoted as K). 1) For example, V = K, or V = K-1, or V = K+1, or V = K-2, or V = K+2. b. In one example, the list can be constructed by examining multiple potential candidate regions in sequence. i. The list is initialized to empty. ii. List construction is complete if the number of candidate regions in the list is equal to the maximum size of the list (such as 6). iii. If all potential candidate regions have been examined, the list construction is complete. iv. If the region is determined to be valid, potential candidates can be added to the list. v. Deduplication can be applied to build lists. 1) If a potential candidate is "duplicate" with an existing candidate in the list, the potential candidate may not be added to the list. a) If the sample points of a candidate region are the same as (or similar to) the sample points of another region, then the candidate region is "duplicated" with the other region. b) If the same or similar models can be derived from samples in both regions, then the candidate region “repeates” the other region. 11. In one example, the location and / or dimensions of regions including non-adjacent samples may depend on encoding / decoding information, such as the width / height of the current block. a. This area can be a potential candidate area for the list. b. The distance between this region and the current block can depend on the width / height of the current block. 12. In one example, a potential candidate region can be an M×N rectangle (e.g., M=N=8), non-adjacent to the left / bottom left / top left / above / top right of the current block. Figure 34 An example of a potential candidate region (shared block) is shown. 13. In one example, the potential candidate region is an M×N (e.g., M = N = 8) rectangle, and its top-left position (x0, y0) can be described as (assuming the top-left position of the current block with dimensions W×H is (0, 0)): a.(x0, y0) = (s*f(W, H), t*g(W, H)), where f and g are functions. s and t are scaling factors, such as 0.5, 1, or 2. b.(x0, y0) = (s*f(W), t*g(H)), where f and g are functions. s and t are scaling factors, such as 0.5, 1, or 2. 14. In one example, the potential candidate regions are M×N (e.g., M = N = 8) rectangles, and their top-left positions in order are as follows (assuming the top-left position of the current block with dimensions W×H is (0, 0)): (-xStep,0), (0,-yStep), (xStep, -yStep), (-xStep,yStep), (-xStep,-yStep), (-2*xStep,0), (0, -2*yStep), (-2*xStep, 2*yStep), (2*xStep, -2*yStep), (-2*xStep,yStep), (xStep, -2*yStep), (-2*xStep,-yStep), (-xStep,-2*yStep), (-2*xStep,-2*yStep), (-xStep / 2,0), (0, -yStep / 2), (xStep / 2, -yStep / 2), (-xStep / 2, yStep / 2), (-xStep / 2,-yStep / 2), Where xStep and yStep are integers. a. The order of inspection can be changed. b. In one example, xStep = Max(W, K1), yStep = Max(H, K2), where K1 and K2 are integers, for example, K1 = K2 = 16. 15. In one example, whether and / or how NA-CCP is applied can be transmitted from the encoder to the decoder via signal transmission. a. Alternatively, whether and / or how to apply NA-CCP can be deduced at the encoder and decoder without signaling based on the encoded / decoded information. b. "How to apply NA-CCP" may include: i. Which CCP model (such as CCLM or CCCM) is derived from NA-CCP; ii. Shape / size / location of (potential) candidate regions; iii. Size of the region list; iv. The number of (potential) candidate regions; v. Apply the color components of NA-CCP. c. "Encoded / decoded information" may include: i. The pattern of the current block; ii. Neighboring block pattern; iii. The mode of the luminance blocks in the same region as the current block; iv. Patterns of luminance blocks in the co-location region of neighboring blocks; v.QP; vi. Strip / image type; vii. Image width / height; viii. Block width / height; ix. Reconstructed sample points. 16. In one example, CCP encoding / decoding information from spatially or temporally neighboring blocks can be used by the current block. a. For example, a spatial neighboring block may or may not be adjacent to the current block. b. For example, CCP codec information may include: i. The type of CCP method, such as CCLM, CCCM, GLM, GLM with luminance, GL-CCCM, or CCCM using unsampled luminance samples. 1) In one example, GLM methods using different downsampling filters can be considered as different types. 2) In one example, GLM methods with brightness that use different downsampling filters can be considered as different types. 3) In one example, the type can be CCCM, CCLM, four types of GLM using different downsampling filters, four types of GLM with luminance using different downsampling filters, GL-CCCM, and CCCM using unsampled luminance samples. 4) “Not using CCP encoding / decoding” (represented as NonCCP) can also be considered a type. ii. Position (x, y). iii. The number of models. 1) For example, the number of models can be 1 or 2. 2) In one example, the number of models can be considered as part of the CCP type. For example, CCLM and MM-CCLM can be considered as two types. iv. At least one threshold for classifying samples for different models. 1) The threshold is only used when the number of models is at least 2. v. At least one luminance sample value offset. 1) When the luminance sample value offset is used to derive the chromaticity prediction value, the luminance sample value offset can be added to the luminance sample (which can be downsampled) or subtracted from the luminance sample. 2) Luminance sample value offset can be used only for specific types, such as CCCM, GLM with luminance, GL-CCCM, and CCCM using unsampled luminance samples. vi. At least one chromaticity sample value offset. 1) The offset of the chromaticity sample value can be added to or subtracted from the chromaticity prediction value derived from the CCP model to generate the final prediction. vii. At least one model for at least one chromaticity component. 1) For example, it can include different models for the Cb component and the Cr component. 2) For example, the number of models for each component can be included as part of the information. 3) The model can be represented in the form of a CCLM, CCCM, GLM, or a GLM or GL-CCCM with luminance, or a CCCM using unsampled luminance samples. viii. Represented as the displacement of at least one sample point, denoted as (dX, dY). 1) When the chromaticity sample position displacement is used to derive the chromaticity prediction value, the chromaticity sample position displacement can be added to or subtracted from the sample position (x, y). 2) Chromaticity sample position displacement can be used only for specific types, such as GL-CCCM. c. For example, CCP encoding / decoding information can be stored after the chroma blocks are encoded / decoded. i. In one example, CCP encoding / decoding information can only be stored if the chroma block is encoded / decoded using CCP mode. 1) In one example, if the chroma block is encoded and decoded using at least one CCP mode, such as by fusion of chroma intra-prediction modes, the CCP encoding and decoding information can be stored. a) The stored type can be set to the CCP type used in the fusion of chroma frame prediction modes. ii. In one example, CCP codec information can be stored for any chroma block. 1) If the chroma block is not encoded or decoded using CCP mode, the type is stored as "NonCCP". iii. If the chroma block is encoded and decoded using CCP mode, the type of information may depend on the encoding / decoding mode being stored. 1) If the mode is CCCM, or CCCM-T, or CCCM-L, or MM-CCCM, or MM-CCCM-T, or MM-CCCM-L, then the type is set to "CCCM". 2) If the mode is CCLM, or CCLM-T, or CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, then the type is set to "CCLM". 3) If the mode is CCLM with slope adjustment, or CCLM-T, or CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, then the type is set to "CCLM". 4) If the mode is GLM using filter X, the type is set to "GLM using filter X". 5) If the mode is a luminous GLM using filter X, the type is set to "Luminous GLM using filter X". 6) If the mode is GL-CCCM, the type is set to "GL-CCCM". 7) If the mode is to use unsampled CCCM, the type is set to "Use unsampled CCCM". 8) If the mode is a fusion of chroma intra-prediction modes, the type is set to "CCLM". iv. The number of models can be stored as the number of models for chroma blocks. 1) For example, if the mode is MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, or any other multi-model CCP mode (such as GLM, or GL-CCCM, or CCCM with multiple models using unsampled luminance samples), the number of models is set to 2. v. Information such as thresholds, luminance / chrominance sample value offsets, and sample position displacements can be stored as information used by chrominance blocks. vi. A component's CCP model can be stored as a model used by the chroma block. 1) The model can be derived by any CCP method (such as CCLM, or CCLM-T, or CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, or CCCM, or CCCM-T, or CCCM-L, or MM-CCCM, or MM-CCCM-T, or MM-CCCM-L, or GLM using different downsampling filters, or GLM with luminance using different downsampling filters, or GL-CCCM, or CCCM using unsampled luminance samples). 2) The stored model can be the model used in the final application, such as a model that has been modified by slope adjustment. d. For example, CCP codec information can be stored in M×N granularity. i. For example, M = N = 2. ii. For example, CCP encoding / decoding information for a specific chroma block covered by, covering, or overlapping with an M×N region can be stored in an M×N region. 1) For example, CCP encoding / decoding information of the first encoded / decoded block having CCP information covered by, covering, or overlapping with an M×N region can be stored. 2) For example, CCP encoding / decoding information of the last encoded / decoded block that is covered by an M×N region, or covers an M×N region, or overlaps with an M×N region can be stored. 3) For example, CCP encoding / decoding information of a specific location that is covered by an M×N region, or covers an M×N region, or overlaps with an M×N region can be stored. a) A specific location can be the top left / bottom right / top right / bottom left / center of an M×N region. 17. In one example, a list of CCP candidates can be constructed for a chroma block. a. In one example, the first syntax element (SE) can be signaled to indicate whether CCP candidates in the list are applied to the current chroma block. (This can be represented as "the block is encoded / decoded using the CCP candidate list mode"). i. For example, SE can be a symbol. ii. For example, SE can be encoded or decoded by context. b. For example, the first SE can be transmitted via signal in a conditional manner. i. For example, the first SE can only be transmitted via signal when CCP is applied. ii. For example, the first SE can only be transmitted via signaling when CCP is applied and a specific mode is applied. 1) A specific mode can be CCLM. 2) A specific mode can be CCCM. c. In one example, the second syntax element (SE) can be signaled to indicate which CCP candidate is applied. i. For example, SE can be an index. ii. For example, SE can be binarized into a rounded unary code. 1) For example, the maximum value of SE can be S-1, where S is the maximum size of the candidate list. iii. For example, the first binary bit of SE can be encoded or decoded using context. d. For example, the second SE can be transmitted via signal in a conditional manner. i. For example, a second SE can only be transmitted via signaling if a CCP candidate in the first SE indication list is applied. e. In one example, whether the CCP candidate list mode is applicable can be signaled in VPS / DPS / SPS / PPS / image header / strip header / etc. f. In one example, the maximum size / length of the CCP candidate list can be transmitted via signaling in VPS / DPS / SPS / PPS / image header / strip header / etc. 18. In one example, the CCP candidate list may include at least one CCP candidate stored in a spatial neighboring block, which may be adjacent to or not adjacent to the current block (assuming the top-left position of the current block is (Xt, Yt), and the width and height of the current block are W and H, respectively). a. In one example, a set of locations are checked to find the stored CCP information. i. For example, if the type of the stored CCP information associated with a location is NonCCP, the location is skipped. 1) Alternatively, if the type of the stored CCP information associated with a location is NonCCP, the location is added to the backup location list. ii. For example, if the type of the stored CCP information associated with a location is not NonCCP, the stored CCP information is attempted to be appended to the list. b. In one example, a set of positions (Xi, Yi) to be checked in sequence can be derived from positions near the current block to positions farther away from the current block. i. For example, positions can be checked in a cycle-by-cycle manner. In one cycle, several positions are checked, and the next cycle is executed. ii. In one example, the position to be checked within the cycle is: (Xt-NDHor-1,Yt+H+NDVer-1),(Xt+W+NDHor-1,Yt-NDVer-1),(Xt+(W>>1),Yt-NDVer-1),(Xt-NDHor-1,Yt+(H>>1)),(Xt-NDHor-1,Yt-NDVer-1) NDHor and NDVer are different for different periods. iii. In one example, the position to be checked for period k is derived as follows: NDHor=(k==0?W / 2:W*k); NDVer=(k==0?H / 2:H*k). iv. In one example, the location to be checked can be different for different cycles. c. In one example, the set of positions (Xi, Yi) to be checked can be the same set of positions checked when constructing the Merge list. d. In one example, the set of positions (Xi, Yi) to be checked can be the same set of positions checked when constructing a Merge list based on sub-blocks. 19. In one example, when attempting to add stored CCP information as a candidate (referred to as a potential candidate) to the CCP candidate list, it can be compared with at least one candidate already in the CCP candidate list. a. In one example, all candidates in the list can be compared with potential candidates. b. In one example, if a candidate already in the CCP candidate list is the same as or similar to a potential candidate, the potential candidate cannot be added to the CCP candidate list. c. In one example, two CCP candidates are determined to be different if the following conditions are met: i. Different CCP types. ii. The number of models is different. iii. If CCP has multiple models, the thresholds will be different. iv. At least one model is different. v. Different luminance sample offsets (applicable only when the type is CCCM or GL-CCCM or GLM or when using CCCM with unsampled luminance samples). vi. Different sample point position displacements (applicable only when the type is GL-CCCM). 20. In one example, when CCP candidates in the list are used to generate predictions for the current block, the CCP will be executed following the CCP information. a. CCCM, CCLM, four types of GLM using different downsampling filters, four types of GLM with luminance using different downsampling filters, GL-CCCM, and CCCM using unsampled luminance samples can be applied to the current block based on the candidate CCP type. b. Based on the number of candidate models and the threshold, a model or multiple models with at least one threshold can be used. c. The offset of the candidate luminance sample value can be added to the luminance sample to be included in the CCP model (which can be downsampled) or subtracted from the luminance sample to be included in the CCP model. i. This procedure applies only when the type is CCCM, or GL-CCCM, or GLM, or when CCCM uses unsampled luminance samples. d. The displacement of (multiple) sample points can be added to or subtracted from the position coordinates to be included in the CCP model. i. This procedure applies only when the type is GL-CCCM. e. How to obtain downsampled luminance samples can be based on CCP type. i. The downsampled luminance samples can be obtained by following the downsampling method required by the CCP mode corresponding to the type. 21. In the example, the predicted values generated by the CCP candidate can be modified before they are used to obtain the reconstructed sample values. a. In one example, the offset D can be added to or subtracted from the predicted value. b. In one example, the offset can be derived based on the luminance / chrominance samples of a template, which are calculated using reconstructed samples (called the “template”) that are adjacent to the current block. Figures 35A to 35C Possible templates are shown below. i. In one example, if reconstructed samples to the left of the current block are available, the template can be composed of reconstructed samples to the left of the current block. ii. In one example, if reconstructed samples above the current block are available, the template can be composed of reconstructed samples above the current block. iii. In one example, if reconstructed samples above or to the left of the current block are available, the template can consist of reconstructed samples above or to the left of the current block. iv. The corresponding brightness sample of the template can be downsampled in the same way as the brightness sample inside the current block. c. In one example, if the CCP type requires N models (such as two models), then for N models, there are N offsets (denoted as {D}). 0 ,…,D N-1}) can be derived. i. Offset D i It can be added to or subtracted from the predicted value generated by model i. d. In one example, the CCP method indicated by the type of the CCP candidate can be applied to the template. i. For example, for the k-th sample point of the template, S k =R k -P k It is calculated, where R k and P k These represent the reconstructed sample value and the predicted value using CCP, respectively, for the k-th sample point. 1) For example, D is calculated as {S} k The average value of}. 2) For example, suppose S k If the number of elements is M, then D is calculated as D = sign(sum) × ((|sum| + off) >> W), where and ii. For example, for the k-th sample point of model i using a template, S i k =R i k -P i k It is calculated, where R i k and P i k represents the reconstructed sample value using the k-th sample point of model i and the predicted value using CCP, respectively. 1) For example, D i Calculated as {S i k The average value of}. 2) For example, suppose S i k If the number of elements is M, then D is calculated as D. i =sign(sum)×((|sum|+off)>>W), where and iii. In one example, no division operation was used to calculate D or Di. i . 1) For example, lookup tables can be used to calculate D or D0. i . e. For example, only specific types of CCPs can have modifications applied, such as CCLM and CCCM with multiple models. i. For example, the types of CCLM, CCLM with multiple models, CCCM with multiple models, and GLM can be modified. 22. In one example, candidates with the type "not adjacent" can be added to the candidate list. a. The information includes location (x, y). b. If such a candidate is used to predict the current block, then (multiple) CCP models can be derived using samples referenced by (x, y), as required by Items 1 to 15. c. In one example, the locations stored in the list of backup locations exposed in Project 18 can be checked in order to add valid locations to the candidate list. 23. In one example, the construction of the candidate list can be terminated if the number of candidates in the list is M and M = D + 1, where D is the index indicating the selected candidate. 24. In one example, if all possible potential candidates are examined and the size of the candidate list is less than S (where S is the maximum number of candidates), then the default candidate can be added to the list to complete the list. 25. In one example, the CCP candidate list may include at least one candidate obtained from a history-based table. a. The history table can be an online table. b. The history table can be a storage table. c. In order to construct a list of CCP candidates, potential candidates can be examined in sequence. i. For example, the order could be (1) CCP information stored in adjacent / non-adjacent blocks in the spatial domain; (2) CCP candidates with the type "non-adjacent"; (3) historical candidates from the online table; (4) historical candidates from the storage table; and (5) default candidates. ii. For example, the order could be (1) CCP information stored in adjacent blocks in the spatial domain; (2) CCP information stored in non-adjacent blocks in the spatial domain; (3) CCP candidates with the type "non-adjacent"; (4) historical candidates from the online table; (5) historical candidates from the storage table; and (6) default candidates. iii. For example, the order could be (1) CCP information stored in adjacent blocks in the spatial domain; (2) CCP information stored in non-adjacent blocks in the spatial domain; (3) historical candidates from the online table; (4) historical candidates from the storage table; (5) CCP candidates with the type "non-adjacent"; and (6) default candidates. iv. For example, the order could be (1) CCP information stored in adjacent blocks in the spatial domain; (2) historical candidates from the online table; (3) CCP information stored in non-adjacent blocks in the spatial domain; (4) CCP candidates with the type "non-adjacent"; (5) historical candidates from the storage table; and (6) default candidates. v. Any candidate of any type in the example order can be removed from it. vi. Any other order of these kinds of potential candidates. 26. In one example, if the chroma block is encoded or decoded using at least one CCP candidate, the CCP information of the CCP candidate can be stored. a. The storage method can follow the approach disclosed in Project 16. 27. In one example, if the chroma block is encoded or decoded using at least one CCP candidate, the CCP information of the CCP candidate can be placed in a history-based table. a. The process of putting CCP information into a history-based table can follow the procedure described in Section 2.27. 2.29. CCCM using multiple downsampling filters A method is proposed that applies multiple downsampling filters to a set of reconstructed luminance samples in CCCM. A linear combination of these downsampled, reconstructed samples is multiplied by derived filter coefficients to form the final chromaticity prediction. The proposed model can also consider the horizontal or vertical position of the center luminance sample. The coefficients are derived using Gaussian elimination, as currently used in CCCM modes such as ECM. The cross-component model shown below is tested as an additional CCCM mode, where the mode index is transmitted via the signal in the bitstream: (1) Model 1: predChroma=c0*H(C)+c1*G1(C)+c2*G2(C)+c3*G3(C)+c4*P(H(C))+c5*P(G1(C))+c6*P(G2(C))+c7*X+c8*Y+c9*B, (2) Model 2: predChroma=c0*H(C)+c1*H(W)+c2*H(E)+c3*G1(C)+c4*G1(W)+c5*G1(E)+c6*P(H(C))+c7*P(H(W))+c8*P(H(E))+c9*X+c10*B, (3) Model 3: predChroma=c0*H(C)+c1*H(NE)+c2*H(SW)+c3*G3(C)+c4*G3(NE)+c5*G3(SW)+c6*P(H(C))+c7*P(H(NE))+c8*P(H(SW))+c9*Y+c10*B, Where H(·), G1(·), G2(·), and G3(·) are... Figure 36 The various downsampling filters shown are denoted by C, which represents the current chroma sample position, and N, S, W, E, NE, and SW are as follows: Figure 37 The positions around C shown, c i Here are the filter coefficients, P and B are the nonlinear and bias terms, and X and Y are the horizontal and vertical positions of the center luminance sample relative to the upper left of the block. It's important to note that Model 1 uses only the current chroma sample in a 1x1 prediction shape, while the other models are unidirectional prediction models using three chroma samples. Figure 36 Various downsampling filters used in the proposed cross-component model are shown. Figure 37 The location of the chromaticity sample points is shown. 3. Problem 1. Candidates in the CCP candidate list do not have to be in optimal order. It is useful to place better candidates earlier in the list, with shorter index bits. 2. How to coordinate the use of multiple downsampling filters in CCCM (MF-CCCM) and the CCP candidate list remains unclear. 4. Detailed Solution The detailed 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. In the following discussion, CCCM may refer to the original CCCM mode, or it may refer to a variant of CCCM, such as CCCM-L, CCCM-T, MM-CCCM, MM-CCCM-L, MM-CCCM-T. In the following discussion, CCLM may refer to the original CCLM mode, or it may refer to a variant of CCLM, such as CCLM-L, CCLM-T, MM-CCLM, MM-CCLM-L, MM-CCLM-T, etc. In the following discussion, cross-component prediction (CCP) can refer to any cross-component prediction, such as CCLM or CCCM or GLM or CCLM with a sliding offset. 1. CCP candidates in the CCP candidate list can be reordered. a. The CCP candidate list may include different kinds of candidates, such as candidates with CCP information stored in adjacent / non-adjacent neighboring blocks and / or candidates with CCP information stored in a history-based table and / or CCP information derived from non-adjacent samples. b. In one example, whether and / or how to reorder can be transmitted from the encoder to the decoder via signaling, such as at the block level / sequence level / picture group level / picture level / strip level / piece group level, such as in the codec structure of CTU / CU / TU / PU / CTB / CB / TB / PB or sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / strip header / piece group header. c. In one example, the CCP candidate list can be reordered at both the encoder and decoder based on the same rules. d. In one example, suppose the list of CCP candidates before reordering is represented as L, and the list of CCP candidates after reordering is represented as L', and the index of the CCP candidate transmitted to the decoder or deduced by the decoder is represented as k, then the CCP candidate L'[k] can be used to decode the current block. e. In one example, whether and / or how candidates in the CCP candidate list are reordered may depend on the candidate's position in the list. i. For example, only the first M candidates in the candidate list L can be reordered, where M is no greater than the size of L. f. In one example, whether and / or how candidates in the CCP candidate list are reordered may depend on the type of CCP candidate and / or CCP information. i. In one example, candidates with specific features can be forwarded during reordering. ii. In one example, candidates with specific features can be placed backwards during reordering. iii. In one example, candidates with specific characteristics may not be involved in the reordering. iv. Specific characteristics may be: 1) It is the default CCP candidate for filling the candidate list. 2) It has CCP information stored in at least one adjacent neighboring block. 3) It has CCP information stored in at least one non-adjacent neighboring block. 4) It contains CCP information stored in a block at a specific location. 5) It has CCP information stored in a history-based table. 6) It has CCP information stored in a history-based table that is updated online. 7) It has CCP information stored in a history-based table. 8) It has CCP information stored in a history-based table at a specific entry. 9) It has CCP information and / or CCP information derived from non-adjacent samples. 10) It has CCP information and / or CCP information derived from non-adjacent samples at a specific location. 11) It is associated with a specific CCP method, such as CCLM, or CCLM-T, or CCLM-L, or MM-CCLM, or MM-CCLM-T, or MM-CCLM-L, or CCCM, or CCCM-T, or CCCM-L, or MM-CCCM, or MM-CCCM-T, or MM-CCCM-L, or GLM using a different downsampling filter, or GLM with luminance using a different downsampling filter, or GL-CCCM, or CCCM using unsampled luminance samples. g. In one example, the reordering process can be performed conditionally. i. For example, if the number of candidates in the CCP candidate list is less than a threshold, the reordering process can be skipped. ii. For example, if W>=Tw, and / or W<=Tw, and / or H>=Th, and / or H<=Th, and / or W*H>=Ts, and / or W*H<=Ts, then the reordering process can be skipped. iii. For example, the reordering process can be skipped based on codec information such as mode / QP / proximity information / color components / color format. h. In one example, the reordering process can be performed once for at least two components (such as Cb and Cr). i. In one example, the reordering process can be performed separately for different components (such as Cb and Cr). 2. CCP candidates in the CCP candidate list can be reordered based on cost comparison. a. In one example, for each CCP candidate involved in the reordering process, the cost can be calculated in association with the candidate. b. In one example, the CCP candidates involved can be placed in ascending order based on the cost associated with the candidate. c. In one example, the CCP candidates involved can be placed in descending order based on the cost associated with the candidate. d. In one example, the cost can be a template cost, which is calculated using reconstructed samples that are adjacent to the current block and is called a “template”. Figures 38A to 38C Possible templates are shown below. 1) In one example, if reconstructed samples to the left of the current block are available, the template can be composed of reconstructed samples to the left of the current block. 2) In one example, if reconstructed samples above the current block are available, the template can be composed of reconstructed samples above the current block. 3) In one example, if reconstructed samples above or to the left of the current block are available, the template can be composed of reconstructed samples above or to the left of the current block. The cost of a CCP candidate can be calculated during the process. This process may include at least one of the following two steps: i. Step 1: Cross-component prediction is derived on the sample points of the template. 1) Cross-component prediction is applied to the template in the same / similar way as the CCP method associated with the CCP candidate is applied on the current block. a) In one example, the brightness samples corresponding to the template region can be obtained by the downsampling method required by the CCP candidate. 2) In one example, the cross-component prediction model of the CCP candidate that can be used to generate the prediction of the current block can be used to derive the prediction samples of the template. a) In one example, when the predicted sample points of the template are derived using the CCP model, the predicted sample points can be modified. i. For example, an offset can be added to the prediction samples. ii. For example, offsets can be derived as disclosed in item 21 of section 2.28. 3) In one example, the threshold used to separate at least two models in the current block (such as in MM-CCCM and MM-CCLM modes) can be used to separate models in the template. ii. Step 2: The distortion between the predicted samples and the reconstructed samples of the template is calculated as a cost. 1) Distortion can be SAD, SSD, mean-removed SAD, SATD, etc. f. The cost can be derived separately for different components (such as the Cb component and the Cr component). i. The cost on a component (such as Cb) can be used to reorder candidates. ii. The total cost across multiple components (such as Cb and Cr) can be used to reorder candidates. 3. When constructing the CCP candidate list, potential CCP candidates can be reordered. a. For example, potential CCP candidates can have characteristics. i. The feature is the default CCP candidate that populates the candidate list. ii. The feature has CCP information stored in at least one adjacent neighboring block. iii. The feature has CCP information stored in at least one non-adjacent neighboring block. iv. The feature has CCP information stored in a block at a specific location. v. The feature has CCP information stored in a history-based table. vi. The feature has CCP information stored in a history-based table that is updated online. vii. The feature has CCP information stored in a history-based table. viii. Features have CCP information and / or CCP information derived from non-adjacent samples. b. In one example, all or some of the potential candidates can be examined and reordered. The top N potential candidates can be added to the candidate list. i. In one example, when the current N potential candidates are in the candidate list, the order of the first N potential candidates can be maintained. ii. In one example, as disclosed in Items 1 and 2, reordering can be performed based on cost comparisons. 4. In one example, when constructing the CCP candidate list, adjacent neighboring blocks can be checked before non-adjacent neighboring blocks. 5. In one example, whether adjacent neighboring blocks and / or non-adjacent neighboring blocks can be examined to construct a CCP candidate list may depend on the location of adjacent neighboring blocks and / or non-adjacent neighboring blocks. a. In one example, if a neighboring block and / or a non-neighboring block is not in the current CTU line, it may not be allowed to be checked to build a CCP candidate. b. In one example, if a neighboring block and / or a non-neighboring block is not in the current CTU, it may not be allowed to be checked to build a CCP candidate. c. In one example, if |y0-Y0|>Ts, then adjacent neighboring blocks and / or non-adjacent neighboring blocks may not be allowed to be checked to construct CCP candidates, where (x0, y0) is the top-left position of the neighboring block and (X0, Y0) is the top-left position of the current CTU. d. In one example, if |x0-X0|>Ts, then adjacent neighboring blocks and / or non-adjacent neighboring blocks may not be allowed to be checked to construct CCP candidates, where (x0, y0) is the top-left position of the neighboring block and (X0, Y0) is the top-left position of the current CTU. e. In one example, if |y0-Y0|>Ts, then adjacent neighboring blocks and / or non-adjacent neighboring blocks may not be allowed to be checked to construct CCP candidates, where (x0, y0) is the top-left position of the neighboring block and (X0, Y0) is the top-left position of the current block. f. In one example, if |x0-X0|>Ts, then adjacent neighboring blocks and / or non-adjacent neighboring blocks may not be allowed to be checked to construct CCP candidates, where (x0, y0) is the top-left position of the neighboring block and (X0, Y0) is the top-left position of the current block. g. In the above items, “CTU” can be replaced by any other area unit (such as “VPDU”). 6. In one example, whether adjacent neighboring blocks and / or non-adjacent neighboring blocks can be checked to construct a CCP candidate list may depend on whether a two-tree structure is applied. 7. In one example, whether brightness samples can be used to derive the CCP model may depend on whether a dual-tree structure is applied. a. For example, when dual-tree is applied, the luminance sample is available as long as it is in the current CTU. b. For example, when the dual tree is not applied, the luminance samples are only available after the block containing the luminance samples has been decoded. 8. In one example, a first syntax element (SE) may be signaled to indicate whether CCP candidates in the list are applied to the current chroma block. (It may be represented as "the block is encoded / decoded using the CCP candidate list mode"), and a second SE may be signaled conditionally depending on whether the first SE is signaled. b. For example, if the first SE indicator block is encoded and decoded using the CCP candidate list mode, the second SE may not be transmitted via signaling. i. The second SE can indicate whether the CCLM mode type is applied. ii. The second SE can indicate whether the CCCM mode type is applied. c. For example, if the first SE indicator block is encoded and decoded using the CCP candidate list mode, the index can be signaled to indicate a CCP candidate, and other information can be signaled to indicate any other CCP mode. 9. In one example, whether the CCP candidate list pattern applies to a block may depend on the block's width W and / or height H. a. In one example, if the CCP candidate list mode is not applicable to a block, then the SE indicating whether the CCP candidates in the list are applied to the current chroma block is not transmitted via signaling. b. In one example, the CCP candidate list pattern does not apply if W×H<=T, where T is an integer, such as 8, 16, or 32. c. In one example, the CCP candidate list pattern does not apply if W×H>=T, where T is an integer, such as 1024, 2048, or 4096. d. In one example, the CCP candidate list pattern is not applicable if min{W, H} <= T, where T is an integer, such as 4, or 8, or 16, or 32, or 64. e. In one example, the CCP candidate list pattern does not apply if min{W, H} >= T, where T is an integer, such as 4, or 8, or 16, or 32, or 64. f. In one example, the CCP candidate list pattern does not apply if max{W, H} <= T, where T is an integer, such as 4, or 8, or 16, or 32, or 64. g. In one example, the CCP candidate list pattern does not apply if max{W, H} >= T, where T is an integer, such as 4, or 8, or 16, or 32, or 64. 10. In one example, the order of inspections could be as follows to populate the CCP candidate list: a. Adjacent blocks. b. Not adjacent to neighboring blocks. c. Neighboring blocks based on history. d. Default candidate. 11. In one example, such as Figure 39 As shown, specific adjacent blocks can be checked in sequence to populate the CCP candidate list. Figure 39 The adjacent neighboring blocks are shown. a. In one example, specific adjacent neighboring blocks could be A1, A3, A4, A6, A7, and the order could be: i. A3, A6, A4, A7, A1; ii. A3, A6, A7, A4, A1; iii. A6, A3, A7, A4, A1; iv.A6, A3, A4, A7, A1. b. In one example, a specific adjacent neighbor block can be A1, A2, A3, A4, A5, A6, A7, and the order can be: i.A3, A6, A4, A7, A1, A2, A5; ii.A3, A6, A7, A4, A1, A2, A5; iii.A6, A3, A7, A4, A1, A2, A5; iv.A6, A3, A4, A7, A1, A2, A5; v.A3, A6, A4, A7, A1, A5, A2; vi.A3, A6, A7, A4, A1, A5, A2; vii.A6, A3, A7, A4, A1, A5, A2; viii.A6, A3, A4, A7, A1, A5, A2; ix.A3, A6, A4, A7, A2, A5, A1; x.A3, A6, A7, A4, A2, A5, A1; xi.A6, A3, A7, A4, A2, A5, A1; xii.A6, A3, A4, A7, A2, A5, A1; xiii.A3, A6, A4, A7, A5, A2, A1. xiv.A3, A6, A7, A4, A5, A2, A1; xv.A6, A3, A7, A4, A5, A2, A1; xvi.A6, A3, A4, A7, A5, A2, A1. 12. In one example, such as Figure 39 As shown, specific adjacent blocks can be checked in sequence to populate the CCP candidate list. 13. In one example, two CCP candidates are determined to be the same if: i. CCP types are either CCLM or GLM. ii. The number of models is the same. iii. The parameters of the model in the first CCP candidate are not different from the corresponding parameters of the corresponding model in the second CCP candidate. 1) The parameter can be the offset parameter of a linear model. In other words, assuming the model is of the form y = ax + b, where a and b are parameters, then b is the offset parameter. 14. In one example, a process without division can be applied when deriving the average value D as disclosed in item 21 of Section 2.28. a. For example, D is calculated as {S} k The average value of}. Assume S k The number is M, and Then sum and M can be the inputs to the process, and D can be the output. b. For example, the use of a procedure can depend on whether sum is < 0. i. For example, if sum < 0, then -sum can be input into the procedure, and the output can be -D, which will be converted to D by inversion. c. For example, a process may include at least one predefined table. i. For example, the table could be divTable
[16] ={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}. d. For example, at least one log2 operation may be involved in the process. i. For example, the process can be derived e. In one example, the index NormNum of an entry in the reference divTable can be derived. i. The derivation can depend on M. ii. The derivation can depend on x. iii. In one example, NormNum = (M < <4> >x)&15. f. In one example, by setting a specific bit to 1, the value v can be calculated using the selected entry divTable[NormNum] in divTable. i. For example, v = 8|divTable[NormNum]. g. In one example, x can be modified based on NormNum. i. For example, if NormNum is not equal to 0, then x = x + 1. h. In one example, the shift S can be derived based on x. i. For example, S = 13 - x. i. In one example, the value retVal can be derived based on whether S is less than 0. i. In one example, if S < 0, then retValue = (sum × v + (1 << (-S - 1)) >> (-S). ii. In one example, if S>=0, then retValue=(sum×v)>>S. j. In one example, D can be derived from retVal via a shift operation. i. For example, D = retVal >> 16. k. In one example, a procedure or part of a procedure can also be used as a replacement for a division operation in other codec tools. i. For example, when deriving cross-component models, it can be used in CCLM or CCCM. ii. For example, it can be used in MM-CCLM or MM-CCCM to derive a threshold for classifying samples. iii. For example, it can be used in affine mode to derive affine models or corner motion vectors (CPMV). 15. In one example, the prediction generated from the first CCP candidate in the list can be fused with the second prediction to obtain the prediction used in another step. a. In one example, the two predictions are fused by performing a weighted sum. i. For example, the weighting value can be location-dependent. ii. For example, weighting values can be indicated via signaling. iii. For example, the weighting value can be a fixed value. b. In one example, the second prediction can be generated from the second CCP candidate. c. In one example, the second prediction could be a specific CCP prediction, such as CCLM or CCCM. d. In one example, the second prediction could be a specific angle prediction pattern, such as the DC pattern. e. In one example, the second prediction could be a specific angle prediction mode that depends on the luminance component, such as the DM mode. f. In one example, the second prediction could be a specific angle prediction pattern that depends on neighboring samples, such as the DIMD or TIMD pattern. g. In one example, the SE can be signaled to indicate whether such fusion is applied. h. In one example, the SE can be transmitted via signaling to indicate the first prediction and / or the second prediction to be fused. i. In one example, the index of the CCP candidate list can indicate whether such fusion is applied. j. In one example, the index of the CCP candidate list can indicate the first and / or second predictions to be fused. 16. In one example, whether the CCP candidate list mode applies to a block may depend on the encoding and decoding information of the current chroma block and / or co-occurrence luma block. a. Encoding and decoding information may include encoding and decoding modes, CCP models, reconstructed samples, QP, partitioning methods, dual-tree structures, etc. b. In one example, the CCP candidate list pattern can be excluded from the second pattern. i. In one example, if the CCP candidate list pattern is used, then the second pattern is not applicable. ii. In one example, if the second mode is used, the CCP candidate list mode is not applicable. iii. In one example, if the pattern is not applicable, the SE of the current block associated with that pattern may not be transmitted via signaling. c. In one example, if the ISP mode is used, the CCP candidate list mode is not applicable. d. In one example, the CCP candidate list pattern is not applicable if the double tree structure is not applied and the ISP pattern is used. 17. In one example, the CCP candidate list pattern can be used when the ISP pattern or any other sub-TU / sub-PU / sub-CU (all referred to as sub-blocks) method is applied. a. In one example, whether to apply the CCP candidate list pattern can be determined for the entire block, and each sub-block can share that determination. i. A single SE can be signaled for the entire block to indicate whether the CCP candidate list mode is applied to all sub-blocks. b. In one example, whether to apply the CCP candidate list pattern can be determined individually for each sub-block. i.SE can be used to indicate whether the CCP candidate list mode is applied to a sub-block via signal transmission. c. In one example, if the CCP candidate list pattern is used, a single CCP candidate list can be derived for the entire block. And each sub-block can share a single CCP candidate. d. In one example, if the CCP candidate list pattern is used, a separate CCP candidate list can be derived for each sub-block. i. In one example, the encoding and decoding information of the first sub-block can be used to deduce the CCP candidate list for the second sub-block. ii. In one example, the encoding and decoding information of the first sub-block can be used to reorder the CCP candidate list of the second sub-block. iii. In one example, the encoding and decoding information of the first sub-block can be used to deduce the offset of the CCP model in the CCP candidate list for the second sub-block. iv. Encoding and decoding information may include encoding and decoding modes, CCP models, reconstructed samples, etc. 18. In one example, CCP information may include information about MF-CCCM. a. In one example, CCP information may include whether the associated CCP model uses MF-CCCM. b. In one example, CCP information may include whether it is the MF-CCCM mode. c. In one example, CCP information may include parameters associated with the CCP model using MF-CCCM. d. In one example, information about MF-CCCM may be stored in a block along with CCP information. i. In one example, the block is encoded and decoded using MF-CCCM mode. ii. In one example, the block is encoded and decoded using the CCP candidate list mode, and the selected candidate is using the MF-CCCM mode. e. In one example, information about MF-CCCM can be stored in a history-based table along with CCP information after the block is encoded / decoded. i. In one example, the block is encoded and decoded using MF-CCCM mode. ii. In one example, the block is encoded and decoded using the CCP candidate list mode, and the selected candidate is using the MF-CCCM mode. f. In one example, information about MF-CCCM can be stored in a CCP candidate. g. In one example, when attempting to put potential candidates into a history-based table, information about MF-CCCM can be used to compare whether two candidates are the same or similar. h. In one example, when trying to add potential candidates to a candidate list, information about MF-CCCM can be used to compare whether two candidates are the same or similar. i. In one example, information about MF-CCCM can be used to reorder candidates in the CCP candidate list. i. In one example, as indicated by the use of MF-CCCM associated with a CCP candidate, MF-CCCM can be used to generate predicted values for a template. j. In one example, as indicated by the use of the MF-CCCM associated with the CCP candidate, information about the MF-CCCM can be used to generate the prediction for the current block. All items in sections k.2.27 and k.2.28 can be applied together with the CCP method as MF-CCCM. l. All claims disclosed in this document can be applied together with the CCP method as MF-CCCM. Overview 19. The syntax elements disclosed above can be binarized into flags, fixed-length codes, EG(x) codes, unary codes, rounded unary codes, rounded binary codes, etc. They can be signed or unsigned. 20. The syntax elements disclosed above can be encoded or decoded using at least one context model. Alternatively, they can be encoded or decoded using a bypass method. 21. The syntax elements disclosed above can be transmitted via signals in a conditional manner. a. SE is transmitted via signal only if the corresponding function is applicable. b. SE is transmitted via signal only if the dimensions (width and / or height) of the block meet the conditions. 22. The syntax elements disclosed above can be transmitted via signaling at the block level / sequence level / picture group level / picture level / strip level / piece group level, such as in the codec structure of CTU / CU / TU / PU / CTB / CB / TB / PB or sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / strip header / piece group header. 23. Whether and / or how the methods disclosed above can be applied to be transmitted via signal at the block level / sequence level / picture group level / picture level / strip level / piece group level, such as in the codec structure of CTU / CU / TU / PU / CTB / CB / TB / PB or sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / strip header / piece group header. 24. Whether and / or how to apply the methods disclosed above may depend on the encoded / decoded information, such as block size, color format, single / dual tree segmentation, color components, and stripe / image type. 25. The methods presented in this document can be used in other codec tools that require chroma blending.
[0100] Further details will be described below. Figure 40 A flowchart of a method 4000 for video processing according to an embodiment of the present disclosure is shown. Method 4000 is implemented during the conversion between video units of a video and a bitstream of a video.
[0101] At box 4010, whether the Cross-Component Prediction (CCP) candidate list mode is applicable to the current video block is determined based on at least one of the following codec information: the current chroma block, or the same-position luma block. At box 4020, the conversion is performed based on this determination.
[0102] Method 4000 enables applications that can determine CCP candidate list patterns based on encoding / decoding information. Encoding / decoding effectiveness and efficiency can therefore be improved.
[0103] In some embodiments, the encoding / decoding information includes at least one of the following: encoding / decoding mode, CCP model, reconstructed samples, quantization parameters (QP), partitioning method, or dual-tree structure.
[0104] In some embodiments, the CCP candidate list mode is excluded from the second mode.
[0105] In some embodiments, if the CCP candidate list mode is used, the second mode is not applicable, or if the second mode is used, the CCP candidate list mode is not applicable.
[0106] In some embodiments, if a mode is not applicable, the syntax elements of the current video block associated with that mode are not included in the bitstream.
[0107] In some embodiments, if the Intra-Frame Sub-Segmentation (ISP) mode is used, the CCP candidate list mode is not applicable.
[0108] In some embodiments, the CCP candidate list mode is not applicable if the dual-tree structure is not applied and the intra-fraction sub-segmentation (ISP) mode is used.
[0109] In some embodiments, the CCP candidate list mode is used if at least one of the following modes is applied: Intra-Segmentation (ISP) mode, Sub-Transform Unit (sub-TU) mode, Sub-Prediction Unit (sub-PU) mode, Sub-Code-Decoder Unit (sub-CU) mode, or Sub-Block mode.
[0110] In some embodiments, whether to apply the CCP candidate list mode is determined for the entire block, and this determination is shared by each sub-block of the entire block.
[0111] In some embodiments, a syntax element for the entire block indicates whether the CCP candidate list mode is applied to multiple sub-blocks.
[0112] In some embodiments, whether to apply the CCP candidate list pattern is determined individually for each sub-block within the entire block.
[0113] In some embodiments, syntax elements are indicated for sub-blocks to indicate whether the CCP candidate list mode is applied to the sub-block.
[0114] In some embodiments, the CCP candidate list is derived for the entire block, a CCP candidate list pattern is used, and each sub-block in the entire block shares the CCP candidate list.
[0115] In some embodiments, if the CCP candidate list pattern is used, the corresponding CCP candidate list is derived for each sub-block in the entire block.
[0116] In some embodiments, the encoding and decoding information of the first sub-block is used to deduce the CCP candidate list of the second sub-block.
[0117] In some embodiments, the encoding and decoding information of the first sub-block is used to derive the offset of the CCP model in the CCP candidate list for the second sub-block.
[0118] In some embodiments, the encoding / decoding information of the first sub-block includes at least one of the following: encoding / decoding mode, CCP, or reconstructed samples.
[0119] In some embodiments, the CCP information for the current video block includes information about a convolutional cross-component model (CCCM) with multiple downsampling filters (MF-CCCM).
[0120] In some embodiments, CCP information includes at least one of the following: whether the associated CCP model uses MF-CCCM, whether the MF-CCCM pattern is applied, or parameters associated with a CCP model using MF-CCCM.
[0121] In some embodiments, information about MF-CCCM is stored in the block along with CCP information.
[0122] In some embodiments, the block is encoded and decoded using MF-CCCM mode.
[0123] In some embodiments, the block is encoded and decoded using the CCP candidate list mode, and the selected candidate is encoded and decoded using the MF-CCCM mode.
[0124] In some embodiments, information about MF-CCCM is stored together with CCP information in a history-based table after the encoded / decoded block.
[0125] In some embodiments, the block is encoded and decoded using MF-CCCM mode.
[0126] In some embodiments, the block is encoded and decoded using the CCP candidate list mode, and the selected candidate is encoded and decoded using the MF-CCCM mode.
[0127] In some embodiments, information about MF-CCCM is stored in CCP candidates.
[0128] In some embodiments, when determining whether to place potential candidates into a history-based table, information about the MF-CCCM is used to compare whether two candidates are identical.
[0129] In some embodiments, information about MF-CCCM is used to reorder candidates in the CCP candidate list.
[0130] In some embodiments, as indicated by the use of MF-CCCM associated with CCP candidates, MF-CCCM is used to generate predicted values for templates.
[0131] In some embodiments, as indicated by the use of MF-CCCM associated with a CCP candidate, information about the MF-CCCM is used to generate a prediction for the current video block.
[0132] In some embodiments, the MF-CCCM is stored in a history-based CCP (H-CCP).
[0133] In some embodiments, the MF-CCCM is determined from non-adjacent CCPs (NC-CCPs).
[0134] In some embodiments, the syntax elements in the bitstream are binarized into at least one of the following: flags, fixed-length codes, exponential Golomb (x) (EG(x)) codes, unary codes, rounded unary codes, or rounded binary codes.
[0135] In some embodiments, syntax elements are either signed or unsigned.
[0136] In some embodiments, syntax elements in the bitstream are encoded or decoded using at least one context model, or are bypassed and encoded / decoded.
[0137] In some embodiments, a syntax element is included in the bitstream based on the condition that the function associated with the syntax element is applicable.
[0138] In some embodiments, syntax elements are included in the bitstream if the dimensions of the current video block meet the criteria.
[0139] In some embodiments, the syntax element is at at least one of the following: block level, sequence level, picture group level, picture level, strip level, or slice group level.
[0140] In some embodiments, the syntax elements are in at least one of the following codec structures: codec tree unit (CTU), codec unit (CU), transform unit (TU), prediction unit (PU), codec tree block (CTB), codec block (CB), transform block (TB), prediction block (PB), sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header, or slice header.
[0141] In some embodiments, information about whether and / or how the method is applied is included in the bitstream.
[0142] In some embodiments, the information is indicated at one of the following levels: sequence level, picture group level, picture level, strip level, or slice group level.
[0143] In some embodiments, the information is indicated in at least one of the following codec structures: codec tree unit (CTU), codec unit (CU), transform unit (TU), prediction unit (PU), codec tree block (CTB), codec block (CB), transform block (TB), prediction block (PB), sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header, or slice header.
[0144] In some embodiments, the information is based on encoded information, wherein the encoded information includes at least one of the following: block size, color format, single-tree segmentation or dual-tree segmentation, color components, stripe type, or image type.
[0145] In some embodiments, the method is used in codec tools that require chroma blending.
[0146] In some embodiments, the conversion includes encoding the current video block into a bitstream.
[0147] In some embodiments, the conversion includes decoding the current video block from the bitstream.
[0148] 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 generated by a method performed by an apparatus for video processing. The method includes: determining whether a cross-component prediction (CCP) candidate list pattern is applicable to a current video block of the video based on at least one of the following codec information: a current chroma block, or a co-occurrence luma block; and generating a bitstream based on the determination.
[0149] According to further embodiments of this disclosure, a method for storing a bitstream of video is provided. The method includes: determining, based on encoding / decoding information of at least one of the following, whether a cross-component prediction (CCP) candidate list pattern is applicable to a current video block: a current chroma block, or a co-occurring luma block; generating a bitstream based on the determination; and storing the bitstream in a non-transitory computer-readable recording medium.
[0150] The embodiments of this disclosure can be described according to the following entries, and their features can be combined in any reasonable manner.
[0151] Item 1. A method for video processing, comprising: for a conversion between a current video block and a bitstream of the video, determining whether a cross-component prediction (CCP) candidate list mode is applicable to the current video block based on encoding / decoding information of at least one of the following: a current chroma block or a co-occurrence luma block; and performing the conversion based on the determination.
[0152] Item 2. The method according to Item 1, wherein the encoding / decoding information includes at least one of the following: encoding / decoding mode, CCP model, reconstructed samples, quantization parameters (QP), partitioning method, or dual-tree structure.
[0153] Item 3. The method according to Item 1 or 2, wherein the CCP candidate list pattern is excluded from the second pattern.
[0154] Item 4. The method according to Item 3, wherein if the CCP candidate list mode is used, the second mode is not applicable, or wherein if the second mode is used, the CCP candidate list mode is not applicable.
[0155] Item 5. The method according to any one of items 1 to 4, wherein if the mode is not applicable, the syntax elements of the current video block associated with the mode are not included in the bitstream.
[0156] Item 6. The method according to any one of items 1 to 5, wherein if the intra-fraction sub-segmentation (ISP) mode is used, the CCP candidate list mode is not applicable.
[0157] Item 7. The method according to any one of items 1 to 5, wherein the CCP candidate list mode is not applicable if the dual-tree structure is not applied and the intra-fraction sub-segmentation (ISP) mode is used.
[0158] Item 8. The method according to any one of Items 1 to 5, wherein the CCP candidate list mode is used if at least one of the following modes is applied: Intra-Segmentation (ISP) mode, Sub-Transform Unit (sub-TU) mode, Sub-Prediction Unit (sub-PU) mode, Sub-Code / Decode Unit (sub-CU) mode, or Sub-Block mode.
[0159] Item 9. The method according to any one of items 1 to 8, wherein whether the CCP candidate list pattern is applied is determined for the entire block, and the determination is shared by each sub-block of the entire block.
[0160] Item 10. The method according to Item 9, wherein the syntax element for the entire block indicates whether the CCP candidate list mode is applied to the sub-block.
[0161] Item 11. The method according to any one of items 1 to 10, wherein whether the CCP candidate list pattern is applied is determined individually for each sub-block in the entire block.
[0162] Item 12. The method according to Item 11, wherein the syntax element is indicated for the sub-block to indicate whether the CCP candidate list pattern is applied to the sub-block.
[0163] Item 13. The method according to any one of items 1 to 12, wherein the CCP candidate list is derived for the entire block, the CCP candidate list pattern is used, and each sub-block in the entire block shares the CCP candidate list.
[0164] Item 14. The method according to any one of items 1 to 12, wherein if the CCP candidate list pattern is used, the corresponding CCP candidate list is derived for each sub-block in the whole block.
[0165] Item 15. The method according to any one of items 1 to 14, wherein the encoding / decoding information of the first sub-block is used to derive the CCP candidate list of the second sub-block.
[0166] Item 16. The method according to any one of items 1 to 14, wherein the encoding / decoding information of the first sub-block is used to derive the offset of the CCP model in the CCP candidate list for the second sub-block.
[0167] Item 17. The method according to Item 15 or 16, wherein the encoding / decoding information of the first sub-block includes at least one of the following: encoding / decoding mode, CCP, or reconstructed sample points.
[0168] Item 18. The method according to any one of Items 1 to 17, wherein the CCP information of the current video block includes information about a convolutional cross-component model (CCCM) with multiple downsampling filters (MF-CCCM).
[0169] Item 19. The method according to Item 18, wherein the CCP information includes at least one of the following: whether the associated CCP model uses MF-CCCM, whether the mode of MF-CCCM is applied, or parameters associated with a CCP model using MF-CCCM.
[0170] Item 20. The method according to Item 18 or 19, wherein the information regarding MF-CCCM is stored in a block together with the CCP information.
[0171] Item 21. The method according to Item 20, wherein the block is encoded and decoded using the MF-CCCM mode.
[0172] Item 22. The method according to Item 20, wherein the block is encoded and decoded using the CCP candidate list mode, and the selected candidate is encoded and decoded using the MF-CCCM mode.
[0173] Item 23. The method according to Item 18 or 19, wherein the information regarding MF-CCCM is stored together with the CCP information in a history-based table after the encoded / decoded block.
[0174] Item 24. The method according to Item 23, wherein the block is encoded and decoded using the MF-CCCM mode.
[0175] Item 25. The method according to Item 23, wherein the block is encoded and decoded using the CCP candidate list mode, and the selected candidate is encoded and decoded using the MF-CCCM mode.
[0176] Item 26. The method according to Item 18 or 19, wherein the information regarding MF-CCCM is stored in a CCP candidate.
[0177] Item 27. The method according to any one of items 18 to 26, wherein when determining whether to place a potential candidate into a history-based table, the information about the MF-CCCM is used to compare whether two candidates are identical.
[0178] Item 28. The method according to any one of items 18 to 26, wherein the information regarding MF-CCCM is used to reorder candidates in the CCP candidate list.
[0179] Item 29. The method according to Item 28, wherein the MF-CCCM is used to generate predicted values for the template, as indicated by the use of the MF-CCCM associated with the CCP candidate.
[0180] Item 30. The method according to any one of items 18 to 26, wherein the information about the MF-CCCM is used to generate a prediction value for the current video block, as indicated by the use of the MF-CCCM associated with the CCP candidate.
[0181] Item 31. The method according to any one of items 18 to 30, wherein the MF-CCCM is stored in a history-based CCP (H-CCP).
[0182] Item 32. The method according to any one of items 18 to 30, wherein the MF-CCCM is determined from non-adjacent CCPs (NC-CCPs).
[0183] Item 33. The method according to any one of items 1 to 32, wherein the syntax elements in the bit stream are binarized into at least one of the following: a flag, a fixed-length code, an exponential Golomb (x) (EG(x)) code, a unary code, a rounded unary code, or a rounded binary code.
[0184] Item 34. The method according to Item 33, wherein the syntax element is signed or unsigned.
[0185] Item 35. The method according to any one of items 1 to 34, wherein the syntax elements in the bitstream are encoded or decoded using at least one context model, or are bypassed and encoded / decoded.
[0186] Item 36. The method according to any one of items 33 to 35, wherein the syntax element is included in the bitstream based on the condition that the function associated with the syntax element is applicable.
[0187] Item 37. The method according to any one of items 33 to 35, wherein the syntax element is included in the bitstream if the dimension of the current video block satisfies the condition.
[0188] Item 38. The method according to any one of items 33 to 37, wherein the syntax element is at at least one of the following: block level, sequence level, picture group level, picture level, strip level, or slice group level.
[0189] Item 39. The method according to any one of items 33 to 38, wherein the syntax element is in at least one of the following codec structures: codec tree unit (CTU), codec unit (CU), transform unit (TU), prediction unit (PU), codec tree block (CTB), codec block (CB), transform block (TB), prediction block (PB), sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header, or slice header.
[0190] Item 40. The method according to any one of items 1 to 39, wherein information regarding whether and / or how the method is applied is included in the bitstream.
[0191] Item 41. The method according to Item 40, wherein the information is indicated at one of the following: sequence level, picture group level, picture level, strip level, or slice group level.
[0192] Item 42. The method according to Item 40 or 41, wherein the information is indicated in at least one of the following codec structures: codec tree unit (CTU), codec unit (CU), transform unit (TU), prediction unit (PU), codec tree block (CTB), codec block (CB), transform block (TB), prediction block (PB), sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header, or slice header.
[0193] Item 43. The method according to any one of items 40 to 42, wherein the information is based on encoded information, wherein the encoded information includes at least one of the following: block size, color format, single-tree segmentation or dual-tree segmentation, color components, stripe type, or picture type.
[0194] Item 44. The method according to any one of items 1 to 43, wherein the method is used in a codec tool that requires chroma blending.
[0195] Item 45. The method according to any one of items 1 to 44, wherein the conversion includes encoding the current video block into the bitstream.
[0196] Item 46. The method according to any one of items 1 to 44, wherein the conversion includes decoding the current video block from the bitstream.
[0197] Item 47. An apparatus for video processing, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method according to any one of items 1 to 46.
[0198] Item 48. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method according to any one of items 1 to 46.
[0199] Item 49. A non-transitory computer-readable recording medium storing a bitstream of video generated by a method performed by an apparatus for video processing, wherein the method comprises: determining, based on encoding / decoding information of at least one of the following, whether a cross-component prediction (CCP) candidate list mode is applicable to a current video block of the video: a current chroma block, or a co-occurrence luma block; and generating the bitstream based on the determination.
[0200] Item 50. A method for storing a bitstream of video, comprising: determining, based on encoding / decoding information of at least one of the following, whether a cross-component prediction (CCP) candidate list pattern is applicable to a current video block of the video: a current chroma block, or a co-occurrence luma block; generating the bitstream based on the determination; and storing the bitstream in a non-transitory computer-readable recording medium. Example device
[0201] Figure 41 A block diagram of a computing device 4100 in which various embodiments of the present disclosure may be implemented is shown. The computing device 4100 may be implemented as a source device 110 (or video encoder 114 or 200) or a destination device 120 (or video decoder 124 or 300), or may be included in a source device 110 (or video encoder 114 or 200) or a destination device 120 (or video decoder 124 or 300).
[0202] It should be understood that, Figure 41 The computing device 4100 shown is for illustrative purposes only and is not intended to imply any limitation on the functionality and scope of the embodiments of this disclosure.
[0203] like Figure 41 As shown, computing device 4100 includes general-purpose computing device 4100. Computing device 4100 may include at least one or more processors or processing units 4110, memory 4120, storage unit 4130, one or more communication units 4140, one or more input devices 4150, and one or more output devices 4160.
[0204] In some embodiments, the computing device 4100 can be implemented as any user terminal or server terminal with computing capabilities. The server terminal can be a server, a large computing device, etc., provided by a service provider. The user terminal can be, for example, any type of mobile terminal, fixed terminal, or portable terminal, including mobile phones, stations, units, devices, multimedia computers, multimedia tablet computers, internet nodes, communicators, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio receivers, e-book devices, gaming devices, or any combination thereof, including accessories and peripherals of these devices, or any combination thereof. It is conceivable that the computing device 4100 can support any type of interface to the user (such as "wearable" circuitry devices, etc.).
[0205] Processing unit 4110 can be a physical processor or a virtual processor, and can perform various processes based on programs stored in memory 4120. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capability of computing device 4100. Processing unit 4110 may also be referred to as a central processing unit (CPU), microprocessor, controller, or microcontroller.
[0206] Computing device 4100 typically includes various computer storage media. Such media can be any media accessible by computing device 4100, including but not limited to volatile and non-volatile media, or removable and non-removable media. Memory 4120 can be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (such as read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), or flash memory) or any combination thereof. Storage cell 4130 can be any removable or non-removable media and may include machine-readable media, such as memory, flash drives, disks, or other media that can be used to store information and / or data and can be accessed within computing device 4100.
[0207] The computing device 4100 may also include additional removable / non-removable storage media, volatile / non-volatile storage media. Although in Figure 41 Not shown, but a disk drive for reading from and / or writing to a removable non-volatile disk, and an optical disc drive for reading from and / or writing to a removable non-volatile optical disc may be provided. In this case, each drive may be connected to a bus (not shown) via one or more data media interfaces.
[0208] Communication unit 4140 communicates with another computing device via a communication medium. Additionally, the functionality of components in computing device 4100 can be implemented by a single computing cluster or multiple computing machines that can communicate via communication connections. Therefore, computing device 4100 can operate in a networked environment using logical connections to one or more other servers, networked personal computers (PCs), or other general-purpose network nodes.
[0209] Input device 4150 can be one or more of various input devices, such as a mouse, keyboard, trackball, voice input device, etc. Output device 4160 can be one or more of various output devices, such as a monitor, speaker, printer, etc. With the aid of communication unit 4140, computing device 4100 can also communicate with one or more external devices (not shown), such as storage devices and display devices. Computing device 4100 can also communicate with one or more devices that enable a user to interact with computing device 4100, or, if necessary, with any device (e.g., network card, modem, etc.) that enables computing device 4100 to communicate with one or more other computing devices. Such communication can be performed via an input / output (I / O) interface (not shown).
[0210] In some embodiments, some or all of the components of computing device 4100 may be arranged in a cloud computing architecture, rather than integrated into a single device. In a cloud computing architecture, components may be remotely provided and work together to achieve the functionality described herein. In some embodiments, cloud computing provides computing, software, data access, and storage services without requiring end users to know the physical location or configuration of the systems or hardware providing these services. In various embodiments, cloud computing provides services via a wide area network (WAN), such as the Internet, using suitable protocols. For example, a cloud computing provider provides applications via a WAN that can be accessed through a web browser or any other computing component. The software or components of the cloud computing architecture, along with the corresponding data, may be stored on servers at remote locations. Computing resources in a cloud computing environment may be consolidated or distributed across remote data center locations. Cloud computing infrastructure may provide services through shared data centers, although to users they appear as a single access point. Therefore, a cloud computing architecture can be used to provide the components and functionality described herein from service providers at remote locations. Alternatively, the components and functionality described herein may be provided by conventional servers or installed directly or otherwise on client devices.
[0211] In embodiments of this disclosure, computing device 4100 may be used to implement video encoding / decoding. Memory 4120 may include one or more video encoding / decoding modules 4125 having one or more program instructions. These modules are accessible and executable by processing unit 4110 to perform the functions of the various embodiments described herein.
[0212] In an example embodiment of performing video encoding, input device 4150 may receive video data as input 4170 to be encoded. The video data may be processed, for example, by video codec module 4125 to generate an encoded bitstream. The encoded bitstream may be provided as output 4180 via output device 4160.
[0213] In an example embodiment of performing video decoding, input device 4150 may receive an encoded bitstream as input 4170. The encoded bitstream may be processed, for example, by video codec module 4125 to generate decoded video data. The decoded video data may be provided as output 4180 via output device 4160.
[0214] While this disclosure has been specifically shown and described with reference to preferred embodiments, those skilled in the art will understand that various changes in form and detail may be made without departing from the spirit and scope of this application as defined by the appended claims. These variations are intended to be covered by the scope of this application. Therefore, the foregoing description of embodiments of this application is not intended to be limiting.
Claims
1. A method for video processing, comprising: For the conversion between the current video block and the bitstream of the video, determine whether the cross-component prediction (CCP) candidate list mode is applicable to the current video block based on at least one of the following codec information: the current chroma block, or the same-position luma block; as well as The conversion is performed based on the determination.
2. The method according to claim 1, wherein the encoding / decoding information includes at least one of the following: encoding / decoding mode, CCP model, reconstructed samples, quantization parameters (QP), partitioning method, or dual-tree structure.
3. The method according to claim 1 or 2, wherein the CCP candidate list pattern is excluded from the second pattern.
4. The method of claim 3, wherein if the CCP candidate list mode is used, then the second mode is not applicable, or If the second mode is used, then the CCP candidate list mode is not applicable.
5. The method according to any one of claims 1 to 4, wherein if a mode is not applicable, the syntax elements of the current video block associated with the mode are not included in the bitstream.
6. The method according to any one of claims 1 to 5, wherein if the intra-fraction sub-segmentation (ISP) mode is used, the CCP candidate list mode is not applicable.
7. The method according to any one of claims 1 to 5, wherein the CCP candidate list mode is not applicable if the dual-tree structure is not applied and the intra-fraction sub-segmentation (ISP) mode is used.
8. The method according to any one of claims 1 to 5, wherein the CCP candidate list mode is used if at least one of the following modes is applied: intra-fraction sub-segmentation (ISP) mode, sub-transform unit (sub-TU) mode, sub-prediction unit (sub-PU) mode, sub-code / decode unit (sub-CU) mode, or sub-block mode.
9. The method according to any one of claims 1 to 8, wherein whether the CCP candidate list pattern is applied is determined for the entire block, and the determination is shared by each sub-block of the entire block.
10. The method of claim 9, wherein the syntax element for the entire block indicates whether the CCP candidate list mode is applied to the sub-block.
11. The method according to any one of claims 1 to 10, wherein whether the CCP candidate list pattern is applied is determined individually for each sub-block in the entire block.
12. The method of claim 11, wherein the syntax element is indicated for the sub-block to indicate whether the CCP candidate list pattern is applied to the sub-block.
13. The method according to any one of claims 1 to 12, wherein the CCP candidate list is derived for the entire block, the CCP candidate list pattern is used, and each sub-block in the entire block shares the CCP candidate list.
14. The method according to any one of claims 1 to 12, wherein if the CCP candidate list pattern is used, the corresponding CCP candidate list is derived for each sub-block in the entire block.
15. The method according to any one of claims 1 to 14, wherein the encoding / decoding information of the first sub-block is used to derive the CCP candidate list of the second sub-block.
16. The method according to any one of claims 1 to 14, wherein the encoding / decoding information of the first sub-block is used to derive the offset of the CCP model in the CCP candidate list for the second sub-block.
17. The method of claim 15 or 16, wherein the encoding / decoding information of the first sub-block includes at least one of the following: encoding / decoding mode, CCP, or reconstructed samples.
18. The method according to any one of claims 1 to 17, wherein the CCP information of the current video block includes information about a convolutional cross-component model (CCCM) (MF-CCCM) with multiple downsampling filters.
19. The method of claim 18, wherein the CCP information comprises at least one of the following: Does the associated CCP model use MF-CCCM? Whether the mode described in MF-CCCM is applied, or Parameters associated with the CCP model using MF-CCCM.
20. The method of claim 18 or 19, wherein the information regarding MF-CCCM is stored in a block together with the CCP information.
21. The method of claim 20, wherein the block is encoded and decoded using the MF-CCCM mode.
22. The method of claim 20, wherein the block is encoded and decoded using the CCP candidate list mode, and the selected candidate is encoded and decoded using the MF-CCCM mode.
23. The method of claim 18 or 19, wherein the information regarding MF-CCCM is stored together with the CCP information in a history-based table after the encoded / decoded block.
24. The method of claim 23, wherein the block is encoded and decoded using the MF-CCCM mode.
25. The method of claim 23, wherein the block is encoded and decoded using the CCP candidate list mode, and the selected candidate is encoded and decoded using the MF-CCCM mode.
26. The method of claim 18 or 19, wherein the information regarding the MF-CCCM is stored in a CCP candidate.
27. The method of any one of claims 18 to 26, wherein when determining whether to place a potential candidate into a history-based table, the information about the MF-CCCM is used to compare whether two candidates are identical.
28. The method according to any one of claims 18 to 26, wherein the information regarding MF-CCCM is used to reorder candidates in the CCP candidate list.
29. The method of claim 28, wherein the MF-CCCM is used to generate predicted values for the template, as indicated by the use of the MF-CCCM associated with the CCP candidate.
30. The method of any one of claims 18 to 26, wherein the information regarding the MF-CCCM, as indicated by the use of the MF-CCCM associated with the CCP candidate, is used to generate a prediction value for the current video block.
31. The method according to any one of claims 18 to 30, wherein the MF-CCCM is stored in a history-based CCP (H-CCP).
32. The method according to any one of claims 18 to 30, wherein the MF-CCCM is determined from non-adjacent CCPs (NC-CCPs).
33. The method according to any one of claims 1 to 32, wherein the syntax elements in the bit stream are binarized into at least one of the following: flags, fixed-length codes, exponential Golomb (x) (EG(x)) codes, unary codes, rounded unary codes, or rounded binary codes.
34. The method of claim 33, wherein the syntax elements are signed or unsigned.
35. The method according to any one of claims 1 to 34, wherein the syntax elements in the bitstream are encoded or decoded using at least one context model, or are bypassed and encoded / decoded.
36. The method according to any one of claims 33 to 35, wherein the syntax element is included in the bitstream based on the applicable condition that the function associated with the syntax element is applicable.
37. The method according to any one of claims 33 to 35, wherein the syntax element is included in the bitstream if the dimension of the current video block satisfies the condition.
38. The method according to any one of claims 33 to 37, wherein the syntax element is at least one of the following: block level, sequence level, picture group level, picture level, strip level, or slice group level.
39. The method according to any one of claims 33 to 38, wherein the syntax element is in at least one of the following codec structures: codec tree unit (CTU), codec unit (CU), transform unit (TU), prediction unit (PU), codec tree block (CTB), codec block (CB), transform block (TB), prediction block (PB), sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header, or slice header.
40. The method according to any one of claims 1 to 39, wherein information regarding whether and / or how the method is applied is included in the bitstream.
41. The method of claim 40, wherein the information is indicated at one of the following levels: sequence level, picture group level, picture level, strip level, or slice group level.
42. The method according to claim 40 or 41, wherein the information is indicated in at least one of the following codec structures: codec tree unit (CTU), codec unit (CU), transform unit (TU), prediction unit (PU), codec tree block (CTB), codec block (CB), transform block (TB), prediction block (PB), sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header, or slice header.
43. The method according to any one of claims 40 to 42, wherein the information is based on encoded information, wherein the encoded information includes at least one of the following: block size, color format, single-tree segmentation or dual-tree segmentation, color components, stripe type, or image type.
44. The method according to any one of claims 1 to 43, wherein the method is used in a codec tool that requires chroma blending.
45. The method of any one of claims 1 to 44, wherein the conversion comprises encoding the current video block into the bitstream.
46. The method of any one of claims 1 to 44, wherein the conversion comprises decoding the current video block from the bitstream.
47. An apparatus for video processing, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method according to any one of claims 1 to 46.
48. 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 46.
49. 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: Whether the Cross-Component Prediction (CCP) candidate list mode is applicable to the current video block of the video is determined based on at least one of the following codec information: the current chroma block, or the same-position luma block; as well as The bit stream is generated based on the determination.
50. A method for storing a bitstream of video, comprising: Whether the Cross-Component Prediction (CCP) candidate list mode is applicable to the current video block of the video is determined based on at least one of the following codec information: the current chroma block, or the same-position luma block; The bit stream is generated based on the determination; as well as The bitstream is stored in a non-transitory computer-readable recording medium.