Method and device for video processing and medium
By determining the candidate list of component prediction model, the problem of insufficient encoding and decoding efficiency of existing video encoding and decoding technologies is solved, and more efficient encoding and decoding effects are achieved.
Patent Information
- Application Number
- CN202480006569.0
- 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-08
AI Technical Summary
The encoding and decoding efficiency of existing video encoding and decoding technologies needs to be further improved.
By determining the list of component prediction (CCP) model candidates, the target CCP model is determined based on the list of CCP model candidates, and by comparing the candidates or CCP information in the list, it is determined whether to add another entry, thereby improving the encoding and decoding efficiency.
Improve the encoding and decoding efficiency and encoding and decoding effectiveness of video processing.
Smart Images

Figure CN120457692A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure relate generally to video processing techniques, and more particularly, to cross-component prediction model candidate lists. 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 proposed. The method includes: determining a list of component prediction (CCP) model candidates for conversion between a current video block of a video and a bitstream of the video; determining a target CCP model for the current video block based on the list of CCP model candidates; and performing conversion based on the target CCP model, wherein whether another candidate or another entry of CCP information is to be added to the list is based on at least one of the following: a first comparison between an existing candidate in the list and another candidate, or a second comparison between an existing entry of CCP information in the list and another entry. The method according to the first aspect of the present disclosure determines the CCP model candidate list based on the comparison between another candidate in the list and the existing candidate. Coding efficiency and coding effectiveness can therefore be improved.
[0005] In a second aspect, another method for video processing is provided. The method includes: determining a history table of cross-component prediction (CCP) models or a list of CCP model candidates for conversion between a current video block of a video and a bitstream of the video; determining a target CCP model for the current video block based on the history table or list; and performing conversion based on the target CCP model. The method according to the second aspect of the present disclosure uses CCP models from the CCP model history table or the CCP model candidate list. Codec efficiency and codec effectiveness can thus be improved.
[0006] In a third 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 or the second aspect of the present disclosure.
[0007] In a fourth aspect, a non-transitory computer-readable storage medium is provided, wherein the non-transitory computer-readable storage medium stores instructions for causing a processor to execute the method according to the first aspect or the second aspect of the present disclosure.
[0008] In a fifth 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 a video processing device. The method includes: determining a list of component prediction (CCP) model candidates; determining a target CCP model for a current video block of the video based on the list of CCP model candidates; and generating a bitstream based on the target CCP model, wherein whether another candidate or another entry of CCP information is to be added to the list is based on at least one of: a first comparison between an existing candidate in the list and another candidate, or a second comparison between an existing entry of CCP information in the list and another entry.
[0009] In a sixth aspect, a method for storing a bitstream of a video is provided. The method includes determining a list of component prediction (CCP) model candidates; determining a target CCP model for a current video block of the video based on the list of CCP model candidates; generating a bitstream based on the target CCP model; and storing the bitstream in a non-transitory computer-readable recording medium, wherein whether another candidate or another entry of CCP information is to be added to the list is based on at least one of: a first comparison between an existing candidate in the list and another candidate, or a second comparison between an existing entry of CCP information in the list and another entry.
[0010] In a seventh 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 a video processing device. The method includes: determining a history table of cross-component prediction (CCP) models or a list of CCP model candidates; determining a target CCP model for a current video block of the video based on the history table or list; and generating a bitstream based on the target CCP model.
[0011] In an eighth aspect, a method for storing a bitstream of a video is provided. The method includes: determining a history table of cross-component prediction (CCP) models or a list of CCP model candidates; determining a target CCP model for a current video block of the video based on the history table or list; generating a bitstream based on the target CCP model; and storing the bitstream in a non-transitory computer-readable recording medium.
[0012] 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
[0013] 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.
[0014] Figure 1 A block diagram illustrating an example video encoding and decoding system according to some embodiments of the present disclosure is shown;
[0015] Figure 2 shows a block diagram of a first example video encoder according to some embodiments of the present disclosure;
[0016] Figure 3 A block diagram illustrating an example video decoder according to some embodiments of the present disclosure is shown;
[0017] Figure 4 The nominal vertical and horizontal positions of the 4:2:2 luminance and chrominance samples in the picture are shown;
[0018] Figure 5 An example of an encoder block diagram is shown;
[0019] Figure 6 67 intra prediction modes are shown;
[0020] Figure 7 The reference samples used for wide-angle intra prediction are shown;
[0021] Figure 8 The discontinuity problem is shown when the orientation exceeds 45°;
[0022] Figure 9 The positions of the sample points used to derive α and β are shown;
[0023] Figure 10 An example of classifying neighboring points into two groups is shown;
[0024] Figure 11A is a diagram showing the definition of sample points used by PDPC applied to a diagonal top-right mode;
[0025] Figure 11B is a diagram showing the definition of sample points used by PDPC applied to a diagonal bottom-left mode;
[0026] Figure 11C is a diagram showing the definition of sample points used by PDPC applied to an adjacent diagonal upper right pattern;
[0027] Figure 11Dis a diagram showing the definition of sample points used by PDPC applied to an adjacent diagonal lower left pattern;
[0028] Figure 12 is a schematic diagram illustrating a gradient method for non-vertical / non-horizontal patterns;
[0029] 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;
[0030] Figure 14 is a schematic diagram showing a flow chart of the current PDPC and the proposed PDPC;
[0031] Figure 15 is a schematic diagram showing neighboring blocks (L, A, BL, AR, AL) used in deriving a common MPM list;
[0032] Figure 16 is a schematic diagram showing an example of the proposed intra reference mapping;
[0033] Figure 17 is a diagram showing an example of four reference rows adjacent to a prediction block;
[0034] Figure 18A is a diagram showing an example of sub-partitioning for 4×8 CU and 8×4 CU;
[0035] Figure 18B is a diagram showing an example of sub-partitioning for a CU other than 4×8, 8×4, and 4×4;
[0036] Figure 19 is a schematic diagram illustrating a matrix-weighted intra prediction process;
[0037] Figure 20 is a schematic diagram showing target points, template points, and reference points of the template used in DIMD;
[0038] Figure 21 is a schematic diagram illustrating the proposed intra-block decoding process;
[0039] Figure 22 is a schematic diagram showing the calculation of HoG from a template with a width of 3 pixels;
[0040] Figure 23 is a schematic diagram illustrating prediction fusion by weighted averaging of two HoG modes and a plane;
[0041] Figure 24 is a schematic diagram showing the spatial portion of a convolutional filter;
[0042] Figure 25 is a schematic diagram showing a reference area (with its filling) used for deriving filter coefficients;
[0043] Figure 26 is a schematic diagram showing four Sobel-based gradient modes for GLM;
[0044] Figure 27 is a schematic diagram showing spatial sample points used for GL-CCCM;
[0045] Figure 28 is a schematic diagram showing non-downsampled luminance samples;
[0046] Figure 29 The spatial GPM candidates are shown;
[0047] Figure 30 A GPM template is shown;
[0048] Figure 31 GPM mixing is shown;
[0049] Figure 32 Binarization of cross-component prediction modes in ECM is shown. Figure 32 "CCLM" can be replaced by "CCCM";
[0050] Figure 33 The possible locations of the candidate regions are shown;
[0051] Figures 34A to 34C Possible templates are shown;
[0052] Figure 35 A flowchart of a method for video processing according to an embodiment of the present disclosure is shown;
[0053] Figure 36 A flowchart of a method for video processing according to an embodiment of the present disclosure is shown;
[0054] Figure 37 A block diagram is shown of a computing device in which various embodiments of the present disclosure may be implemented.
[0055] Throughout the drawings, same or similar reference numbers generally refer to same or similar elements. DETAILED DESCRIPTION
[0056] 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.
[0057] 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.
[0058] 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.
[0059] 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.
[0060] 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
[0061] Figure 1 is 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.
[0062] 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.
[0063] 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.
[0064] 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.
[0065] 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.
[0066] Figure 2 is 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.
[0067] 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.
[0068] 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.
[0069] 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.
[0070] 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.
[0071] 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.
[0072] 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).
[0073] 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.
[0074] 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.
[0075] 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.
[0076] 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.
[0077] 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.
[0078] 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.
[0079] 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.
[0080] 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.
[0081] 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.
[0082] 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.
[0083] 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.
[0084] 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.
[0085] 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.
[0086] 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.
[0087] After reconstruction unit 212 reconstructs the video block, a loop filtering operation may be performed to reduce video blockiness artifacts in the video block.
[0088] 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.
[0089] 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.
[0090] 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.
[0091] 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.
[0092] 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.
[0093] 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.
[0094] 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.
[0095] 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.
[0096] 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.
[0097] 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.
[0098] 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 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 NotSplit (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 neighboring samples into two groups is shown. The threshold is calculated as the average value of neighboring 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 upper-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, 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·bary 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 from the set S0, S1, S 2. One of the two is obtained. 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 i∈{0,…,15} (each matrix has 16 rows and 4 columns) and 16 offset vectors i∈{0,…,16} (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 i∈{0,…,7} (each matrix has 16 rows and 8 columns) and 8 compensation vectors i∈{0,…,7} (the size of each compensation vector is 16). Set S2 consists of 6 matrices i∈{0,…,5} (each matrix has 64 rows and 8 columns) and 6 compensation vectors of size 64 i∈{0,…,5}. 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 patterns is 32, for sizeId=1, the number of MIP patterns is 16, and for sizeId=2, the number of MIP patterns is 12. 2.16. 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 coding 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 convolution 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, one 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, 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 using 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 If 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 k denote 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 the 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.
[0099] 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.
[0100] At block 3510, a list of component prediction (CCP) model candidates is determined. At block 3520, a target CCP model for the current video block is determined based on the list of CCP model candidates. At block 3530, a conversion is performed based on the target CCP model. In constructing the list of CCP model candidates, whether another candidate or another entry of CCP information is to be added to the list is based on at least one of: a first comparison between an existing candidate in the list and another candidate, or a second comparison between an existing entry of CCP information in the list and another entry.
[0101] Method 3500 enables determining a list of CCP model candidates based on a comparison between another candidate and an existing candidate. In this way, codec efficiency and codec effectiveness can be improved.
[0102] In some embodiments, if the difference between another candidate and an existing candidate is less than or equal to a threshold, or if the other candidate is identical to an existing candidate, then the other candidate is not added to the list. In one example, if a potential candidate is not placed in the list, it can be compared to at least one existing candidate in the list. For example, if a potential candidate is identical to or similar to an existing candidate, then it is not placed in the list.
[0103] In some embodiments, the other candidate is different from the existing candidate based on at least one of the following: the CCP type of the other candidate is different from the CCP type of the existing candidate, the number of CCP models in the other candidate is different from the number of CCP models in the existing candidate, at least one first threshold for a set of CCP models in the other candidate is different from at least one second threshold for a set of CCP models in the existing candidate, at least one model in the other candidate is different from at least one model in the existing candidate, the luma sample offset of the other candidate is different from the luma sample offset of the existing candidate, or the sample position displacement of the other candidate is different from the sample position displacement of the existing candidate.
[0104] In some embodiments, the luma sample offset based on another candidate is different from the luma sample offset of the existing candidate, the another candidate is different from the existing candidate, and wherein the CCP type of the another candidate includes at least one of the following: convolutional cross-component model (CCCM), gradient and position-based convolutional cross-component model (GL-CCCM), gradient linear model (GLM), or CCCM with non-subsampled luma samples.
[0105] In some embodiments, the another candidate is different from the existing candidate based on a sample point position displacement of the another candidate being different from the sample point position displacement of the existing candidate, and wherein the CCP type of the another candidate comprises a gradient and position-based convolutional cross-component model (GL-CCCM).
[0106] In some embodiments, if the difference between another entry and an existing entry is less than or equal to a threshold, or if the other entry is identical to an existing entry, then the other entry is not added to the list. In one example, if a potential entry of CCP information is placed in a history-based table, it may be compared to at least one existing entry in the list. For example, if the potential entry is identical or similar to an existing entry, then it is not placed in the list.
[0107] In some embodiments, the other entry is different from the existing entry based on at least one of: a CCP type of the other entry is different from the CCP type of the existing entry, a number of CCP models in the other entry is different from the number of CCP models in the existing entry, at least one first threshold for a set of CCP models in the other entry is different from at least one second threshold for a set of CCP models in the existing entry, at least one model in the other entry is different from at least one model in the existing entry, a luma sample offset of the other entry is different from the luma sample offset of the existing entry, or a sample position displacement of the other entry is different from the sample position displacement of the existing entry.
[0108] In some embodiments, the luma sample offset based on another entry is different from the luma sample offset of the existing entry, the another entry is different from the existing entry, and wherein the CCP type of the another entry includes at least one of the following: convolutional cross-component model (CCCM), gradient and position-based convolutional cross-component model (GL-CCCM), gradient linear model (GLM), or CCCM with non-subsampled luma samples.
[0109] In some embodiments, the sample position displacement based on another entry is different from the sample position displacement of the existing entry, the another entry is different from the existing entry, and wherein the CCP type of the another entry comprises a gradient and position-based convolutional cross-component model (GL-CCCM).
[0110] 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, a list of component prediction (CCP) model candidates is determined. Based on the list of CCP model candidates, a target CCP model for a current video block of the video is determined. A bitstream is generated based on the target CCP model. Whether another candidate or another entry of CCP information is added to the list is based on at least one of the following: a first comparison between an existing candidate in the list and another candidate, or a second comparison between an existing entry of CCP information in the list and another entry.
[0111] According to some embodiments of the present disclosure, a method for storing a bitstream of a video is provided. In the method, a list of component prediction (CCP) model candidates is determined. Based on the list of CCP model candidates, a target CCP model is determined for a current video block of the video. A bitstream is generated based on the target CCP model. Whether another candidate or another entry of CCP information is added to the list is based on at least one of: a first comparison between an existing candidate in the list and another candidate, or a second comparison between an existing entry of CCP information in the list and another entry. The bitstream is stored in a non-transitory computer-readable recording medium.
[0112] Figure 36 A flow chart of a method 3600 for video processing according to an embodiment of the present disclosure is shown. Method 3600 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.
[0113] At block 3610 , a history table of cross-component prediction (CCP) models or a list of CCP model candidates is determined.
[0114] At block 3620, a target CCP model for the current video block is determined based on the history table or list.
[0115] At block 3630 , the transformation is performed based on the target CCP model.
[0116] Method 3600 enables the use of a CCP model from a history table or candidate list. In this way, the CCP model may not need to be trained using neighboring samples. Therefore, codec efficiency and codec effectiveness can be improved.
[0117] In some embodiments, the CCP information of an entry in the history table or the CCP information of a candidate in the list includes at least one of the following: a type of CCP model, a position associated with the CCP model, the number of CCP models, at least one threshold for classifying samples for different CCP models, at least one luma sample value offset, at least one chroma sample value offset, at least one model for at least one chroma component, or at least one sample position displacement.
[0118] In some embodiments, the type of CCP model includes at least one of the following: a cross-component linear model (CCLM), a convolutional cross-component model (CCCM), a gradient linear model (GLM), a GLM with luma, a gradient and position-based convolutional cross-component model (GL-CCCM), or a CCCM with non-subsampled luma samples.
[0119] In some embodiments, the type of GLM includes multiple types of GLMs using multiple downsampling filters.
[0120] In some embodiments, the type of GLM with luma includes multiple types of GLMs with luma using multiple downsampling filters.
[0121] In some embodiments, types of CCP models include: CCCM, CCLM, 4 types of GLM using multiple downsampling filters, 4 types of GLM with luma using multiple downsampling filters, GL-CCCM, and CCCM using non-downsampled luma samples.
[0122] In some embodiments, the type of the CCP model includes a non-CCP type, in which the current video block is not encoded or decoded using the CCP.
[0123] In some embodiments, the number of CCP models includes 1 or 2.
[0124] In some embodiments, the number of the CCP model is part of the type of the CCP model.
[0125] In some embodiments, cross-component linear model (CCLM) and multi-model CCLM (MM-CCLM) are two types of CCP models.
[0126] In some embodiments, if the number of CCP models is at least 2, at least one threshold is used.
[0127] In some embodiments, method 3600 further includes determining luma samples for the current video block, and determining a chroma prediction value for the current video block based on the luma samples and at least one luma sample value offset. For example, the at least one luma sample value offset can be added to or subtracted from the luma samples.
[0128] In some embodiments, luma samples are downsampled.
[0129] In some embodiments, at least one luma sample value offset is applied to at least one of the following: a type of convolutional cross-component model (CCCM), a type of gradient linear model (GLM) with luma, a gradient and position-based convolutional cross-component model (GL-CCCM), or a CCCM with non-subsampled luma samples.
[0130] In some embodiments, method 3600 further includes: determining a chroma prediction value for the current video block; and determining a prediction for the current video block based on the chroma prediction value and at least one chroma sample value offset. For example, the at least one chroma sample value offset can be added to the chroma prediction value or subtracted from the chroma prediction value.
[0131] In some embodiments, the chroma prediction value is determined based on at least one sample position displacement and the sample position.
[0132] In some embodiments, the at least one sample position shift includes a chroma sample position shift, and the chroma sample position shift is used for a predefined type of CCP model.
[0133] In some embodiments, the predefined type of CCP model includes a gradient and location-based convolutional cross-component model (GL-CCCM).
[0134] In some embodiments, the at least one model for at least one chroma component comprises a first model for a first chroma component and a second model for a second chroma component.
[0135] In some embodiments, the number of models for the color components is included as part of the CCP information.
[0136] In some embodiments, the model for the color components includes at least one of: a cross-component linear model (CCLM), a convolutional cross-component model (CCCM), a gradient linear model (GLM), a GLM with luma, a gradient and position-based convolutional cross-component model (GL-CCCM), or a CCCM with non-subsampled luma samples.
[0137] In some embodiments, the CCP codec information of the coded chroma block is stored in a history table of CCP models or a list of CCP model candidates.
[0138] In some embodiments, if the chroma block is not encoded using the CCP mode, the stored CCP codec information includes a non-CCP type.
[0139] In some embodiments, if the chroma block is encoded using at least one CCP mode, the CCP encoding and decoding information is stored in a history table of CCP models or a list of CCP model candidates.
[0140] In some embodiments, at least one CCP mode comprises a fusion of chroma intra prediction modes.
[0141] In some embodiments, the stored CCP codec information includes the type of CCP type used in fusion of chroma intra prediction modes.
[0142] In some embodiments, the CCP codec information includes a type of a CCP model, where the type of the CCP model is determined based on a codec mode of the chroma block.
[0143] In some embodiments, the type of the CCP model is a convolutional cross-component model CCCM based on a coding mode including at least one of the following: CCCM, CCCM-L based on top neighboring samples of the current video block (CCCM-T), CCCM-T based on 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 multi-model based CCCM-L (MM-CCCM-L).
[0144] In some embodiments, based on a coding mode including at least one of the following, the type of the CCP model is a cross-component linear model CCLM: CCLM, CCLM based on top neighboring samples of the current video block (CCLM-T), CCLM based on left neighboring samples of the current video block (CCLM-L), multi-model based CCLM (MM-CCLM), multi-model based CCLM-T (MM-CCCM-T), multi-model based CCLM-L (MM-CCCM-L), or gradient linear model (GLM).
[0145] In some embodiments, further based on a codec mode including CCLM with slope adjustment, the type of CCP model is CCLM.
[0146] In some embodiments, further based on the codec mode including fusion of chroma intra prediction modes, the type of CCP model is CCLM.
[0147] In some embodiments, based on a coding mode including a gradient linear model (GLM) using a first filter, the type of the CCP model is a GLM using a first filter.
[0148] In some embodiments, based on a codec mode including a gradient linear model (GLM) with luma using a first filter, the type of the CCP model is a GLM with luma using a first filter.
[0149] In some embodiments, based on a coding mode including a gradient and position-based convolutional cross-component model (GL-CCCM), the type of the CCP model is a GL-CCCM.
[0150] In some embodiments, based on a coding mode including using a non-subsampled convolutional cross-component model (CCCM), the type of the CCP model is using a non-subsampled CCCM.
[0151] In some embodiments, the CCP codec information of the chroma block includes the number of models of the chroma block.
[0152] In some embodiments, if the coding mode of the chroma block includes the multi-model CCP mode, the number of models is 2.
[0153] In some embodiments, the multi-model CCP mode includes at least one of the following: a cross-component linear model (CCLM) based on multiple models (MM-CCLM), an MM-CCLM based on top neighboring samples of the current video block (MM-CCLM-T), an MM-CCLM based on left neighboring samples of the current video block (MM-CCLM-L), a convolutional cross-component model (CCCM) based on multiple models (MM-CCCM), an MM-CCCM based on top neighboring samples of the current video block (MM-CCCM-T), an MM-CCCM based on left neighboring samples of the current video block (MM-CCCM-L), a gradient linear model (GLM), a gradient and position based convolutional cross-component model (GL-CCCM), or a CCCM using non-subsampled luma samples with multiple models.
[0154] In some embodiments, the CCP encoding and decoding information of the chroma block includes at least one of the following: a threshold for classifying samples for multiple CCP models, a luma sample value offset, a chroma sample value offset, and a sample position displacement.
[0155] In some embodiments, the CCP encoding and decoding information of the chroma block includes a CCP model of the color component.
[0156] In some embodiments, the CCP model includes at least one of the following: a cross-component linear model (CCLM), a CCLM based on top neighboring samples of the current video block (CCLM-T), a CCLM based on left neighboring samples of the current video block (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 convolutional cross-component model (CCCM), a CCCM-L based on top neighboring samples of the current video block (CCCM-T), a CCCM-T (CCCM-L) based on left neighboring samples of the current video block, 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), a gradient linear model (GLM) using multiple downsampled filters, a gradient and position based convolutional cross-component model (GL-CCCM), or a CCCM using non-downsampled luma samples.
[0157] In some embodiments, the CCP model is the model after being modified by slope adjustment.
[0158] 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, a history table of cross-component prediction (CCP) models or a list of CCP model candidates is determined. Based on the history table or list, a target CCP model for a current video block of the video is determined. A bitstream is generated based on the target CCP model.
[0159] According to other embodiments of the present disclosure, a method for storing a video bitstream is provided. In this method, a history table of cross-component prediction (CCP) models or a list of CCP model candidates is determined. Based on the history table or list, a target CCP model is determined for a current video block of the video. A bitstream is generated based on the target CCP model. The bitstream is stored in a non-transitory computer-readable recording medium.
[0160] In some embodiments, a syntax element in a bitstream is 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 element comprises an indicator or a flag. In some embodiments, the syntax element is signed or unsigned.
[0161] 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.
[0162] In some embodiments, a syntax element is included in the bitstream based on a condition under which a function associated with the syntax element applies.
[0163] 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.
[0164] 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.
[0165] In some embodiments, information about whether and / or how to apply method 3500 and / or method 3600 is included in the bitstream.
[0166] In some embodiments, the information is indicated at one of: sequence level, group of pictures level, picture level, slice level, or slice group level.
[0167] 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.
[0168] In some embodiments, the information is based on coded information. For example, the coded 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.
[0169] In some embodiments, method 3500 and / or method 3600 is used in a codec that requires chroma fusion.
[0170] It should be understood that method 3500 and / or method 3600 can be applied alone or in any combination. Using method 3500 and / or method 3600, coding effectiveness and / or coding efficiency can be improved.
[0171] The embodiments of the present disclosure may be described according to the following items, the features of which may be combined in any reasonable way.
[0172] Item 1. A method for video processing, comprising: determining a list of component prediction (CCP) model candidates for conversion between a current video block of a video and a bitstream of the video; determining a target CCP model for the current video block based on the list of CCP model candidates; and performing the conversion based on the target CCP model, wherein whether another candidate or another entry of CCP information is to be added to the list is based on at least one of: a first comparison between an existing candidate in the list and the another candidate, or a second comparison between an existing entry of CCP information in the list and the another entry.
[0173] Clause 2. The method of clause 1, wherein if the difference between the another candidate and the existing candidate is less than or equal to a threshold, or if the another candidate is the same as the existing candidate, the another candidate is not added to the list.
[0174] Item 3. A method according to Item 2, wherein the other candidate is different from the existing candidate based on at least one of the following: a CCP type of the other candidate is different from the CCP type of the existing candidate, the number of CCP models in the other candidate is different from the number of CCP models in the existing candidate, at least one first threshold for a group of CCP models in the other candidate is different from at least one second threshold for a group of CCP models in the existing candidate, at least one model in the other candidate is different from at least one model in the existing candidate, the luminance sample offset of the other candidate is different from the luminance sample offset of the existing candidate, or the sample position displacement of the other candidate is different from the sample position displacement of the existing candidate.
[0175] Item 4. A method according to Item 3, wherein the luma sample offset based on the other candidate is different from the luma sample offset of the existing candidate, the other candidate is different from the existing candidate, and wherein the CCP type of the other candidate includes at least one of the following: convolutional cross-component model (CCCM), gradient and position-based convolutional cross-component model (GL-CCCM), gradient linear model (GLM), or CCCM with non-subsampled luma samples.
[0176] Item 5. A method according to Item 3, wherein the sample point position displacement of the other candidate is different from the sample point position displacement of the existing candidate, the other candidate is different from the existing candidate, and wherein the CCP type of the other candidate includes a gradient and position-based convolutional cross-component model (GL-CCCM).
[0177] Item 6. A method according to any one of items 1 to 5, wherein the further entry is not added to the list if the difference between the further entry and the existing entry is less than or equal to a threshold, or if the further entry is identical to the existing entry.
[0178] Item 7. A method according to Item 6, wherein the other entry is different from the existing entry based on at least one of the following: a CCP type of the other entry is different from the CCP type of the existing entry, the number of CCP models in the other entry is different from the number of CCP models in the existing entry, at least one first threshold for a set of CCP models in the other entry is different from at least one second threshold for a set of CCP models in the existing entry, at least one model in the other entry is different from at least one model in the existing entry, the luma sample offset of the other entry is different from the luma sample offset of the existing entry, or the sample position displacement of the other entry is different from the sample position displacement of the existing entry.
[0179] Item 8. A method according to Item 7, wherein the luma sample offset based on the other entry is different from the luma sample offset of the existing entry, the other entry is different from the existing entry, and wherein the CCP type of the other entry includes at least one of the following: convolutional cross-component model (CCCM), gradient and position-based convolutional cross-component model (GL-CCCM), gradient linear model (GLM), or CCCM with non-subsampled luma samples.
[0180] Item 9. A method according to Item 7, wherein the sample point position displacement based on the other entry is different from the sample point position displacement of the existing entry, the other entry is different from the existing entry, and wherein the CCP type of the other entry includes a gradient and position-based convolutional cross-component model (GL-CCCM).
[0181] Item 10. A method for video processing, comprising: determining a history table of a cross-component prediction (CCP) model or a list of CCP model candidates for conversion between a current video block of a video and a bitstream of the video; determining a target CCP model for the current video block based on the history table or the list; and performing the conversion based on the target CCP model.
[0182] Item 11. A method according to Item 10, wherein the CCP information of the entry in the history table or the candidate CCP information in the list includes at least one of the following: the type of CCP model, the position associated with the CCP model, the number of CCP models, at least one threshold for classifying samples for different CCP models, at least one luma sample value offset, at least one chroma sample value offset, at least one model for at least one chroma component, or at least one sample position displacement.
[0183] Item 12. A method according to Item 11, wherein the type of the CCP model includes at least one of the following: a cross-component linear model (CCLM), a convolutional cross-component model (CCCM), a gradient linear model (GLM), a GLM with brightness, a gradient and position-based convolutional cross-component model (GL-CCCM), or a CCCM with non-subsampled brightness samples.
[0184] Item 13. The method of Item 12, wherein the type of GLM comprises multiple types of GLMs using multiple downsampling filters.
[0185] Item 14. The method of Item 12, wherein the type of GLM with luma comprises multiple types of GLM with luma using multiple downsampling filters.
[0186] Item 15. A method according to Item 12, wherein the types of CCP models include: CCCM, CCLM, 4 types of GLM using multiple downsampling filters, 4 types of GLM with brightness using multiple downsampling filters, GL-CCCM and CCCM using non-downsampled brightness samples.
[0187] Item 16. The method of any one of Items 11 to 15, wherein the type of the CCP model comprises a non-CCP type, in which the current video block is not encoded or decoded using CCP.
[0188] Item 17. The method according to any one of Items 11 to 16, wherein the number of CCP models comprises 1 or 2.
[0189] Item 18. The method of any one of Items 11 to 17, wherein the number of CCP models is a fraction of the type of CCP models.
[0190] Item 19. The method according to any one of Items 11 to 18, wherein a cross-component linear model (CCLM) and a multi-model CCLM (MM-CCLM) are two types of CCP models.
[0191] Item 20. The method of any one of Items 11 to 19, wherein the at least one threshold is used if the number of CCP models is at least 2.
[0192] Item 21. The method of any one of Items 11 to 20, further comprising: determining luma samples of the current video block; and determining a chroma prediction value for the current video block based on the luma samples and the at least one luma sample value offset.
[0193] Item 22. The method of Item 21, wherein the luma samples are downsampled.
[0194] Item 23. A method according to any one of Items 11 to 22, wherein the at least one luma sample value offset is applied to at least one of: a type of convolutional cross-component model (CCCM), a type of gradient linear model (GLM) with luma, a gradient and position-based convolutional cross-component model (GL-CCCM), or a CCCM with non-subsampled luma samples.
[0195] Item 24. The method of any one of Items 11 to 23, further comprising: determining a chroma prediction value for the current video block; and determining a prediction of the current video block based on the chroma prediction value and the at least one chroma sample value offset.
[0196] Item 25. The method of Item 24, wherein the chroma prediction value is determined based on the at least one sample position displacement and the sample position.
[0197] Item 26. The method of Item 25, wherein the at least one sample position shift comprises a chroma sample position shift, and the chroma sample position shift is used for a predefined type of CCP model.
[0198] Item 27. The method of Item 26, wherein the predefined type of CCP model comprises a gradient and position-based convolutional cross-component model (GL-CCCM).
[0199] Item 28. The method of any one of Items 11 to 27, wherein the at least one model for at least one chrominance component comprises: a first model for a first chrominance component and a second model for a second chrominance component.
[0200] Item 29. A method according to any one of Items 11 to 28, wherein the number of models for the color components is included as part of the CCP information.
[0201] Item 30. A method according to Item 28 or Item 29, wherein the model for the color component includes at least one of the following: a cross-component linear model (CCLM), a convolutional cross-component model (CCCM), a gradient linear model (GLM), a GLM with luminance, a gradient and position-based convolutional cross-component model (GL-CCCM), or a CCCM with non-subsampled luminance samples.
[0202] Item 31. The method according to any one of Items 10 to 30, wherein CCP codec information of the coded chroma blocks is stored in the history table of CCP models or the list of CCP model candidates.
[0203] Item 32. The method of Item 31, wherein if the chroma block is not encoded using a CCP mode, the stored CCP encoding and decoding information includes a non-CCP type.
[0204] Item 33. The method of Item 31, wherein if the chroma block is encoded using at least one CCP mode, the CCP encoding and decoding information is stored in the history table of CCP models or the list of CCP model candidates.
[0205] Item 34. The method of Item 33, wherein the at least one CCP mode comprises a fusion of chroma intra prediction modes.
[0206] Item 35. The method of Item 34, wherein the stored CCP codec information includes a type of CCP type used in fusion of the chroma intra prediction mode.
[0207] Item 36. The method of Item 33, wherein the CCP codec information comprises a type of a CCP model, the type of the CCP model being determined based on a codec mode of the chroma block.
[0208] Item 37. A method according to Item 36, wherein based on the coding mode including at least one of the following items, the type of the CCP model is a convolutional cross-component model CCCM: CCCM, CCCM-L (CCCM-T) based on the top neighboring samples of the current video block, CCCM-T (CCCM-L) based on the left neighboring samples of the current video block, multi-model based CCCM (MM-CCCM), multi-model based CCCM-T (MM-CCCM-T), or multi-model based CCCM-L (MM-CCCM-L).
[0209] Item 38. A method according to Item 36, wherein based on the coding mode including at least one of the following items, the type of the CCP model is a cross-component linear model CCLM: CCLM, CCLM based on the top neighboring samples of the current video block (CCLM-T), CCLM based on the left neighboring samples of the current video block (CCLM-L), multi-model based CCLM (MM-CCLM), multi-model based CCLM-T (MM-CCCM-T), multi-model based CCLM-L (MM-CCCM-L), or gradient linear model (GLM).
[0210] Item 39. The method of Item 38, wherein further based on the codec mode comprising CCLM with slope adjustment, the type of the CCP model is CCLM.
[0211] Item 40. The method of Item 38, wherein further based on the codec mode comprising a fusion of chroma intra prediction modes, the type of CCP model is CCLM.
[0212] Item 41. The method of Item 36, wherein based on the encoding / decoding mode comprising a gradient linear model (GLM) using a first filter, the type of the CCP model is a GLM using a first filter.
[0213] Item 42. A method according to Item 36, wherein based on the encoding and decoding mode comprising a gradient linear model (GLM) with brightness using a first filter, the type of the CCP model is a GLM with brightness using a first filter.
[0214] Item 43. The method of Item 36, wherein based on the coding mode comprising a gradient and position-based convolutional cross-component model (GL-CCCM), the type of the CCP model is a GL-CCCM.
[0215] Item 44. The method of Item 36, wherein based on the coding mode comprising using a non-subsampled convolutional cross-component model (CCCM), the type of the CCP model is using a non-subsampled CCCM.
[0216] Item 45. The method according to any one of Items 31 to 44, wherein the CCP codec information of the chroma block comprises the number of models of the chroma block.
[0217] Item 46. The method of Item 45, wherein if the coding mode of the chroma block comprises a multi-model CCP mode, the number of models is 2.
[0218] Item 47. A method according to Item 46, wherein the multi-model CCP mode includes at least one of the following: a cross-component linear model (CCLM) based on multiple models (MM-CCLM), an MM-CCLM based on the top neighboring samples of the current video block (MM-CCLM-T), an MM-CCLM based on the left neighboring samples of the current video block (MM-CCLM-L), a convolutional cross-component model (CCCM) based on multiple models (MM-CCCM), an MM-CCCM based on the top neighboring samples of the current video block (MM-CCCM-T), an MM-CCCM based on the left neighboring samples of the current video block (MM-CCCM-L), a gradient linear model (GLM), a convolutional cross-component model based on gradient and position (GL-CCCM), or a CCCM using non-subsampled luma samples with multiple models.
[0219] Item 48. A method according to any one of Items 31 to 47, wherein the CCP encoding and decoding information of the chroma block includes at least one of the following: a threshold for classifying samples for multiple CCP models, a luma sample value offset, a chroma sample value offset, and a sample position displacement.
[0220] Item 49. A method according to any one of Items 31 to 48, wherein the CCP encoding and decoding information of the chroma block includes a CCP model of a color component.
[0221] Item 50. The method according to Item 49, wherein the CCP model comprises at least one of the following: a cross-component linear model (CCLM), a CCLM based on the top neighboring samples of the current video block (CCLM-T), a CCLM based on the left neighboring samples of the current video block (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 convolutional cross-component model (CCCM ... The method may be performed by using CCCM-L (CCCM-T) based on the top neighboring samples of the current video block, CCCM-T (CCCM-L) based on the left neighboring samples of the current video block, CCCM based on multiple models (MM-CCCM), CCCM-T based on multiple models (MM-CCCM-T), or CCCM-L based on multiple models (MM-CCCM-L), a gradient linear model (GLM) using multiple downsampled filters, a gradient and position based convolutional cross-component model (GL-CCCM), or a CCCM using non-subsampled luma samples.
[0222] Item 51. The method according to Item 49 or Item 50, wherein the CCP model is a model after being modified by slope adjustment.
[0223] Item 52. A method according to any one of Items 1 to 51, 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.
[0224] Item 53. The method of Item 52, wherein the syntax element is signed or unsigned.
[0225] Item 54. A method according to any one of Items 1 to 53, 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.
[0226] Clause 55. A method according to any one of clauses 52 to 54, wherein the syntax element is included in the bitstream based on a condition that a function associated with the syntax element is applicable.
[0227] Item 56. A method according to any of Items 52 to 55, 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.
[0228] Item 57. A method according to any one of items 52 to 56, 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.
[0229] Item 58. A method according to any one of items 1 to 57, wherein information about whether and / or how to apply the method is included in the bitstream.
[0230] Item 59. The method of Item 58, wherein the information is indicated at one of: sequence level, group of pictures level, picture level, slice level, or slice group level.
[0231] Item 60. A method according to item 58 or item 59, 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.
[0232] Item 61. A method according to any one of Items 58 to 60, wherein the information is based on coded information.
[0233] Item 62. The method of Item 61, wherein the encoded information comprises at least one of: block size, color format, single-tree partitioning or dual-tree partitioning, color component, slice type, or picture type.
[0234] Item 63. A method according to any one of Items 1 to 62, wherein the method is used in a codec tool requiring chroma fusion.
[0235] Item 64. The method of any one of Items 1 to 63, wherein the converting comprises encoding the current video block into the bitstream.
[0236] Item 65. The method of any one of Items 1 to 63, wherein the converting comprises decoding the current video block from the bitstream.
[0237] Item 66. 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 65.
[0238] Item 67. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method of any one of Items 1 to 65.
[0239] Item 68. 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 a list of component prediction (CCP) model candidates; determining a target CCP model for a current video block of the video based on the list of CCP model candidates; and generating the bitstream based on the target CCP model; wherein whether another candidate or another entry of CCP information is added to the list is based on at least one of: a first comparison between an existing candidate in the list and the another candidate, or a second comparison between an existing entry of CCP information in the list and the another entry.
[0240] Item 69. A method for storing a bitstream of a video, comprising: determining a list of component prediction (CCP) model candidates; determining a target CCP model for a current video block of the video based on the list of CCP model candidates; generating the bitstream based on the target CCP model; and storing the bitstream in a non-transitory computer-readable recording medium, wherein whether another candidate or another entry of CCP information is added to the list is based on at least one of: a first comparison between an existing candidate in the list and the another candidate, or a second comparison between an existing entry of CCP information in the list and the another entry.
[0241] Item 70. 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 a history table of a cross-component prediction (CCP) model or a list of CCP model candidates; determining a target CCP model for a current video block of the video based on the history table or the list; and generating the bitstream based on the target CCP model.
[0242] Item 71. A method for storing a bitstream of a video, comprising: determining a history table of a cross-component prediction (CCP) model or a list of CCP model candidates; determining a target CCP model for a current video block of the video based on the history table or the list; generating the bitstream based on the target CCP model; and storing the bitstream in a non-transitory computer-readable recording medium. Example device
[0243] Figure 37A block diagram of a computing device 3700 in which various embodiments of the present disclosure may be implemented is shown. The computing device 3700 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).
[0244] It should be understood that Figure 37 The computing device 3700 shown in FIG is for illustrative purposes only and is not intended to in any way imply any limitation on the functionality and scope of the embodiments of the present disclosure.
[0245] like Figure 37 As shown, computing device 3700 includes a general computing device 3700. Computing device 3700 may include at least one or more processors or processing units 3710, memory 3720, storage unit 3730, one or more communication units 3740, one or more input devices 3750, and one or more output devices 3760.
[0246] In some embodiments, the computing device 3700 can be implemented as any user terminal or server terminal with computing capabilities. The server terminal can be a server provided by a service provider, a large computing device, etc. The 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 e-book device, a gaming device, or any combination thereof, and including accessories and peripherals of these devices, or any combination thereof. It is conceivable that the computing device 3700 can support any type of interface to the user (such as a "wearable" circuit device, etc.).
[0247] The processing unit 3710 may be a physical processor or a virtual processor and may implement various processes based on a program stored in the memory 3720. In a multi-processor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capabilities of the computing device 3700. The processing unit 3710 may also be referred to as a central processing unit (CPU), a microprocessor, a controller, or a microcontroller.
[0248] The computing device 3700 typically includes various computer storage media. Such media can be any media accessible by the computing device 3700, including but not limited to volatile media and non-volatile media, or removable media and non-removable media. The memory 3720 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 3730 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 3700.
[0249] The computing device 3700 may also include additional removable / non-removable storage media, volatile / non-volatile storage media. Figure 37 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.
[0250] The communication unit 3740 communicates with another computing device via a communication medium. In addition, the functions of the components in the computing device 3700 can be implemented by a single computing cluster or multiple computing machines communicating via a communication connection. Thus, the computing device 3700 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.
[0251] Input device 3750 may be one or more of various input devices, such as a mouse, keyboard, trackball, voice input device, etc. Output device 3760 may be one or more of various output devices, such as a display, speaker, printer, etc. Computing device 3700 may also communicate with one or more external devices (not shown) via communication unit 3740, such as storage devices and display devices, one or more devices that enable a user to interact with computing device 3700, or any device that enables computing device 3700 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication may be performed via an input / output (I / O) interface (not shown).
[0252] In some embodiments, some or all components of the computing device 3700 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 at 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 at 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.
[0253] In embodiments of the present disclosure, computing device 3700 may be used to implement video encoding / decoding. Memory 3720 may include one or more video encoding / decoding modules 3725 having one or more program instructions. These modules can be accessed and executed by processing unit 3710 to perform the functions of various embodiments described herein.
[0254] In an example embodiment performing video encoding, an input device 3750 may receive video data as input 3770 to be encoded. The video data may be processed, for example, by a video codec module 3725 to generate an encoded bitstream. The encoded bitstream may be provided as output 3780 via an output device 3760.
[0255] In an example embodiment performing video decoding, an input device 3750 may receive an encoded bitstream as input 3770. The encoded bitstream may be processed, for example, by a video codec module 3725 to generate decoded video data. The decoded video data may be provided as output 3780 via an output device 3760.
[0256] 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: determining a list of component prediction (CCP) model candidates for a conversion between a current video block of a video and a bitstream of the video; Determining a target CCP model for the current video block based on the list of CCP model candidates; and performing the conversion based on the target CCP model, Whether another candidate or another entry of CCP information is to be added to the list is based on at least one of: a first comparison between an existing candidate in the list and the another candidate, or a second comparison between an existing entry of CCP information in the list and the another entry. 2 . The method of claim 1 , wherein if a difference between the another candidate and the existing candidate is less than or equal to a threshold, or if the another candidate is the same as the existing candidate, the another candidate is not added to the list.
3. The method of claim 2 , wherein the another candidate is different from the existing candidate based on at least one of: The CCP type of the other candidate is different from the CCP type of the existing candidate, The number of CCP models in the other candidate is different from the number of CCP models in the existing candidate, at least one first threshold for a set of CCP models in the another candidate is different from at least one second threshold for a set of CCP models in the existing candidate, At least one model in the other candidate is different from at least one model in the existing candidate, The luma sample offset of the another candidate is different from the luma sample offset of the existing candidate, or The sample point position displacement of the another candidate is different from the sample point position displacement of the existing candidate.
4. The method according to claim 3, wherein the another candidate is different from the existing candidate based on that the luma sample offset of the another candidate is different from the luma sample offset of the existing candidate, and wherein the CCP type of the another candidate includes at least one of the following: Convolutional Cross-Component Model (CCCM), Gradient and Position-based Convolutional Cross-Component Model (GL-CCCM), Gradient Linear Model (GLM), or CCCM with non-subsampled luma samples.
5. The method of claim 3 , wherein the another candidate is different from the existing candidate based on that the sample position displacement of the another candidate is different from the sample position displacement of the existing candidate, and wherein the CCP type of the another candidate includes a gradient and position-based convolutional cross-component model (GL-CCCM).
6. The method of any one of claims 1 to 5, wherein the further entry is not added to the list if the difference between the further entry and the existing entry is less than or equal to a threshold, or if the further entry is identical to the existing entry.
7. The method of claim 6, wherein the another entry differs from the existing entry based on at least one of: The CCP type of the another entry is different from the CCP type of the existing entry, the number of CCP models in the other entry is different from the number of CCP models in the existing entry, at least one first threshold for the set of CCP models in the further entry is different from at least one second threshold for the set of CCP models in the existing entry, at least one model in the other entry is different from at least one model in the existing entry, The luma sample offset of the another entry is different from the luma sample offset of the existing entry, or The sample point position shift of the another entry is different from the sample point position shift of the existing entry.
8. The method of claim 7 , wherein the another entry is different from the existing entry based on a luma sample offset of the another entry being different from a luma sample offset of the existing entry, and wherein the CCP type of the another entry comprises at least one of: Convolutional Cross-Component Model (CCCM), Gradient and Position-based Convolutional Cross-Component Model (GL-CCCM), Gradient Linear Model (GLM), or CCCM with non-subsampled luma samples.
9. The method of claim 7 , wherein the sample position displacement based on the other entry is different from the sample position displacement of the existing entry, the other entry is different from the existing entry, and wherein the CCP type of the other entry comprises a gradient and position-based convolutional cross-component model (GL-CCCM).
10. A method for video processing, comprising: Determining a history table of cross-component prediction (CCP) models or a list of CCP model candidates for a conversion between a current video block of a video and a bitstream of the video; determining a target CCP model for the current video block based on the history table or the list; as well as The conversion is performed based on the target CCP model.
11. The method according to claim 10, wherein the CCP information of the entry in the history table or the CCP information of the candidate in the list comprises at least one of the following: Types of CCP models, The location associated with the CCP model, The number of CCP models, At least one threshold for classifying samples according to different CCP models, At least one luma sample value is offset, At least one chroma sample value is offset, at least one model for at least one chroma component, or At least one sample point position is shifted.
12. The method according to claim 11, wherein the type of the CCP model comprises at least one of the following: Cross-Component Linear Model (CCLM), Convolutional Cross-Component Model (CCCM), Gradient Linear Model (GLM), GLM with brightness, Gradient and Position-based Convolutional Cross-Component Model (GL-CCCM), or CCCM with non-subsampled luma samples. The method of claim 12 , wherein the type of GLM comprises multiple types of GLMs using multiple downsampling filters. The method of claim 12 , wherein the type of GLM with luma comprises multiple types of GLM with luma using multiple downsampling filters.
15. The method according to claim 12, wherein the type of the CCP model comprises: CCCM, CCLM, 4 types of GLM using multiple downsampling filters, 4 types of GLM with luma using multiple downsampling filters, GL-CCCM, and CCCM using non-downsampled luma samples. 16 . The method according to claim 11 , wherein the type of the CCP model comprises a non-CCP type, in which the current video block is not encoded or decoded using CCP.
17. The method according to any one of claims 11 to 16, wherein the number of the CCP models comprises 1 or 2.
18. The method of any one of claims 11 to 17, wherein the number of the CCP models is a portion of the type of the CCP models.
19. The method according to any one of claims 11 to 18, wherein a cross-component linear model (CCLM) and a multi-model CCLM (MM-CCLM) are two types of CCP models.
20. The method according to any one of claims 11 to 19, wherein the at least one threshold is used if the number of CCP models is at least 2.
21. The method according to any one of claims 11 to 20, further comprising: Determining luma samples of the current video block; as well as A chroma prediction value for the current video block is determined based on the luma sample and the at least one luma sample value offset.
22. The method of claim 21, wherein the luma samples are downsampled.
23. The method according to any one of claims 11 to 22, wherein the at least one luma sample value offset is applied to at least one of: The type of convolutional cross-component model (CCCM), Type of Gradient Linear Model (GLM) with brightness, Gradient and Position-based Convolutional Cross-Component Model (GL-CCCM), or CCCM with non-subsampled luma samples.
24. The method according to any one of claims 11 to 23, further comprising: Determining a chrominance prediction value for the current video block; as well as A prediction of the current video block is determined based on the chroma prediction value and the at least one chroma sample value offset.
25. The method of claim 24, wherein the chroma prediction value is determined based on the at least one sample position displacement and a sample position.
26. The method of claim 25, wherein the at least one sample position shift comprises a chroma sample position shift, and the chroma sample position shift is used for a predefined type of CCP model.
27. The method of claim 26, wherein the predefined type of CCP model comprises a gradient and location-based convolutional cross-component model (GL-CCCM).
28. The method according to any one of claims 11 to 27, wherein the at least one model for at least one chrominance component comprises: A first model for a first chroma component and a second model for a second chroma component.
29. The method according to any one of claims 11 to 28, wherein the number of models for the color components is included as part of CCP information.
30. The method of claim 28 or claim 29, wherein the model for a color component comprises at least one of: Cross-Component Linear Model (CCLM), Convolutional Cross-Component Model (CCCM), Gradient Linear Model (GLM), GLM with brightness, Gradient and Position-based Convolutional Cross-Component Model (GL-CCCM), or CCCM with non-subsampled luma samples.
31. The method according to any one of claims 10 to 30, wherein CCP codec information of the coded chroma block is stored in the history table of CCP models or the list of CCP model candidates.
32. The method of claim 31, wherein if the chroma block is not encoded using a CCP mode, the stored CCP codec information includes a non-CCP type.
33. The method of claim 31, wherein if the chroma block is encoded using at least one CCP mode, the CCP encoding and decoding information is stored in the history table of CCP models or the list of CCP model candidates.
34. The method of claim 33, wherein the at least one CCP mode comprises a fusion of chroma intra prediction modes.
35. The method of claim 34, wherein the stored CCP codec information includes a type of CCP type used in fusion of the chroma intra prediction mode. 36 . The method according to claim 33 , wherein the CCP codec information comprises a type of a CCP model, and the type of the CCP model is determined based on a codec mode of the chroma block.
37. The method of claim 36, wherein the type of the CCP model is a convolutional cross-component model (CCCM) based on the codec mode comprising at least one of: CCCM, Based on the CCCM-L (CCCM-T) of the top neighboring samples of the current video block, Based on the CCCM-T (CCCM-L) of the left neighboring samples of the current video block, Multi-model based CCCM (MM-CCCM), Multi-model based CCCM-T (MM-CCCM-T), or Multi-model based CCCM-L (MM-CCCM-L).
38. The method of claim 36, wherein the type of the CCP model is a Cross-Component Linear Model (CCLM) based on the encoding / decoding mode comprising at least one of: CCLM, CCLM based on the top neighboring samples of the current video block (CCLM-T), Based on the CCLM of the left neighboring samples of the current video block (CCLM-L), Multi-model based CCLM (MM-CCLM), Multi-model based CCLM-T (MM-CCCM-T), Multi-model based CCLM-L (MM-CCCM-L), or Gradient linear model (GLM).
39. The method of claim 38, wherein further based on the codec mode comprising CCLM with slope adjustment, the type of CCP model is CCLM.
40. The method of claim 38, wherein further based on the codec mode comprising a fusion of chroma intra prediction modes, the type of CCP model is CCLM.
41. The method of claim 36, wherein based on the encoding / decoding mode comprising a gradient linear model (GLM) using a first filter, the type of the CCP model is a GLM using a first filter.
42. The method of claim 36, wherein based on the codec mode comprising a gradient linear model (GLM) with luma using a first filter, the type of the CCP model is a GLM with luma using a first filter.
43. The method of claim 36, wherein based on the coding mode comprising a Gradient and Location-based Convolutional Cross-Component Model (GL-CCCM), the type of the CCP model is a GL-CCCM.
44. The method of claim 36, wherein based on the coding mode comprising using a non-subsampled convolutional cross-component model (CCCM), the type of the CCP model is using a non-subsampled CCCM.
45. The method according to any one of claims 31 to 44, wherein the CCP codec information of the chroma block comprises the number of models of the chroma block.
46. The method of claim 45, wherein if the coding mode of the chroma block includes a multi-model CCP mode, the number of models is 2.
47. The method of claim 46, wherein the multi-model CCP scheme comprises at least one of the following: Based on the multi-model cross-component linear model (CCLM) (MM-CCLM), MM-CCLM based on the top neighboring samples of the current video block (MM-CCLM-T), Based on the MM-CCLM of the left neighboring samples of the current video block (MM-CCLM-L), Multi-model based convolutional cross-component model (CCCM) (MM-CCCM), Based on the MM-CCCM of the top neighboring samples of the current video block (MM-CCCM-T), Based on the MM-CCCM of the left neighboring samples of the current video block (MM-CCCM-L), Gradient Linear Model (GLM), Gradient and Position-based Convolutional Cross-Component Model (GL-CCCM), or Use CCCM with non-subsampled luma samples in multiple models.
48. The method according to any one of claims 31 to 47, wherein the CCP codec information of the chroma block comprises at least one of the following: The threshold used to classify samples for multiple CCP models, Luma sample value offset, Chroma sample value offset, Sample point position displacement.
49. The method according to any one of claims 31 to 48, wherein the CCP codec information of the chroma block comprises a CCP model of a color component.
50. The method of claim 49, wherein the CCP model comprises at least one of the following: Cross-Component Linear Model (CCLM), CCLM based on the top neighboring samples of the current video block (CCLM-T), Based on the CCLM of the left neighboring samples of the current video block (CCLM-L), Multi-model based CCLM (MM-CCLM), Multi-model based CCLM-T (MM-CCCM-T), Multi-model based CCLM-L (MM-CCCM-L), Convolutional Cross-Component Model (CCCM), Based on the CCCM-L (CCCM-T) of the top neighboring samples of the current video block, Based on the CCCM-T (CCCM-L) of the left neighboring samples of the current video block, Multi-model based CCCM (MM-CCCM), Multi-model based CCCM-T (MM-CCCM-T), or Multi-model based CCCM-L (MM-CCCM-L), Gradient linear models (GLM) using multiple downsampled filters, Gradient and Position-based Convolutional Cross-Component Model (GL-CCCM), or CCCM using non-subsampled luma samples.
51. The method of claim 49 or claim 50, wherein the CCP model is a model after modification by slope adjustment.
52. A method according to any one of claims 1 to 51, 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.
53. The method of claim 52, wherein the syntax elements are signed or unsigned.
54. The method according to any one of claims 1 to 53, 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.
55. The method of any one of claims 52 to 54, wherein the syntax element is included in the bitstream based on a condition that a function associated with the syntax element is applicable.
56. The method of any one of claims 52 to 55, 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.
57. The method of any one of claims 52 to 56, 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.
58. The method according to any one of claims 1 to 57, wherein information on whether and / or how to apply the method is included in the bitstream.
59. The method of claim 58, wherein the information is indicated at one of: sequence level, group of pictures level, picture level, slice level, or slice group level.
60. The method of claim 58 or claim 59, 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.
61. A method according to any one of claims 58 to 60, wherein the information is based on coded information.
62. The method of claim 61, 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.
63. The method according to any one of claims 1 to 62, wherein the method is used in a codec requiring chroma fusion.
64. The method of any one of claims 1 to 63, wherein the converting comprises encoding the current video block into the bitstream.
65. The method of any one of claims 1 to 63, wherein the converting comprises decoding the current video block from the bitstream.
66. 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 65.
67. 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 65.
68. 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: Determine a list of component prediction (CCP) model candidates; Determining a target CCP model for a current video block of the video based on the list of CCP model candidates; as well as generating the bitstream based on the target CCP model; Whether another candidate or another entry of CCP information is added to the list is based on at least one of: a first comparison between an existing candidate in the list and the another candidate, or a second comparison between an existing entry of CCP information in the list and the another entry.
69. A method for storing a bitstream of a video, comprising: Determine a list of component prediction (CCP) model candidates; Determining a target CCP model for a current video block of the video based on the list of CCP model candidates; generating the bitstream based on the target CCP model; as well as storing the bitstream in a non-transitory computer-readable recording medium, Whether another candidate or another entry of CCP information is added to the list is based on at least one of: a first comparison between an existing candidate in the list and the another candidate, or a second comparison between an existing entry of CCP information in the list and the another entry.
70. 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 a history table of a cross-component prediction (CCP) model or a list of CCP model candidates; determining a target CCP model for a current video block of the video based on the history table or the list; as well as The bitstream is generated based on the target CCP model.
71. A method for storing a bitstream of a video, comprising: Determining a history table of a cross-component prediction (CCP) model or a list of CCP model candidates; determining a target CCP model for a current video block of the video based on the history table or the list; generating the bitstream based on the target CCP model; as well as The bitstream is stored in a non-transitory computer-readable recording medium.