Method and device for video processing and medium
By using the historical table of the cross-component prediction model, the problem of insufficient efficiency of existing video encoding and codec technology is solved, and more efficient video encoding and codec is achieved.
Patent Information
- Application Number
- CN202480006570.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-02-27
- Filing Date
- 2024-01-03
- Publication Date
- 2025-08-12
AI Technical Summary
The encoding and decoding efficiency of existing video encoding and decoding technologies needs to be further improved.
The history table (HT) of the cross-component prediction (CCP) model is used to determine the code conversion of the current video block, and the history table of the CCP model is updated before and after the video unit is coded.
Improve the effectiveness and encoding and encoding and encoding efficiency of video encoding and encoding and encoding.
Smart Images

Figure CN120476581A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure relate generally to video processing techniques, and more particularly, to history-based cross-component prediction. Background Art
[0002] Digital video capabilities are now being used in every aspect of our lives. Various video compression technologies have been proposed for video encoding and decoding, including MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264 / MPEG-4 Part 10 Advanced Video Codec (AVC), ITU-T H.265 High Efficiency Video Codec (HEVC), and Versatile Video Codec (VVC). However, further improvements in the encoding and decoding efficiency of video encoding and decoding technologies are often desired. Summary of the Invention
[0003] Embodiments of the present disclosure provide a solution for video processing.
[0004] In a first aspect, a method for video processing is provided. The method includes: determining, for conversion between a current video block of a video and a bitstream of the video, at least one cross-component prediction (CCP) model for the current video block based on at least one history table (HT) of CCP models; and performing the conversion based on the at least one CCP model, wherein the at least one history table of the CCP model is updated before or after encoding or decoding the video unit. The history table of the CCP model is updated according to the method of the first aspect of the present disclosure. In this manner, encoding and decoding effectiveness and efficiency can be improved.
[0005] In a second aspect, a device for video processing is provided. The device includes a processor and a non-volatile memory having instructions thereon. The instructions, when executed by the processor, cause the processor to perform the method according to the first aspect of the present disclosure.
[0006] In a third aspect, a non-transitory computer-readable storage medium is provided, wherein the non-transitory computer-readable storage medium stores instructions, wherein the instructions cause a processor to execute the method according to the first aspect of the present disclosure.
[0007] In a fourth aspect, another non-transitory computer-readable recording medium is provided. The non-transitory computer-readable recording medium stores a bitstream of a video generated by a method performed by an apparatus for video processing. The method includes: determining at least one cross-component prediction (CCP) model for a current video block of the video based on at least one history table (HT) of CCP models; and generating a bitstream based on the at least one CCP model, wherein the at least one history table of the CCP model is updated before or after encoding or decoding a video unit.
[0008] In a fifth aspect, a method for storing a bitstream of a video is provided. The method includes: determining at least one cross-component prediction (CCP) model for a current video block of the video based on at least one history table (HT) of the CCP model; generating a bitstream based on the at least one CCP model; and storing the bitstream in a non-transitory computer-readable recording medium, wherein the at least one history table of the CCP model is updated before or after encoding or decoding a video unit.
[0009] This summary is intended to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The above and other objects, features and advantages of example embodiments of the present disclosure will become more apparent from the following detailed description with reference to the accompanying drawings, in which like reference numerals generally refer to like components throughout the example embodiments of the present disclosure.
[0011] Figure 1 A block diagram illustrating an example video encoding and decoding system according to some embodiments of the present disclosure is shown;
[0012] Figure 2 shows a block diagram of a first example video encoder according to some embodiments of the present disclosure;
[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 picture are shown;
[0015] Figure 5 An example of an encoder block diagram is shown;
[0016] Figure 6 67 intra prediction modes are shown;
[0017] Figure 7 The reference samples used for wide-angle intra prediction are shown;
[0018] Figure 8 The discontinuity problem is shown when the orientation exceeds 45°;
[0019] Figure 9 The positions of the sample points used to derive α and β are shown;
[0020] Figure 10An example of classifying neighboring points into two groups is shown;
[0021] Figure 11A is a diagram showing the definition of sample points used by PDPC applied to a diagonal top-right mode;
[0022] Figure 11B is a diagram showing the definition of sample points used by PDPC applied to a diagonal bottom-left mode;
[0023] Figure 11C is a diagram showing the definition of sample points used by PDPC applied to an adjacent diagonal upper right pattern;
[0024] Figure 11D is a diagram showing the definition of sample points used by PDPC applied to an adjacent diagonal lower left pattern;
[0025] Figure 12 is a schematic diagram illustrating a gradient method for non-vertical / non-horizontal patterns;
[0026] Figure 13 is a diagram showing the nScale value relative to nTbH and mode number; for all cases where nScale<0, the gradient method is used;
[0027] Figure 14 is a schematic diagram showing a flow chart of the current PDPC and the proposed PDPC;
[0028] Figure 15 is a schematic diagram showing neighboring blocks (L, A, BL, AR, AL) used in deriving a common MPM list;
[0029] Figure 16 is a schematic diagram showing an example of the proposed intra reference mapping;
[0030] Figure 17 is a diagram showing an example of four reference rows adjacent to a prediction block;
[0031] Figure 18A is a diagram showing an example of sub-partitioning for 4×8 CU and 8×4 CU;
[0032] Figure 18B is a diagram showing an example of sub-partitioning for a CU other than 4×8, 8×4, and 4×4;
[0033] Figure 19 is a schematic diagram illustrating a matrix-weighted intra prediction process;
[0034] Figure 20 is a schematic diagram showing target points, template points, and reference points of the template used in DIMD;
[0035] Figure 21 is a schematic diagram illustrating the proposed intra-block decoding process;
[0036] Figure 22 is a schematic diagram showing the calculation of HoG from a template with a width of 3 pixels;
[0037] Figure 23 is a schematic diagram illustrating prediction fusion by weighted averaging of two HoG modes and a plane;
[0038] Figure 24 is a schematic diagram showing the spatial portion of a convolutional filter;
[0039] Figure 25 is a schematic diagram showing a reference area (with its filling) used for deriving filter coefficients;
[0040] Figure 26 is a schematic diagram showing four Sobel-based gradient modes for GLM;
[0041] Figure 27 is a schematic diagram showing spatial sample points used for GL-CCCM;
[0042] Figure 28 is a schematic diagram illustrating non-downsampled luminance samples;
[0043] Figure 29 The spatial GPM candidates are shown;
[0044] Figure 30 A GPM template is shown;
[0045] Figure 31 GPM mixing is shown;
[0046] Figure 32 Binarization of cross-component prediction modes in ECM is shown. Figure 32 "CCLM" in can be replaced by "CCCM";
[0047] Figure 33 The possible locations of the candidate regions are shown;
[0048] Figures 34A to 34C Possible templates are shown;
[0049] Figure 35 A flowchart showing a method for video processing according to an embodiment of the present disclosure is shown; and
[0050] Figure 36 A block diagram is shown of a computing device in which various embodiments of the present disclosure may be implemented.
[0051] Throughout the drawings, same or similar reference numbers generally refer to same or similar elements. DETAILED DESCRIPTION
[0052] The principles of the present disclosure will now be described with reference to some embodiments. It should be understood that these embodiments are described only for the purpose of illustrating and helping those skilled in the art to understand and implement the present disclosure, and do not imply any limitation on the scope of the present disclosure. In addition to the manner described below, the disclosure described herein can also be implemented in various ways.
[0053] In the following description and claims, unless defined otherwise, all scientific and technical terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs.
[0054] References in this disclosure to "one embodiment," "an embodiment," "an example embodiment," and the like indicate that the described embodiment may include a particular feature, structure, or characteristic, but not every embodiment is required to include the particular feature, structure, or characteristic. Furthermore, these phrases do not necessarily refer to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in conjunction with an example embodiment, whether or not explicitly described, it is considered within the knowledge of those skilled in the art to affect such feature, structure, or characteristic in relation to other embodiments.
[0055] It should be understood that although the terms "first" and "second" and the like can be used to describe various elements, these elements should not be limited to these terms. These terms are only used to distinguish one element from another. For example, a first element can be referred to as a second element, and similarly, a second element can be referred to as a first element without departing from the scope of the example embodiments. As used herein, the term "and / or" includes any and all combinations of one or more of the listed terms.
[0056] The terms used herein are for the purpose of describing particular embodiments only and are not intended to limit the example embodiments. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should also be understood that the terms "comprises," "includes," and / or "having," when used herein, indicate the presence of the described features, elements, and / or components, but do not preclude the presence or addition of one or more other features, elements, components, and / or combinations thereof. Sample Environment
[0057] Figure 1is a block diagram illustrating an example video codec system 100 that can utilize the techniques of the present disclosure. As shown, the video codec 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.
[0058] Video source 112 may include a source such as a video capture device. Examples of a video capture device include, but are not limited to, an interface for receiving video data from a video content provider, a computer graphics system for generating video data, and / or a combination thereof.
[0059] The video data may include one or more pictures. The video encoder 114 encodes the video data from the video source 112 to generate a bitstream. The bitstream may include a sequence of bits that form a codec representation of the video data. The bitstream may include a coded picture and associated data. The coded picture is a coded representation of the picture. The associated data may include a sequence parameter set, a picture parameter set, and other syntax structures. The I / O interface 116 may include a modulator / demodulator and / or a transmitter. The coded video data may be transmitted directly to the destination device 120 via the network 130A via the I / O interface 116. The coded video data may also be stored on a storage medium / server 130B for access by the destination device 120.
[0060] 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 obtain encoded video data from source device 110 or 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 may be external to the destination device 120, the destination device 120 being configured to interface with an external display device.
[0061] The video encoder 114 and the video decoder 124 may operate according to a video compression standard, such as the High Efficiency Video Codec (HEVC) standard, the Versatile Video Codec (VVC) standard, and other existing and / or future standards.
[0062] Figure 2is a block diagram illustrating an example of a video encoder 200 according to some embodiments of the present disclosure, which may be Figure 1 An example of the video encoder 114 in the system 100 is shown.
[0063] Video encoder 200 may be configured to implement any or all of the techniques of this disclosure. Figure 2 In the example of FIG, video encoder 200 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of video encoder 200. In some examples, a processor can be configured to perform any or all of the techniques described in this disclosure.
[0064] In some embodiments, the video encoder 200 may include a segmentation unit 201, a prediction unit 202, a residual generation unit 207, a transformation unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transformation unit 211, a reconstruction unit 212, a cache 213 and an entropy coding unit 214, and 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.
[0065] In other examples, the video encoder 200 may include more, fewer, or different functional components. In an example, the prediction unit 202 may include an intra block copy (IBC) unit. The IBC unit may perform prediction in accordance with an IBC mode, wherein at least one reference picture is a picture in which the current video block is located.
[0066] Furthermore, although some components (such as the motion estimation unit 204 and the motion compensation unit 205) may be integrated, for the purpose of explanation, these components are described in detail in the following sections. Figure 2 are shown separately in the example.
[0067] The partitioning unit 201 may partition a picture into one or more video blocks. The video encoder 200 and the video decoder 300 may support various video block sizes.
[0068] The mode selection unit 203 can, for example, select one of a plurality of codec modes (intra-frame codec or inter-frame codec) based on the error result, and provide the generated intra-frame codec block or inter-frame codec 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 picture. In some examples, the mode selection unit 203 can select a joint intra-frame and inter-frame prediction (CIIP) mode, in which prediction is based on an inter-frame prediction signal and an intra-frame prediction signal. In the case of inter-frame prediction, the mode selection unit 203 can also select a resolution for the motion vector for the block (e.g., sub-pixel precision or integer pixel precision).
[0069] To perform inter-frame prediction on the current video block, the motion estimation unit 204 may generate motion information for the current video block by comparing the current video block with one or more reference frames from the cache 213. The motion compensation unit 205 may determine a predicted video block for the current video block based on the motion information and decoded samples of pictures from the cache 213 other than the picture associated with the current video block.
[0070] The motion estimation unit 204 and the motion compensation unit 205 may perform different operations on the current video block, for example, depending on whether the current video block is in an I slice, a P slice, or a B slice. As used herein, an "I slice" may refer to a portion of a picture consisting of macroblocks, all of which are based on macroblocks within the same picture. Furthermore, as used herein, in some aspects, "P slices" and "B slices" may refer to portions of a picture consisting of macroblocks that are not dependent on macroblocks in the same picture.
[0071] In some examples, motion estimation unit 204 may perform unidirectional prediction on the current video block, and motion estimation unit 204 may search for a reference video block for the current video block in the reference pictures in list 0 or list 1. Motion estimation unit 204 may then generate a reference index and a motion vector, where the reference index indicates the reference picture in list 0 or list 1 that contains the reference video block, and the motion vector indicates the spatial displacement between the current video block and the reference video block. Motion estimation unit 204 may output the reference index, prediction direction indicator, and motion vector as motion information for the current video block. Motion compensation unit 205 may generate a predicted video block for the current video block based on the reference video block indicated by the motion information for the current video block.
[0072] Alternatively, in other examples, the motion estimation unit 204 may perform bidirectional prediction on the current video block. The motion estimation unit 204 may search the reference pictures in list 0 for a reference video block for the current video block, and may also search the reference pictures in list 1 for another reference video block for the current video block. The motion estimation unit 204 may then generate multiple reference indices and motion vectors, the multiple reference indices indicating multiple reference pictures in list 0 and list 1 containing multiple reference video blocks, and the multiple motion vectors indicating multiple spatial displacements between the multiple reference video blocks and the current video block. The motion estimation unit 204 may output the multiple reference indices and motion vectors for the current video block as motion information for the current video block. The motion compensation unit 205 may 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.
[0073] In some examples, motion estimation unit 204 may output a complete set of motion information for use in the decoding process of a decoder. Alternatively, in some embodiments, motion estimation unit 204 may signal the motion information of the current video block with reference to the motion information of another video block. For example, motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of an adjacent video block.
[0074] In one example, motion estimation unit 204 may indicate to video decoder 300 a value in a syntax structure associated with the current video block that indicates the current video block has the same motion information as another video block.
[0075] In another example, the motion estimation unit 204 may identify another video block and a motion vector difference (MVD) in a 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. The video decoder 300 may use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.
[0076] As discussed above, the video encoder 200 may signal motion vectors in a predictive manner.Two examples of prediction signaling techniques that may be implemented by the video encoder 200 include Advanced Motion Vector Prediction (AMVP) and Merge mode signaling.
[0077] The intra-frame prediction unit 206 can perform intra-frame prediction on the current video block. When the intra-frame prediction unit 206 performs intra-frame prediction on the current video block, the intra-frame prediction unit 206 can generate prediction data for the current video block based on decoded samples of other video blocks in the same picture. The prediction data for the current video block can include a predicted video block and various syntax elements.
[0078] The residual generation unit 207 can generate residual data for the current video block by subtracting (e.g., indicated by a minus sign) the predicted video block(s) of the current video block from the current video block. The residual data for the current video block may include residual video blocks corresponding to different sample components of the samples in the current video block.
[0079] In other examples, such as in skip mode, there may be no residual data for the current video block, and the residual generation unit 207 may not perform a subtraction operation.
[0080] Transform processing unit 208 may generate one or more transform coefficient video blocks for a current video block by applying one or more transforms to a residual video block associated with the current video block.
[0081] After transform processing unit 208 generates a transform coefficient video block associated with the current video block, quantization unit 209 may 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.
[0082] The inverse quantization unit 210 and the inverse transform unit 211 may apply inverse quantization and inverse transform, respectively, to the transform coefficient video block to reconstruct a residual video block from the transform coefficient video block. The reconstruction unit 212 may add the reconstructed residual video block to corresponding samples from one or more prediction video blocks generated by the prediction unit 202 to generate a reconstructed video block associated with the current video block for storage in the buffer 213.
[0083] After reconstruction unit 212 reconstructs the video block, a loop filtering operation may be performed to reduce video blockiness artifacts in the video block.
[0084] The entropy coding unit 214 may receive data from other functional components of the video encoder 200. When the entropy coding unit 214 receives the data, the entropy coding unit 214 may perform one or more entropy coding operations to generate entropy-coded data and output a bitstream including the entropy-coded data.
[0085] Figure 3 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 the video decoder 124 in the system 100 is shown.
[0086] Video decoder 300 may be configured to perform any or all of the techniques of this disclosure. Figure 3 In the example of FIG, video decoder 300 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of video decoder 300. In some examples, a processor can be configured to perform any or all of the techniques described in this disclosure.
[0087] exist Figure 3 In the example of FIG. 3 , the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, a reconstruction unit 306, and a buffer 307. In some examples, the video decoder 300 can perform a decoding process that is generally opposite to the encoding process described with respect to the video encoder 200.
[0088] The entropy decoding unit 301 can retrieve the encoded bitstream. The encoded bitstream may include entropy-encoded video data (e.g., encoded video data blocks). The entropy decoding unit 301 can decode the entropy-encoded video data, and based on the entropy-decoded video data, the motion compensation unit 302 can determine motion information including motion vectors, motion vector precision, reference picture list indexes, and other motion information. The motion compensation unit 302 can determine this information, for example, by performing AMVP and Merge mode. AMVP is used, including deriving several most likely candidates based on data from adjacent PBs and reference pictures. The motion information typically includes horizontal and vertical motion vector displacement values, one or two reference picture indexes, and in the case of prediction areas in B slices, 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 spatial or temporal neighboring blocks.
[0089] The motion compensation unit 302 may generate a motion compensated block, possibly performing interpolation based on an interpolation filter. An identifier of the interpolation filter to be used with sub-pixel precision may be included in the syntax element.
[0090] Motion compensation unit 302 may calculate interpolated values for sub-integer pixels of a reference block using interpolation filters as used by video encoder 200 during encoding of the video block. Motion compensation unit 302 may determine the interpolation filters used by video encoder 200 based on received syntax information, and motion compensation unit 302 may use the interpolation filters to produce a prediction block.
[0091] The motion compensation unit 302 can use at least part of the syntax information to determine the size of the blocks used to encode the (multiple) frames and / or (multiple) slices of the coded video sequence, partition information describing how each macroblock of the picture of the coded video sequence is partitioned, a mode indicating how each partition is encoded, one or more reference frames (and reference frame lists) for each inter-frame coded block, and other information for decoding the coded video sequence. As used herein, in some aspects, a "slice" can refer to a data structure that can be decoded independently of other slices of the same picture in terms of entropy coding and decoding, signal prediction, and residual signal reconstruction. A slice can be an entire picture or a region of a picture.
[0092] The intra prediction unit 303 can use, for example, an intra prediction mode received in the bitstream to form a prediction block from spatially neighboring blocks. The inverse quantization unit 304 inverse quantizes (i.e., dequantizes) the quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 301. The inverse transform unit 305 applies an inverse transform.
[0093] 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 used to filter the decoded block to remove blocking artifacts. The decoded video block is then stored in the buffer 307, which provides reference blocks for subsequent motion compensation / intra-frame prediction and also produces the decoded video for presentation on a display device.
[0094] Some exemplary embodiments of the present disclosure are described in detail below. It should be understood that the section titles used in this document are for ease of understanding and do not limit the embodiments disclosed in a section to only that section. In addition, although certain embodiments are described with reference to a multifunctional video codec or other specific video codecs, the disclosed technology is also applicable to other video codec technologies. In addition, although some embodiments describe the video coding and decoding steps in detail, it should be understood that the decoder will implement the corresponding decoding steps to eliminate the codec. In addition, the term "video processing" includes video coding or compression, video decoding or decompression, and video transcoding, in which video pixels are represented from one compression format to another compression format or at different compression bit rates. 1. Brief Overview The present disclosure relates to video coding techniques. Specifically, the present disclosure relates to cross-component prediction. The present disclosure can be applied to existing video coding standards such as HEVC or Versatile Video Codec (VVC). The present disclosure can also be applied to future video coding standards or video codecs. 2. Introduction Video codec standards have evolved primarily through the development of the well-known ITU-T and ISO / IEC standards. ITU-T developed the H.261 and H.263 standards, ISO / IEC developed MPEG-1 and MPEG-4 Vision, and the two organizations jointly developed the H.262 / MPEG-2 Video standard, the H.264 / MPEG-4 Advanced Video Codec (AVC) standard, and the H.265 / HEVC standard. Starting with H.262, video codec standards have been based on a hybrid video codec architecture that utilizes temporal prediction and 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 Team (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 bit rate by 50% compared to HEVC. 2.1. Color Space and Chroma Downsampling A color space, also called a color model (or color system), is an abstract mathematical model that simply describes the range of colors as a tuple of numbers, typically 3 or 4 values or color components (e.g., RGB). Basically, a color space is a refinement of a coordinate system and subspace. 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 luma component, and CB and CR are the blue-difference and red-difference chroma components. Y' (with a prime) is distinguished from Y (Y is luma), which means that light intensity is encoded nonlinearly based on the gamma-corrected RGB primaries. Chroma downsampling is the practice of encoding an image at a lower resolution for chroma information than for luminance information, taking advantage of the fact that the human visual system is less sensitive to differences in color than to luminance. 2.1.1.4:4:4 Each of the three Y'CbCr components has the same sample rate, so there is no chroma 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 sample rate of luma: 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 almost no visual difference. Examples of nominal vertical and horizontal positions for a 4:2:2 color format are given in the VVC working draft. Figure 4 Depicted in. Figure 4 The nominal vertical and horizontal positions of the 4:2:2 luma and chroma samples in the picture are shown. 2.1.3.4:2:0 In 4:2:0, horizontal sampling is doubled compared to 4:1:1, but vertical resolution is halved because the Cb and Cr channels are sampled only on alternate lines. Therefore, the data rate remains the same. Cb and Cr are downsampled by a factor of 2 both horizontally and vertically. There are three variants of the 4:2:0 scheme, with different horizontal and vertical positions. 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 interstitial positions). In JPEG / JFIF, H.261, and MPEG-1, Cb and Cr are located in interstitial positions, in the middle of alternating luma samples. In 4:2:0 DV, Cb and Cr are co-located horizontally. Vertically, they are co-located on alternate lines. Table 1 SubWidthC and SubHeightC values derived from chroma_format_idc and separate_colour_plane_flag chroma_format_idc separate_colour_plane_flag Chroma 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 flow of typical video codecs Figure 5 An example of a VVC encoder block diagram is shown, which contains three loop filtering blocks: deblocking filter (DF), sample adaptive offset (SAO), and ALF. Unlike DF, which uses a predefined filter, SAO and ALF use the original samples of the current picture to reduce the mean square error between the original and reconstructed samples by adding offset and applying a finite impulse response (FIR) filter, respectively, and using the encoded side information to signal the offset and filter coefficients. ALF is located in the last processing stage of each picture and can be seen as a tool that attempts to capture and repair artifacts caused by previous stages. Intra-mode codec with 67 intra-prediction modes In order to capture arbitrary edge directions present in natural videos, such as Figure 6 As shown, the number of directional intra modes is extended from 33 used in HEVC to 65. Figure 6 67 intra prediction modes are shown, and planar and DC modes remain unchanged.These more densely packed directional intra prediction modes are applicable to all block sizes and to both luma and chroma intra prediction. In HEVC, each intra-coded block has a square shape, and the length of each side is a power of 2. Therefore, no division operation is required to generate intra prediction values using DC mode. In VVC, blocks can have a rectangular shape, which generally requires a division operation for each block. To avoid division operations for DC prediction, only the longer side is used to calculate the average value of non-square blocks. 2.3.1. Wide-angle intra prediction Although 67 modes are defined in VVC, the exact prediction direction for a given intra prediction mode index also depends on the block shape. Conventional angular intra prediction directions are defined as going from 45 degrees to -135 degrees clockwise. In VVC, several conventional angular intra prediction modes are adaptively replaced by wide-angle intra prediction modes for non-square blocks. The replaced mode is signaled using the original mode index, which is remapped to the index of the wide-angle mode after parsing. The total number of intra prediction modes remains unchanged at 67, and the intra mode encoding and decoding method remains unchanged. Figure 7 To support these prediction directions, a top reference with a length of 2W+1 and a left reference with a length of 2H+1 are defined, as shown in Figure 7 shown. The number of modes replaced in the wide-angle direction mode depends on the aspect ratio of the block. The replaced intra prediction modes are shown in Table 2. Table 2 Intra-frame prediction modes replaced by wide-angle mode Figure 8 Figure 2 shows the discontinuity problem when the orientation exceeds 45°. Figure 8 As shown in Figure 2, in the case of wide-angle intra 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. α negative impact. If the wide angle mode represents a non-fractional offset. There are 8 modes in the wide angle mode that meet this condition, namely [-14, -12, -10, -6, 72, 76, 78, 80]. When a block is predicted using these modes, the samples in the reference buffer are directly copied without applying any interpolation. With this modification, the number of samples that need to be smoothed is reduced. In addition, it aligns the design of the conventional prediction mode with the non-fractional mode in the wide angle mode. 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, expanding the number of entries 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 modes ranging from 2 to 5 are mapped to 2. Therefore, the chroma DM derivation table for the 4:2:2 chroma format is updated by replacing some values of the entries of the mapping table to more accurately convert the prediction angles for chroma blocks. 2.4. Intra-frame prediction mode encoding and decoding for chroma components For the chroma component of an intra PU, the encoder selects the best chroma prediction mode from five modes, including planar, DC, horizontal, vertical, and direct copy of the intra prediction mode for the luma component. The mapping between the intra prediction direction of chroma and the intra 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 intra prediction sample generation 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 intra prediction sample generation for the chroma component. 2.5. Inter-frame prediction For each inter-predicted CU, the motion parameters include motion vector, reference picture index and reference picture list usage index, as well as additional information required by the new coding features of VVC that will be used for inter-prediction sample generation. The motion parameters can be signaled explicitly or implicitly. When a CU is encoded and decoded in skip mode, the CU is associated with one PU and has no significant residual coefficients, encoded motion vector differences or reference picture indices. A Merge mode is specified, whereby the motion parameters for the current CU are obtained from neighboring CUs, which include spatial and temporal candidates and additional scheduling introduced in VVC. Merge mode can be applied to any inter-predicted CU, not just for skip mode. An alternative to Merge mode is explicit transmission of motion parameters, where the motion vector, the corresponding reference picture index and reference picture list usage flag for each reference picture list, as well as other required information, are explicitly signaled for each CU. 2.6. Intra-block copy (IBC) Intra-block copying (IBC) is a tool adopted in the HEVC extension on SCC. It is well known that it significantly improves the encoding and decoding efficiency of screen content materials. Since the IBC mode is implemented as a block-level encoding and decoding mode, block matching (BM) is performed at the encoder to find the best block vector (or motion vector) for each CU. Here, the block vector is used to indicate the displacement from the current block to the reference block that has been reconstructed inside the current picture. The luminance block vector of the CU encoded and decoded by IBC is in integer precision. The chrominance block vector is also rounded to integer precision. When combined with AMVR, the IBC mode can switch between 1-pixel motion vector precision and 4-pixel motion vector precision. The CU encoded and decoded by IBC is regarded as a third prediction mode different from the intra or inter prediction mode. The IBC mode is applicable to CUs whose width and height are both less than or equal to 64 luminance samples. On the encoder side, hash-based motion estimation is performed for IBC. The encoder performs RD check on blocks with a width or height of no more than 16 luma samples. For non-merge mode, a block vector search is first performed using a hash-based search. If the hash search does not return a valid candidate, a local search based on block matching is performed. In hash-based search, the hash key matching (32-bit CRC) between the current block and the reference blocks is extended to all allowed block sizes. The hash key calculation for each position in the current picture is based on a 4×4 sub-block. For larger current block sizes, when all hash keys of all 4×4 sub-blocks match the hash keys in the corresponding reference positions, the hash key is determined to match the hash key of the reference block. If the hash keys of multiple reference blocks 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 smallest cost is selected. In the block matching search, the search range is set to cover both the previous CTU and the current CTU. At CU level, IBC mode is signaled using a flag, and it can be signaled as 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-encoded blocks is used to predict the current block. The Merge list includes spatial candidates, HMVP candidates, and pairwise 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 predictors, one from the left neighbor and one from the top neighbor (if encoded with IBC). When either neighbor is unavailable, the default block vector is used as the predictor. A flag is signaled to indicate the block vector predictor index. 2.7. Cross-component linear model prediction In order to reduce cross-component redundancy, the cross-component linear model (CCLM) prediction mode is used in VVC. For this CCLM prediction mode, the chroma samples are predicted based on the reconstructed luma samples of the same CU by using the following linear model: pred C (i,j)=α·rec L ′(i,j)+β (2-1) where pred C (i, j) represents the predicted chroma sample in CU, and rec L (i, j) represents the downsampled reconstructed luma sample of the same CU. The CCLM parameters (α and β) are derived using up to four adjacent chroma samples and their corresponding downsampled luma samples. Assuming the current chroma block dimensions are W×H, W' and H' are set to – When LM mode is applied, W'=W, H'=H; – When LM_T mode is applied, W'=W+H; – When LM_L mode is applied, H'=H+W; The upper adjacent position is denoted as S[0,-1]…S[W'-1,-1], and the left adjacent position is 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 and left neighboring samples are available, S[W' / 4,-1], S[3*W' / 4,-1], S[-1,H' / 4], S[-1,3*H' / 4]; – When LM_T mode is applied or only upper neighboring samples are available, S[W' / 8,-1], S[3*W' / 8,-1], S[5*W' / 8,-1], S[7*W' / 8,-1]; – When LM_L mode is applied or only left neighbor samples are available, S[-1,H' / 8], S[-1,3*H' / 8], S[-1,5*H' / 8], S[-1,7*H' / 8]; The four adjacent brightness samples at the selected position 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 chroma sample values are represented by y 0 A 、y 1 A 、y 0 B and y 1 B Then x A 、x B 、y A and y B is derived 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 0 B +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 An example of the positions of the left and upper samples participating in the CCLM mode and the samples of the current block is shown. Figure 9 The positions of the sample points used to derive α and β are shown. The division operation to calculate the parameter α is implemented using a lookup table. To reduce the memory required to store the table, the diff value (the difference between the maximum and minimum values) and the parameter α are expressed in exponential notation. For example, diff is approximated using a 4-bit significant part and an exponent. Therefore, for 16 values of the significant digit, the table of 1 / diff is reduced to 16 elements, as shown below: DivTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (2-5) This will have the advantage of reducing the computational complexity as well as the memory size required to store the required tables. In addition to the upper template and the left template being used together to calculate the linear model coefficients, they can also be used alternately 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 template and the upper template are used to calculate the linear model coefficients. To match the chroma sample positions of a 4:2:0 video sequence, two types of downsampling filters are applied to the luma samples to achieve a 2:1 downsampling ratio in both the horizontal and vertical directions. The choice of downsampling filter 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 a CTU boundary, only one luma line (common line buffer in intra prediction) is used to make the downsampled luma samples. This parameter calculation is performed as part of the decoding process, not just as an encoder search operation. Therefore, no syntax is used to convey the α and β values to the decoder. For chroma intra mode coding and decoding, a total of 8 intra modes are allowed for chroma intra mode coding and decoding. 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 coding and decoding depends directly on the intra prediction mode of the corresponding luminance block. Since the separate block partitioning structure for luminance and chrominance components in the I strip is enabled, one chroma block can correspond to multiple luminance blocks. Therefore, for the chroma DM mode, the intra prediction mode of the corresponding luminance block covering the center position of the current chroma block is directly inherited. Table 3: Chroma prediction mode derived from luma mode when CCLM is enabled Regardless of the value of sps_cclm_enabled_flag, a single binarization table is used, as shown in Table 4. Table 4 Unified binarization table for chroma prediction mode In Table 4, the first binary bit indicates whether it is normal (0) or LM mode (1). If it is LM mode, the next binary bit indicates whether it is LM_CHROMA (0). If it is not LM_CHROMA, the next 1 binary bit indicates whether it is LM_L (0) or LM_T (1). For this case, when sps_cclm_enabled_flag is 0, the first binary bit of the binarization table corresponding to intra_chroma_pred_mode can be discarded before entropy coding. Or, in other words, the first binary bit is inferred to be 0 and therefore not coded. This single binarization table is used for the cases where sps_cclm_enabled_flag is equal to 0 and 1. The first two binary bits in Table 4 are context coded using their own context model, and the remaining binary bits are bypass coded. Additionally, to reduce luma-chroma latency in dual trees, when a 64x64 luma codec tree node is split with Not Split (and ISP is not used for 64x64 CUs) or QT, the chroma CUs in the 32x32 / 32x16 chroma codec tree nodes are allowed to use CCLM in the following manner: – If a 32×32 chroma node is not split or is split by a partition QT, all chroma CUs in the 32×32 node can use CCLM. If a 32×32 chroma node is split horizontally with BT, and the 32×16 child node is not split or uses vertical BT, all chroma CUs in the 32×16 chroma node can use CCLM. Under all other luma and chroma codec tree partitioning conditions, CCLM is not allowed for chroma CUs. 2.8. Multi-model Linear Model (MMLM) With MMLM, there can be more than one linear model between the luma samples and chroma samples in a CU. In this method, the neighboring luma samples and chroma samples of the current block are classified into several groups, each of which is used as a training set to derive a linear model (i.e., a specific α and β are derived for a specific group). In addition, the samples of the current luma block are also classified based on 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 chroma prediction modes, called MMLM2 and MMLM3. The encoder selects the best mode during the RDO process and transmits it through the signal. When M is equal to 2, Figure 10 An example of classifying adjacent samples into two groups is shown. The threshold is calculated as the average value of adjacent reconstructed luminance samples. Rec'L[x,y]<=threshold Rec' L Neighboring samples with [x, y] ≤ Threshold are classified as group 1; and Rec'L[x, y]> threshold Rec' L Neighboring points with [x,y]>Threshold are classified into group 2. Similar to CCLM, there are three modes in MMLM, namely MMLM, MMLM_T and MMLM_L. The two models are derived as The threshold is the average of neighboring samples of the luminance reconstruction. If enabled, a linear model for each class is derived using the least mean square (LMS) method, or using the min / max method of VVC. 2.9. Position-dependent intra prediction combination In VVC, the results of intra prediction for DC, planar, and several angular modes are further modified by the Position Dependent Intra Prediction Combination (PDPC) method. PDPC is an intra prediction method that calls for a combination of boundary reference samples and HEVC-style intra prediction with filtered boundary reference samples. PDPC is applied to the following intra modes without signaling: planar, DC, intra angles less than or equal to horizontal, and intra angles greater than or equal to vertical and less than or equal to 80. PDPC is not applied if the current block is in BDPCM mode or the MRL index is greater than 0. The prediction sample pred(x', y') is predicted using the intra prediction mode (DC, planar, angular) and a linear combination of the 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 Respectively represent the reference sample points located at the top and left boundaries of the current sample point (x, y). If PDPC is applied to DC, planar, horizontal and vertical intra modes, no additional boundary filters are required, as in the case of HEVC DC mode boundary filters or horizontal / vertical mode edge filters. The PDPC process is the same for DC and planar modes. For angular modes, if the current angular mode is HOR_IDX or VER_IDX, the left or top reference samples are not used, respectively. The PDPC weights and scaling factors depend on the prediction mode and block size. PDPC is applied to blocks with width and height both greater than or equal to 4. Figure 11A is a diagram showing the definition of sample points used by PDPC applied to the diagonal top-right mode. Figure 11B is a diagram showing the definition of sample points used by PDPC applied to the diagonal bottom-left mode. Figure 11C is a diagram showing the definition of sample points used by PDPC applied to the adjacent diagonal upper-right pattern. Figure 11D is a diagram showing the definition of sample points used by PDPC applied to the adjacent diagonal bottom-left pattern. 11A to 11D The reference sample points (R x,-1 and R -1,y) definition. The prediction sample point pred(x', y') is located at (x', y') in the prediction block. For example, for the diagonal mode, the reference sample point R x,-1 The coordinate x of is given by the following formula: x=x'+y'+1, and the reference point R -1,y The coordinate y of is similarly given by the following formula: y = x' + y' + 1. For other angle modes, the reference point R x,-1 and R -1,y Can be at a fractional sample position. In this case, the sample value at the nearest integer sample position is used. Gradient PDPC like Figure 12 As shown in Figure 1, 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. A few points should be noted here: The gradient term r(-1,y)–r(-1+d,-1) needs to be calculated once for each row since it does not depend on the x position. The calculation of d is already part of the original intra prediction process and can be reused, so there is no need to calculate d separately. Therefore, d has 1 / 32 pixel accuracy. When d is in fractional position, two-tap (linear) filtering is used, i.e., if dPos is the displacement with 1 / 32 pixel precision, dInt is the (rounded down) integer part (dPos>>5), and dFract is the fractional part with 1 / 32 pixel precision (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, this two-tap filtering is performed once per row (if necessary). Finally, the prediction 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, which is the same as the vertical / horizontal mode. In short, the same process applies compared to the vertical / horizontal mode (in fact, d=0 indicates vertical / horizontal mode). Second, when (nScale < 0) or when PDPC cannot be applied due to the unavailability of secondary reference samples, a gradient-based method is activated for non-vertical / non-horizontal modes. We have already Figure 13 The nScale values with respect to the TB size and angle pattern are shown in , in order to better visualize the use of the gradient method. Figure 14 In , we have shown the flow charts of the current PDPC and the proposed PDPC. Figure 14 is a schematic diagram showing the flow chart of the current PDPC (left) and the proposed PDPC (right). 2.11. Secondary MPM The existing primary MPM (PMPM) list consists of 6 entries, while the secondary MPM (SMPM) list includes 16 entries. First, a general MPM list with 22 entries is constructed, and then the first 6 entries in the 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 the plane mode. The remaining entries are as follows: Figure 15 The shown consists of intra modes for the left (L), above (A), below left (BL), above right (AR), and above left (AL) neighboring blocks, a directional mode with an offset added from the first two available directional modes of the neighboring blocks, and a default mode. If the CU block is vertically oriented, the order of neighboring blocks is A, L, BL, AR, AL; otherwise, it is L, A, BL, AR, AL. The PMPM flag is parsed first, if equal to 1, the PMPM index is parsed to determine which entry of the PMPM list is selected, otherwise the SPMPM flag is parsed to determine whether to parse the SMPM index or the remaining mode. 2.12.6 Tap Intra-frame Interpolation Filter In order to improve the prediction accuracy, it is proposed to replace the 4-tap cubic interpolation filter with a 6-tap 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}, / / 1 / 32 position {1,-7,249,17,-4,0}, / / 2 / 32 position {1,-10,245,25,-6,1}, / / 3 / 32 position {1,-13,241,34,-8,1}, / / 4 / 32 position {2,-16,235,44,-10,1}, / / 5 / 32 position {2,-18,229,53,-12,2}, / / 6 / 32 position {2,-20,223,63,-14,2}, / / 7 / 32 position {2,-22,217,72,-15,2}, / / 8 / 32 position {3,-23,209,82,-17,2}, / / 9 / 32 position {3,-24,202,92,-19,2}, / / 10 / 32 position {3,-25,194,101,-20,3}, / / 11 / 32 position {3,-25,185,111,-21,3}, / / 12 / 32 position {3,-26,178,121,-23,3}, / / 13 / 32 position {3,-25,168,131,-24,3}, / / 14 / 32 position {3,-25,159,141,-25,3}, / / 15 / 32 position {3,-25,150,150,-25,3}, / / half pixel position The reference samples used for interpolation come from the reconstructed samples or padding samples as in HEVC, so no conditional check on the availability of reference samples is required. It is proposed to use a 4-tap cubic interpolation filter instead of using the nearest integer operation to derive the extended intra-frame reference samples. Figure 16 As shown in the example in , a four-tap interpolation filter is used to derive the value of the reference sample point P, while in JEM-3.0 or HM, P is directly set to X1. 2.13. Multiple Reference Line (MRL) Intra Prediction Multiple reference line (MRL) intra prediction uses more reference lines for intra prediction. Figure 17 In
[15] , an example of 4 reference lines is depicted, where the samples of segments A and F are not taken from reconstructed neighboring samples, but are filled with the closest samples from segments B and E, respectively. HEVC intra picture prediction uses the nearest reference line (i.e., reference line 0). In MRL, 2 additional lines are used (reference line 1 and reference line 2). The index of the selected reference row (mrl_idx) is signaled and used to generate intra prediction values. For reference row indices greater than 0, only additional reference row modes are included in the MPM list, and only the MPM index is signaled without the remaining modes. The reference row index is signaled before the intra prediction mode, and if a non-zero reference row index is signaled, planar mode is excluded from the intra prediction mode. For the first row of blocks inside a CTU, MRL is disabled to prevent the use of extended reference samples outside the current CTU row. In addition, PDPC is disabled when additional rows are used. For MRL mode, the derivation of DC values in DC intra prediction mode for non-zero reference row indices is aligned with the derivation of reference row index 0. MRL requires the storage of 3 neighboring luma reference rows with the CTU to generate the prediction. The Cross Component Linear Model (CCLM) tool also requires 3 neighboring luma reference rows for its downsampling filter. The definition of MRL using the same 3 rows is aligned with CCLM to reduce the storage requirements for the decoder. 2.14. Intra-frame sub-segmentation (ISP) Intra sub-partitioning (ISP) divides the luma intra prediction block into 2 or 4 sub-partitions vertically or horizontally depending on the block size. For example, the minimum block size of ISP is 4×8 (or 8×4). If the block size is larger than 4×8 (or 8×4), the corresponding block is divided into 4 sub-partitions. It has been noted that M×128 (with M≤64) and 128×N (with N≤64) ISP blocks may cause potential problems for 64×64 VDPU. For example, an M×128 CU in the single-tree case has an M×128 luma TB and two corresponding Chroma TB. If the CU uses ISP, the luma TB will be divided into four M×32TBs (only horizontal division is possible), each of which is smaller than a 64×64 block. However, in the current ISP design, the chroma blocks are not divided. Therefore, both chroma components will have a size larger than a 32×32 block. Similarly, using ISP with 128×NCU can cause a similar situation. Therefore, these two situations are problems for a 64×64 decoder pipeline. Therefore, the CU size that can use 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, 1×N / 2×N sub-block predictions are not allowed to depend on the reconstructed values of previously decoded 1×N / 2×N sub-blocks of the codec block, so that the minimum prediction width of the sub-block becomes four samples. For example, an 8×N (N>4) codec block using ISP codec with vertical partitioning is divided into two prediction regions of size 4×N each, and the four transforms are of size 2×N. In addition, a 4×N codec block using ISP codec with vertical partitioning is predicted using a full 4×N block; four transforms of size 1×N are used. Although transform sizes of 1×N and 2×N are allowed, it is asserted that the transforms of these blocks in the 4×N region can be performed in parallel. For example, when a 4×N prediction region contains four 1×N transforms, there is no transform in the horizontal direction; the transform in the vertical direction can be performed as a single 4×N transform in the vertical direction. Similarly, when a 4×N prediction region contains two 2×N transform blocks, the transform operations of the two 2×N blocks in each direction (horizontally and vertically) can be performed in parallel. Therefore, there is no added delay in processing these smaller blocks compared to processing intra blocks for 4x4 regular codecs. Figure 18A is a diagram showing examples of sub-partitioning for 4×8 and 8×4 CUs. Figure 18B is a diagram illustrating an example of sub-partitioning of a CU other than 4×8, 8×4, and 4×4. Table 5 Entropy coding and decoding coefficient group size Block size Coefficient group size 1×N,N≥16 1×16 N×1,N≥16 16×1 2×N,N≥8 2×8 N×2,N≥8 8×2 All other possible M×N situations 4×4 For each sub-partition, the reconstructed samples are obtained by adding the residual signal to the prediction signal. Here, the residual signal is generated by processes such as entropy decoding, inverse quantization and inverse transformation. Therefore, the reconstructed sample values of each sub-partition can be used to generate the prediction of the next sub-partition, and each sub-partition is processed repeatedly. In addition, the first sub-partition to be processed is the sub-partition containing the upper left sample of the CU, and then continues downward (horizontal partitioning) or to the right (vertical partitioning). As a result, the reference samples used to generate the sub-partition prediction signal are only located to the left and above the row. All sub-partitions share the same intra mode. The following is a summary of the interaction of ISP with other codec tools. – Multiple Reference Line (MRL): If a block has an MRL index different from 0, the ISP codec mode will be inferred to be 0, so the ISP mode information will not be sent to the decoder. – Entropy coding coefficient group size: The size of the entropy coding 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 ISP where one dimension is less than 4 samples. In all other cases, the coefficient group remains 4×4 in size. – CBF codec: It is assumed that at least one subpartition has a non-zero CBF. Thus, if n is the number of subpartitions and the first n-1 subpartitions yield zero CBF, the CBF of the nth subpartition is assumed to be 1. – Transform size restriction: All ISP transforms with 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 will not be sent to the decoder. Therefore, the encoder will not perform RD tests for the different available transforms for each resulting sub-partition. Instead, the transform selection for ISP mode will be fixed and selected based on the utilized intra mode, processing order and block size. Therefore, no signaling is required. For example, making t H and t V are the horizontal and vertical transforms selected for the w×h sub-partition, respectively, where w is the width and h is the height. The transforms are then selected according to the following rules: If w=1 or h=1, there is no horizontal transform or vertical transform, 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 samples long. In addition, the reference sample filtering process (reference smoothing) and the conditions for intra interpolation filter selection no longer exist, and the cubic (DCT-IF) filter is always applied to fractional position interpolation in ISP mode. 2.15. Matrix Weighted Intra Prediction (MIP) The matrix weighted intra prediction (MIP) method is a newly added intra prediction technique in VVC. In order to predict the samples of a rectangular block of width W and height H, the matrix weighted intra prediction (MIP) takes as input a row of H reconstructed neighboring boundary samples on the left side of the block and a row of W reconstructed neighboring boundary samples above the block. If the reconstructed samples are not available, they are generated as done in conventional intra prediction. The generation of the prediction signal is based on the following three steps, namely averaging, matrix-vector multiplication and linear interpolation, as shown in Figure 19 shown. 2.15.1. Averaging neighboring points Among the boundary samples, four or eight samples are selected by averaging based on the block size and shape. Specifically, the boundary bdry is input by averaging the adjacent boundary samples according to a predefined rule depending on the block size. top and bdry left Shrunk to a smaller boundary and Then, the two shrinking boundaries and Spliced to the reduced boundary vector bdry red , so for blocks of shape 4×4 its size is 4, and for blocks of all other shapes its size is 8. If mode refers to a MIP mode, then the splicing is defined as follows: Matrix Multiplication With the averaged samples as input, a matrix-vector multiplication is performed and then an offset is added. The result is a scaled-down prediction signal on a downsampled set of samples in the original block. red , the reduced prediction signal pred red , is generated, which is a red And the height is H red Here, W red and H red is defined as: Reduced prediction signal pred red It is calculated by taking the matrix-vector product and adding the offset: pred red =A·bdry red +b(2-13). Here, if W=H=4, then A is a red ·H red 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 matrix A and the offset vector b are obtained from one of the sets S0, S1, S2. The index idx=idx(W,H) is defined as follows: Here, each coefficient of the matrix A is represented with 8 bits of precision. Set S0 consists of 16 matrices (each matrix has 16 rows and 4 columns) and 16 offset vectors (Each offset vector has a size of 16). The matrices and offset vectors of this set are used for blocks of size 4×4. Set S1 consists of 8 matrices (each matrix has 16 rows and 8 columns) and 8 compensation vectors (The size of each compensation vector is 16). Set S2 consists of 6 matrices (each matrix has 64 rows and 8 columns) and 6 compensation vectors of size 64 composition. 2.15.3. Interpolation The prediction signals at the remaining positions are generated by linear interpolation of the prediction signals on the downsampled set, which is a single-step linear interpolation in each direction. Interpolation is performed first in the horizontal direction and then in the vertical direction, regardless of block shape or block size. 2.15.4.MIP Mode Signaling and Coordination with Other Codec Tools For each codec unit (CU) in intra mode, a flag indicating whether MIP mode is to be applied is sent. If MIP mode is to be applied, the MIP mode (predModeIntra) is signaled. For the MIP mode, a transposed flag (isTransposed) that determines whether the mode is transposed, and a MIP mode Id (modeId) that determines 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 is coordinated with other codecs by taking into account the following aspects: – Enable LFNST for MIPs on large blocks. Here, the planar LFNST transform is used. The reference sample derivation for –MIP is performed in exactly the same way as the reference sample derivation for the regular intra prediction mode. – For the upsampling step used in MIP prediction, the original reference samples are used instead of the downsampled reference samples. – Clipping is performed before upsampling, rather than after upsampling. – Regardless of the maximum transform size, MIPs are allowed to be up to 64×64. For sizeId=0, the number of MIP modes is 32, for sizeId=1, the number of MIP modes is 16, and for sizeId=2, the number of MIP modes is 12. 2.16. Decoder-side intra-mode derivation In JEM-2.0, intra modes are expanded from 35 in HEVC to 67 modes, and they are derived at the encoder and explicitly signaled to the decoder. In JEM-2.0, a significant amount of overhead is spent on intra mode encoding and decoding. For example, in a full intra codec configuration, the intra mode signaling overhead can reach 5-10% of the total bitrate. This paper proposes a decoder-side intra mode derivation method to reduce the intra mode encoding and decoding overhead while maintaining prediction accuracy. To reduce the overhead of intra mode signaling, this paper proposes a decoder-side intra mode derivation (DIMD) method. In the proposed method, instead of explicitly signaling the intra mode, this information is derived from the neighboring reconstructed samples of the current block at the encoder and decoder. The intra mode derived by DIMD is used in two ways: 1) For a 2N×2N CU, when the corresponding CU-level DIMD flag is turned on, DIMD mode is used as the intra mode for intra prediction; 2) For N×N CU, 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-mode derivation Figure 20 Schematic diagram showing target points, template points, and reference points of the template used in DIMD. Figure 20 As shown, the target represents the current block (block size is N) for which the intra prediction mode is to be estimated. Figure 20 The pattern area indication in ( ) specifies a set of reconstructed samples that are used to derive the intra mode. The template size is expressed as the number of samples in the template that extend above and to the left of the target block, i.e., L. In the current implementation, a template size of 2 (i.e., L=2) is used for 4×4 and 8×8 blocks, and a template size of 4 (i.e., L=4) is used for 16×16 and larger blocks. The reference of the template (given by Figure 20 The dashed area (indicated by the dashed area in the figure) refers to the set of neighboring samples above and to the left of the template defined by JEM-2.0. Unlike the template samples, which are always from the reconstructed area, the reference samples of the template may not have been reconstructed when the target block is encoded / decoded. In this case, the existing reference sample replacement algorithm of JEM-2.0 is utilized to replace the unavailable reference samples with available reference samples. For each intra prediction mode, DIMD calculates the SAD between the reconstructed template samples and its predicted samples obtained from the template's reference samples. The intra prediction mode that produces the smallest SAD is selected as the final intra prediction mode for the target block. 2.16.2. DIMD for Intra 2N×2N CU For Intra 2Nx2N CUs, DIMD is used as an additional Intra mode that is adaptively selected by comparing the DIMD Intra mode with the best normal Intra mode (i.e., explicitly signaled). For each Intra 2Nx2N CU, a flag is signaled to indicate the use of DIMD. If the flag is 1, the CU is predicted using the Intra mode derived by DIMD; otherwise, DIMD is not applied and the CU is predicted using the Intra mode explicitly signaled in the bitstream. When DIMD is enabled, the chroma components always reuse the same Intra mode as the Intra mode derived for the luma component, i.e., DM mode. In addition, for each DIMD-encoded CU, blocks in the CU can adaptively choose to derive their intra mode at 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 mode for their intra 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 mode. In addition, when DIMD is enabled, the number of angular directions increases to 129, and DC mode and planar mode remain the same. To accommodate the increased granularity of angular intra modes, the precision of intra interpolation filtering for DIMD-encoded CUs is increased from 1 / 32 pixel to 1 / 64 pixel. In addition, in order to use the derived intra modes of DIMD-encoded CUs as MPM candidates for neighboring intra blocks, these 129 directions of DIMD-encoded CUs are converted to "normal" intra modes (i.e., 65 angular intra directions) before being used as MPMs. 2.16.3. DIMD for Intra N×N CU In the proposed method, the intra mode of an N×N CU is always signaled. However, to improve the efficiency of intra mode encoding and decoding, the intra mode derived from DIMD is used as an MPM candidate for predicting the intra mode of the four PUs in the CU. In order not to increase the overhead of MPM index signaling, the DIMD candidate is always placed at the first position in the MPM list, and the last existing MPM candidate is removed. In addition, deduplication is performed so that if a DIMD candidate is redundant, it will not be added to the MPM list. 2.16.4.DIMD Intra-frame Pattern Search Algorithm To reduce encoding / decoding complexity, a straightforward fast intra mode search algorithm is used for DIMD. First, an initial estimation process is performed to provide a good starting point for the intra mode search. Specifically, an initial candidate list is created by selecting N fixed modes from the allowed intra modes. Then, the SAD is calculated for all candidate intra modes, and the one that minimizes the SAD is selected as the starting intra mode. To achieve a good complexity / performance trade-off, the initial candidate list consists of 11 intra modes, including DC, planar, and every 4th mode of the 33 angular intra directions as defined in HEVC, i.e., intra modes 0, 1, 2, 6, 10…30, 34. If the starting Intra mode is DC or Planar, it is used as the DIMD mode. Otherwise, based on the starting Intra mode, a refinement process is then applied, where the best 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 at each iteration and maintaining the Intra mode that minimizes the SAD. The search interval is then reduced to half, and the selected Intra mode from the previous iteration will be used as the center Intra mode for the current iteration. For the current DIMD implementation with 129 angular Intra directions, a maximum of 4 iterations are used in the refinement process to find the best DIMD Intra mode. 2.17. Decoder-side Intra-mode Derivation by Computing Gradients of Neighboring Samples The three angle modes are selected from the Histogram of Gradients (HoG) calculated from the neighboring pixels of the current block. Once the three modes are selected, their predictions are calculated normally, and then their weighted average is used as the final prediction for the block. To determine the weights, the corresponding magnitude in the HoG is used for each of the three modes. DIMD mode is used as an alternative prediction mode and is always checked in FullRD mode. The current version of DIMD has modified some aspects of signaling, HoG calculation, and prediction fusion. The purpose of these modifications is to improve codec performance and address the complexity issues raised during the last meeting (i.e., throughput of 4x4 blocks). The following sections describe the modifications made to each aspect. 2.17.1. Signaling Figure 21 is a schematic diagram illustrating the proposed intra block decoding process. Figure 21 The order of parsing flags / indexes integrated with the proposed DIMD in VTM5 is shown. As can be seen, the DIMD flag of the block is first parsed using a single CABAC context, which is initialized to a default value of 154. If flag == 0, parsing continues normally. Otherwise (if flag == 1), only the ISP index is parsed and the following flags / indexes are inferred to be zero: BDPCM flag, MIP flag, MRL index. In this case, the entire IPM parsing is also skipped. During the parsing phase, when a regular non-DIMD block asks its DIMD neighbor's IPM, the pattern PLANAR_IDX is used as the DIMD block's virtual IPM. 2.17.2. Texture Analysis Figure 22 : is a schematic diagram showing the calculation of HoG from a template with a width of 3 pixels. Texture analysis of DIMD includes the calculation of the Histogram of Gradients (HoG) ( Figure 22 The HoG calculation is performed by applying horizontal and vertical Sobel filters to the pixels in a template of width 3 around the block. Unless the above template pixels fall into a different CTU, they will not be used in the texture analysis. Once calculated, the IPMs corresponding to the two highest histogram bins are 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 to 4x4 blocks. For this purpose, only one pixel to the left and one pixel above are used. This is in Figure 22 is shown in . Besides reducing the number of operations for gradient computation, this property also simplifies the selection of the best 2 patterns from the HoG, since the resulting HoG cannot have more than two non-zero magnitudes. 2.17.3. Prediction Fusion The current method uses a fusion of three prediction values for each block. However, the choice of prediction mode is different and utilizes the proposed combined hypothesis intra prediction method, where planar mode is considered to be used in combination with other modes when computing intra prediction candidates. In the current version, the two IPMs corresponding to the two highest HoG slices are combined with planar mode. Prediction fusion is applied as a weighted average of the above three prediction values. For this purpose, the weight of the plane is fixed to 21 / 64 (~1 / 3). Then, the remaining 43 / 64 (~2 / 3) weight is shared between the two HoG IPMs, proportional to the amplitude of their HoG stripes. Figure 23 The process is visualized. Figure 23 is a schematic diagram illustrating prediction fusion by weighted averaging of two HoG modes and a plane. 2.18. Template-based Intra Mode Derivation (TIMD) In this paper, we propose a template-based intra mode derivation (TIMD) method using MPM, where TIMD mode is derived from MPM using neighboring templates. TIMD mode is used as an additional intra prediction method for a CU. 2.18.1. TIMD Mode Derivation For each intra prediction mode in the MPM, the SATD between the template's prediction and the reconstructed samples is calculated. The intra prediction mode with the smallest SATD is selected as the TIMD mode and used for intra prediction of the current CU. Position-dependent intra prediction combining (PDPC) is included in the derivation of the TIMD mode. 2.18.2.TIMD Signaling A flag is signaled in the sequence parameter set (SPS) to enable / disable the proposed method. When the 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 luma intra prediction mode) are skipped. 2.18.3. Interaction with new codec tools The DIMD method with prediction fusion using planes is integrated in EE2. When the EE2 DIMD flag is equal to true, the proposed TIMD flag is not signaled and is set equal to false. Similar to PDPC, gradient PDPC is also included in the derivation of TIMD mode. When the secondary MPM is enabled, both the primary and secondary MPMs are used to derive the TIMD mode. The 6-tap interpolation filter is not used for the derivation of TIMD mode. 2.18.4. Modification of MPM list construction in TIMD mode derivation During the construction of the MPM list, the intra prediction mode of the neighboring blocks is derived as a plane when they are inter-coded. To improve the accuracy of the MPM list, when the neighboring blocks are inter-coded, the propagated intra prediction mode is derived using the motion vector and reference picture and used in the construction of the MPM list. This modification is only applied to the derivation of TIMD mode. 2.18.5. TIMD with Fusion Instead of selecting only one mode with the smallest SATD cost, this paper proposes to select the first two modes with the smallest SATD cost for the intra modes derived using the TIMD method, then fuse them using weights, and such weighted intra prediction is used to encode and decode 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 this condition is true, then fusion is applied, otherwise only mode1 is used. The weights of the modes are calculated from their SATD costs as follows: weight1=costMode2 / (costMode1+costMode2), weight2=1–weight1. 2.19. Convolutional Cross-Component Model (CCCM) for Intra Prediction We propose to apply a convolutional cross-component model (CCCM) to predict chroma samples from reconstructed luma samples in a similar spirit to what the current CCLM mode does. Like CCLM, when chroma downsampling is used, the reconstructed luma samples are downsampled to match the lower resolution chroma grid. In addition, similar to CCLM, there is an option to use a single model or a multi-model variant 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 CCLM design). The multi-model CCCM mode can be selected for PUs with at least 128 available reference samples. 2.19.1. Convolutional Filters The proposed convolutional 7-tap filter consists of a 5-tap plus sign-shaped spatial component, a nonlinear term, and a bias term. The input of the spatial 5-tap component of the filter consists of 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 in Figure 24 As shown, Figure 24 The spatial portion of the convolutional filter is shown. The nonlinear term P is expressed as a power of 2 of the center luma sample C and scaled to the content's sample value range: P=(C*C+midVal)>>bitDepth. That is, for 10-bit content, it is calculated as: P=(C*C+512)>>10. The bias term B represents a scalar offset between the input and output (similar to the offset term in CCLM) and is set to the intermediate chrominance value (512 for 10-bit content). The output of the filter is calculated as the filter coefficient c i Convolution with the input value and clipped to the range of valid chroma samples: predChromaVal=c0C+c1N+c2S+c3E+c4W+c5P+c6B. 2.19.2. Calculation of filter coefficients Filter coefficient c i It is calculated by minimizing the MSE between the predicted chroma samples and the reconstructed chroma samples in the reference region. Figure 25 is a schematic diagram showing the reference area (with its filling) used for deriving filter coefficients. Figure 25 A reference region consisting of six rows of chroma samples above and to the left of the PU is shown. The reference region extends one PU width to the right of the PU boundary and one PU height below the PU boundary. The region is adjusted to include only available samples. The extension of the region shown in blue is needed to support the "side samples" of the sign-shaped spatial filter and is padded when in unavailable areas. MSE minimization is performed by computing the autocorrelation matrix for the luma input and the cross-correlation vector between the luma input and the chroma output. The autocorrelation matrix is LDL-decomposed, and the final filter coefficients are calculated using inverse substitution. This process roughly follows the calculation of the 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 the mode is signaled via a PU-level flag for the CABAC codec. A new CABAC context is included to support this. When it comes to signaling, CCCM is considered a submode of CCLM. That is, the CCCM flag is signaled only when the intra 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 does not use downsampled luma values, but instead uses luma sample gradients to infer a linear model. Specifically, when applying GLM, the input to the CCLM process (i.e., downsampled luma samples L) is replaced by luma sample gradients G. The rest of the CCLM process (e.g., parameter derivation, linear transformation of prediction samples) remains unchanged. C=α·G+β. For signaling, when CCLM mode is enabled for the current CU, two flags are transmitted separately for the Cb component and the Cr component to indicate whether GLM is enabled for each component; if GLM is enabled for a component, a syntax element is further transmitted by signaling to select one of the four gradient filters for gradient calculation. like Figure 26 As shown, four gradient filters are enabled for the GLM. GLM with brightness In ECM-6.0, GLM uses the gradient of luma samples to predict chroma samples as follows: pred C (i, j) = α·G(i, j) + β where pred C (i, j) represents the predicted value of the chrominance sample, G(i, j) represents the gradient of the corresponding reconstructed luminance sample, and the linear model parameters α and β are derived from adjacent reconstructed samples based on the linear minimum mean square error (LMMSE) method, such as CCLM. A new GLM model is proposed, in which the chrominance samples are based on the gradient G(i,j) of the luma samples and the reconstructed values rec′ of the downsampled luma samples with different parameters. L (i,j) is 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 sample points based on the LDL decomposition method as the CCCM mode in ECM-6.0. 2.21. Gradient- and Position-Based Convolutional Cross-Component Model (GL-CCCM) for Intra Prediction The proposed GL-CCCM method uses gradient and position information to replace the four spatial neighboring samples in the CCCM filter. The GL-CCCM filter used for prediction is: predChromaVal=c0C+c1G y +c2G x +c3Y+c4X+c5P+c6B. Among them G y and G x are the vertical and horizontal gradients respectively, and are calculated as: G y =(2N+NW+NE)–(2S+SW+SE), G x =(2W+NW+SW)–(2E+NE+SE). Furthermore, the Y parameter and the X parameter are the vertical position and the horizontal position of the center luma sample, and they are calculated relative to the top left coordinate of the block. The remaining parameters are the same as those of the CCCM tool. The reference area used for parameter calculation is the same as that of the CCCM method. Figure 27 is a schematic diagram showing spatial domain samples used for GL-CCCM. Bitstream signaling The use of this mode is signaled via a PU-level flag for the CABAC codec. A new CABAC context is included to support this. When it comes to signaling, GL-CCCM is considered a submode of CCCM. That is, the GL-CCCM flag is signaled only when the original CCCM flag is true. Encoder Operation The encoder performs two new RD checks in the chroma prediction mode loop, one for checking single-model GL-CCCM mode and one for checking multi-model GL-CCCM mode. 2.22. CCCM using non-subsampled luma samples 2.22.1. Block Level In this paper, we propose a CCCM using non-subsampled luma samples, where the chroma samples are predicted directly from the original reconstructed luma samples, i.e., without downsampling. Figure 28 is a schematic diagram showing non-subsampled luminance samples. Figure 28 As shown in Figure 1, 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 to be predicted (i.e., C). where α i Yes and L i The associated coefficients are β and β is the offset. As with the existing CCCM design, up to 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 paper, the proposed method is signaled as an additional CCCM model in addition to the existing CCCM model. For signaling, when CCCM is selected, a single flag is signaled 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 luma component may not be optimal for CCCM model derivation. In this paper, we propose disabling luma downsampling, deriving the model directly, and applying the model to non-downsampled luma samples. If downsampling is not applied, the CCCM model shape is a diamond 5×5. The SPS flag is signaled to indicate whether luma downsampling is applied to the CCCM. 2.23. Airspace GPM (SGPM) In the spatial domain GPM, a candidate list including partitioning and two intra prediction modes is constructed. Up to 11 MPMs of intra prediction modes are used to form a combination, and the length of the candidate list is set to be equal to 16. The selected candidate index is transmitted through the signal. Figure 29 The spatial domain GPM candidates are shown. Figure 29 The templates shown reorder the list. The GPM blending process is not used in the templates, and the SAD between the prediction and reconstruction of the templates is used for sorting. The SGPM mode is applied to blocks whose width and height satisfy the same restrictions as in inter-frame GPM. Figure 30 A GPM template is shown. The following projects are considered: ●Airspace GPM segmentation mode: 26 predefined modes. An adaptive inference 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 mode, an IPM list is derived for each part using intra-inter GPM list derivation. The IPM list size is 3. In the list, TIMD-derived patterns are replaced by 2 derived patterns with horizontal and vertical directions (using top or left template), or TIMD-derived patterns are excluded. MPM List: A unified MPM list (maximum 11 elements) is used for all segmentation modes. ● Template size (left and top): 1 or 4. ●Extended block size: Spatial 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 Hybrid: Adaptive mixing is tested for spatial GPM, where the mixing depth τ is derived as follows: ■If min(width, height) == 4, 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 of cross-component prediction modes in ECM Figure 32 Binarization of cross-component prediction modes in ECM is shown. Figure 32 "CCLM" in the format can be replaced by "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 through the signal to determine whether it is a CCCM mode or a CCLM mode. The truncation unary code is used to indicate Figure 32 CCLM mode 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 2-parameter model to map luma values to chroma values. The slope parameter "a" and the bias parameter "b" define the mapping as follows: chromaVal=a*lumaVal+b. It is proposed to transmit the adjustment of the slope parameter "u" through the signal to update the model to the following form: chromaVal = a'*lumaVal + b' in a'=a+u, b'=bu*y r . With this choice, the mapping function is centered around the brightness value y r The points are tilted or rotated. It is proposed to use the average value of the reference brightness samples used in model creation as y r , in order to provide meaningful modifications to the model. The following figure illustrates this process. 2.26. Non-adjacent cross-component prediction A non-adjacent cross-component prediction (NA-CCP) mode is proposed. Using the NA-CCP mode, samples in regions that are not adjacent to the current block can be used to derive the CCCM model for the current block. A candidate region list with six candidates is constructed by sequentially examining potential 8x8 regions. If the examined region is available, it is placed in the candidate region list. The top left position of the potential 8x8 area is predetermined to be {(-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*yStep),(-xStep / 2,0),(0,-yStep / 2),(xStep / 2,-yStep / 2),(-xStep / 2,yStep / 2),(-xStep / 2,-yStep / 2)}, where xStep = Max(width,16) and yStep = Max(height,16). Figure 33 Some possible locations of candidate regions are shown. A flag is signaled to indicate whether NA-CCP is applied to chroma blocks. If NA-CCP is applied, an index is signaled to indicate which candidate in the candidate region list is used to derive the CCCM model. 2.27. Fusion of Chroma Intra Prediction Modes In test 1.2b, it is proposed that the DM mode and the four default modes can be fused with the MMLM_LT mode as follows: pred=(w0*pred0+w1*pred1+(1<<(shift-1)))>>shift Where pred0 is the prediction value obtained by applying the non-LM mode, pred1 is the prediction value obtained by applying the MMLM_LT mode, and pred is the final prediction value of the current chroma block. The two weights w0 and w1 are determined by the intra prediction mode of the adjacent chroma blocks, and shift is set to be equal to 2. Specifically, when the upper adjacent block and the left adjacent block are both coded or decoded in the LM mode, {w0, w1} = {1, 3}; when the upper adjacent block and the left adjacent block are both coded or decoded in the non-LM mode, {w0, w1} = {3, 1}; otherwise, {w0, w1} = {2, 2}. For syntax design, if non-LM mode is selected, a flag is signaled to indicate whether fusion is applied, and the proposed fusion is only applied to I slices. 3. Question 1. The model for cross-component prediction is trained using adjacent neighboring samples, which may be inefficient. 4. Detailed solutions The following detailed embodiments should be considered as examples to explain the general concept. These embodiments should not be interpreted in a narrow sense. In addition, 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 variants 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 variants 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) may refer to any cross-component prediction, such as CCLM or CCCM or GLM or CCLM with slope adjustment. History-based definition of HT 1. It is proposed that the model(s) of cross-component prediction (CCP) (such as CCLM or CCCM) in a block can be stored into a history table (HT). a.HT is a list with ordered entries. i. Each entry has an index. For example, the first entry has an index of 0, and subsequent entries have indices of 1, 2, 3, ... b. The model parameters of CCLM and its variants can include a, b and a shift to control the calculation accuracy. c. The model parameters of CCLM and its variants may include a linear part (such as c0-c4) and a nonlinear part (such as c5). d. Models may include models for different color components such as Cb and Cr. i. For example, a model for Cb and a model for Cr can be coupled in an entry. e. In one example, different CCPs such as CCLM and CCCM can share the same HT. i. In one example, a segment in an entry of an HT may reflect the type of CCP model(s) stored in the entry. f. In one example, different CCPs such as CCLM and CCCM may 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, one CCCM_HT can store models of CCCM and its variants (such as CCCM-T or CCCM-T). g. In one example, a CCP with a single model (such as CCLM or CCCM) and a CCP with multiple models (such as MM-CCLM or MM-CCCM) may have different HTs. h. In one example, a CCP with a single model (such as CCLM or CCCM) and a CCP with multiple models (such as MM-CCLM or MM-CCCM) can share the same HT. i. In one example, the segment in an entry of the HT may reflect the number of models stored in the entry. ii. In one example, a segment in an entry of HT may reflect at least one threshold for classifying 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 segment in an entry of HT may reflect the number of models stored in the entry. 2) The segments in the entries of HT may reflect at least one threshold used to classify samples into different model groups. 3) The segment in the HT entry may reflect whether GLM is applied. 4) The segments in the entries of HT may reflect the downsampling filters of 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, MM-CCCM-T. 1) The segment in an entry of HT may reflect the number of models stored in the entry. 2) The segments in the entries of HT may reflect at least one threshold used to classify samples into different model groups. 2. It is proposed that a block can be encoded and decoded in a history-based CCP (H-CCP) mode, in which at least one CCP model used by the current block is obtained or derived from the HT. a. In one example, at least one syntax element (SE) may be signaled to indicate whether H-CCP is applied. i. In one example, SE can be conditionally signaled. For example, SE is signaled only when a specific mode (such as CCCM or CCLM) is used. 1) For example, SE is signaled only when the current mode is CCCM or CCLM. b. In one example, at least one syntax element (SE) may be signaled to indicate which entry in the HT is retrieved to derive model(s) for cross-component prediction. i.SE can reflect the index in HT. 1) In one example, SE may be set equal to f(k), where k is an index and f is a function. 2) In one example, SE may be set equal to f(k, M), where k is an index, M is the number of valid entries in the HT, and f is a function. a) In another example, M is the size of HT. 3) In one example, SE may be set equal to k, where k is an index. 4) In one example, SE may be set equal to M-1-k, where k is the index and M is the number of valid entries in the 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, the list L is constructed by reversing HT. For example, L[i]=HT[M-1-i], where M is the number of valid entries in HT. a) In another example, M is the size of HT. b) In one example, L may have a fixed size. c) In one example, if L is not full, the vacant entry is filled with a default entry. iii. In one example, SE can be signaled conditionally, for example, SE is signaled only when H-CCP is applicable. iv. SE can be signaled only when 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) may be signaled to indicate which HT is used. i. In one example, SE can be signaled conditionally, for example, SE is signaled only when H-CCP is applicable. ii. SE can be signaled only when more than one HT can be selected. d. In one example, it can be inferred at the encoder / decoder which HT is used. i. In one example, if the current mode is CCLM, the first HT storing the model of CCLM and its variants is used. ii. In one example, if the current mode is CCCM, the second HT storing the model of CCCM and its variants is used. e. In one example, the current block may be predicted using a CCP model obtained from the determined entry of the determined HT. f. In one example, the current block may 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 deduced / obtained from the determined entries of the determined HT. ii. At least one threshold value for classifying samples into different model groups may 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 signaled as SE at the block level / sequence level / picture group level / picture level / slice level / slice 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 / slice header / slice group header. b. Alternatively, the maximum size of the HT can be derived using the following encoding / decoding information: i. The mode of the current block; ii. Patterns of neighboring blocks; iii. The pattern of the luminance blocks in the same region as the current block; iv. The pattern of luminance blocks in the same region as the neighboring blocks; v.QP; vi. Strip / image type; vii. Image width / height; viii.Block width / height; ix. Reconstruction sample points. 4. HT can be refreshed at the beginning of a coding / decoding sequence / picture / slice / slice / sub-picture / CTU row / CTU. a. For example, HT can be refreshed by clearing the table. b. For example, the HT can be refreshed by populating the table with default entries. 5. After encoding / decoding a block (such as a CU), the HT may be updated. a. For example, when dual-tree coding is applied, the CU must be a chroma CU. b. For example, the CU must be a CU with CCP mode. c. For example, which HT will be updated may depend on the codec mode of the CU. i. For example, if the CU is encoded and decoded in CCLM mode (such as CCLM, CCLM-L, CCLM-T, MM-CCLM, MM-CCLM-L, MM-CCLM-T, GLM, and CCLM with slope adjustment), (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 in CCCM mode (such as CCCM, CCCM-L, CCCM-T, MM-CCCM, MM-CCCM-L, MM-CCCM-T), (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 about the CCP model(s) used by the current block may be placed in the HT. i. The set may include one or more CCP models. ii. The set may include the number of models. iii. The set may include threshold(s) for classifying samples into different model groups. iv. The set may include slope adjustments. e. In one example, if the current block is encoded using CCLM with slope adjustment, the CCP model can be adjusted before being used to update the HT. 6. How a new set of information related to CCP model(s) is placed into the HT may depend on whether the HT is full or not. a. For example, if the HT is not full, the new set can be placed at the first empty entry of the HT. i. For example, the first missing entry is the missing entry with the smallest index. ii. For example, the first missing entry is the missing entry with the largest index. iii. After being placed into the HT, the new set may be placed as the last occupied entry in the HT. 1) The last occupied entry may be the occupied entry with the largest index. 2) The last occupied entry may be the occupied entry with the smallest index. b. For example, if the HT is full, an existing entry in the HT may be removed. i. In one example, HT can be managed in a first-in-first-out manner. ii. The existing entry with the smallest index can be removed. 1) The updated HT' may be set to: HT'[i]=HT[i+1], where 0<=i<=N-2, and HT'[N-1]=new set, where N is the size of HT. iii. The existing entry with the largest index can be removed. 1) The updated HT' may be set to: HT'[i]=HT[i-1], where 1<=i<=N-1, and HT'[0]=new set, where N is the size of HT. 7. In one example, the new set may be compared with at least one of the existing entries in the HT to determine whether to place in the new set and / or how to update the HT. 8. In one example, if a new set is identical or similar to one of the existing entries in the HT, the new set is not placed into the HT. It is assumed that the new set is identical or similar to a particular entry of the HT. a. For example, in this case, the special entry can be put at the first of the HT, and the entry that originally preceded the special entry is pushed back one position. i. For example, assuming that the entry is HT[i], where i=0, 1, ..., and the special entry is HT[k], the updated HT' will be as follows: HT'[0]=HT[k]; HT'[i]=HT[i-1], where 1<=i<=k; HT'[i]=HT[i], where i>k. b. For example, in this case, the special entry may be placed at the end of the HT, and the entry that originally preceded the special entry is pushed forward one position. i. For example, assuming that the entry is HT[i], where i=0, 1, ..., and the special entry is HT[k], the updated HT' will be as follows: HT'[N-1]=HT[k]; HT'[i]=HT[i+1], where k<=i<=N-2; HT'[i]=HT[i], where i <k。 9. In one example, whether to place into a new set and / or how to update the HT may depend on the codec information of the CU with the new set. 10. In one example, if the new set is for a CU coded in H-CCP mode, the new set is not placed in the HT. It is assumed that the special entry in the HT is used by the CU coded in H-CCP mode. a. For example, in this case, the special entry can be put at the first of the HT, and the entry that originally preceded the special entry is pushed back one position. i. For example, assuming that the entry is HT[i], where i=0, 1, ..., and the special entry is HT[k], the updated HT' will be as follows: HT'[0]=HT[k]; HT'[i]=HT[i-1], where 1<=i<=k; HT'[i]=HT[i], where i>k. b. For example, in this case, the special entry may be placed at the end of the HT, and the entry that originally preceded the special entry is pushed forward one position. i. For example, assuming that the entry is HT[i], where i=0, 1, ..., and the special entry is HT[k], the updated HT' will be as follows: HT'[N-1]=HT[k]; HT'[i]=HT[i+1], where k<=i<=N-2; HT'[i]=HT[i], where i <k。 11. It is proposed that the entries of HT may include models for more than one chroma component (such as Cb and Cr). a. If the entry is selected, the models for components Cb and Cr are applied to the two components separately. 12. It is proposed that the entry for HT may include a model for only one component (such as Cb or Cr). a. If the entry is selected, the model for a specific component such as Cb or Cr is applied to the specific component. b. In one example, different HTs can be constructed for different components. List Mode 13. It is proposed that at least one list with a CCP model can be constructed. a. In one example, chroma blocks can be predicted in “list mode” using the CCP model in the list. b. In one example, list L may be populated with one type of CCP model, such as CCCM. c. In one example, the list may 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) may be signaled to indicate whether a CCP model in the list is used. i. In one example, SE can be conditionally signaled. For example, SE is signaled only when a specific mode (such as CCCM or CCLM) is used. 1) For example, SE is signaled only when the current mode is CCCM or CCLM. 2) For example, SE is signaled only when "list mode" is applicable. e. In one example, at least one syntax element (SE) may 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 may be set equal to f(k), where k is an index and f is a function. 2) In one example, SE may be set equal to f(k, M), where k is the index, M is the number of valid entries in the list, and f is a function. a) In another example, M is the size of the list. 3) In one example, SE may be set equal to k, where k is an index. 4) In one example, SE may be set equal to M-1-k, where k is the index and M is the number of valid entries in the list. a) In another example, M is the size of the list. f. In one example, L may have a fixed size. g. In one example, multiple lists can be constructed. i. For example, at least one syntax element (SE) may be signaled to indicate which list is used. ii. In one example, SE can be signaled conditionally, for example, SE is signaled only when "list mode" is applicable. iii. SE can be signaled only when more than one list can be selected. h. In one example, which list to use can be inferred at the encoder / decoder. i. In one example, if the current mode is CCLM, a first list of models storing CCLM and its variants is used. ii. In one example, if the current mode is CCCM, a second list of models storing CCCM and its variants is used. 14. It is proposed that an entry of a list may include models for more than one chroma component (such as Cb and Cr). a. If the entry is selected, the models for components Cb and Cr are applied to the two components separately. 15. It is proposed that an entry of a list may include a model for only one component (such as Cb or Cr). a. If the entry is selected, the model for a specific component such as Cb or Cr is applied to the specific component. 16. Multiple candidates can be placed in the list, including: a. CCP model of adjacent neighboring blocks. b. CCP model of non-adjacent neighboring blocks. c. CCP model of the same-position 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 the possible candidates in order. a. For example, the order can be adjacent neighboring blocks, non-adjacent neighboring blocks, models in the history table, 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 list building is completed. c. For example, if the number of candidates in the list reaches f(d), where d is the index of the selected candidate and f is a function, then the list building is completed. For example, f(d)=d+1. d. For example, if all possible candidates have been examined and the build is not complete, a default model may be placed in the list. 18. In one example, if a potential candidate is placed into a list, it may be compared to 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, it is not placed in the list. b. In one example, if a potential entry of CCP information is placed into a history-based table, it may be compared to 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, it is not placed on the list. c. In one example, two CCP candidates or entries are determined to be different if the following conditions are met: i. Different CCP types. ii. The number of models is different. iii. If the CCP has multiple models, the thresholds are different. iv. At least one model is different. v. Luma sample offset is different. (Applicable only when type is CCCM or GL-CCCM or GLM or CCCM using non-subsampled luma samples). vi. Sample point position shifts are different. (Applicable only when the type is GL-CCCM) 19. For example, the CCP information of an entry in a history-based table or the candidate CCP information in a CCP candidate list may include: a. Type of CCP method, such as CCLM or CCCM or GLM or GLM with luma or GL-CCCM or CCCM using non-subsampled luma samples. i. In one example, GLM methods using different downsampling filters can be considered as different types. ii. In one example, GLM methods with luminance using different downsampling filters can be considered as different types. iii. In one example, the types may be CCCM, CCLM, 4 types of GLM using different downsampling filters, 4 types of GLM with luma using different downsampling filters, GL-CCCM, and CCCM using non-downsampled luma samples. iv. "Non-CCP codec" (denoted as NonCCP) can also be considered as a type. b. Position (x, y). c. 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 according to different models. i. Threshold can be used only when the number of models is at least 2. e. At least one luma sample value offset. i. When luma sample value offsets are used to derive chroma prediction values, they can be added to or subtracted from luma samples (which may be downsampled). ii. Luma sample value offset can be used only for certain types, such as CCCM, GLM with luma, GL-CCCM, and CCCM using non-subsampled luma samples. f. At least one chroma sample value is offset. i. Chroma sample value offsets can be added to or subtracted from the chroma prediction values derived from the CCP model to generate the final prediction. g. At least one model for at least one chroma component. i. For example, it may include different models for the Cb component and the Cr component. ii. For example, the number of models for each component may be included as part of the information. iii. The model can be represented by a model form of CCLM or CCCM or GLM or GLM with luma or GL-CCCM or CCCM using non-subsampled luma samples. h. At least one sample point position displacement expressed as (dX, dY). i. When the chroma sample position displacement is used to derive the chroma prediction value, it can be added to or subtracted from the sample position (x, y). ii. Chroma sample position shifting can only be used for certain types, such as GL-CCCM. 20. For example, after being encoded / decoded, the CCP codec information of the chroma block can be stored in a history-based table or in a CCP candidate list. a. In one example, CCP codec information can be stored only when the chroma block is coded in CCP mode. i. In one example, if the chroma block is coded in at least one CCP mode, such as fusion with chroma intra prediction mode, the CCP codec information may be stored. 1) The stored type may be set as the CCP type used in fusion of chroma intra prediction modes. b. In one example, CCP codec information can be stored for any chroma block. i. If the chroma block is not coded in CCP mode, the type is stored as "NonCCP". c. If the chroma block is encoded and decoded in CCP mode, the type of information can be stored according to the encoding and 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, 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, the type is set to "CCLM". iii. If the mode is CCLM or CCLM-T or CCLM-L or MM-CCLM or MM-CCLM-T or MM-CCLM-L with slope adjustment, the type is set to "CCLM". iv. If the mode is GLM with filter X, the type is set to "GLM with filter X". v. If the mode is GLM with Luminance using filter X, then the type is set to "GLM with Luminance using filter X". vi. If the mode is GL-CCCM, the type is set to "GL-CCCM". vii. If the mode is CCCM with non-subsampling, the type is set to "CCCM with non-subsampling". viii. If the mode is a fusion of chroma intra prediction modes, the type is set to "CCLM". d. The number of models can be stored as the number of models of the chroma block. i. For example, if the mode is MM-CCLM or MM-CCLM-T or MM-CCLM-L or MM-CCLM or MM-CCLM-T or MM-CCLM-L or any other multi-model CCP mode (such as GLM or GL-CCCM or CCCM using non-subsampled luma samples with multiple models), the number of models is set to 2. e. Information such as thresholds, luma / chroma sample value offsets, and sample position displacements can be stored as information used by chroma blocks. f. The CCP model for a component can be stored as the model used by the chroma block. i. The model can be derived by any CCP method, such as CCLM or CCLM-T or CCLM-L or MM-CCLM or MM-CCLM-T or MM-CCLM-L or CCCM or CCCM-T or CCCM-L or MM-CCCM or MM-CCCM-T or MM-CCCM-L or GLM using different downsampling filters or GLM with luma using different downsampling filters or GL-CCCM or CCCM using non-downsampled luma samples. ii. The stored model may be the model of the final application, such as after being modified by slope adjustment. 21. In one example, when the CCP information of a CCP candidate in the candidate list or the CCP information of an entry in the history-based table is used to generate a prediction for the current block, the CCP will be executed following the CCP information. a. CCCM, CCLM, 4 types of GLM using different downsampling filters, 4 types of GLM with luma using different downsampling filters, GL-CCCM, and CCCM using non-downsampled luma 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, one model or multiple models with at least one threshold can be used. c. Candidate luma sample value offsets can be added to or subtracted from luma samples to be placed in the CCP model (which may be downsampled). i. This process is applicable only when the type is CCCM or GL-CCCM or GLM or CCCM using non-subsampled luma samples. d. Sample point position offsets can be added to or subtracted from the position coordinates to be placed in the CCP model. i. This procedure is applicable only when the type is GL-CCCM. e. How to obtain the downsampled brightness samples can be based on the CCP type. i. The downsampled luma samples may be obtained by following the downsampling method required by the CCP mode corresponding to the type. 22. In an example, the predicted values generated by entries in the CCP candidate list or history-based table may be modified before being used to obtain the reconstructed sample values. a. In one example, an offset D may be added to or subtracted from the predicted value. b. In one example, the offset can be derived based on luma / chroma samples of a template calculated using reconstructed samples adjacent to the current block, referred to as a "template." Figures 34A to 34C An example of a template is shown. i. In one example, if the reconstructed samples on the left side of the current block are available, the template may be composed of the reconstructed samples on the left side of the current block. ii. In one example, if the reconstructed samples above the current block are available, the template may be composed of the reconstructed samples above the current block. iii. In one example, if the reconstructed samples above / left of the current block are available, the template may be composed of the reconstructed samples above or to the left of the current block. iv. The corresponding luma samples of the template can be downsampled in the same way as the luma samples inside the current block. c. In one example, if there are N models required by the CCP type (such as two models), then for the N models, it is represented as {D 0 ,…,D N-1}N offsets can be derived. i. Offset D i can be added to or subtracted from the predicted values generated by model i. d. In one example, a CCP method indicated by the type of CCP candidate may be applied to the template. i. For example, for the kth sample point of the template, S k =R k -P k is calculated, where R k and P k They represent the reconstructed sample value of the kth sample and the predicted value with CCP, which are calculated respectively. 1) For example, D is calculated as {S k}average value. 2) For example, suppose S k The number of is M, then D is calculated as D = sign (sum) × ((|sum| + off) >> W), where and ii. For example, for the kth sample point of model i using the template, S i k =R i k -P i k is calculated, where R i k and P i kdenote the reconstructed sample value of the k-th sample using model i and the predicted value with CCP, which are calculated. 1) For example, D i is calculated as {S i k}average value. 2) For example, suppose S i k If the number is M, then D is calculated as D i =sign(sum)×((|sum|+off)>>W), where and iii. In one example, no division operation is used to calculate D or D i . 1) For example, a lookup table can be used to calculate D or D i . e. For example, only certain types of CCPs can apply modifications, such as CCLMs and CMMMs with multiple models. 23. In one example, after encoding / decoding a region (such as a CU / CTU / CTU row), a historical table of CCP information may be stored, referred to as a stored table. a. A history table of CCP information maintained for the current block (referred to as an online table) may be used together with a stored history table of CCP information. b. In one example, entries in the storage table and the online table may be checked sequentially to generate new candidates. i. In one example, entries in the online table may be checked before all entries in the storage table. ii. In one example, entries in the storage table may be checked before all entries in the online table. iii. For example, the kth entry in the storage table may be checked after the kth entry in the online table. iv. For example, the kth entry in the online table may be checked after the kth entry in the storage table. v. For example, the kth entry in the online table may be checked after storing all mth entries in the table, where m = 0...S, where S is an integer. vi. For example, the kth entry in the storage table may be checked after all mth entries in the online table, where m = 0...S, where S is an integer. vii. For example, the kth entry in the online table may be checked after storing all mth entries in the table, where m = S...maxT, where S is an integer and maxT is the last entry. viii. For example, the kth entry in the storage table may be checked after all mth entries in the online table, where m = S...maxT, where S is an integer and maxT is the last entry. c. In one example, which storage table(s) to use may depend on the dimensions and / or position of the current block. i. For example, a table stored in a CTU above the current CTU may be used. ii. For example, a table stored in a CTU above and to the left of the current CTU may be used. iii. For example, a table stored in a CTU above and to the right of the current CTU may be used. d. In one example, whether and / or how to use the storage table may depend on the dimensions and / or location of the current block. i. In one example, whether and / or how to use the storage table may depend on whether the current CU is at the upper boundary of a CTU and whether an upper adjacent CTU is available. 1) For example, the storage table can be used only when the current CU is at the upper boundary of the CTU and the upper adjacent CTU is available. 2) For example, if the current CU is at the upper boundary of a CTU and an upper adjacent CTU is available, at least one entry in the storage table may be placed at a more forward position. e. In one example, entries in two storage tables may be examined sequentially to generate new candidates. i. For example, the first (or second) storage table may be stored in a CTU above the current CTU and may be used. ii. For example, the first (or second) storage table may be stored in a CTU to the upper left of the current CTU and may be used. iii. For example, the first (or second) storage table may be stored in a CTU above and to the right of the current CTU and may be used. General Items 24. The syntax elements disclosed above can be binarized as flags, fixed length codes, EG(x) codes, unary codes, truncated unary codes, truncated binary codes, etc. It can be signed or unsigned. 25. The syntax elements disclosed above can be encoded or decoded using at least one context model, or they can be bypassed. 26. The syntax elements disclosed above may be signaled in a conditional manner. a. SE is transmitted via signaling only when the corresponding function is applicable. b. SE is signaled only if the block dimensions (width and / or height) meet the conditions. 27. The syntax elements disclosed above can be transmitted by signal at block level / sequence level / picture group level / picture level / slice level / slice 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 / slice header / slice group header. 28. Whether and / or how to apply the method disclosed above can be transmitted through signals at block level / sequence level / picture group level / picture level / slice level / slice 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 / slice header / slice group header. 29. Whether and / or how to apply the above disclosed method may depend on coded information such as block size, color format, single-tree partitioning / dual-tree partitioning, color component, slice / picture type. 30. The proposed method disclosed in this document can be used in other codecs that require chroma fusion.
[0095] Figure 35 A flow chart of a method 3500 for video processing according to an embodiment of the present disclosure is shown. Method 3500 is implemented during conversion between a current video block of a video and a bitstream of the video. In some embodiments, the conversion may include encoding the current video block into a bitstream. Alternatively or additionally, the conversion may include decoding the current video block from the bitstream.
[0096] At block 3510 , at least one cross-component prediction (CCP) model is determined for a current video block based on at least one history table (HT) of CCP models.
[0097] At block 3520, conversion is performed based on at least one CCP model. Before or after encoding or decoding the video unit, at least one history table of the CCP model is updated.
[0098] Method 3500 enables updating the history table of the CCP model. In this way, the CCP model used to encode and decode a video block can be updated without having to be trained based on neighboring samples. This can improve both codec effectiveness and codec efficiency.
[0099] In some embodiments, at least one CCP model comprises at least one of: a cross-component linear model (CCLM), a variant of CCLM, a convolutional cross-component model (CCCM), or a variant of CCCM.
[0100] In some embodiments, at least one history table is updated at the start of encoding or decoding a video unit including a current video block, where a video unit includes at least one of the following: a sequence, a picture, a slice, a sub-picture, a codec tree unit (CTU), or a CTU row. For example, the HT may be refreshed at the start of encoding or decoding a sequence / picture / slice / slice / sub-picture / CTU row / CTU.
[0101] In some embodiments, updating the at least one history table includes one of: clearing the at least one history table; or filling the at least one history table with default entries.
[0102] In some embodiments, at least one history table is updated after encoding / decoding a video unit, the video unit comprising a coding unit (CU). That is, after encoding / decoding a block (eg, a CU), the HT may be updated.
[0103] In some embodiments, dual-tree codec is applied and the codec unit comprises a chroma codec unit.
[0104] In some embodiments, the codec unit is encoded using CCP mode.
[0105] In some embodiments, the target history table to be updated of the at least one history table is based on the codec mode of the codec unit. For example, which HT is to be updated depends on the codec mode of the CU.
[0106] In some embodiments, the coding mode of the codec unit includes at least one of the following: a cross-component linear model (CCLM), a CCLM based on top neighboring samples of the codec unit (CCLM-T), a CCLM based on left neighboring samples of the codec unit (CCLM-L), a multi-model based CCLM (MM-CCLM), a multi-model based CCLM-T (MM-CCCM-T), a multi-model based CCLM-L (MM-CCCM-L), a gradient linear model (GLM), or a CCLM with slope adjustment, and wherein a set of CCP models and related information for classifying samples into multiple groups of CCP models are stored in a first history table of at least one history table, the first history table being associated with the CCLM. For example, if the CU is coded using a CCLM mode (such as CCLM, CCLM-L, CCLM-T, MM-CCLM, MM-CCLM-L, MM-CCLM-T, GLM, and CCLM with slope adjustment), the model and related information (such as thresholds used to classify samples into different model groups) are stored in the first HT.
[0107] In some embodiments, the coding mode of the codec unit includes at least one of the following: a convolutional cross-component model (CCCM), a CCCM based on top neighboring samples of the current video block (CCCM-T), a CCCM based on left neighboring samples of the current video block (CCCM-L), a multi-model based CCCM (MM-CCCM), a multi-model based CCCM-T (MM-CCCM-T), or a multi-model based CCCM-L (MM-CCCM-L), and wherein a set of CCP models and related information for classifying samples into multiple groups of CCP models are stored in a second history table of the at least one history table, the second history table being associated with CCCM. For example, if the CU is coded using a CCCM mode (such as CCCM, CCCM-L, CCCM-T, MM-CCCM, MM-CCCM-L, MM-CCCM-T), the model and related information (such as thresholds used to classify samples into different model groups) are stored in a second HT.
[0108] In some embodiments, the codec is encoded using a Cross-Component Linear Model (CCLM) with slope adjustment, and the corresponding CCP model is adjusted by slope adjustment before being used to update the at least one history table.
[0109] In some embodiments, at least one history table is updated by adding an information set related to at least one model used by the codec unit to the at least one history table. For example, an information set related to the CCP model used by the current block may be placed in the HT.
[0110] In some embodiments, the information set includes at least one of the following: at least one CCP model, the number of at least one CCP model, a threshold for classifying samples into multiple groups of CCP models, or slope adjustment information.
[0111] In some embodiments, a scheme for adding a set of information related to at least one CCP model to a history table is based on whether the history table is full.
[0112] In some embodiments, if the history table is not full, the information set is added to the first empty entry in the history table.
[0113] In some embodiments, the first missing entry comprises one of: a missing entry with a smallest index in the history table, or a missing entry with a largest index in the history table.
[0114] In some embodiments, the first empty entry with information set is placed as the last occupied entry in the history table.
[0115] In some embodiments, the last occupied entry includes one of the following: an occupied entry with a maximum index in the history table, or an occupied entry with a minimum index in the history table.
[0116] In some embodiments, if the history table is full, the entry in the history table is removed and the history table is updated by adding the information set to the additional empty entry in the history table.
[0117] In some embodiments, the entry has the smallest index in the history table.
[0118] In some embodiments, the updated history table is determined by HT'[i]=HT[i+1], where 0<=i<=N-2, where HT represents the history table, HT' represents the updated history table, HT'[N-1] stores the information set, and N represents the size of HT.
[0119] In some embodiments, the entry has the largest index in the history table.
[0120] In some embodiments, the updated history table is determined by HT'[i]=HT[i-1], where 1<=i<=N-1, where HT represents the history table, HT' represents the updated history table, HT'[0] stores the information set, and N represents the size of HT.
[0121] In some embodiments, updates to the history table are based on a first-in-first-out scheme.
[0122] In some embodiments, at least one of: whether to update the history table based on the information set, or how to update the history table is determined based on at least one similarity between the information set and at least one entry in the history table.
[0123] In some embodiments, if the similarity between the information set and the target entry is less than or equal to a threshold, the information set is not added to the history table.
[0124] In some embodiments, the target entry is moved to the beginning of the history table, and the entries in the history table preceding the target entry are moved back one position.
[0125] In some embodiments, the history table is updated in the following manner: HT'[0]=HT[k]; HT'[i]=HT[i-1], where 1<=i<=k; HT'[i]=HT[i], where i>k, where HT represents the history table, HT' represents the updated history table, HT[i], where i=0, 1... represents the entries in the history table, and HT[k] represents the target entry.
[0126] In some embodiments, the target entry is moved to the end position of the history table, and the entries in the history table before the target entry are moved forward by one position.
[0127] In some embodiments, the history table is updated as follows: HT’[N-1] = HT[k]; HT’[i] = HT[i+1], where k <= i <= N-2; HT’[i] = HT[i], where i < k, where HT represents the history table, HT’ represents the updated history table, HT[i], where i = 0, 1... represents the entries in the history table, HT[k] represents the target entry, and N represents the size of the history table.
[0128] In some embodiments, at least one of the following is determined based on the encoding / decoding information of the encoding / decoding unit and the information set: whether to update the history table based on the information set, or how to update the history table.
[0129] In some embodiments, the information set is of the encoding / decoding unit encoded using the history-based CCP (H-CCP) mode, and the information set is not added to the history table.
[0130] In some embodiments, the target entry in the history table is used by the encoding / decoding unit, the target entry is moved to the start position of the history table, and the entries in the history table before the target entry are moved backward by one position.
[0131] In some embodiments, the history table is updated as follows: HT’[0] = HT[k]; HT’[i] = HT[i-1], where 1 <= i <= k; HT’[i] = HT[i], where i > k, where HT represents the history table, HT’ represents the updated history table, HT[i], where i = 0, 1... represents the entries in the history table, and HT[k] represents the target entry.
[0132] In some embodiments, the target entry in the history table is used by the encoding / decoding unit, the target entry is moved to the end position of the history table, and the entries in the history table before the target entry are moved forward by one position.
[0133] In some embodiments, the history table is updated as follows: HT’[N-1] = HT[k]; HT’[i] = HT[i+1], where k <= i <= N-2; HT’[i] = HT[i], where i < k, where HT represents the history table, HT’ represents the updated history table, HT[i], where i = 0, 1... represents the entries in the history table, HT[k] represents the target entry, and N represents the size of the history table.
[0134] In some embodiments, the maximum size of the at least one history table is predetermined, for example, 5 or 6.
[0135] In some embodiments, a syntax element (SE) in the bitstream indicates a maximum size of a history table of at least one history table.
[0136] In some embodiments, the syntax element is at one of: block level, sequence level, group of pictures level, picture level, slice level, or slice group level.
[0137] In some embodiments, 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), adaptation parameter set (APS), slice header, or slice group header.
[0138] In some embodiments, a maximum size of the history table of the at least one history table is determined based on the codec information.
[0139] In some embodiments, the encoding information includes at least one of the following: a mode of the current video block, a mode of a neighboring block of the current video block, a mode of a luma block in a co-located region of the current video block, a mode of a luma block in a co-located region of a neighboring block of the current video block, a quantization parameter (QP), a slice type, a picture type, a width or height of a picture, a width or height of a block, or a reconstructed sample of the current video block.
[0140] In some embodiments, an entry of at least one history table includes CCP models for a plurality of chroma components.
[0141] In some embodiments, the plurality of chroma components includes a first chroma component and a second chroma component.For example, an entry of the HT may include models for more than one chroma component, such as Cb and Cr.
[0142] In some embodiments, an entry is selected for the current video block, and the first chroma component and the second chroma component of the current video block are encoded and decoded by the corresponding CCP model in the entry. If the entry is selected, the models for components Cb and Cr are applied to the two components respectively.
[0143] In some embodiments, an entry of at least one history table includes a CCP model for a single color component.
[0144] In some embodiments, the single color component comprises a first chroma component or a second chroma component.If an entry is selected, a model for a specific component (such as Cb or Cr) is applied to the specific component.
[0145] In some embodiments, an entry is selected for a current video block, and a corresponding color component of the current video block is encoded and decoded by the CCP model in the entry.
[0146] In some embodiments, multiple history tables of the CCP model are determined for multiple color components. b. In one example, different HTs can be constructed for different components.
[0147] In some embodiments, syntax elements in the bitstream 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 truncated unary code, or a truncated binary code, and the syntax elements include an indication or a flag.
[0148] In some embodiments, syntax elements are signed or unsigned.
[0149] In some embodiments, syntax elements in the bitstream are encoded or bypassed using at least one context model, the syntax elements comprising indications or flags.
[0150] In some embodiments, a syntax element is included in the bitstream based on a condition that a function associated with the syntax element is applicable.
[0151] In some embodiments, the syntax element is at at least one of: block level, sequence level, group of pictures level, picture level, slice level, or slice group level.
[0152] In some embodiments, 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), adaptation parameter set (APS), slice header, or slice group header.
[0153] In some embodiments, information about whether and / or how to apply the method is included in the bitstream.
[0154] In some embodiments, the information is indicated at one of: sequence level, group of pictures level, picture level, slice level, or slice group level.
[0155] 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), adaptation parameter set (APS), slice header or slice group header.
[0156] In some embodiments, the information is based on encoded information.
[0157] In some embodiments, the encoded information includes at least one of the following: block size, color format, single-tree partitioning or dual-tree partitioning, color component, slice type, or picture type.
[0158] In some embodiments, the method is used in a codec that requires chroma fusion.
[0159] According to other embodiments of the present disclosure, a non-transitory computer-readable recording medium is provided. The non-transitory computer-readable recording medium stores a bitstream of a video generated by a method performed by an apparatus for video processing. In the method, at least one cross-component prediction (CCP) model is determined for a current video block of the video based on at least one history table (HT) of CCP models. A bitstream is generated based on the at least one CCP model. Before or after encoding or decoding a video unit, the at least one history table of the CCP model is updated.
[0160] According to other embodiments of the present disclosure, a method for storing a video bitstream is provided. The method includes determining, based on at least one history table (HT) of cross-component prediction (CCP) models, at least one CCP model for a current video block of the video. A bitstream is generated based on the at least one CCP model. The bitstream is stored in a non-transitory computer-readable recording medium. Before or after encoding or decoding a video unit, the at least one history table of the CCP model is updated.
[0161] Implementations of the present disclosure may be described according to the following items, the features of which may be combined in any reasonable way.
[0162] Item 1. A method for video processing, comprising: determining, for conversion between a current video block of a video and a bitstream of the video, at least one cross-component prediction (CCP) model based on at least one history table (HT) of CCP models; and performing the conversion based on the at least one CCP model, wherein the at least one history table of the CCP model is updated before or after encoding or decoding a video unit.
[0163] Item 2. The method of Item 1, wherein the at least one CCP model comprises at least one of: a cross-component linear model (CCLM), a variant of CCLM, a convolutional cross-component model (CCCM), or a variant of CCCM.
[0164] Item 3. A method according to Item 1 or Item 2, wherein at least one history table is updated at the beginning of encoding and decoding the video unit including the current video block, the video unit including at least one of the following: a sequence, a picture, a slice, a slice, a sub-picture, a codec tree unit (CTU) or a CTU row.
[0165] Item 4. The method according to Item 3, wherein updating the at least one history table comprises one of: clearing the at least one history table; or filling the at least one history table with default entries.
[0166] Item 5. The method of Item 1 or Item 2, wherein the at least one history table is updated after encoding or decoding the video unit, the video unit comprising a codec unit (CU).
[0167] Item 6. The method of Item 5, wherein dual-tree coding is applied and the codec unit comprises a chroma codec unit.
[0168] Item 7. A method according to Item 5 or Item 6, wherein the codec unit is encoded and decoded using CCP mode.
[0169] Clause 8. The method according to any one of clauses 5 to 7, wherein a target history table to be updated of the at least one history table is based on a codec mode of the codec unit.
[0170] Item 9. A method according to Item 8, wherein the coding mode of the coding unit includes at least one of the following: a cross-component linear model (CCLM), a CCLM based on the top neighboring samples of the coding unit (CCLM-T), a CCLM based on the left neighboring samples of the coding unit (CCLM-L), a multi-model based CCLM (MM-CCLM), a multi-model based CCLM-T (MM-CCCM-T), a multi-model based CCLM-L (MM-CCCM-L), a gradient linear model (GLM), or a CCLM with slope adjustment, and wherein a set of CCP models and related information for classifying samples into multiple groups of CCP models are stored in a first history table of the at least one history table, and the first history table is associated with the CCLM.
[0171] Item 10. A method according to Item 8, wherein the coding mode of the coding unit includes at least one of the following: a convolutional cross-component model (CCCM), a CCCM based on top neighboring samples of the current video block (CCCM-T), a CCCM based on left neighboring samples of the current video block (CCCM-L), a multi-model based CCCM (MM-CCCM), a multi-model based CCCM-T (MM-CCCM-T), or a multi-model based CCCM-L (MM-CCCM-L), and wherein a set of CCP models and related information for classifying samples into multiple groups of CCP models are stored in a second history table of the at least one history table, the second history table being associated with the CCCM.
[0172] Item 11. A method according to any one of Items 5 to 10, wherein the codec unit is encoded and decoded using a cross-component linear model (CCLM) with slope adjustment, and the corresponding CCP model is adjusted by the slope adjustment before being used to update the at least one history table.
[0173] Item 12. A method according to any one of Items 5 to 11, wherein the at least one history table is updated by adding a set of information related to the at least one model used by the encoding and decoding unit to the at least one history table.
[0174] Item 13. The method according to Item 12, wherein the information set includes at least one of the following: the at least one CCP model, the number of the at least one CCP model, a threshold for classifying samples into multiple groups of CCP models, or slope adjustment information.
[0175] Clause 14. The method of clause 12 or clause 13, wherein a scheme for adding the set of information related to the at least one CCP model to the history table is based on whether the history table is full.
[0176] Clause 15. The method of clause 14, wherein if the history table is not full, the information set is added to a first empty entry in the history table.
[0177] Item 16. The method of Item 15, wherein the first missing entry comprises one of: a missing entry with a smallest index in the history table, or a missing entry with a largest index in the history table.
[0178] Item 17. The method of Item 15 or Item 16, wherein the first vacant entry with the information set is placed as the last occupied entry in the history table.
[0179] Item 18. The method of Item 17, wherein the last occupied entry comprises one of: an occupied entry with a maximum index in the history table, or an occupied entry with a minimum index in the history table.
[0180] Clause 19. The method of clause 14, wherein if the history table is full, an entry in the history table is removed and the history table is updated by adding the information set to an otherwise empty entry of the history table.
[0181] Item 20. The method of Item 19, wherein the entry has a minimum index in the history table.
[0182] Item 21. A method according to Item 20, wherein the updated history table is determined by HT'[i]=HT[i+1], where 0<=i<=N-2, where HT represents the history table, HT' represents the updated history table, HT'[N-1] stores the information set, and N represents the size of the HT.
[0183] Item 22. The method of Item 19, wherein the entry has a maximum index in the history table.
[0184] Item 23. A method according to Item 29, wherein the updated history table is determined by HT'[i]=HT[i-1], where 1<=i<=N-1, where HT represents the history table, HT' represents the updated history table, HT'[0] stores the information set, and N represents the size of the HT.
[0185] Clause 24. The method of clause 19, wherein the updating of the history table is based on a first-in-first-out scheme.
[0186] Item 25. A method according to any one of items 12 to 24, wherein at least one of the following is determined based on at least one similarity between the information set and at least one entry in the history table: whether to update the history table based on the information set, or how to update the history table.
[0187] Item 26. The method of Item 25, wherein if the similarity between the information set and the target item is less than or equal to a threshold, the information set is not added to the history table.
[0188] Item 27. The method of Item 26, wherein the target entry is moved to the beginning of the history table, and entries in the history table preceding the target entry are shifted back one position.
[0189] Item 28. The method according to Item 26 or Item 27, wherein the history table is updated as follows: HT’[0] = HT[k]; HT’[i] = HT[i - 1], where 1 <= i <= k; HT’[i] = HT[i], where i > k, where HT represents the history table, HT’ represents the updated history table, HT[i], where i = 0, 1... represents an entry in the history table, and HT[k] represents the target entry.
[0190] Item 29. The method according to Item 26, wherein the target entry is moved to the end position of the history table, and the entries in the history table before the target entry are moved forward by one position.
[0191] Item 30. The method according to Item 29, wherein the history table is updated as follows: HT’[N - 1] = HT[k]; HT’[i] = HT[i + 1], where k <= i <= N - 2; HT’[i] = HT[i], where i < k, where HT represents the history table, HT’ represents the updated history table, HT[i], where i = 0, 1... represents an entry in the history table, HT[k] represents the target entry, and N represents the size of the history table.
[0192] Item 31. The method according to any one of Items 12 to 24, wherein at least one of the following is determined based on the encoding / decoding information of the encoding / decoding unit and the information set: whether to update the history table based on the information set, or how to update the history table.
[0193] Item 32. The method according to Item 31, wherein the information set is of the encoding / decoding unit encoded using the history-based CCP (H-CCP) mode, and the information set is not added to the history table.
[0194] [[ID=IS]]Item 33. The method according to Item 32, wherein the target entry in the history table is used by the encoding / decoding unit, the target entry is moved to the start position of the history table, and the entries in the history table before the target entry are moved backward by one position.
[0195] Item 34. The method according to Item 33, wherein the history table is updated as follows: HT’[0] = HT[k]; HT’[i] = HT[i - 1], where 1 <= i <= k; HT’[i] = HT[i], where i > k, where HT represents the history table, HT’ represents the updated history table, HT[i], where i = 0, 1... represents an entry in the history table, and HT[k] represents the target entry.
[0196] Item 35. The method according to Item 32, wherein the target entry in the history table is used by the codec unit, the target entry is moved to the end position of the history table, and the entries in the history table before the target entry are moved forward by one position.
[0197] Item 36. The method according to Item 35, wherein the history table is updated as follows: HT’[N - 1] = HT[k]; HT’[i] = HT[i + 1], where k <= i <= N - 2; HT’[i] = HT[i], where i < k, where HT represents the history table, HT’ represents the updated history table, HT[i], where i = 0, 1... represents the entries in the history table, HT[k] represents the target entry, and N represents the size of the history table.
[0198] Item 37. The method according to any one of Items 1 to 36, wherein the maximum size of the history table of the at least one history table is predetermined.
[0199] Item 38. The method according to Item 37, wherein the maximum size is 5 or 6.
[0200] Item 39. The method according to any one of Items 1 to 36, wherein the syntax element (SE) in the bitstream indicates the maximum size of the history table of the at least one history table.
[0201] Item 40. The method according to Item 39, wherein the syntax element is at one of the following: block level, sequence level, group of pictures level, picture level, strip level or slice group level.
[0202] Item 41. The method according to Item 39 or Item 40, 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 group header.
[0203] Item 42. The method according to any one of Items 1 to 36, wherein the maximum size of the history table of the at least one history table is determined based on codec information.
[0204] Item 43. A method according to Item 42, wherein the encoding information includes at least one of the following: a mode of the current video block, a mode of a neighboring block of the current video block, a mode of a luma block in a co-located region of the current video block, a mode of a luma block in the co-located region of a neighboring block of the current video block, a quantization parameter (QP), a slice type, a picture type, a width or height of a picture, a width or height of a block, or a reconstructed sample of the current video block.
[0205] Item 44. A method according to any one of Items 1 to 43, wherein the entries of the at least one history table include CCP models for multiple chroma components.
[0206] Item 45. The method of Item 44, wherein the plurality of chrominance components comprises a first chrominance component and a second chrominance component.
[0207] Item 46. The method of Item 45, wherein the entry is selected for the current video block, and the first chroma component and the second chroma component of the current video block are encoded and decoded by a corresponding CCP model in the entry.
[0208] Item 47. The method of any one of Items 1 to 43, wherein an entry of the at least one history table comprises a CCP model for a single color component.
[0209] Item 48. The method of Item 47, wherein the single color component comprises a first chroma component or a second chroma component.
[0210] Item 49. The method of Item 47, wherein the entry is selected for the current video block, and a corresponding color component of the current video block is encoded and decoded by the CCP model in the entry.
[0211] Item 50. The method of any one of Items 1 to 43, wherein a plurality of history tables of the CCP model are determined for a plurality of color components.
[0212] Item 51. A method according to any one of Items 1 to 50, wherein the syntax elements in the bitstream 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 truncated unary code or a truncated binary code, and the syntax elements include an indication or a flag.
[0213] Item 52. The method of Item 51, wherein the syntax element is signed or unsigned.
[0214] Item 53. A method according to any one of items 1 to 52, wherein a syntax element in the bitstream is encoded or decoded using at least one context model or is bypassed, the syntax element comprising an indication or a flag.
[0215] Clause 54. A method according to any one of clauses 51 to 53, wherein the syntax element is included in the bitstream based on a condition that a function associated with the syntax element is applicable.
[0216] Item 55. A method according to any one of Items 51 to 54, wherein the syntax element is at at least one of: block level, sequence level, group of pictures level, picture level, slice level or slice group level.
[0217] Item 56. A method according to any one of Items 51 to 55, wherein the syntax element is in at least one of the following codec structures: a codec tree unit (CTU), a codec unit (CU), a transform unit (TU), a prediction unit (PU), a codec tree block (CTB), a codec block (CB), a transform block (TB), a prediction block (PB), a sequence header, a picture header, a sequence parameter set (SPS), a video parameter set (VPS), a decoding parameter set (DPS), decoding capability information (DCI), a picture parameter set (PPS), an adaptation parameter set (APS), a slice header or a slice group header.
[0218] Item 57. A method according to any of items 1 to 56, wherein information about whether and / or how to apply the method is included in the bitstream.
[0219] Item 58. The method of Item 57, wherein the information is indicated at one of: sequence level, group of pictures level, picture level, slice level, or slice group level.
[0220] Item 59. A method according to Item 57 or Item 58, wherein the information is indicated in at least one of the following codec structures: a codec tree unit (CTU), a codec unit (CU), a transform unit (TU), a prediction unit (PU), a codec tree block (CTB), a codec block (CB), a transform block (TB), a prediction block (PB), a sequence header, a picture header, a sequence parameter set (SPS), a video parameter set (VPS), a decoding parameter set (DPS), decoding capability information (DCI), a picture parameter set (PPS), an adaptation parameter set (APS), a slice header or a slice group header.
[0221] Item 60. A method according to any one of Items 57 to 59, wherein the information is based on coded information.
[0222] Item 61. The method of Item 60, wherein the coded information comprises at least one of: block size, color format, single tree partitioning or dual tree partitioning, color component, slice type, or picture type.
[0223] Item 62. A method according to any one of Items 1 to 61, wherein the method is used in a codec tool requiring chroma fusion.
[0224] Item 63. The method of any one of Items 1 to 62, wherein the converting comprises encoding the current video block into the bitstream.
[0225] Item 64. The method of any one of Items 1 to 62, wherein the converting comprises decoding the current video block from the bitstream.
[0226] Item 65. An apparatus for video processing, comprising a processor and non-volatile 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 64.
[0227] Item 66. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method of any one of Items 1 to 64.
[0228] Item 67. A non-transitory computer-readable recording medium storing a bitstream of a video generated by a method performed by an apparatus for video processing, wherein the method comprises: determining at least one cross-component prediction (CCP) model for a current video block of the video based on at least one history table (HT) of CCP models; and generating the bitstream based on the at least one CCP model, wherein the at least one history table of CCP models is updated before or after encoding or decoding a video unit.
[0229] Item 68. A method for storing a bitstream of a video, comprising: determining at least one cross-component prediction (CCP) model for a current video block of the video based on at least one history table (HT) of CCP models; generating the bitstream based on the at least one CCP model; and storing the bitstream in a non-transitory computer-readable recording medium, wherein the at least one history table of CCP models is updated before or after encoding or decoding a video unit. Example device
[0230] Figure 36A block diagram of a computing device 3600 in which various embodiments of the present disclosure may be implemented is shown. The computing device 3600 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).
[0231] It should be understood that Figure 36 The computing device 3600 shown in FIG. 3 is for illustrative purposes only and is not intended to in any way imply any limitation on the functionality and scope of the disclosed embodiments.
[0232] like Figure 36 As shown, computing device 3600 includes a general computing device 3600. Computing device 3600 may include at least one or more processors or processing units 3610, memory 3620, storage unit 3630, one or more communication units 3640, one or more input devices 3650, and one or more output devices 3660.
[0233] In some embodiments, computing device 3600 can be implemented as any user terminal or server terminal with computing capability. A server terminal can be a server, a large computing device, etc. provided by a service provider. A user terminal can be, for example, any type of mobile terminal, fixed terminal, or portable terminal, including a mobile phone, a station, a unit, a device, a multimedia computer, a multimedia tablet computer, an Internet node, a communicator, a desktop computer, a laptop computer, a notebook computer, a netbook computer, a tablet computer, a personal communication system (PCS) device, a personal navigation device, a personal digital assistant (PDA), an audio / video player, a digital camera / camcorder, a positioning device, a television receiver, a radio broadcast receiver, an electronic book device, a gaming device, or any combination thereof, and includes accessories and peripherals of these devices, or any combination thereof. It is conceivable that computing device 3600 can support any type of interface to a user (such as a "wearable" circuit device, etc.).
[0234] The processing unit 3610 may be a physical processor or a virtual processor and may implement various processes based on a program stored in the memory 3620. In a multi-processor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capabilities of the computing device 3600. The processing unit 3610 may also be referred to as a central processing unit (CPU), a microprocessor, a controller, or a microcontroller.
[0235] The computing device 3600 typically includes various computer storage media. Such media can be any media accessible by the computing device 3600, including but not limited to volatile media and non-volatile media, or removable media and non-removable media. The memory 3620 can be a volatile memory (e.g., registers, cache, random access memory (RAM)), a non-volatile memory (such as read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM) or flash memory), or any combination thereof. The storage unit 3630 can be any removable or non-removable medium and can include machine-readable media, such as memory, a flash drive, a disk, or other media that can be used to store information and / or data and can be accessed in the computing device 3600.
[0236] The computing device 3600 may also include additional removable / non-removable storage media, volatile / non-volatile storage media. Figure 36 Although not shown, a magnetic disk drive for reading from and / or writing to a removable nonvolatile magnetic disk, and an optical disk drive for reading from and / or writing to a removable nonvolatile optical disk may be provided. In this case, each drive may be connected to a bus (not shown) via one or more data medium interfaces.
[0237] The communication unit 3640 communicates with another computing device via a communication medium. In addition, the functions of the components in the computing device 3600 can be implemented by a single computing cluster or multiple computing machines communicating via a communication connection. Thus, the computing device 3600 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.
[0238] Input device 3650 may be one or more of various input devices, such as a mouse, keyboard, trackball, voice input device, etc. Output device 3660 may be one or more of various output devices, such as a display, speaker, printer, etc. Computing device 3600 may also communicate with one or more external devices (not shown) via communication unit 3640, such as storage devices and display devices, one or more devices that enable a user to interact with computing device 3600, or any device that enables computing device 3600 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication may occur via an input / output (I / O) interface (not shown).
[0239] In some embodiments, some or all components of the computing device 3600 may also be arranged in a cloud computing architecture rather than being integrated into a single device. In a cloud computing architecture, components can be provided remotely and work together to implement the functionality described in this disclosure. In some embodiments, cloud computing provides computing, software, data access, and storage services without requiring the end user to know the physical location or configuration of the systems or hardware providing these services. In various embodiments, cloud computing uses appropriate protocols to provide services via a wide area network (such as the Internet). For example, a cloud computing provider provides applications over a wide area network that can be accessed through a web browser or any other computing component. The software or components of the cloud computing architecture and the corresponding data can be stored on servers in a remote location. Computing resources in a cloud computing environment can be consolidated or distributed across locations in remote data centers. Cloud computing infrastructure can provide services through shared data centers, although they appear to be a single access point for users. Therefore, cloud computing architecture can be used to provide the components and functionality described herein from a service provider in a remote location. Alternatively, the components and functionality described herein can be provided from a conventional server or installed directly or otherwise on a client device.
[0240] In an embodiment of the present disclosure, the computing device 3600 may be used to implement video encoding / decoding. The memory 3620 may include one or more video encoding / decoding modules 3625 having one or more program instructions. These modules can be accessed and executed by the processing unit 3610 to perform the functions of the various embodiments described herein.
[0241] In an example embodiment performing video encoding, an input device 3650 may receive video data as input 3670 to be encoded. The video data may be processed, for example, by a video codec module 3625 to generate an encoded bitstream. The encoded bitstream may be provided as output 3680 via an output device 3660.
[0242] In an example embodiment performing video decoding, an input device 3650 may receive an encoded bitstream as input 3670. The encoded bitstream may be processed, for example, by a video codec module 3625 to generate decoded video data. The decoded video data may be provided as output 3680 via an output device 3660.
[0243] Although the present disclosure has been specifically shown and described with reference to the preferred embodiments of the present disclosure, it will be understood by those skilled in the art that various changes in form and details may be made without departing from the spirit and scope of the present application as defined by the appended claims. Such changes are intended to be encompassed by the scope of the present application. Therefore, the foregoing description of the embodiments of the present application is not intended to be limiting.
Claims
1. A method for video processing, comprising: For conversion between a current video block of a video and a bitstream of the video, determining at least one cross-component prediction (CCP) model for the current video block based on at least one history table (HT) of CCP models; and performing said transforming based on said at least one CCP model, Before or after encoding or decoding the video unit, the at least one history table of the CCP model is updated.
2. The method of claim 1 , wherein the at least one CCP model comprises at least one of the following: Cross-Component Linear Model (CCLM), A variant of CCLM, Convolutional Cross-Component Model (CCCM), or A variant of CCCM.
3. The method of claim 1 or claim 2, wherein the at least one history table is updated at the beginning of encoding and decoding the video unit including the current video block, the video unit comprising at least one of the following: a sequence, a picture, a slice, a sub-picture, a codec tree unit (CTU), or a CTU row.
4. The method of claim 3 , wherein updating the at least one history table comprises one of: clearing the at least one history table; or The at least one history table is populated with default entries.
5. The method of claim 1 or claim 2, wherein the at least one history table is updated after encoding or decoding the video unit, the video unit comprising a codec unit (CU). The method of claim 5 , wherein dual-tree codec is applied and the codec unit comprises a chroma codec unit. The method according to claim 5 or claim 6, wherein the codec unit is coded using CCP mode. 8 . The method according to claim 5 , wherein a target history table to be updated of the at least one history table is based on a coding mode of the coding unit.
9. The method according to claim 8, wherein the encoding and decoding mode of the encoding and decoding unit includes at least one of the following: Cross-Component Linear Model (CCLM), CCLM based on the top neighboring samples of the codec unit (CCLM-T), CCLM based on the left neighboring samples of the codec unit (CCLM-L), Multi-model based CCLM (MM-CCLM), Multi-model based CCLM-T (MM-CCCM-T), Multi-model based CCLM-L (MM-CCCM-L), Gradient Linear Model (GLM), or CCLM with slope adjustment, and The set of CCP models and related information for classifying the samples into multiple groups of CCP models are stored in a first history table of the at least one history table, and the first history table is associated with the CCLM.
10. The method according to claim 8, wherein the encoding and decoding mode of the encoding and decoding unit comprises at least one of the following: Convolutional Cross-Component Model (CCCM), Based on the CCCM of the top neighboring samples of the current video block (CCCM-T), Based on the CCCM of the left neighboring samples of the current video block (CCCM-L), Multi-model based CCCM (MM-CCCM), Multi-model based CCCM-T (MM-CCCM-T), or Based on the multi-model CCCM-L (MM-CCCM-L), and The set of CCP models and related information for classifying the samples into multiple groups of CCP models are stored in a second history table of the at least one history table, and the second history table is associated with the CCCM.
11. The method according to any one of claims 5 to 10, wherein the codec unit is encoded and decoded using a cross-component linear model (CCLM) with slope adjustment, and the corresponding CCP model is adjusted by the slope adjustment before being used to update the at least one history table.
12. The method according to any one of claims 5 to 11, wherein the at least one history table is updated by: An information set related to the at least one model used by the encoding and decoding unit is added to the at least one history table.
13. The method according to claim 12, wherein the information set comprises at least one of the following: the at least one CCP model, the number of the at least one CCP model, The threshold used to classify samples into groups of CCP models, or Slope adjustment information.
14. A method according to claim 12 or claim 13, wherein a scheme for adding the set of information related to the at least one CCP model to the history table is based on whether the history table is full.
15. The method of claim 14, wherein if the history table is not full, adding the information set to a first empty entry in the history table.
16. The method of claim 15, wherein the first vacant entry comprises one of: the missing entry in the history table with the smallest index, or The history table has a vacant entry with the largest index.
17. A method according to claim 15 or claim 16, wherein the first vacant entry with the information set is placed as the last occupied entry in the history table.
18. The method of claim 17, wherein the last occupied entry comprises one of: the occupied entry with the largest index in the history table, or The occupied entry in the history table has the smallest index.
19. The method of claim 14, wherein if the history table is full, entries in the history table are removed and the history table is updated by adding the information set to an otherwise empty entry of the history table.
20. The method of claim 19, wherein the entry has a minimum index in the history table.
21. The method according to claim 20, wherein the updated history table is determined by HT'[i]=HT[i+1], where 0<=i<=N-2, where HT represents the history table, HT' represents the updated history table, HT'[N-1] stores the information set, and N represents the size of the HT.
22. The method of claim 19, wherein the entry has a maximum index in the history table.
23. The method according to claim 29, wherein the updated history table is determined by HT'[i]=HT[i-1], where 1<=i<=N-1, where HT represents the history table, HT' represents the updated history table, HT'[0] stores the information set, and N represents the size of the HT. The method of claim 19 , wherein the updating of the history table is based on a first-in-first-out scheme.
25. The method according to any one of claims 12 to 24, wherein at least one of the following is determined based on at least one similarity between the information set and at least one entry in the history table: whether to update the history table based on the information set, or how to update the history table.
26. The method of claim 25, wherein if the similarity between the information set and the target entry is less than or equal to a threshold, the information set is not added to the history table.
27. The method of claim 26, wherein the target entry is moved to the beginning of the history table, and entries in the history table preceding the target entry are moved backward by one position.
28. The method according to claim 26 or claim 27, wherein the history table is updated in the following manner: HT'[0]=HT[k]; HT'[i]=HT[i-1], where 1<=i<=k; HT'[i]=HT[i], where i>k, HT represents the history table, HT' represents the updated history table, HT[i], where i=0, 1, ... represents an entry in the history table, and HT[k] represents the target entry.
29. The method of claim 26, wherein the target entry is moved to an end position of the history table, and entries in the history table preceding the target entry are moved forward by one position.
30. The method according to claim 29, wherein the history table is updated in the following manner: HT'[N-1]=HT[k]; HT'[i]=HT[i+1], where k<=i<=N-2; HT'[i]=HT[i], where i <k, Wherein HT represents the history table, HT' represents the updated history table, HT[i], where i=0, 1, ... represents an entry in the history table, HT[k] represents the target entry, and N represents the size of the history table.
31. The method according to any one of claims 12 to 24, wherein at least one of the following is determined based on the codec information of the codec unit and the information set: whether to update the history table based on the information set, or how to update the history table.
32. The method of claim 31, wherein the information set is of the codec that was coded using a history-based CCP (H-CCP) mode, and the information set is not added to the history table.
33. The method according to claim 32, wherein a target entry in the history table is used by the codec unit, the target entry is moved to the beginning of the history table, and entries in the history table preceding the target entry are moved backward by one position.
34. The method according to claim 33, wherein the history table is updated in the following manner: HT'[0]=HT[k]; HT'[i]=HT[i-1], where 1<=i<=k; HT'[i]=HT[i], where i>k, HT represents the history table, HT' represents the updated history table, HT[i], where i=0, 1, ... represents an entry in the history table, and HT[k] represents the target entry.
35. The method of claim 32, wherein a target entry in the history table is used by the codec unit, the target entry is moved to an end position of the history table, and entries in the history table preceding the target entry are moved forward by one position.
36. The method according to claim 35, wherein the history table is updated in the following manner: HT'[N-1]=HT[k]; HT'[i]=HT[i+1], where k<=i<=N-2; HT'[i]=HT[i], where i <k, Wherein HT represents the history table, HT' represents the updated history table, HT[i], where i=0, 1, ... represents an entry in the history table, HT[k] represents the target entry, and N represents the size of the history table.
37. The method according to any one of claims 1 to 36, wherein a maximum size of a history table of the at least one history table is predetermined.
38. The method of claim 37, wherein the maximum dimension is 5 or 6.
39. The method according to any one of claims 1 to 36, wherein a syntax element (SE) in the bitstream indicates a maximum size of a history table of the at least one history table.
40. The method of claim 39, wherein the syntax element is at one of: block level, sequence level, group of pictures level, picture level, slice level, or slice group level.
41. The method of claim 39 or claim 40, wherein the syntax element is in at least one of the following codec structures: a codec tree unit (CTU), a codec unit (CU), a transform unit (TU), a prediction unit (PU), a codec tree block (CTB), a codec block (CB), a transform block (TB), a prediction block (PB), a sequence header, a picture header, a sequence parameter set (SPS), a video parameter set (VPS), a decoding parameter set (DPS), decoding capability information (DCI), a picture parameter set (PPS), an adaptation parameter set (APS), a slice header, or a slice group header.
42. The method according to any one of claims 1 to 36, wherein a maximum size of the at least one history table is determined based on codec information.
43. The method of claim 42, wherein the coded information comprises at least one of: the mode of the current video block, the modes of the neighboring blocks of the current video block, the mode of the luma blocks in the co-located region of the current video block, a pattern of luma blocks in the co-located region of neighboring blocks of the current video block, Quantization parameter (QP), Strip type, Image type, The width or height of the image, the width or height of the block, or The reconstructed samples of the current video block.
44. The method of any one of claims 1 to 43, wherein entries of the at least one history table include CCP models for a plurality of chroma components.
45. The method of claim 44, wherein the plurality of chroma components comprises a first chroma component and a second chroma component.
46. The method of claim 45, wherein the entry is selected for the current video block, and the first chroma component and the second chroma component of the current video block are encoded and decoded by a corresponding CCP model in the entry.
47. A method according to any one of claims 1 to 43, wherein an entry of the at least one history table comprises a CCP model for a single color component.
48. The method of claim 47, wherein the single color component comprises a first chrominance component or a second chrominance component.
49. The method of claim 47, wherein the entry is selected for the current video block, and a corresponding color component of the current video block is encoded and decoded by the CCP model in the entry.
50. The method of any one of claims 1 to 43, wherein a plurality of history tables of the CCP model are determined for a plurality of color components.
51. A method according to any one of claims 1 to 50, wherein the syntax elements in the bitstream 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 truncated unary code or a truncated binary code, and the syntax elements include an indication or a flag.
52. The method of claim 51, wherein the syntax elements are signed or unsigned.
53. The method according to any one of claims 1 to 52, wherein syntax elements in the bitstream are encoded or decoded using at least one context model or are bypass encoded, the syntax elements comprising indications or flags.
54. The method of any one of claims 51 to 53, wherein the syntax element is included in the bitstream based on a condition that a function associated with the syntax element is applicable.
55. The method of any one of claims 51 to 54, wherein the syntax element is at at least one of: block level, sequence level, group of pictures level, picture level, slice level, or slice group level.
56. The method of any one of claims 51 to 55, wherein the syntax element is in at least one of the following codec structures: a codec tree unit (CTU), a codec unit (CU), a transform unit (TU), a prediction unit (PU), a codec tree block (CTB), a codec block (CB), a transform block (TB), a prediction block (PB), a sequence header, a picture header, a sequence parameter set (SPS), a video parameter set (VPS), a decoding parameter set (DPS), decoding capability information (DCI), a picture parameter set (PPS), an adaptation parameter set (APS), a slice header, or a slice group header.
57. The method according to any one of claims 1 to 56, wherein information on whether and / or how to apply the method is included in the bitstream.
58. The method of claim 57, wherein the information is indicated at one of: sequence level, group of pictures level, picture level, slice level, or slice group level.
59. The method of claim 57 or claim 58, wherein the information is indicated in at least one of the following codec structures: a codec tree unit (CTU), a codec unit (CU), a transform unit (TU), a prediction unit (PU), a codec tree block (CTB), a codec block (CB), a transform block (TB), a prediction block (PB), a sequence header, a picture header, a sequence parameter set (SPS), a video parameter set (VPS), a decoding parameter set (DPS), decoding capability information (DCI), a picture parameter set (PPS), an adaptation parameter set (APS), a slice header, or a slice group header.
60. The method of any one of claims 57 to 59, wherein the information is based on coded information.
61. The method of claim 60, wherein the coded information comprises at least one of: block size, color format, single-tree partitioning or dual-tree partitioning, color component, slice type, or picture type.
62. The method according to any one of claims 1 to 61, wherein the method is used in a codec requiring chroma fusion.
63. The method of any one of claims 1 to 62, wherein the converting comprises encoding the current video block into the bitstream.
64. The method of any one of claims 1 to 62, wherein the converting comprises decoding the current video block from the bitstream.
65. An apparatus for video processing, comprising a processor and non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method of any one of claims 1 to 64.
66. A non-transitory computer-readable storage medium storing instructions, the instructions causing a processor to execute the method according to any one of claims 1 to 64.
67. A non-transitory computer-readable recording medium storing a bitstream of a video generated by a method performed by an apparatus for video processing, wherein the method comprises: determining, based on at least one history table (HT) of cross-component prediction (CCP) models, at least one CCP model for a current video block of the video; as well as generating the bitstream based on the at least one CCP model, Before or after encoding or decoding the video unit, the at least one history table of the CCP model is updated.
68. A method for storing a bitstream of a video, comprising: determining, based on at least one history table (HT) of cross-component prediction (CCP) models, at least one CCP model for a current video block of the video; generating the bitstream based on the at least one CCP model; as well as storing the bitstream in a non-transitory computer-readable recording medium, Before or after encoding or decoding the video unit, the at least one history table of the CCP model is updated.