Methods, apparatuses, and media for video processing

CN123036840APending Publication Date: 2026-11-03DOUYIN VISION CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202580025233.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-03-27
Filing Date
2025-03-26
Publication Date
2026-11-03

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies have room for improvement in encoding and decoding efficiency, especially in cross-component prediction, where it is difficult to effectively improve encoding and decoding performance.

Method used

By determining whether Cross Component Prediction (CCP) mode is permitted for video units, and based on information associated with the video units and encoding/decoding information of previously encoded or decoded stripes or pictures, the application of encoding/decoding modes is determined to improve encoding/decoding performance.

Benefits of technology

It improves the encoding and decoding performance of video codecs and enhances their efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN123036840A_ABST
    Figure CN123036840A_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure provide a solution for video processing. A method for video processing is proposed. The method comprises, for a conversion between a video unit of a video and a bitstream of the video, determining, based on information associated with the video unit, whether a cross-component prediction (CCP) mode is allowed for the video unit, and performing the conversion based on the determination.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

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

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

[0004] In a first aspect, a method for video processing is proposed. The method includes: a conversion between video units and a video bitstream for a given video unit; determining whether a cross-component prediction (CCP) mode is permitted for the video unit based on information associated with it; and performing the conversion based on that determination. Compared to conventional solutions, the method according to the first aspect of this disclosure can improve encoding / decoding performance by determining whether a CCP mode is permitted.

[0005] In a second aspect, another method for video processing is proposed. This method includes: for the conversion between video units and video bitstreams, determining how to apply encoding / decoding modes to the video units based on encoding / decoding information associated with previously encoded or decoded stripes or previously encoded or decoded pictures; and performing the conversion based on this determination. Compared to conventional solutions, the method according to the second aspect of this disclosure can improve encoding / decoding performance by determining how to apply the encoding / decoding modes.

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

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

[0008] In a fifth aspect, another non-transitory computer-readable recording medium is proposed. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. The method includes: determining whether a cross-component prediction (CCP) mode is permitted for a video unit based on information associated with that video unit; and generating a bitstream based on that determination.

[0009] In a sixth aspect, another non-transitory computer-readable recording medium is proposed. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. The method includes: determining, based on encoding / decoding information associated with previously encoded or decoded stripes or previously encoded or decoded pictures, how to apply encoding / decoding modes to video units of the video; and generating a bitstream based on this determination.

[0010] In a seventh aspect, a method for storing a bitstream of video is proposed. The method includes: determining whether a cross-component prediction (CCP) mode is permitted for a video unit based on information associated with that video unit; generating a bitstream based on that determination; and storing the bitstream in a non-transitory computer-readable recording medium.

[0011] In the eighth aspect, a method for storing a bitstream of video is proposed. The method includes: determining, based on encoding / decoding information associated with previously encoded or decoded stripes or previously encoded or decoded pictures, how to apply encoding / decoding modes to video units of the video; generating a bitstream based on this determination; and storing the bitstream in a non-transitory computer-readable recording medium.

[0012] This synopsis aims to present, in a simplified form, the selected concepts further described below in the detailed embodiments. This synopsis is not intended to identify key or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. Attached Figure Description

[0013] The above and other objects, features and advantages of exemplary embodiments of the present disclosure will become clearer from the following detailed description with reference to the accompanying drawings, in which the same reference numerals generally refer to the same parts.

[0014] Figure 1 A block diagram of an example video codec system according to some embodiments of the present disclosure is shown; Figure 2A block diagram of a first example video encoder according to some embodiments of the present disclosure is shown; Figure 3 A block diagram of an example video decoder according to some embodiments of the present disclosure is shown; Figure 4 The diagram illustrates the effect of the slope adjustment parameter "u", with the model created using the current CCLM on the left and the updated model as proposed on the right. Figure 5 The neighboring blocks (L, A, BL, AR, AL) used in the derivation of the general MPM list are shown. Figure 6 The neighbor reconstructed samples used for the DIMD chromaticity mode are shown; Figure 7 The intra-frame template matching search area used is shown; Figure 8 The use of intra-frame TMP block vectors for IBC blocks is shown; Figure 9A and Figure 9B The methods for dividing angle patterns are shown respectively; Figure 10 An expanded list of MRL candidates is shown; Figure 11 An illustration of the template area is shown; Figure 12 The spatial portion of the convolution filter is shown; Figure 13 The reference region (with its padding) used to derive the filter coefficients is shown. Figure 14 Four Sobel-based gradient modes for GLM are shown; Figure 15 The non-downsampled brightness samples are shown; Figure 16 The reference area for BVG-CCCM is shown; Figure 17 The spatial sample points used in GL-CCCM are shown; Figure 18 Various downsampling filters used in cross-component models are shown; Figure 19 The filter on the sample points of MM-CCLM / MM-CCCM is shown; Figure 20 Candidates for the spatial GPM are shown; Figure 21 The GPM template is shown; Figure 22 GPM mixing is shown; Figure 23The transformation selection process for directional planar modes is illustrated; Figure 24 The luminance block used to derive the direct block vector is shown; Figures 25A to 25C Examples of predictions for different positions within the current block are shown respectively; Figure 26 The diagram shows three types of reconstructed regions, comprising thirteen columns or rows of reconstructed pixels. Figure 27 The three types of filter shapes defined are shown, each with fifteen inputs and producing one output. Figures 28A to 28C Examples of predictions for different positions within the current block are shown respectively; Figure 29 The proposed method on the decoder side is shown; Figure 30 The luminance samples L0, ..., L5 are shown relative to the chromaticity sample C; Figure 31 The reference area for BVG-CCCM is shown; Figure 32 The spatial portion of the convolution filter is shown; Figure 33 The locations used for block vector derivation from co-position brightness blocks are shown; Figure 34 A flowchart of a method for video processing according to an embodiment of the present disclosure is shown; Figure 35 A flowchart of a method for video processing according to embodiments of the present disclosure is shown; and Figure 36 A block diagram of a computing device in which various embodiments of the present disclosure may be implemented is shown.

[0015] In all accompanying drawings, the same or similar reference numerals usually refer to the same or similar elements. Detailed Implementation

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

[0017] In the following description and claims, unless otherwise defined, 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 pertains.

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

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

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

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

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

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

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

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

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

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

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

[0029] In other examples, the video encoder 200 may include more, fewer, or different functional components. In one example, the prediction unit 202 may include an Intra Block Copy (IBC) unit. The IBC unit can perform prediction in an IBC mode, where at least one reference picture is the picture in which the current video block is located.

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

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

[0032] The mode selection unit 203 can select one of several codec modes (intra-frame codec or inter-frame codec) based, for example, on the error result, and provide the resulting intra-frame 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 image. In some examples, the mode selection unit 203 can select an intra-frame / inter-frame joint prediction (CIIP) mode, where prediction is based on inter-frame prediction signals and intra-frame prediction signals. In the case of inter-frame prediction, the mode selection unit 203 can also select a resolution for the block based on the motion vector (e.g., sub-pixel precision or integer pixel precision).

[0033] To perform inter-frame prediction on the current video block, motion estimation unit 204 can generate motion information for the current video block by comparing one or more reference frames from buffer 213 with the current video block. Motion compensation unit 205 can determine the predicted video block for the current video block based on the motion information and decoded samples of images from buffer 213 other than the image associated with the current video block.

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

[0035] In some examples, motion estimation unit 204 can perform unidirectional prediction on the current video block, and can search reference images in list 0 or list 1 to find a reference video block for the current video block. Motion estimation unit 204 can then generate a reference index indicating the reference image containing the reference video block in list 0 or list 1, and a motion vector indicating the spatial displacement between the current video block and the reference video block. Motion estimation unit 204 can output the reference index, prediction direction indicator, and motion vector as motion information for the current video block. Motion compensation unit 205 can generate a predicted video block for the current video block based on the reference video block indicated by the motion information of the current video block.

[0036] Alternatively, in other examples, motion estimation unit 204 can perform bidirectional prediction on the current video block. Motion estimation unit 204 can search for reference images in list 0 to find a reference video block for the current video block, and can also search for reference images in list 1 to find another reference video block for the current video block. Motion estimation unit 204 can then generate reference indices indicating the reference images containing the reference video blocks in lists 0 and 1, and motion vectors indicating the spatial displacement between the reference video blocks and the current video block. Motion estimation unit 204 can output the reference indices and the motion vector of the current video block as motion information for the current video block. Motion compensation unit 205 can generate a predicted video block for the current video block based on the reference video blocks indicated by the motion information of the current video block.

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

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

[0039] In another example, motion estimation unit 204 may identify another video block and a motion vector difference (MVD) within the syntax structure associated with the current video block. The motion vector difference indicates the difference between the motion vector of the current video block and the motion vector of the indicated video block. Video decoder 300 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.

[0040] As discussed above, the video encoder 200 can transmit motion vectors via signals in a predictive manner. Two examples of predictive signaling techniques that can be implemented by the video encoder 200 include Advanced Motion Vector Prediction (AMVP) and Merge Pattern Signaling.

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

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

[0043] 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 subtraction operations.

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

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

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

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

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

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

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

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

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

[0053] The motion compensation unit 302 can generate motion compensation blocks and can perform interpolation based on an interpolation filter. The identifier of the interpolation filter to be used, with sub-pixel accuracy, can be included in the syntax element.

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

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

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

[0057] The reconstruction unit 306 can obtain the decoded block, for example, by adding the residual block to a corresponding predicted 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 eliminate block artifacts. The decoded video block is then stored in a buffer 307, which provides a reference block for subsequent motion compensation / intra-frame prediction and also generates decoded video for presentation on a display device.

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

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

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

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

[0062] 2.1.1 Multi-Model Learning (MMLM) The CCLM included in VVC is extended by adding three multi-model LM (MMLM) modes. In each MMLM mode, reconstructed neighboring samples are classified into two classes using a threshold that serves as the average of the luminance reconstructed neighboring samples. A linear model for each class is derived using the least mean square (LMS) method. For the CCLM mode, the LMS method is also used to derive the linear model. Slope adjustment is applied to both the cross-component linear model (CCLM) and multi-model LM predictions. This adjustment is a linear function that maps luminance values ​​to chrominance values, tilted relative to a center point determined by the average luminance values ​​of the reference samples.

[0063] 2.1.1.1 Slope Adjustment of CCLM CCLM uses a two-parameter model to map luminance values ​​(lumaVal) to chrominance values ​​(chromaVal). The slope parameter "a" and the bias parameter "b" define the mapping as follows: Chromaticity value = a Brightness value + b The adjustment of the slope parameter "u" is transmitted via signal to update the model to the following form: Chromaticity value = a' Brightness value + b' in a' = a + u b' = b - u y r By making this selection, the mapping function revolves around a value with brightness y. r The points are tilted or rotated. The average value of the reference brightness samples used in model creation is used as y. r This is done in order to provide meaningful modifications to the model. The image below illustrates the process.

[0064] Figure 4 The effect of the slope adjustment parameter "u" is shown. Left: Model created using the current CCLM. Right: Updated model as proposed.

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

[0066] Adjustments can be made to the CCLM model (“LM_CHROMA_IDX” and “MMLM_CHROMA_IDX”) that uses reference samples from both the top and left sides of the block, but not for “one-sided” mode. This choice is based on a trade-off between encoding / decoding efficiency and complexity.

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

[0068] Encoder method The proposed encoder method performs a SATD-based search for the optimal slope update for Cr and a similar SATD-based search for Cb. If either results in a non-zero slope adjustment parameter, the combined slope adjustment pair (SATD-based update for Cr, SATD-based update for Cb) is included in the list of RD checks for TU.

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

[0070] 2.1.3 Primary MPM and Secondary MPM A secondary MPM list is introduced. The existing primary MPM (PMPM) list consists of 6 entries, and the secondary MPM (SMPM) list includes 16 entries. First, a general MPM list with 22 entries is constructed. Then, the first 6 entries from this general MPM list are included in the PMPM list, and the remaining entries form the SMPM list. The first entry in the general MPM list is a flat pattern. The remaining entries are... Figure 5 The model consists of the intra-frame modes of the left (L), top (A), bottom left (BL), top right (AR), and top left (AL) neighboring blocks, as well as DIMD modes arranged in ascending order of SAD cost. A maximum of five modes with the lowest SAD cost are added. The SAD cost is calculated between the prediction and reconstruction samples of the template. The sorted, oriented modes with added offsets are added to the general MPM list, followed by the default mode, until a general MPM list with 22 entries is constructed.

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

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

[0073] The MPM list is divided equally into four groups, and the group index is parsed first. Then, the pattern index is further parsed to indicate which pattern in the selected group is used.

[0074] 2.1.4 Reference Sample Interpolation and Smoothing for Intra-Frame Prediction For deriving predicted samples from reference samples, the 4-tap cubic interpolation is replaced by a 6-tap cubic interpolation filter.

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

[0076] 2.1.5 Decoder-side Intra-Frame Mode Derivation (DIMD) When applying DIMD, up to five intra-frame modes are derived from the reconstructed neighboring samples, and these five predictions are combined with planar mode predictions, where the weights are derived from the gradient histogram. Division operations in the weight derivation are performed using the same lookup table (LUT)-based integerization scheme used by CCLM. For example, division operations in direction calculation.

[0077] It is computed using the following LUT-based scheme: x = Floor( Log2( Gx ) ) normDiff = ( ( Gx<<4 )>>x )&15 x +=( 3 + ( normDiff != 0 ) ? 1 : 0 ) Orient = (Gy (DivSigTable[normDiff] | 8) + (1<<(x-1)))>>x in DivSigTable

[16] = {0, 7, 6, 5,5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}.

[0078] For size If the magnitude of either the upper or left histogram is twice that of the other, then the weights for each of the five derived patterns are modified. In this case, the weights are position-dependent and calculated as follows: If the histogram above is twice the size of the histogram on the left, then:

[0079] If the histogram on the left is twice the size of the histogram on the top, then: , in It is the unmodified uniform weight of DIMD. It is predefined and set to 10.

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

[0081] Finally, note that the region used to calculate the gradient histogram for neighboring reconstructed samples is modified, depending on the availability of reconstructed samples. If available, the region of the decoded reference sample for the current WxH brightness CB is expanded to the upper right, with a maximum of W additional columns. If available, it is expanded to the lower left, with a maximum of H additional rows.

[0082] 2.1.5.1 DIMD Chroma Mode The DIMD chromaticity model uses the DIMD derivation method based on, for example, Figure 6 The reconstructed Y, Cb, and Cr samples from the second nearest neighbor row and column, as shown, derive the chroma intra-prediction mode for the current block. Specifically, horizontal and vertical gradients are calculated for each co-located reconstructed luma sample and the reconstructed Cb and Cr samples of the current chroma block to construct the HoG. The intra-prediction mode with the largest histogram amplitude value is then used to perform chroma intra-prediction for the current chroma block. (Figure) 6 The neighbor reconstructed samples used for the DIMD chromaticity mode are shown.

[0083] When the intra-prediction mode derived from the DIMD chroma mode is the same as the intra-prediction mode derived from the DM mode, the intra-prediction mode with the second largest histogram amplitude value is used as the DIMD chroma mode. A CU level flag is transmitted via signal transmission to indicate whether the proposed DIMD chroma mode is applied.

[0084] Finally, the luminance regions of the reconstructed samples used to calculate the gradient histogram for the chroma DIMD mode are modified. For a pair of WxH chroma CBs to be predicted, in order to construct a gradient histogram associated with the corresponding luminance CB, the vertical and horizontal gradient pairs are extracted from the second and third rows of the luminance CB, instead of from a set of regular DIMD decoded reference samples surrounding the luminance CB.

[0085] 2.1.6 Fusion of Chroma Intra-Frame Prediction Modes In ECM, two chroma intra-prediction signals can be fused together. One of the two chroma intra-prediction signals is predicted using DM mode, DIMD chroma mode, and one of the four default modes (non-LM mode). The other chroma intra-prediction signal is predicted using cross-component linear prediction mode (LM mode). Two different methods are supported.

[0086] In the first method, the LM mode can be either MM-CCLM or MM-CCCM, and the final predicted value is derived as follows:

[0087] in These are predicted values ​​obtained by applying a non-LM model. These are predicted values ​​obtained by applying the LM model, and This is the final predicted value for the current chroma block. Two weights. and Determined by the intra-prediction mode of adjacent chroma blocks, and the shift is set to equal to 2. Specifically, when both the upper adjacent block and the left adjacent block are encoded or decoded using LM mode, { }={1, 3}; When both the upper and left adjacent blocks are encoded or decoded using non-LM mode, { }={3, 1}; otherwise, { }={2, 2}. Two template costs are calculated by fusing the angular chromaticity prediction with either MM-CCLM or MM-CCCM, and the derivation is performed using one of the two CCPs that provides the smaller template cost. .

[0088] In the second method, the LM mode can be either MMLM or CCLM, and the final predicted value is derived as follows:

[0089] in These are predicted values ​​obtained by applying a non-LM model. It is the set of downsampled reconstructed brightness samples at the same location, and It is the final predicted value of the current chroma block. It is a fixed value, and is set to 512 for 10-bit content. Using the same LDL derivation method as in CCCM, the three weights... , and It is derived from adjacent luminance and chrominance samples.

[0090] For syntax design, an index is transmitted via signaling to indicate whether fusion is applied and which method is used. It's important to note that for I-stripes, non-LM modes can be DM mode, DIMD chroma mode, and four default modes. For non-I-stripes, only DIMD chroma mode is allowed to be fused with LM mode.

[0091]

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

[0093] The prediction signal is obtained by comparing the L-shaped, top-only, or left-only causal proximity of the current block with... Figure 7 It is generated by matching another block in a predefined search region. There are 6 predefined search regions, namely R1 to R6, which contain reconstructed samples from the top and left CTUs, as well as partial reconstructed samples within the current CTU located above, to the left, below the left, and above the right of the current block.

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

[0095] Using a given search order across six regions, R4, R5, R6, R1, R2, and R3, the decoder constructs a candidate list of up to "19" template-matching block vectors within each region, ranked in ascending order based on template cost (SAD). The following modes are supported: 1- Single Predicted Value: Select a single predicted value from the candidate list.

[0096] 2- Fusion of Multiple Predictions: Multiple predictions are blended multiple times to derive the final prediction block. The blending weights are either calculated from the template matching cost of each prediction or using a Wiener filter-based weight derivation method.

[0097] 3- Subpixel precision: When using a single prediction value, subpixel precision can be used at 1 / 2 pixel precision, 1 / 4 pixel precision, and 3 / 4 pixel precision, with each precision having 8 possible directions.

[0098] 4- Linear Filter Model: A linear filter can be learned between the reference template and the current template, and the linear model is applied to the reference block. This mode can be used for a single prediction when sub-pixel precision is not used.

[0099] The dimensions of all regions (SearchRange_w, SearchRange_h) are set to be proportional to the block dimensions (BlkW, BlkH) to have a fixed number of SAD comparisons per pixel. That is: SearchRange_w = min(64,a BlkW) SearchRange_h = min(64,a BlkH) in" " is a constant that controls the gain / complexity tradeoff. In practice, " "Equals 5."

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

[0101] To accelerate the template matching process, the search range of all search regions is downsampled by a factor of 3. After finding the best match, a refinement process is performed. Refinement is accomplished by searching for a second template match around the best match with a reduced range.

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

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

[0104] 2.1.7.1 Block Vector Candidates Derived from Intra-Frame TMP for IBC In this method, the block vector (BV) derived from intra template matching prediction (intra-TMP) is used for intra-block copying (IBC). The intra-TMP BVs of the stored neighboring blocks, together with the IBC BVs, are used as spatial BV candidates in the construction of the IBC candidate list.

[0105] Intra-frame TMP block vectors are stored in the IBC block vector buffer, and the current IBC block can use both the IBCBV of neighboring blocks and the intra-frame TMP BV as BV candidates for the IBC BV candidate list, such as... Figure 8 As shown.

[0106] Intra-frame TMP block vectors are added to the IBC block vector candidate list as spatial candidates.

[0107] 2.1.8 Fusion for Template-Based Intra-Frame Mode Derivation (TIMD) For each intra-prediction mode in the MPM, and for a wide-angle mode if upper-right and / or lower-left reference samples are available, the SATD between the predicted and reconstructed samples of the template is calculated. The two intra-prediction modes with the smallest SATD are selected as TIMD modes. After applying the PDPC procedure, these two TIMD modes are fused using weights, and this weighted intra-prediction is used for encoding and decoding the current CU. Position-dependent intra-prediction combination (PDPC) is included in the derivation of the TIMD modes.

[0108] The costs of the two selected modes are compared with a threshold, and a cost factor of 2 is applied during the test: costMode2<2 costMode1.

[0109] If the condition is true, fusion is applied; otherwise, only mode1 is used.

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

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

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

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

[0114] • For DIMD patterns with a mixture, the number of forecasts selected for weighted averaging increases from 3 to 6.

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

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

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

[0118] Furthermore, it is proposed that if the derived intra-prediction mode is an angular mode, the weights (wIntra, wInter) for the two tests should be modified. For near-horizontal mode (2 <= angular mode index < 34), the current block is vertically divided, as follows: Figure 9A As shown; for near-vertical mode (34 <= angle mode index <= 66), the current block is divided horizontally, as... Figure 9B As shown.

[0119] Table 1 shows the (wIntra, wInter) values ​​for different sub-blocks.

[0120] Table 1. Weights used for modifications to the angle mode

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

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

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

[0124] The TMRL mode expands the reference line candidate list and the intra-prediction mode candidate list. The expanded reference line candidate list is {1, 3, 5, 7, 12}. The restriction on the top CTU line remains unchanged. The size of the intra-prediction mode candidate list is 10. The construction of the intra-prediction mode candidate list is similar to that of MPM, except that planar modes are excluded from the intra-prediction mode candidate list, DC modes are added after the modes of the 5 neighboring PUs and DIMD modes (if they are not included), and has a range from... arrive Angle patterns with incremental angles (compared to existing angle patterns in the intra-prediction mode candidate list) are added. The accuracy of angle prediction is expanded from 65 to 129. Additionally, non-adjacent locations are added as candidates when constructing the intra-prediction mode candidate list. If neighboring or non-adjacent blocks are encoded or decoded using SGPM or GPM modes, the block's intra-prediction mode is replaced by the split angle.

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

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

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

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

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

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

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

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

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

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

[0135] 2.1.13.2 Calculation of Filter Coefficients Filter coefficients c i It is calculated by minimizing the MSE between the predicted chromaticity samples and the reconstructed chromaticity samples in the reference region. Figure 13 The reference region is shown, consisting of 2 or 6 rows of chroma samples above and to the left of the PU. Whether to use 6 or 2 rows of neighboring samples to derive CCCM model parameters in a single-model CCCM is determined by the template cost. Similarly, for multi-model CCCM modes, two candidates are used to derive the average value separating the samples into two groups using 6 rows of neighboring luma samples or luma samples co-located with the current chroma block. The cost is derived by applying the candidate CCP (2 or 6 rows) to the template and calculating the sum of absolute differences (SAD) between the CCP predicted samples and the reconstructed samples in the template.

[0136] The reference region extends to the right by one PU width and below the PU boundary by one PU height. The region is adjusted to include only available samples. The extension of the region shown in blue is necessary to support the "edge samples" of the plus-shaped spatial filter, and this extension is filled when unavailable regions are present.

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

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

[0139] For simplicity, the reference sample values ​​immediately outside the top-left corner of the PU are used as offsets (offsetLuma, offsetCb, and offsetCr). The sample values ​​used in model creation and final prediction (i.e., luminance and chrominance in the reference region, and luminance in the current PU) are reduced by these fixed values, as follows: C' = C – offsetLuma, N' = N – offsetLuma, S' = S – offsetLuma, E' = E – offsetLuma, W' = W – offsetLuma, P' = nonLinear(C'), B = midValue = 1 << (bit depth - 1), Furthermore, the chromaticity values ​​are predicted using the following equations, where offsetChroma is equal to offsetCr and offsetCb for the Cr and Cb components, respectively: predChromaVal = c0C' + c1N' + c2S' + c3E' + c4W' + c5P' + c6B + offsetChroma.

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

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

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

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

[0144]

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

[0146]

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

[0148] • Enable four gradient filters for GLM, such as Figure 14 As shown.

[0149] 2.1.13.4 CCCM Signaling The use of this mode is signaled via PU-level flags encoded or decoded using CABAC. A new CABAC context is included to support this. When signaling is involved, CCCM is considered a sub-mode of CCLM. That is, the CCCM flag is signaled only when the intra-frame prediction mode is LM_CHROMA.

[0150] 2.1.13.5 CCCM using non-downsampled luminance samples The CCCM mode employs a 3x2 filter that uses unsampled luminance samples, consisting of a 6-tap spatial term, four nonlinear terms, and a bias term. The 6-tap spatial term corresponds to the 6 neighboring luminance samples (i.e., C) surrounding the chrominance sample to be predicted (i.e., C). L 0 、L 1 、…、L 5) Four nonlinear terms from the sample points L 0 、L 1 、L 2 and L 3 is derived, such as Figure 15 As shown.

[0151]

[0152] in It is a coefficient. This is an offset. Similar to existing CCCM designs, 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 addition to the existing model, the proposed method also includes an additional CCCM model transmitted via signal transmission. When CCCM is selected, a single flag is transmitted via signal transmission and applied to both chroma components to indicate whether the default CCCM model or the proposed CCCM model is applied. Furthermore, SPS signaling is introduced to indicate whether CCCM using non-downsampled luminance samples is enabled.

[0153] 2.1.13.6 Block Vector Guided CCCM (BVG-CCCM) When encoding or decoding co-occurrence lumen prediction using IBC or intra-template matching prediction (intra-TMP) within an intra-strip, the BVG-CCCM mode can be used. In this mode, the block vector of the co-occurrence lumen block encoded or decoded in IBC or intra-TMP mode is used to determine the reference region for calculating CCCM parameters. The calculated model parameters and co-occurrence lumen samples are then used to perform the prediction. Figure 16 The reference region in the BVG-CCCM method is shown.

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

[0155] The input of the spatial domain 5-tap component of the filter consists of the center (C) luminance sample that is co-located with the chrominance sample to be predicted, and its upper / north (N), lower / south (S), left / west (W), and right / east (E) neighbors, as shown below. Figure 12 As shown.

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

[0157] Similar to the direct block vector (DBV, Section 2.1.18), five locations in the co-position luminance block region are scanned, and the associated block vector is subsequently used to determine the reference region for parameter calculation in the BVG-CCCM method.

[0158] 2.1.13.7 Gradient- and Position-Based Convolutional Cross-Component Model (GL-CCCM) This method uses a filter to map luminance values ​​to chrominance values. The input to this filter consists of a spatial luminance sample, two gradient values, two location information terms, a nonlinear term, and a bias term. The GL-CCCM method uses the gradient and location information instead of the four spatial neighbor samples used in the CCCM filter. The GL-CCCM filter used for prediction is:

[0159] Among them G y and G x These are the vertical gradient and the horizontal gradient, and as follows: Figure 17 The following calculations are shown: , .

[0160] In addition, Y and X are the spatial coordinates of the center brightness sample point.

[0161] The remaining parameters are the same as those in the CCCM tool. The reference area for parameter calculation is the same as that in the CCCM method.

[0162] The use of this mode is transmitted via signaling through PU-level flags encoded or decoded using CABAC. When signaling is involved, GL-CCCM is considered a sub-mode of CCCM. That is, the GL-CCCM flag is transmitted via signaling only if the original CCCM flag is true.

[0163] Similar to CCCM, the GL-CCCM tool has 6 modes for calculating parameters: • Single model GL-CCCM from the templates above and to the left.

[0164] • Single model GL-CCCM from the template above.

[0165] • Single model GL-CCCM from the template on the left.

[0166] • Multi-model GL-CCCM from the top and left templates.

[0167] • Multi-model GL-CCCM from the template above.

[0168] • Multi-model GL-CCCM from the left template.

[0169] The encoder performs a SATD search on the six GL-CCCM patterns and existing CCCM patterns to find the best candidate for the full RD test.

[0170] 2.1.13.8 CCCM with Multiple Downsampling Filters Multiple downsampling filters are applied to a set of reconstructed luminance samples in the CCCM. A linear combination of these downsampled reconstructed samples is multiplied by derived filter coefficients to form the final chromaticity prediction. The horizontal or vertical position of the center luminance sample is also considered in the tested model. The cross-component model shown below is tested as an additional CCCM mode, where the mode index is transmitted via the signal in the bitstream: (1) Model 1: predChroma = c0 H(C) + c1 G1(C) + c2 G2(C) + c3 G3(C) + c4 P(H(C)) + c5 P(G1(C)) + c6 P(G2(C)) + c7 X + c8 Y + c9 B (2) Model 2: predChroma = c0 H(C) + c1 H(W) + c2 H(E) + c3 G1(C) + c4 G1(W) + c5 G1(E) + c6 P(H(C)) + c7 P(H(W)) + c8 P(H(E)) + c9 X + c10 B (3) Model 3: predChroma = c0 H(C) + c1 H(NE) + c2 H(SW) + c3 G3(C) + c4 G3(NE) + c5 G3(SW) + c6 P(H(C)) + c7 P(H(NE)) + c8 P(H(SW)) + c9 Y + c10 B Where H(·), G1(·), G2(·), and G3(·) are... Figure 18 The various downsampling filters shown are illustrated, where C represents the current chroma sample location, and N, S, W, E, NE, and SW are the locations surrounding C. i These are the filter coefficients, P and B are the nonlinear and bias terms, and X and Y are the horizontal and vertical positions of the center brightness sample relative to the upper left coordinates of the block.

[0171] 2.1.14 Local Enhancement Cross-Component Prediction (LBCCP) Predicted samples in MM-CCLM / MM-CCCM can be filtered using neighboring samples. For example... Figure 19 As shown, a 3×3 low-pass filter is applied to filter the predicted samples generated by MM-CCLM / MM-CCCM. For samples at the top / left boundary, the filtering window may include neighboring reconstructed samples. For inner samples, the filtering window only includes the predicted samples and can be padded. For blocks encoded or decoded with MM-CCLM / MM-CCCM, a signal transmission flag indicates whether filtering is applied.

[0172] 2.1.15 Cross-Component Prediction (CCP) Merge (also known as Non-local CCP) Mode For chroma encoding / decoding, a signal transmission flag indicates whether a CCP mode (including CCLM, CCCM, GLM, and their variants) or a non-CCP mode (a fusion of regular chroma intra-prediction mode and chroma intra-prediction mode) is used. If a CCP mode is selected, another signal transmission flag indicates how the CCP type and parameters are derived, i.e., whether derived from the CCPmerge list or instantaneously via signal transmission / derivation. The CCP Merge candidate list is constructed from spatially adjacent candidates, temporally adjacent candidates, spatially non-adjacent candidates, history-based candidates, or shifted temporally adjacent candidates. After including these candidates, a default model is further included to fill the remaining empty positions in the Merge list. To remove redundant CCP models from the list, a deduplication operation is applied. After constructing the list, the CCP models in the list are reordered according to SAD costs, which are obtained using the neighboring templates of the current block. More details are described below.

[0173] Candidates for adjacent and non-adjacent airspace The positions and inclusion order of spatially adjacent and non-adjacent candidates are the same as those defined in ECM for regular inter-frame Merge prediction candidates.

[0174] Time-domain and shift-time-domain candidates Temporal candidates are selected from co-located images. The positions and inclusion order of the temporal candidates are the same as those defined in ECM for regular inter-frame merge prediction candidates. Shifted temporal candidates are also selected from co-located images. The positions of the temporal candidates are shifted by the selected motion vectors derived from the motion vectors of neighboring blocks.

[0175] Candidates based on history A history-based table is maintained to include the most recently used CCP models, and this table is reset at the beginning of each CTU row. If the current list is not full after including both spatially adjacent and non-adjacent candidates, a CCP model from the history-based table is added to the list.

[0176] Default Candidate CCLM candidates with default scaling parameters are considered only if the list is insufficient after considering candidates that are spatially adjacent, spatially non-adjacent, or based on history. If the current list does not have candidates using the single-model CCLM mode, the default scaling parameter is {0, 1 / 8, -1 / 8, 2 / 8, -2 / 8, 3 / 8, -3 / 8, 4 / 8, -4 / 8, 5 / 8, -5 / 8, 6 / 8}. Otherwise, the default scaling parameter is {0, the scaling parameter of the first CCLM candidate + {1 / 8, -1 / 8, 2 / 8, -2 / 8, 3 / 8, -3 / 8, 4 / 8, -4 / 8, 5 / 8, -5 / 8, 6 / 8}}.

[0177] A signal transmission flag indicates whether CCP Merge mode is applied. If CCP Merge mode is applied, a signal transmission index indicates which candidate model is used for the current block. Additionally, CCP Merge mode is not allowed for the current chroma codec block when the current CU is encoded or decoded via intra-fractional sub-segmentation (ISP) with a single tree, or when the current chroma codec block size is less than or equal to 16.

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

[0179] Use templates ( Figure 21 The list is reordered, where the SAD between the template's prediction and reconstruction is used for sorting. The template size is fixed at 1.

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

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

[0182] The PPS flag is encoded or decoded to indicate whether blending of two intra-frame predictions is not allowed. When the PPS flag is set to false, the following adaptive blending is also applied to the spatial GPM, where, for example... Figure 22 The mixing depth τ shown is derived as follows: • If min(width, height) == 4, then 1 / 2 τ is selected.

[0183] • Otherwise, if min(width, height) == 8, then τ is selected.

[0184] • Otherwise, if min(width, height) == 16, then 2τ is selected.

[0185] • Otherwise, if min(width, height) == 32, then 4τ is selected.

[0186] • Otherwise, 8τ is selected.

[0187] Otherwise (with the PPS flag set to true), 1 / 4 τ is always used for blocks encoded or decoded via spatial GPM to ensure that blending is not used when SGPM blocks have perfectly horizontal or vertical split angles, and a much narrower blending width is used when SGPM blocks have other split angles. It should be noted that this flag is set to true in the current Common Test Conditions (CTC) for screen content video.

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

[0189] For the planar horizontal pattern, horizontal linear interpolation is performed only based on the left and upper right reference points to predict the current point as:

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

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

[0192] 2.1.18 Direct block vectors for chroma blocks Direct block vectors are used for chroma blocks in a dual-tree stripe. When the chroma dual-tree is activated, a signal transmission flag indicates whether the chroma blocks are encoded or decoded using IBC mode. Figure 24 If one of the luma blocks in the five locations shown is encoded or decoded in IBC or intra-frame TMP mode, its block vector is scaled and used as the block vector for the chroma block. Template matching is used to perform block vector scaling.

[0193] 2.1.18.1 Prediction of the current block The EIP mode predicts each position of the current block, such as... Figures 25A to 25C As shown. Additionally, in Figure 25A All inputs to EIP are reconstructed samples. Figure 25B Part of the input consists of reconstructed samples and part consists of predicted samples. Figure 25C All inputs to EIP are prediction samples.

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

[0195] For a location located along the boundary of the current block, part of the input to the EIP filter is the reference sample, and part of the input to the EIP filter is the previously predicted sample.

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

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

[0198] It is the predicted value at (x, y) in the current block. It searches for the minimum and maximum values ​​from the thirteen reconstructed columns and rows. This is the derivation of the EIP filter's first... One coefficient, These are the reconstructed or predicted values ​​used for the current location. The mean is a value calculated using the DC forecasting model.

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

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

[0201] 2.1.19.2 Calculation of Filter Coefficients Three types of reconstructed regions and three filter shapes are proposed, such as Figure 26 As shown, when the current block is predicted using the proposed EIP pattern, the decoder decodes the relevant syntax elements to determine the type of reconstructed region and filter shape selected for the current block.

[0202] Figure 27 The diagram shows three types of filter shapes that have fifteen inputs and produce one output.

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

[0204] 2.1.19.3 Prediction of the current block The EIP mode predicts each position of the current block, such as... Figures 28A to 28C As shown. Additionally, in Figure 28A All inputs to EIP are reconstructed samples. Figure 28B Part of the input consists of reconstructed samples and part consists of predicted samples. Figure 28CAll inputs to the EIP are predicted samples.

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

[0206] For a location located along the boundary of the current block, part of the input to the EIP filter is the reference sample, and part of the input to the EIP filter is the previously predicted sample.

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

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

[0209] It is the predicted value at (x, y) in the current block. It is the minimum and maximum value searched from thirteen reconstructed columns and rows. It is the derived EIP filter's first... One coefficient, It is the reconstructed or predicted value used for the current location. The average value is calculated using the DC forecasting model.

[0210] 2.2 Inter-frame CCCM When the CU uses inter-frame prediction or intra-frame block copy (IBC), inter-frame CCCM applies the CCCM method to predict chromaticity samples from the reconstructed luminance samples. Figure 29 The decoder side of the method is shown. A cross-component filter is derived using prediction blocks for both luma and chroma. The derived filter is applied to the reconstructed luma block and mixed with the chroma prediction block to produce the final chroma prediction block. During the mixing process, the filtered, reconstructed luma block uses a mixing weight of 0.75, and the chroma prediction block uses a mixing weight of 0.25.

[0211] An 8-tap filter consists of 6 spatial brightness samples, a nonlinear term, and a bias term. For example... Figure 30 As shown, the spatial luminance samples (L0, ..., L5) are obtained from a luminance grid that selects the six luminance samples closest to the chromaticity position C without downsampling. The predicted chromaticity value is obtained as follows: predChromaVal = c 0 L0+ c 1 L1 + c 2 L2 + c 3 L3 + c 4 L4 + c 5 L5 + c 6 nonlinear ((L0+L3+1)>>1) + c 7 B, in nonlinear `B` is the nonlinear operator of CCCM, and `B` is the bias. The filter coefficients are derived using the division-free Gaussian elimination method of ECM, and the necessary offset is applied to the samples before the filter derivation. The offset for the division-free Gaussian elimination method is obtained by averaging the four points of the luma and chroma prediction blocks, where the four points correspond to the top-left, top-right, bottom-left, and bottom-right corners of the blocks. For the filter coefficient derivation, a maximum of 256 chroma samples are used.

[0212] The use of this mode is transmitted via signaling through TU level flags encoded or decoded using CABAC. A new CABAC context is included to support this. Inter-frame CCCM flags are transmitted via signaling only when the TU's luminance Cbf is not zero and the CU's predMode is MODE_INTER or MODE_IBC.

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

[0214] 2.3 Inter-frame CCP Merge Mode The intra-frame CCP Merge mode is extended to inter-frame codec blocks, where the final chroma inter-frame prediction combines motion-compensated prediction signals and cross-component prediction signals, which are derived using a CCP model inherited from the CCP Merge list. Decoder-derived intra-frame CCCM candidates are inserted before the inter-frame CCP candidate list. In addition to the decoder-derived intra-frame CCCM candidates, a set of CCP candidates (i.e., spatially adjacent, temporally non-adjacent, history-based, shifted-temporally, and default candidates) is inherited from previously encoded or decoded blocks.

[0215] 2.4 Block Vector Guided CCCM The Block Vector Guided CCCM (BVG-CCCM) method uses the block vectors of co-occurring luma blocks encoded or decoded in IBC or intra-TMP mode to determine the reference region for calculating CCCM parameters. The reference region in the luma and the corresponding region in the chroma channel are then used to calculate the CCCM parameters. Prediction is performed using the calculated model parameters and co-occurring luma samples. Figure 31 The reference region in the BVG-CCCM method is shown.

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

[0217] The BVG-CCCM mode uses the following 11-tap filter for cross-component prediction: predChromaVal = c0C + c1N + c2S + c3E + c4W + c5P(C) + c6P(N) + c7P(S) +c8P(W) + c9P(E)+ c 10 B The input of the spatial domain 5-tap component of the filter consists of the center (C) luminance sample that is co-located with the chrominance sample to be predicted, and its upper / north (N), lower / south (S), left / west (W), and right / east (E) neighbors, as shown below. Figure 32 As shown.

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

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

[0220] This mode can use block vectors (multiple) from both IBC-encoded and intra-TMP-encoded blocks from the same lumen region.

[0221] 2.4.1 Bitstream Signaling The use of this mode is transmitted via signaling through PU-level flags encoded or decoded using CABAC. If the co-bit block is encoded or decoded in IBC or intra-frame TMP mode, and the cross-component index is LM_CHROMA_IDX or MMLM_CHROMA_IDX, then the BVG-CCCM flag is transmitted via signaling.

[0222] 2.4.2 Encoder Operation The encoder performs two additional RDs for BVG-CCCM variants of both single-model and multi-model CCCM.

[0223] 2.5 Features adaptive limiting of lower and upper boundaries for signal transmission. For each image, the minimum and maximum values ​​of the luminance channel derived from the MCTF pre-filtered image are transmitted via signal and used to perform clipping during the reconstruction phase.

[0224] The minimum / maximum values ​​of the luminance channel to be transmitted via signal are used as limiting boundaries. These minimum / maximum values ​​are obtained by scanning the sample values ​​in the original image. If a motion-compensated temporal filter (MCTF) is applied to the image, the minimum / maximum values ​​are obtained by scanning the sample values ​​in the MCTF-pre-filtered image. These minimum / maximum values ​​are used as the lower and upper limits for limiting during the reconstruction phase (when the residual signal is added to the prediction) and before the reconstructed image is saved to the decoded image buffer.

[0225] For each image, the increment value of the minimum / maximum value is derived and quantified. For image I, the increment value between [64, 940] and the minimum / maximum value is derived and transmitted via signal in the image header. For other images, the increment value compared with the minimum / maximum value transmitted via signal in the corresponding image is transmitted via signal in the image header.

[0226] When limiting is performed in the Luminance Mapped Chroma Scaling (LMCS) mapping domain, the minimum / maximum value is derived by applying a forward LMCS lookup table to the minimum / maximum value transmitted through the signal.

[0227] 3 questions The current ECM has the following problems, which can be improved.

[0228] 1) In the current ECM, template-based reordering is applied to inter-frame / intra-frame CCP Merge mode, where the template cost is derived based on the CCP application. However, the method for deriving the template cost for CCP mode can be further improved.

[0229] 2) In the current ECM, the derived intra-frame CCCM candidates can be inserted into the CCP candidate list of the inter-frame CCP Merge mode. However, such decoder-derived CCP candidates can be further expanded to achieve higher compression efficiency.

[0230] 3) In the current ECM, inter-frame CCP mode and inter-frame CCPmerge mode can only be applied to inter-frame chroma TB when a non-zero luma coefficient exists. Furthermore, inter-frame CCP Merge is allowed for inter-frame Merge mode, but not for blocks encoded or decoded using AMVP. This design can be improved.

[0231] 4 Detailed Solutions The following detailed embodiments should be considered as examples to explain general concepts. These embodiments should not be interpreted in a narrow sense. Furthermore, these embodiments can be combined in any way.

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

[0233] The term "prediction cell" can refer to a prediction block or a prediction sample.

[0234] The term "CCP" can refer to any cross-component prediction method, such as any kind of LM / intra-frame CCLM / inter-frame CCCM / MMLM / CCCM / GLM / GL-CCCM / intra-frame CCP Merge / inter-frame CCP Merge. It can be used for intra-frame blocks, inter-frame blocks, or IBC blocks. It can be a type of CCP-based fusion mode.

[0235] The term "linear / nonlinear filter" can refer to a filter / model whose coefficients are derived based on a linear regression model or a nonlinear model. It can be used for cross-component prediction such as CCP or same-component prediction such as EFI, filtered IBC, filtered intra-frame TMP, etc.

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

[0237] 1) The mixed template can be used for template cost calculation.

[0238] a) The mixed template can be used i) Inter-frame prediction ii) Intra-frame prediction iii) IBC Prediction iv) Any combination of the above.

[0239] b) In one example, for a fusion-based prediction model, if the template cost is calculated, the predicted template samples can be generated by fusion of at least two predictions.

[0240] i) For example, template samples can be generated by mixing at least two of the following: (1) Predict sample values ​​using the CCP model derived from the CCP model to be accessed.

[0241] (2) Predict sample values ​​using CCP models derived from predefined CCP patterns (e.g., CCCM, CCLM, etc.).

[0242] (3) Motion compensation sample values ​​derived from the motion / block vectors associated with the inter-frame mode to be accessed.

[0243] (4) Intra-predicted values ​​derived from the intra-mode to be accessed.

[0244] (5) Intra-predicted values ​​derived from predefined intra-frame modes (e.g., DM mode, DIMD mode, or TIMD mode).

[0245] ii) For example, the weights used for blending could be: (1) For example, the same weighting method used for the derivation of the final prediction for the current prediction block can be used for different parts of the mixed template prediction.

[0246] (a) For example, for inter-frame CCCM or inter-frame CCP Merge, the weights used for template blending can be M:N (e.g., M=3 / 4, N=1 / 4), where M is used for the template values ​​predicted by the CCP model and N is used for the template values ​​predicted by motion compensation.

[0247] (b) For example, for CIIP, the weights used for template blending can be M:N (e.g., M=3 / 4, N=1 / 4), where M is used for the inter-frame motion compensation prediction part and N is used for the intra-frame prediction part.

[0248] (2) Alternatively, a weighting method different from the weighting method used for the derivation of the final prediction for the current prediction block can be used for different parts of the mixed template prediction.

[0249] (a) For example, a different set of weighting factors can be used in the template mixing process compared to the weighting factors used for the derivation of the current prediction block.

[0250] (3) For example, the weights used for mixing can be predefined fixed values ​​(e.g., based on blocks).

[0251] (4) For example, the weights used for blending can follow predefined rules (e.g., depending on block width, block height, distance to block boundary, etc.).

[0252] (5) For example, the weights used for mixing can be sample-adaptive.

[0253] iii) For example, a hybrid-based prediction model could be: (1) Inter-frame CCCM, (2) Inter-frame CCP Merge (3) Features hybrid intra-frame CCP merge, (4) CCP mode with hybrid decoder derivation, (5) It features mixed intra-frame chroma prediction. (6) Features hybrid intra-frame brightness prediction. (7) CIIP and its variants (e.g., CIIP inter-frame-intra-frame, CIIP IBC-intra-frame, etc.). (8) MHP and its variants (9) GPM and its variants (e.g., GPM inter-frame-inter-frame, GPM inter-frame-intra-frame, GPM IBC-intra-frame, GPM IBC-IBC, GPM intra-frame-intra-frame, etc.). (10) SGPM and its variants (e.g., SGPM intra-intra-intra-frame, etc.). (11) Intra-frame TMP mixing, (12) Having mixed IBC (e.g., bidirectional predictive IBC, etc.).

[0254] 2) The CCP model can be computed based on the current block, even if the current block is not encoded or decoded by CCP.

[0255] a) The current block must be a chroma block.

[0256] b) In one example, based on the correlation between the predicted luminance and component components of the current block, the CCP model can be computed for the current intra-frame, inter-frame, or IBC block.

[0257] i) For example, the training samples used to calculate model coefficients can be based on samples within the current block.

[0258] ii) For example, training samples used to calculate model coefficients can be based on samples within the current block and samples adjacent to the current block.

[0259] c) In one example, the CCP model computed for the current block can be stored in a cache and used for encoding and decoding future blocks.

[0260] i) For example, for a codec block, its CCP model can be derived based on the CCP model calculated from previous blocks.

[0261] (1) For example, codec blocks can be encoded or decoded in intra-frame CCP Merge, inter-frame CCP Merge, or CCP mode deduced by the decoder.

[0262] (2) For example, the codec block can be encoded or decoded intra-frame or inter-frame or IBC.

[0263] ii) For example, the CCP model of stored computation can be labeled with a specific type.

[0264] (1) For example, it can be labeled based on the prediction pattern of the block it is computed from the CCP model.

[0265] (2) For example, for a codec block, the type of CCP model used for computation can depend on the prediction mode of the codec block and the prediction mode of the CCP model from the previous blocks to which it was computed.

[0266] iii) For example, the computed CCP model can be used for future block encoding and decoding, regardless of whether the computed CCP model was computed from inter-frame blocks, intra-frame blocks, or IBC blocks.

[0267] 3) The first prediction derived based on the filter model (e.g., CCP mode, linear / nonlinear model, etc.) can be further mixed with the second prediction to form the final prediction for the current block.

[0268] a) In one example, more than one mixed candidate (e.g., a mixed candidate list) can be generated to derive a second prediction.

[0269] i) For example, which hybrid candidate to use can be determined based on template cost.

[0270] ii) For example, which mixing candidate can be used to transmit signals in the bitstream.

[0271] b) For example, hybrid candidates can be based on: i) CCP mode (e.g., MMLM, MM-CCCM, LBCCP, etc.).

[0272] ii) Intra-frame modes (e.g., DM, planar, DIMD, TIMD, etc.).

[0273] c) In one example, the current block can be encoded or decoded in one of the following modes: i) Intra-frame CCP and / or its variants, ii) Intra-frame CCP merge and / or its variants, iii) Inter-frame CCCM and / or its variants, iv) Inter-frame CCP merge and / or its variants, v) The CCP mode and / or its variants derived by the decoder. vi) Intra-frame chroma prediction and / or its variants, vii) Intra-frame luminance prediction and / or its variants, viii) CIIP (e.g., CIIP Inter-Frame-Intra-Frame, CIIP IBC-Intra-Frame, etc.) and / or its variants, ix) MHP and / or its variants, x) GPM (e.g., GPM inter-frame to inter-frame, GPM inter-frame to intra-frame, GPM IBC to intra-frame, GPM IBC-IBC, GPM intra-frame to intra-frame, etc.) and / or its variants, xi) SGPM (e.g., SGPM intra-intra-frame, etc.) and / or its variants, xii) Intra-frame TMP and / or its variants, xiii) IBC (e.g., one-way predictive IBC, two-way predictive IBC, etc.) and / or its variants.

[0274] 4) Low-pass filtered CCP candidates can be inserted into the CCP list or the mixed candidate list.

[0275] a) In one example, the low-pass filter could be an LBCCP filter.

[0276] b) In one example, the indicator of the low-pass filter can be added to the candidate derived by the decoder (e.g., CCP candidate, intra-frame mode candidate, inter-frame mode candidate, etc.).

[0277] i) For example, LBCCP flags can be added to multi-model CCP candidates derived by the decoder (e.g., intra-frame CCCM, inter-frame CCCM, NS-CCCM, GL-CCCM, MDF-CCCM, CCLM, etc.).

[0278] (1) Alternatively, it can be added to the single-model CCP candidate derived by the decoder.

[0279] ii) For example, in addition to the candidates derived from the original decoder, the generated LBCCP-based CCP candidates can be added as additional CCP candidates.

[0280] (1) Alternatively, the generated LBCCP-based CCP candidate can be added to replace the original decoder-derived CCP candidate.

[0281] c) In one example, the indicator of the low-pass filter can be added to the inherited candidate (e.g., CCP candidate, intra-mode candidate, inter-mode candidate, etc.).

[0282] i) For example, LBCCP flags can be added to CCP candidates for multi-model inheritance (e.g., intra-frame CCCM, inter-frame CCCM, NS-CCCM, GL-CCCM, MDF-CCCM, CCLM, etc.).

[0283] (1) Alternatively, it can be added to the inherited single-model CCP candidate.

[0284] ii) For example, in addition to the original non-LBCCP encoded or decoded CCP candidates, the generated LBCCP-based CCP candidates can be added as additional CCP candidates.

[0285] (1) Alternatively, the generated LBCCP-based CCP candidate can be added to replace the original non-LBCCP encoded or decoded CCP candidate.

[0286] iii) In addition, for example, candidates that are not low-pass filtered can be generated based on low-pass filtered candidates.

[0287] (1) For example, non-LBCCP candidates can be generated (e.g., LBCCP flag equal to false), where the CCP model parameters of the new candidate are inherited from the original LBCCP candidate, but the LBCCP flag is set to false for the new candidate.

[0288] (2) For example, in addition to the original LBCCP candidates, the generated non-LBCCP candidates can be added as additional CCP candidates.

[0289] d) In one example, the state of the low-pass filter of a CCP candidate (e.g., indicator, filter tap, filter coefficients, etc.) can be inherited from a previous encoded or decoded block.

[0290] i) For example, if neighboring blocks in a predefined inspection order are encoded or decoded using low-pass filters, then when the CCP model of such neighboring blocks is used as a CCP candidate for the current block, the state of the low-pass filters of such neighboring blocks is also inherited as CCP candidate information for the current block.

[0291] ii) For example, whether the current codec unit inherits low-pass filter information for non-intra-frame (e.g., inter-frame and / or IBC, etc.) encoding or decoding may depend on whether the luma transform block of the current codec unit contains all-zero transform coefficient magnitudes (e.g., luma_cbf == 0, or tu_y_coded_flag == 0, etc.).

[0292] (1) For example, if the brightness transform block of the current encoding / decoding unit contains all-zero transform coefficient amplitudes, the low-pass filter information may not be inherited.

[0293] iii) For example, whether the current codec unit inherits low-pass filter information for non-intra-frame (e.g., inter-frame and / or IBC, etc.) encoding or decoding may depend on whether the current codec unit’s luma transform block and all chroma transform blocks contain all-zero transform coefficient magnitudes (e.g., rootCbf == 0, cu_skip_flag, etc.).

[0294] (1) For example, if the luminance transform block and all chrominance transform blocks of the current encoding / decoding unit contain all-zero transform coefficient amplitudes, then the low-pass filter information may not be inherited.

[0295] e) In one example, the CCP candidate list can be constructed based on candidates of the first type and candidates of the second type.

[0296] i) For example, a candidate of the first type can be a candidate derived by a decoder with an LBCCP flag equal to X (e.g., CCP model parameters are generated instantaneously from neighboring reconstructed samples), and a candidate of the second type can have the same CCP model parameters as a candidate of the first type, but with an LBCCP flag value equal to (1-X).

[0297] (1) For example, X=0.

[0298] ii) For example, a candidate of the first type can be an inherited candidate whose LBCCP flag is equal to Y (e.g., the CCP model parameters are inherited from a neighboring CCP encoding or decoding block), and a candidate of the second type can have the same CCP model parameters as a candidate of the first type, but the value of the LBCCP flag is equal to (1-Y).

[0299] (1) For example, Y=0.

[0300] (2) For example, Y=1.

[0301] f) In one example, a low-pass filter can be applied to a single-model CCP candidate.

[0302] i) Alternatively, a low-pass filter can be applied to multi-model CCP candidates.

[0303] g) In one example, the LBCCP filter mentioned above could refer to another low-pass filter.

[0304] 5) At most K decoder-derived candidates can be inserted into the candidate list (e.g., K>1).

[0305] a) In one example, more than K decoder inference candidates are generated, and K of them can be selected based on the template cost reordering method.

[0306] b) In one example, K decoder derivation candidates can be added to a candidate list that includes both decoder derivation candidates and inherited candidates.

[0307] i) For example, all candidates in the list can be reordered again for the final encoding / decoding process.

[0308] ii) For example, all candidates in the list can be reordered for the final encoding / decoding process.

[0309] 6) Whether the CCP candidates derived by the decoder are available for a particular mode can depend on: a) Advanced syntax markers (e.g., sps cccm marker, sps lm marker, sps cclm marker, etc.).

[0310] b) Low-level syntax flags (e.g., block-level ns_cccm flags, etc.).

[0311] c) Prediction patterns (e.g., LM-TL / L / T pattern, MMLM-TL / L / T pattern, etc.).

[0312] d) Block coordinates (e.g., the top left block of an image can be considered a CCP candidate that does not have a valid decoder derivation).

[0313] e) Block width and / or height.

[0314] f) The number of available neighbor samples within a predefined reference area (e.g., if the number of available neighbor samples is less than a predefined threshold, it can be considered a CCP candidate that does not have a valid decoder derivation).

[0315] 7) The first CCP prediction may be mixed with the second prediction, wherein the second prediction may be encoded or decoded by the CCP or may not be encoded or decoded by the CCP.

[0316] a) The second prediction can be encoded or decoded by inter-frame CCP.

[0317] b) The second prediction can be encoded or decoded by intra-frame CCP.

[0318] c) The second prediction can be inter-frame encoded or decoded.

[0319] d) The second prediction can be intra-frame encoded or decoded.

[0320] e) The second prediction can be encoded or decoded by IBC.

[0321] f) The second prediction can be encoded or decoded using LBCCP or non-LBCCP methods.

[0322] g) The second prediction may be based on a candidate list that includes at least one (or a combination of more than one) of the following elements: i) Predefined intra-frame modes ii) Predefined CCP patterns iii) Predefined schema tables / lists (1) For example, a predefined pattern table / list may include DIMD and / or TIMD and / or plane and / or MM-CCP and / or MM-CCCM.

[0323] iv) CCP candidate list (1) For example, the first CCP prediction and the second CCP prediction can both come from the same CCP candidate list.

[0324] (a) For example, how to derive a second CCP prediction based on template cost.

[0325] (b) For example, how to derive the second CCP prediction can be determined at the encoder and transmitted through the signal in the bit stream.

[0326] (c) For example, the CCP candidate list may include at least one of the following candidates: (i) Candidates derived by the decoder (e.g., CCP model parameters are generated instantaneously from neighboring reconstructed samples). (ii) Inheritance candidates (e.g., CCP model parameters are inherited from neighboring CCP encoding or decoding blocks) h) For example, whether the second prediction comes from a predefined pattern table / list or from a CCP candidate list can be determined at the encoder and transmitted via signal in the bitstream.

[0327] i) Furthermore, for example, if the second prediction comes from a predefined pattern table / list, then which candidate in the table / list is used can be determined by the template cost.

[0328] (1) Alternatively, which candidate in the table / list is used can be further transmitted via signal in the bitstream.

[0329] ii) Furthermore, for example, if the second prediction comes from a list of CCP candidates, then which candidate in the list is used can be determined by the template cost.

[0330] (1) Alternatively, which candidate in the list is used can be further transmitted via signal in the bit stream.

[0331] iii) Alternatively, for example, whether the second prediction comes from a predefined pattern table / list or from a CCP candidate list can be determined based on decoder-side information such as template cost.

[0332] 8) For a given codec unit, at least two mixing modes may be allowed to mix a first prediction with at least another prediction.

[0333] a) For example, a first syntax can be transmitted by signaling to indicate whether a first mixing mode is used in the current codec unit, and a second syntax can be transmitted by signaling to indicate whether a second mixing mode is used.

[0334] b) Alternatively, for example, a syntax (e.g., a mix mode index) can be signaled to indicate which mix mode is being used by the current codec unit.

[0335] c) For example, the first mixing mode could refer to mixing CCP candidate A with CCP candidate B, where A and B both come from the same CCP candidate list.

[0336] i) For example, how to determine CCP candidate A can be based on template cost.

[0337] (1) Alternatively, it can be transmitted as a signal in a bit stream.

[0338] ii) For example, how to determine CCP candidate B can be based on template cost.

[0339] (1) Alternatively, it can be transmitted as a signal in a bit stream.

[0340] iii) For example, the CCP candidate list may include at least one of the following candidates: (1) Derived candidates from the decoder (e.g., CCP model parameters are generated instantaneously from neighboring reconstructed samples). (2) Inheritance candidates (e.g., CCP model parameters are inherited from neighboring CCP encoding or decoding blocks) d) For example, the second hybrid mode can refer to mixing CCP candidate A with a predefined mode B, where B can be encoded or decoded by the CCP or can be left unencoded or undecoded by the CCP.

[0341] i) For example, B can come from a predefined list of patterns (such as DIMD, MM-CCCM, etc.). (1) For example, which of the predefined pattern lists is ultimately chosen to deduce that B can be transmitted via signal in the bit stream.

[0342] (2) Alternatively, which of the predefined pattern lists is ultimately chosen to derive B can be determined based on template cost.

[0343] e) For example, signaling in the second hybrid mode can be transmitted via signaling under the conditions of the first hybrid mode.

[0344] i) For example, a first hybrid mode or a second hybrid mode can be applied to the current codec unit.

[0345] ii) For example, if the first mixing mode is used, the second mixing mode is presumed (e.g., not transmitted via signaling) not to be used by the current codec unit.

[0346] f) For example, both the first and second hybrid modes can be applied to the current codec unit.

[0347] i) For example, two hybrid modes can be applied in a cascaded manner.

[0348] ii) For example, signaling in two mixed modes can be non-exclusive.

[0349] g) For example, the above definitions of the first and second mixing modes can be interchanged.

[0350] 9) For example, in the case where the mixing process involves mixing predictions encoded or decoded by LBCCP and predictions encoded or decoded by non-LBCCP.

[0351] a) For example, the first predicted LBCCP flag (e.g., it can be equal to 0 or 1) can be stored in a cache and used for encoding or decoding future blocks.

[0352] b) For example, how to determine the first prediction can be based on template cost.

[0353] c) Alternatively, how to determine if the first prediction can be transmitted via signal in the bitstream.

[0354] 10) For example, specific inter-frame / IBC CCP modes (e.g., inter-frame / IBC CCP Merge mode, or CCP mode in B / P stripe, or CCP mode for IBC / inter-frame blocks, or CCP mode that does not derive the CCP model from training samples of reference blocks based on MV / BV identifiers, etc.) can be applied to the following encoded or decoded video units: a) AMVP encoding or decoding b) IBC encoding or decoding c) Merge encoding or decoding d) Inter-frame coding or decoding e) The current encoding / decoding unit's luminance transform block contains all-zero transform coefficient amplitudes. f) The chroma transform block of the current encoding / decoding unit contains all-zero transform coefficient magnitudes. g) All transform blocks (e.g., both luma and chroma) of the current codec unit contain all-zero transform coefficient magnitudes. 11) For example, the CCP model for a specific inter-frame / IBC CCP mode (e.g., inter-frame / IBC CCP Merge mode, or CCP mode in B / P stripe, or CCP mode for IBC / inter-frame blocks, or CCP mode that does not derive the CCP model from training samples of reference blocks based on MV / BV identifiers, etc.) can be inherited from previous CCP encoding or decoding blocks.

[0355] a) For example, the CCP model of such a pattern may not be allowed to be computed from available reconstruction samples (e.g., adjacent / non-adjacent neighboring samples to the left / above of the current block).

[0356] b) For example, alternatively, the CCP model of such a pattern can be computed from available reconstruction samples (e.g., adjacent / non-adjacent neighboring samples to the left / above of the current block).

[0357] i) For example, CCP models (e.g., the number of linear / nonlinear terms, model / filter shape, use of downsampled / non-downsampled luminance samples, etc.) can be similar to CCLM / MMLM / intra-frame CCCM / NS-CCCM / GL-CCCM / MDF-CCCM / inter-frame CCCM, etc.

[0358] ii) For example, CCP model coefficients can be calculated on the encoder and decoder sides simultaneously.

[0359] 12) For example, specific inter-frame / IBC CCP modes (e.g., inter-frame / IBC CCP Merge mode, or CCP mode in B / P stripe, or CCP mode for IBC / inter-frame blocks, or CCP mode that does not derive the CCP model from training samples of reference blocks based on MV / BV identifiers, etc.) may not be applied to the following encoded or decoded video units: a) SBT encoding or decoding b) CIIP encoding or decoding c) MHP encoding or decoding d) IBC encoding or decoding e) AMVP encoding or decoding Application of inter-frame CCP or inter-frame CCP Merge when all luma coefficients are zero: 13) If the luma transform block of the current codec unit contains all-zero transform coefficient magnitudes (e.g., luma_cbf == 0, or tu_y_coded_flag == 0, etc.), then CCP-based predictions can be generated for the current codec unit.

[0360] a) The current encoding / decoding unit can be: i) Based on inter-frame AMVP ii) Based on IBC AMVP iii) Based on inter-frame merge iv) Based on IBC Merge b) Whether to perform CCP prediction on the current codec unit can depend on syntax elements (e.g., flags).

[0361] i) Syntax elements can be transmitted via signals at the codec unit level (such as CU / PU / TU / CB / PB / TB).

[0362] (1) For example, syntax elements can be transmitted via signal at the TU / TB level to specify whether video units are encoded or decoded in a specific inter-frame CCP mode (e.g., inter-frame CCCM Merge mode).

[0363] (a) For example, inter-frame CCP mode can derive the CCP model from reconstructed (luminance and chrominance) samples adjacent to the current block.

[0364] (i) Alternative site, which can derive the CCP model from reconstructed samples that are not adjacent to the current block.

[0365] (b) For example, the inter-frame CCP mode can derive the CCP model from training samples without being based on the inter-frame / IBC reference block identified by MV / BV.

[0366] (c) For example, inter-frame CCP mode can inherit the CCP model from previous CCP encoded or decoded blocks.

[0367] (2) The existence of syntax elements may depend on whether the luma transform block of the current codec unit contains all-zero transform coefficient magnitudes (e.g., luma_cbf == 0, or tu_y_coded_flag == 0, etc.).

[0368] (a) For example, the chroma transform block of the current codec unit may contain non-zero transform coefficient magnitudes (e.g., cb_cbf != 0, or cr_cbf != 0, or tu_cb_coded_flag != 0, or tu_cr_coded_flag != 0, etc.).

[0369] (b) For example, if the luminance transform block of the current codec unit contains all-zero transform coefficient amplitudes, then syntax elements can be transmitted via signals.

[0370] (i) Otherwise (if the luminance transform block of the current codec unit contains non-zero transform coefficient magnitudes), the syntax element is presumed to be a specific value.

[0371] (ii) Alternatively, for example, if the luminance transform block of the current codec unit contains non-zero transform coefficient magnitudes, the syntax elements are transmitted via signaling.

[0372] (3) The existence of syntax elements does not depend on whether the luma transform block of the current codec unit contains all-zero transform coefficient magnitudes (e.g., luma_cbf == 0, or tu_y_coded_flag == 0, etc.).

[0373] (a) For example, a syntax element is transmitted via signal as long as at least one non-zero transform coefficient magnitude in the luminance or chrominance transform block is present.

[0374] ii) Syntax elements may be the same as those used for cases where the luma transform block contains one or more transform coefficient magnitudes that are not equal to zero (e.g., inter-frame CCP flag, inter-frame CCP Merge flag, intra-frame CCP flag, etc.).

[0375] (1) Syntax elements can be transmitted via signals regardless of the magnitude of the brightness transformation coefficient.

[0376] (a) For example, as long as at least one of the non-zero transformation coefficients in luminance or chrominance has an amplitude, it can be transmitted via signal at the TU / TB level.

[0377] (2) Alternatively, different syntax elements may be transmitted via signal depending on whether the brightness transform block contains one or more transform coefficient amplitudes that are not equal to 0.

[0378] iii) Syntax elements can be encoded or decoded by context.

[0379] (1) More than one context model can be used for this syntax element.

[0380] (a) Which context model is used for a particular codec unit may depend on whether the luminance transform block contains one or more transform coefficient magnitudes that are not equal to 0.

[0381] (b) For example, which context model is used may depend on whether the codec unit is encoded or decoded in Merge mode.

[0382] (c) For example, which context model is used may depend on whether the codec unit is encoded or decoded in inter-frame mode.

[0383] (2) For example, the TU-level inter-frame CCP Merge mode can be context-coded or decoded, depending on whether the luminance transform block contains one or more transform coefficient amplitudes that are not equal to 0.

[0384] c) Whether to perform CCP prediction for the current codec unit can be implicitly deduced at both the encoder and decoder, following predefined rules (i.e., not transmitted via signal in the bitstream).

[0385] (1) It can depend on previous encoding and decoding information (e.g., from previous encoding and decoding units).

[0386] (a) It can depend on the CCP mode information of neighboring blocks.

[0387] d) Which CCP model is applied to the current codec unit? i) Inherited from the previous CCP encoding or decoding unit.

[0388] ii) Derived / calculated instantly from neighboring (reconstructed) samples.

[0389] iii) A list of CCP candidates is derived based on a CCP model that includes inheritance and / or a CCP model that is derived / computed on the fly.

[0390] 14) If the luminance transform block and all chrominance transform blocks (e.g., Cb transform block and Cr transform block) of the current codec unit contain all-zero transform coefficient magnitudes (e.g., rootCbf == 0, cu_skip_flag, etc.), then CCP-based predictions can be generated for the current codec unit.

[0391] a) The current encoding / decoding unit can be: i) Based on inter-frame AMVP ii) Based on IBC AMVP iii) Based on inter-frame merge (e.g., inter-frame merge skip mode) iv) Based on IBC Merge (e.g., IBC Merge skip mode) b) Whether to perform CCP prediction on the current codec unit can depend on syntax elements (e.g., flags).

[0392] i) Syntax elements can be transmitted via signals at the codec unit level (such as CU / PU).

[0393] (1) For example, syntax elements can be transmitted via signal at the CU / PU / CB / PB level to specify whether video units are encoded or decoded in a specific inter-frame CCP mode (e.g., inter-frame CCCM Merge mode).

[0394] (a) For example, inter-frame CCP mode can derive the CCP model from reconstructed (luminance and chrominance) samples adjacent to the current block.

[0395] (i) Alternative site, which can derive the CCP model from reconstructed samples that are not adjacent to the current block.

[0396] (b) For example, the inter-frame CCP mode can derive the CCP model from training samples without being based on the inter-frame / IBC reference block identified by MV / BV.

[0397] (c) For example, inter-frame CCP mode can inherit the CCP model from previous CCP encoded or decoded blocks.

[0398] (2) For example, the existence of syntax elements may depend on whether the luma transform block and all chroma transform blocks of the current codec unit contain all-zero transform coefficient magnitudes (e.g., rootCbf == 0, cu_skip_flag, etc.).

[0399] (a) For example, if the luminance transform block and all chrominance transform blocks of the current codec unit contain all-zero transform coefficient magnitudes, then the syntax element is transmitted via signal.

[0400] (i) Otherwise (if the luminance transform block or chrominance transform block of the current codec unit contains at least one non-zero transform coefficient magnitude), the syntax element is presumed to be a specific value.

[0401] ii) Syntax elements may be the same as those used for cases where a luma or chroma transform block contains one or more transform coefficient magnitudes that are not equal to zero (e.g., intra-frame CCP flag, intra-frame CCP Merge flag, etc.).

[0402] (1) Alternatively, different syntax elements may be transmitted via signal depending on whether the luminance or chrominance transform block contains one or more transform coefficient amplitudes that are not equal to 0.

[0403] iii) Syntax elements can be encoded or decoded by context.

[0404] (1) More than one context model can be used for this syntax element.

[0405] (a) Which context model is used for a particular codec unit may depend on whether the luminance or chrominance transform block contains one or more transform coefficient magnitudes that are not equal to 0.

[0406] (b) Which context model is used for a particular codec unit may depend on whether the Merge skip mode is used for such a codec unit.

[0407] (c) For example, which context model is used may depend on whether the codec unit is encoded or decoded in Merge mode.

[0408] (d) For example, which context model is used may depend on whether the codec unit is encoded or decoded in inter-frame mode.

[0409] (2) For example, the CU-level inter-frame CCP Merge mode can be context-coded or decoded, depending on whether the current CU is encoded or decoded to skip (SKIP) mode.

[0410] c) Whether to perform CCP prediction for the current codec unit can be implicitly deduced at both the encoder and decoder, following predefined rules (i.e., not transmitted via signal in the bitstream).

[0411] (1) It can depend on previous encoding and decoding information (e.g., from previous encoding and decoding units).

[0412] (a) It can depend on the CCP mode information of neighboring blocks.

[0413] (b) For example, if at least one of the previously encoded or decoded blocks (e.g., at a predefined location) was encoded or decoded using CCP, the current encoding / decoding unit can be presumed to have been encoded or decoded based on CCP.

[0414] (2) It can be inherited from previous codec blocks (e.g., neighboring blocks).

[0415] (a) For example, if the Merge candidate of such a Merge skip encoded or decoded block is CCP encoded or decoded, the CCP model associated with such a Merge candidate is used by default for the current Merge skip encoded or decoded block to generate CCP-based predictions.

[0416] (i) For example, candidate lists are constructed for both CCP prediction derivation and motion compensation prediction derivation.

[0417] (ii) For example, the CCP model (e.g., model parameters, etc.) can be stored as associated with each codec unit.

[0418] (iii) For example, the CCP model of the Merge candidate can be inherited into the current codec unit.

[0419] (b) Alternatively, if the Merge candidate of such a Merge skip encoded or decoded block is CCP encoded or decoded, the prediction of the current Merge skip encoded or decoded block is generated by the CCP model by default (but the CCP model used for the current Merge skip block may be different from the CCP model associated with the Merge candidate).

[0420] (i) For example, a new list of CCP candidates can be constructed, especially for CCP prediction derivation.

[0421] 1. For example, the inclusion order and / or rules for constructing a CCP list may differ from those for constructing a Merge list.

[0422] 2. For example, during the generation of the CCP candidate list for a future block, CCP model parameters can be stored as associated with each codec unit and inherited into the future block.

[0423] (ii) For example, an indicator of whether a block is CCP encoded or decoded (e.g., rather than CCP model parameters for such blocks) can be stored as associated with each encoding / decoding unit and inherited into future blocks during the generation of the Merge list for future blocks.

[0424] d) Which CCP model is applied to the current codec unit could be: i) Inherited from the previous CCP encoding or decoding unit.

[0425] (1) It can come from the same Merge candidate used to generate the motion compensation prediction for the current block.

[0426] (2) It can come from CCP candidates, especially for the CCP prediction part, which may be different from the Merge candidates used to generate motion compensation predictions for the current block.

[0427] ii) Derived / calculated instantly from neighboring (reconstructed) samples.

[0428] iii) A list of CCP candidates is derived based on a CCP model that includes inheritance and / or a CCP model that is derived / computed on the fly.

[0429] e) Such inter-frame CCP mode can be applied only to Merge skip mode.

[0430] i) For example, such a mode can only be allowed if the current block is in Merge skip mode.

[0431] ii) For example, syntax elements that specify such a mode can only be signaled if the current block is in Merge skip mode.

[0432] (1) Otherwise, a syntax element can be presumed to be a specific value that specifies that such a pattern is not used.

[0433] f) Block size limits can be applied to such inter-frame CCP modes.

[0434] i) For example, different block constraints can be applied depending on whether all transform blocks contain all-zero transform coefficient magnitudes (e.g., rootCbf = 0, etc.).

[0435] (1) For example, if there is at least one non-zero transform coefficient magnitude in the luminance or chrominance transform block, the first block constraint can be applied. If there is no non-zero transform coefficient magnitude in all luminance and chrominance transform blocks, the second block constraint can be applied.

[0436] (a) For example, the first constraint could be W c xH c >=T1 and W c xH c <=T2 (e.g., T1=16, T2=1024).

[0437] (b) For example, the second constraint could be WcxHc>=T3 and WcxHc<=T4 (such as T3=4, T4=4096).

[0438] 15) At least one syntax element may be transmitted via signal at the codec unit level (e.g., above the strip data level, such as SPS / PPS / PH / SH level) to indicate whether a particular mode (e.g., CCP mode, inter-frame CCP Merge mode with zero luminance CBF, etc.) is permitted for such codec unit.

[0439] a) For example, when the luminance transform block contains all-zero transform coefficient amplitudes, a syntax element (e.g., SPS / PPS / PH / SH flags, etc.) can be signaled to control the allow / disallow / application of inter-frame CCP Merge mode.

[0440] b) For example, a syntax element (e.g., SPS / PPS / PH / SH flags, etc.) can be signaled to control the permission / disallowment / application of all kinds of inter-frame CCP Merge modes (e.g., regardless of whether the luma and / or chroma transform blocks contain all-zero transform coefficient amplitudes).

[0441] c) For example, multiple syntax elements (e.g., SPS / PPS / PH / SH flags, etc.) can be signaled to control the permission / disallowment / application of different kinds of inter-frame CCP Merge modes (e.g., depending on whether the luma and / or chroma transform block contains all-zero transform coefficient amplitudes).

[0442] d) For example, in addition, the values ​​of (multiple) syntax elements can be determined on the encoder side (e.g., based on the hash value of a specific video unit (such as the first stripe, intra-frame stripe, etc.) of the encoded or decoded sequence).

[0443] i) For example, the values ​​of (multiple) syntax elements can be determined based on the selection ratio of a specific codec mode for a previously encoded or decoded video unit (e.g., how many blocks select a specific mode, etc.).

[0444] e) For example, alternatively, the values ​​of (multiple) syntax elements can be determined at both the encoder and decoder sides.

[0445] i) For example, the values ​​of (multiple) syntax elements can be set based on the selection ratio of the use of a specific mode (e.g., CCP mode, inter-frame CCP Merge mode with zero luminance CBF, etc.) in a previously encoded or decoded strip / picture.

[0446] (1) For example, if the selection ratio is below a threshold, the value of the syntax element can be set to indicate that a particular pattern is not used in the current video unit (e.g., strip, picture, etc.).

[0447] (2) For example, in addition, the selection ratio can be calculated based on the number / region of video blocks encoded or decoded by a specific mode.

[0448] 16) How to apply the inter-frame CCP Merge mode to video units (e.g., codec blocks, etc.) may depend on the following information: a) Low-latency images (e.g., all reference images are displayed before the current image in the order they appear) b) Traditional B-images (e.g., reference images are displayed before and after the current image in the order they appear) c) POC distance between the current image and the reference image d) Inter-frame Merge e) Inter-frame AMVP f) IBC Merge g) IBC amvp h) Skip i) Block size / dimension j) Whether the luminance and / or chrominance transform blocks contain all-zero transform coefficient amplitudes. k) For example, whether CCP (e.g., inter-frame CCP Merge, etc.) mode is allowed for a particular block may depend on the block width / height, and / or transform coefficient magnitude, and / or POC distance, and / or Merge / AMVP prediction method.

[0449] i) In one example, if the block is merge-encoded or decoded (e.g., inter-frame merge, and / or IBC merge, etc.), CCP mode can be allowed for blocks of all sizes, while if the block is inter-frame AMVP-encoded or decoded, CCP mode can be allowed for block sizes within a predefined range.

[0450] (1) For example, the block size of a predefined range can be: (a) The width of the chroma block multiplied by its height is not greater than a threshold (such as 2048, 1024, 512, etc.). (b) The width of the chroma block multiplied by its height is not less than a threshold (such as 32, 16, 4, etc.). (2) For example, it can also be applied to cases where there is at least one non-zero transform coefficient magnitude in the luminance and chrominance transform blocks of the encoding and decoding unit.

[0451] ii) In one example, CCP mode can be allowed for blocks of all sizes if the block belongs to a strip / picture that satisfies a rule based on the distance of a specific reference picture POC (i.e., picture order count).

[0452] (1) Otherwise, if the block belongs to a strip / picture that does not satisfy the rule based on the POC distance of a specific reference picture, the CCP mode may be allowed for block sizes within a predefined range.

[0453] (2) For example, the block size of a predefined range can be: (a) The width of the chroma block multiplied by its height is not greater than a threshold (such as 2048, 1024, 512, etc.). (b) The width of the chroma block multiplied by its height is not less than a threshold (such as 32, 16, 4, etc.). (3) For example, a rule based on the POC distance of a reference image could be: (a) The POC difference between the current image and the reference images of the current image is negative (i.e., the POC values ​​of all reference images of the current image are less than the POC value of the current image).

[0454] (b) Additionally, alternatively, the absolute POC difference between the current image and the reference image is less than a threshold (e.g., a constant, such as 1 or 2 or 3 or 4, etc.). (4) For example, it can also be applied to cases where the luminance and chrominance transform blocks of the current codec unit contain all-zero transform coefficient amplitudes.

[0455] (5) For example, it can also be applied to cases where the current codec unit is encoded or decoded by AMVP (e.g., inter-frame AMVP and / or IBC AMVP, etc.).

[0456] Regarding the use of statistics to determine the encoding / decoding mode based on previous encoding / decoding information: 17) How to use / apply a specific codec mode for the current video unit (e.g., strip, picture, picture group, etc.) can be determined based on statistics of previous codec information.

[0457] a) For example, statistics (e.g., selection area, selection ratio, etc.) of a specific codec pattern can be calculated in at least one previously encoded or decoded video unit (e.g., strip, picture, picture group, etc.).

[0458] i) For example, a previously encoded or decoded video unit may be required to be decoded before the current video unit.

[0459] ii) For example, previously encoded or decoded video units can be required to be at the same temporal layer as the current video unit.

[0460] iii) For example, a previously encoded or decoded video unit can be required to be at a previous temporal layer of the current video unit.

[0461] iv) For example, statistics can be reset at each checkpoint (i.e., set to the initial value).

[0462] (1) For example, checkpoints could be each strip / image.

[0463] (2) For example, a checkpoint could be a group of pictures.

[0464] (3) For example, checkpoints can be based on intra-frame periods.

[0465] (4) For example, checkpoints can be based on random access cycles.

[0466] (5) For example, checkpoints can be based on the length of a GOP (i.e., a group of pictures).

[0467] b) For example, a determination can be made for each strip / image / image group.

[0468] c) For example, a determination can be made at the Nth strip / image in a strip / image group, and the determined strategy can be applied to other strips / images in the group.

[0469] i) For example, the Nth strip can be required to be an inter-frame (INTER) (or intra-frame (INTRA)) strip.

[0470] d) For example, it is possible to determine which elements are allowed to be used in a specific codec mode for the current video unit based on statistics of previous codec information.

[0471] i) For example, it can be determined whether and / or how to apply element X to the current strip / image based on the selection ratio of element X in the previous strip / image.

[0472] ii) For example, it may be determined whether and / or how to apply element X to the current temporal layer of the current GOP based on the selection ratio of element X in previous pictures of the current GOP (e.g., the first inter-frame picture in the same temporal layer or pictures in previous temporal layers, etc.).

[0473] iii) For example, element X could be: (1) Prediction techniques for IBC Merge blocks (e.g., inter-frame CCP Merge mode and / or its variants). (2) Prediction techniques for IBC amvp blocks (e.g., inter-frame CCP Merge mode and / or its variants). (3) Prediction techniques for inter-frame merge blocks (e.g., inter-frame CCP merge mode and / or its variants). (4) Prediction techniques for inter-frame AMVP blocks (e.g., inter-frame CCP Merge mode and / or its variants). (5) Block size limitations of prediction techniques (e.g., inter-frame CCP Merge mode and / or its variants). (6) For example, prediction techniques can be: (a) Inter-frame CCP Merge mode in which all luma and / or chroma transform blocks contain all-zero transform coefficient magnitudes (b) Inter-frame CCP Merge mode where the luminance transform block contains all-zero transform coefficient magnitudes but the chrominance transform block contains at least one non-zero transform coefficient magnitude. (c) Inter-frame CCP Merge mode where the luma or chroma transform block contains at least one non-zero transform coefficient magnitude. (d) All types of inter-frame CCP Merge modes (e) CCP model (f) Intra-frame mode (g) Inter-frame mode (h) IBC mode e) For example, the parameters / thresholds for a specific codec mode for the current video unit can be set (if any) based on statistics of previous codec information.

[0474] f) For example, it is possible to determine, based on statistics of previous codec information, which syntax elements are transmitted via signal for a specific codec mode for the current video unit.

[0475] g) For example, the same rules can be followed to make determinations on both the encoder and decoder sides.

[0476] i) In addition, for example, it can be determined that it can be made for the current strip / picture and is applicable to the codec unit within the current strip / picture.

[0477] h) For example, if the selection ratio / area / number of CCP (e.g., inter-frame CCP Merge) modes encoded or decoded by inter-frame AMVP in a previously encoded or decoded stripe / picture is not greater than a threshold T (e.g., T = 0, or a constant, or a variable depending on the stripe / picture resolution and / or block dimension, etc.), then the CCP (e.g., inter-frame CCP Merge) mode may not be allowed for any inter-frame AMVP block in the current stripe / picture.

[0478] i) For example, a previously encoded or decoded strip / image can be decoded / encoded immediately before the current image.

[0479] (1) Additionally, for example, previously encoded or decoded strips / pictures can be required to be in the same temporal layer as the current strip / picture.

[0480] ii) Furthermore, for example, in this case, for inter-frame AMVP blocks in the current stripe / picture, the syntax elements associated with the block level of the CCP (e.g., inter-frame CCP Merge) mode may not be signaled (e.g., presumed to be the default value indicating that the CCP (e.g., inter-frame CCP Merge) mode is not applied).

[0481] iii) Otherwise (e.g., if the selection ratio / area / number of CCP (e.g., inter-frame CCP Merge) modes encoded or decoded by inter-frame AMVP in a previously encoded or decoded stripe / picture is greater than a threshold), at least one block-level syntax element may be signaled to indicate whether the CCP (e.g., inter-frame CCP Merge) mode is applied to the inter-frame AMVP block in the current stripe / picture.

[0482] iv) For example, an inter-frame AMVP block can refer to the following specific types of inter-frame AMVP blocks: (1) For example, inter-frame AMVP blocks of all sizes.

[0483] (2) For example, an inter-frame AMVP block with a conditional block size, wherein the condition can be based on at least one of the following: (a) The block size (e.g., chroma block width multiplied by chroma block height) is greater than the threshold T1 (such as T1 = 1024 or 512 or 2048, etc.).

[0484] (b) The block size (e.g., chroma block width multiplied by chroma block height) is less than the threshold T2 (such as T2 = 16 or 32 or 64, etc.).

[0485] v) For example, the aforementioned CCP (e.g., inter-frame CCP Merge) mode for a codec unit may have at least one of the following characteristics: (1) All luminance and chrominance transform blocks of the encoding / decoding unit contain all-zero transform coefficient amplitudes. (2) The luminance transform block of the encoding / decoding unit contains all-zero transform coefficient amplitudes, but the chrominance transform block of the encoding / decoding unit contains at least one non-zero transform coefficient amplitude. (3) The brightness transformation block of the encoding / decoding unit contains at least one non-zero transformation coefficient amplitude. vi) For example, the selection ratio / area / number can be accumulated / updated based on the CCP (e.g., inter-frame CCP Merge) mode encoded or decoded by inter-frame AMVP for each strip / picture.

[0486] (1) For example, it can be counted during the syntax parsing phase.

[0487] (2) For example, it can be counted for each non-intra-frame stripe.

[0488] (3) For example, it can be stored for each strip / image.

[0489] (4) For example, it can be reset to zero for each GOP (e.g., a group of pictures, such as GOP size = 4, 8, 16, 32, etc.).

[0490] (5) For example, it can be reset to zero for each random access point.

[0491] (6) For example, it can be reset to zero for each GDR or IDR image.

[0492] i) For example, if the selection ratio / area / number of CCP (e.g., inter-frame CCP Merge) modes in a previously encoded or decoded strip / picture that are encoded or decoded via inter-frame Merge are not greater than a threshold T (e.g., T = 0, or a constant, or a variable that depends on the strip / picture resolution and / or block dimension, etc.), then the CCP (e.g., inter-frame CCP Merge) mode may not be allowed for any inter-frame Merge block in the current strip / picture.

[0493] i) For example, a previously encoded or decoded strip / image can be decoded / encoded immediately before the current strip / image.

[0494] (1) Additionally, for example, previously encoded or decoded strips / pictures can be required to be in the same temporal layer as the current strip / picture.

[0495] ii) Furthermore, for example, in this case, for inter-frame merge blocks in the current strip / picture, the syntax elements associated with the block level of the CCP (e.g., inter-frame CCP merge) mode may not be transmitted via signaling (e.g., presumed to be the default indicating that the CCP (e.g., inter-frame CCP merge) mode is not applied).

[0496] iii) Otherwise (e.g., if the selection ratio / area / number of CCP (e.g., inter-frame CCP Merge) modes in a previously encoded or decoded stripe / picture is greater than a threshold), at least one block-level syntax element may be signaled to indicate whether a CCP (e.g., inter-frame CCP Merge) mode is applied to an inter-frame Merge block in the current stripe / picture.

[0497] iv) For example, an inter-frame merge block can refer to the following specific types of inter-frame merge blocks: (1) For example, inter-frame merge blocks of all sizes.

[0498] (2) For example, an inter-frame merge block with a conditional block size, wherein the condition can be based on at least one of the following: (a) The block size (e.g., chroma block width multiplied by chroma block height) is greater than the threshold T1 (such as T1 = 1024 or 512 or 2048, etc.).

[0499] (b) The block size (e.g., chroma block width multiplied by chroma block height) is less than the threshold T2 (such as T2 = 16 or 32 or 64, etc.).

[0500] v) For example, the aforementioned CCP (e.g., inter-frame CCP Merge) mode for a codec unit may have at least one of the following characteristics: (1) All luminance and chrominance transform blocks of the encoding / decoding unit contain all-zero transform coefficient amplitudes. (2) The luminance transform block of the encoding / decoding unit contains all-zero transform coefficient amplitudes, but the chrominance transform block of the encoding / decoding unit contains at least one non-zero transform coefficient amplitude. (3) The brightness transformation block of the encoding / decoding unit contains at least one non-zero transformation coefficient amplitude. vi) For example, the selection ratio / area / number can be accumulated / updated based on the CCP (e.g., inter-frame CCP Merge) mode encoded or decoded for each strip / picture.

[0501] (1) For example, it can be counted during the syntax parsing phase.

[0502] (2) For example, it can be counted for each non-intra-frame stripe.

[0503] (3) For example, it can be stored for each strip / image.

[0504] (4) For example, it can be reset to zero for each GOP (e.g., a group of pictures, such as GOP size = 4, 8, 16, 32, etc.).

[0505] (5) For example, it can be reset to zero for each random access point.

[0506] (6) For example, it can be reset to zero for each GDR or IDR image.

[0507] j) For example, if the selection ratio / area / number of CCP (e.g., inter-frame CCP Merge) modes encoded or decoded by IBC AMVP in a previously encoded or decoded stripe / picture is not greater than a threshold T (e.g., T = 0, or a constant, or a variable depending on the stripe / picture resolution and / or block dimension, etc.), then the CCP (e.g., inter-frame CCP Merge) mode may not be allowed for any IBC AMVP block in the current stripe / picture.

[0508] i) For example, a previously encoded or decoded strip / image can be decoded / encoded immediately before the current strip / image.

[0509] (1) Additionally, for example, previously encoded or decoded strips / pictures can be required to be in the same temporal layer as the current strip / picture.

[0510] ii) Furthermore, for example, in this case, for the IBC AMVP block in the current stripe / picture, the syntax elements associated with the block level of the CCP (e.g., inter-frame CCP Merge) mode may not be transmitted via signaling (e.g., presumed to be the default indicating that the CCP (e.g., inter-frame CCP Merge) mode is not applied).

[0511] iii) Otherwise (e.g., if the selection ratio / area / number of CCP (e.g., inter-frame CCP Merge) modes encoded or decoded by IBC AMVP in a previously encoded or decoded stripe / picture is greater than a threshold), at least one block-level syntax element may be signaled to indicate whether a CCP (e.g., inter-frame CCP Merge) mode is applied to an IBC AMVP block in the current stripe / picture.

[0512] iv) For example, an IBC AMVP block can refer to the following specific types of IBC AMVP blocks: (1) For example, IBC AMVP blocks of all sizes.

[0513] (2) For example, an IBC AMVP block with a condition block size, wherein the condition can be based on at least one of the following: (a) The block size (e.g., chroma block width multiplied by chroma block height) is greater than the threshold T1 (such as T1 = 256 or 1024, etc.).

[0514] (b) The block size (e.g., chroma block width multiplied by chroma block height) is less than the threshold T2 (such as T2 = 16 or 32, etc.).

[0515] v) For example, the aforementioned CCP (e.g., inter-frame CCP Merge) mode for a codec unit may have at least one of the following characteristics: (1) All luminance and chrominance transform blocks of the encoding / decoding unit contain all-zero transform coefficient amplitudes. (2) The luminance transform block of the encoding / decoding unit contains all-zero transform coefficient amplitudes, but the chrominance transform block of the encoding / decoding unit contains at least one non-zero transform coefficient amplitude. (3) The brightness transformation block of the encoding / decoding unit contains at least one non-zero transformation coefficient amplitude. vi) For example, the selection ratio / area / number can be accumulated / updated based on the CCP (e.g., inter-frame CCP Merge) mode encoded or decoded by IBC AMVP for each strip / image.

[0516] (1) For example, it can be counted during the syntax parsing phase.

[0517] (2) For example, it can be counted for each non-intra-frame stripe.

[0518] (3) For example, it can be stored for each strip / image.

[0519] (4) For example, it can be reset to zero for each GOP (e.g., a group of pictures, such as GOP size = 4, 8, 16, 32, etc.).

[0520] (5) For example, it can be reset to zero for each random access point.

[0521] (6) For example, it can be reset to zero for each GDR or IDR image.

[0522] k) For example, if the selection ratio / area / number of CCP (e.g., inter-frame CCP Merge) modes encoded or decoded by IBC Merge in a previously encoded or decoded stripe / picture is not greater than a threshold T (e.g., T = 0, or a constant, or a variable depending on the stripe / picture resolution and / or block dimension, etc.), then the CCP (e.g., inter-frame CCP Merge) mode may not be allowed for any IBC Merge block in the current stripe / picture.

[0523] i) For example, a previously encoded or decoded strip / image can be decoded / encoded immediately before the current strip / image.

[0524] (1) Additionally, for example, previously encoded or decoded strips / pictures can be required to be in the same temporal layer as the current strip / picture.

[0525] ii) Furthermore, for example, in this case, for the IBC Merge block in the current stripe / picture, the syntax elements associated with the block level of the CCP (e.g., inter-frame CCP Merge) mode may not be transmitted via signaling (e.g., a default value presumed to indicate that the CCP (e.g., inter-frame CCP Merge) mode is not applied).

[0526] iii) Otherwise (e.g., if the selection ratio / area / number of CCP (e.g., inter-frame CCP Merge) modes encoded or decoded by IBC Merge in a previously encoded or decoded stripe / picture is greater than a threshold), at least one block-level syntax element may be signaled to indicate whether a CCP (e.g., inter-frame CCP Merge) mode is applied to an IBC Merge block in the current stripe / picture.

[0527] iv) For example, an IBC Merge block can refer to the following specific types of IBC Merge blocks: (1) For example, IBC Merge blocks of all sizes.

[0528] (2) For example, an IBC Merge block with a conditional block size, wherein the condition can be based on at least one of the following: (a) The block size (e.g., chroma block width multiplied by chroma block height) is greater than the threshold T1 (such as T1 = 256 or 1024, etc.).

[0529] (b) The block size (e.g., chroma block width multiplied by chroma block height) is less than the threshold T2 (such as T2 = 16 or 32, etc.).

[0530] v) For example, the aforementioned CCP (e.g., inter-frame CCP Merge) mode for a codec unit may have at least one of the following characteristics: (1) All luminance and chrominance transform blocks of the encoding / decoding unit contain all-zero transform coefficient amplitudes. (2) The luminance transform block of the encoding / decoding unit contains all-zero transform coefficient amplitudes, but the chrominance transform block of the encoding / decoding unit contains at least one non-zero transform coefficient amplitude. (3) The brightness transformation block of the encoding / decoding unit contains at least one non-zero transformation coefficient amplitude. vi) For example, the selection ratio / area / number can be accumulated / updated based on the CCP (e.g., inter-frame CCP Merge) mode encoded or decoded by IBC Merge for each strip / picture.

[0531] (1) For example, it can be counted during the syntax parsing phase.

[0532] (2) For example, it can be counted for each non-intra-frame stripe.

[0533] (3) For example, it can be stored for each strip / image.

[0534] (4) For example, it can be reset to zero for each GOP (e.g., a group of pictures, such as GOP size = 4, 8, 16, 32, etc.).

[0535] (5) For example, it can be reset to zero for each random access point.

[0536] (6) For example, it can be reset to zero for each GDR or IDR image.

[0537] Interaction between adaptive clipping and CCP modes (e.g., inter-frame CCP Merge mode): 18) For blocks encoded or decoded in CCP mode (e.g., inter-frame CCP Merge mode), the minimum / maximum value of the luminance channel transmitted by signal can be used as a limiting boundary to perform limiting during the reconstruction phase (when the residual signal is added to the prediction) and before the reconstructed picture is saved to the decoded picture buffer.

[0538] a) For example, the luminance reconstruction samples after being clipped can be used in subsequent encoding and decoding processes for the current CCP block.

[0539] i) For example, it can be used to calculate the chromaticity CCP model.

[0540] ii) For example, it can be used to compute template costs for multiple CCP candidates.

[0541] iii) For example, it can be used to predict the coefficient symbol for the current CCP block.

[0542] General aspects : 1) The disclosed methods can be used in a single tree.

[0543] 2) The disclosed method can be used in a two-tree system.

[0544] 3) The disclosed method can be used for chroma encoding and decoding.

[0545] 4) The disclosed method can be used for luminance encoding and decoding.

[0546] 5) The disclosed method can be used for intra-frame block encoding and decoding.

[0547] 6) The disclosed method can be used for inter-frame block encoding and decoding.

[0548] 7) The disclosed method can be used for IBC block encoding and decoding.

[0549] 8) The disclosed methods can be used in inter-frame (such as B or P) stripes.

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

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

[0552] a. For example, whether the disclosed method is applied to a sequence (or image group, etc.) may depend on the SPS (or PPS, etc.) flag.

[0553] b. For example, the disclosed method can be applied only to SCC sequences.

[0554] i. For example, it can be controlled by the SPS / PPS flag.

[0555] ii. For example, it can be determined based on implicit rules that do not require syntactic element signaling (e.g., implicit SCC content detection, etc.).

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

[0557] 12) Whether and / or how the methods disclosed above are applied may depend on the encoded or decoded information, such as block size, color format, single / dual tree segmentation, color components, and strip / image type.

[0558] Figure 34 A flowchart of a method 3400 for video processing according to an embodiment of the present disclosure is shown. Method 3400 is implemented during the conversion between video units of a video and a bitstream of a video.

[0559] At box 3410, for the conversion between video units and the video bitstream, it is determined whether a cross-component prediction (CCP) mode is permitted for the video unit based on information associated with it. For example, the CCP mode may include an inter-frame CCP merge mode. In some embodiments, the information associated with the video unit may include at least one of the following: block width, block height, transform coefficient magnitude, picture order count (POC) distance, merge prediction method, or inter-frame advanced motion vector prediction (AMVP) prediction method.

[0560] At box 3420, a conversion is performed based on a determination. In some embodiments, the conversion may include encoding video units into a bitstream. Alternatively, the conversion may include decoding video units from a bitstream.

[0561] Method 3400 enables the determination of whether CCP mode is allowed for a video unit. Compared to traditional solutions, Method 3400 advantageously improves encoding / decoding efficiency and performance.

[0562] In some embodiments, if the video unit is merge-encoded or decoded (e.g., inter-frame merge, IBC merge, etc.), the CCP mode can be allowed for video units of all sizes. Alternatively, if the video unit is inter-frame AMVP-encoded or decoded, the CCP mode can be allowed for video units with a predetermined range of block sizes. For example, the predetermined range of block sizes can include at least one of the following: the chroma block width multiplied by the chroma block height is less than or equal to a first threshold, or the chroma block width multiplied by the chroma block height is greater than or equal to a second threshold. As an example, the first threshold can include one of the following: 2048, 1024, or 512. Alternatively or additionally, the second threshold can include one of the following: 32, 16, or 4. In some other embodiments, furthermore, if the luma transform block and chroma transform block of the video unit include at least one non-zero transform coefficient magnitude, the CCP mode can be allowed for the video unit.

[0563] In some embodiments, CCP mode may be permitted for video units of all sizes if the video unit is included in a strip or image that satisfies a rule based on the target reference image's POC distance. Alternatively, CCP mode may be permitted for video units with a predefined range of block sizes if the video unit is included in a strip or image that does not satisfy a rule based on the target reference image's POC distance. For example, the predefined range of block sizes may include at least one of the following: the chroma block width multiplied by the chroma block height is less than or equal to a first threshold, or the chroma block width multiplied by the chroma block height is greater than or equal to a second threshold. As an example, the first threshold may include one of the following: 2048, 1024, or 512. Alternatively or additionally, the second threshold may include one of the following: 32, 16, or 4.

[0564] In some embodiments, the rule based on the POC distance of the target reference image may include: the POC difference between the current image and the reference image of the current image is negative (i.e., the POC values ​​of all reference images of the current image are less than the POC value of the current image), and / or the absolute POC difference between the current image and the reference image of the current image is less than a predetermined threshold. As an example, the predetermined threshold may include a constant, such as 1, 2, 3, 4, etc.

[0565] In some embodiments, CCP mode may be permitted for video units if the luminance and chrominance transform blocks of the video unit include all non-zero transform coefficient magnitudes. In some other embodiments, CCP mode may be permitted for video units if they are AMVP encoded or decoded. For example, video units may be encoded or decoded via inter-frame AMVP and / or via intra-frame block copy (IBC) AMVP, etc.

[0566] In some embodiments, determining whether a CCP mode is permitted for a video unit can be used in at least one of the following: single-tree or dual-tree. In some other embodiments, determining whether a CCP mode is permitted for a video unit can be used in at least one of the following: chroma codec, luma codec, intra-block codec, inter-block codec, or IBC block codec. In some embodiments, determining whether a CCP mode is permitted for a video unit can be used in an inter-frame stripe. For example, the inter-frame stripe can be a B-strip or a P-strip. In some other embodiments, determining whether a CCP mode is permitted for a video unit can be used in an intra-frame stripe. For example, the intra-frame stripe can be an I-strip.

[0567] In some embodiments, the indication of whether and / or how to determine whether a CCP mode is permitted for a video unit may be indicated at one of the following levels: sequence level, picture group level, picture level, stripe level, or slice group level. In some other embodiments, the indication of whether and / or how to determine whether a CCP mode is permitted for a video unit may be indicated at one of the following levels: sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), dependency parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), stripe header, or slice group header. In some embodiments, determining whether a CCP mode is permitted for a video unit may be applied to at least one of a sequence or picture group may depend on at least one of the SPS flag or PPS flag. In some embodiments, determining whether a CCP mode is permitted for a video unit may be applied only to screen content codec (SCC) sequences. For example, determining whether a CCP mode is permitted for a video unit may be based on at least one of the SPS flag or PPS flag. Alternatively, determining whether CCP mode is permitted for use on video units can be based on rules that do not require syntax element signaling. For example, rules could include SCC content detection.

[0568] In some embodiments, the indication of whether and / or how to determine whether a CCP mode is permitted for use in a video unit may include one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, stripe, slice, sub-picture, or region containing more than one sample or pixel. In some other embodiments, method 3400 further includes: determining whether and / or how to determine whether a CCP mode is permitted for use in a video unit based on encoded or decoded information of the video unit. The encoded or decoded information may include at least one of the following: block size, color format, single-tree segmentation and / or dual-tree segmentation, color components, stripe type, or picture type.

[0569] According to another embodiment of this disclosure, a non-transitory computer-readable recording medium is provided. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by means of a video processing apparatus. The method includes: determining whether a cross-component prediction (CCP) mode is permitted for a video unit based on information associated with the video unit; and generating a bitstream based on the determination.

[0570] According to further embodiments of this disclosure, a method for storing a bitstream of video is provided. The method includes: determining, based on information associated with video units of the video, whether a cross-component prediction (CCP) mode is permitted for the video units; generating a bitstream based on the determination; and storing the bitstream in a non-transitory computer-readable recording medium.

[0571] Figure 35 A flowchart of a method 3500 for video processing according to an embodiment of the present disclosure is shown. Method 3500 is implemented during the conversion between video units of a video and a bitstream of a video.

[0572] At box 3510, for the conversion between video units and video bitstreams, the method of applying encoding / decoding modes to video units is determined based on encoding / decoding information associated with previously encoded or decoded strips or previously encoded or decoded pictures.

[0573] At box 3520, a conversion is performed based on a determination. In some embodiments, the conversion may include encoding video units into a bitstream. Alternatively, the conversion may include decoding video units from a bitstream.

[0574] Method 3500 enables the determination of how to apply encoding / decoding modes to video units. Compared to traditional solutions, Method 3500 advantageously improves encoding / decoding efficiency and performance.

[0575] In some embodiments, the determination can be made following the same rules on both the encoder and decoder sides. Furthermore, for example, the determination can be made for the current strip or current frame, and the determination applies to video units included in the current strip or current frame.

[0576] In some embodiments, if the information of CCP modes encoded or decoded by the target codec mode (e.g., CCP modes encoded or decoded by the target codec mode may include inter-frame CCP Merge modes) in a previously encoded or decoded stripe or picture is less than or equal to a threshold, then CCP modes encoded or decoded by the target codec mode may not be allowed for use in blocks using the target codec mode in the current stripe or picture. In this case, the information may include at least one of the following: the selection ratio of CCP modes encoded or decoded by the target codec mode, the area of ​​CCP modes encoded or decoded by the target codec mode, or the number of CCP modes encoded or decoded by the target codec mode. Additionally, as an example, the target codec mode may include one of the following: Inter-frame Advanced Motion Vector Prediction (AMVP), Inter-frame Merge, Intra-frame Block Copy (IBC) AMVP, IBC Merge. In some embodiments, the threshold may include one of the following: zero, a constant value, or a variable depending on the stripe or picture resolution and / or block dimension.

[0577] In some embodiments, previously encoded or decoded stripes or images may be decoded and / or encoded before the current stripe or image. Additionally, as an example, previously encoded or decoded stripes or images may reside in the same temporal layer as the current stripe or image. Furthermore, in some embodiments, for blocks using the target codec mode in the current stripe or image, the syntax elements associated with the block-level use of the CCP mode encoded or decoded by the target codec mode (e.g., inter-frame CCP merge) may not be transmitted via signaling. For example, a default value indicating that the CCP mode encoded or decoded by the target codec mode is not applied may be used for blocks using the target codec mode in the current stripe or image.

[0578] In some other embodiments, if the information of CCP modes encoded or decoded by the target codec mode in a previously encoded or decoded stripe or a previously encoded or decoded picture is greater than a threshold, at least one block-level syntax element can be signaled to indicate whether CCP modes encoded or decoded by the target codec mode are applied to blocks using the target codec mode in the current stripe or the current picture. In this case, the information may include at least one of the following: the selection ratio of CCP modes encoded or decoded by the target codec mode, the area of ​​CCP modes encoded or decoded by the target codec mode, or the number of CCP modes encoded or decoded by the target codec mode. Additionally, as an example, the target codec mode may include one of the following: Inter-Frame Advanced Motion Vector Prediction (AMVP), Inter-Frame Merge, Intra-Frame Block Copy (IBC) AMVP, or IBC Merge.

[0579] In some embodiments, blocks using inter-frame AMVP may include inter-frame AMVP blocks of all sizes. Alternatively, blocks using inter-frame AMVP may include inter-frame AMVP blocks that satisfy a block size condition. In this case, the condition may include at least one of the following: the block size (e.g., chroma block width multiplied by chroma block height) is greater than a first threshold, or the block size is less than a second threshold. For example, the first threshold may be equal to one of the following: 1024, 512, or 2048. Alternatively or additionally, the second threshold may be equal to one of the following: 16, 32, or 64.

[0580] In some embodiments, blocks using inter-frame merge may include inter-frame merge blocks of all sizes. Alternatively, blocks using inter-frame merge may include inter-frame merge blocks that satisfy a block size condition. In this case, the condition may include at least one of the following: the block size (e.g., chroma block width multiplied by chroma block height) is greater than a third threshold, or the block size is less than a fourth threshold. For example, the third threshold may be equal to one of the following: 1024, 512, or 2048. Alternatively or additionally, the fourth threshold may be equal to one of the following: 16, 32, or 64.

[0581] In some embodiments, blocks using IBC AMVP may include IBC AMVP blocks of all sizes. Alternatively, blocks using IBC AMVP may include IBC AMVP blocks that satisfy a block size condition. In this case, the condition may include at least one of the following: the block size (e.g., chroma block width multiplied by chroma block height) is greater than a fifth threshold, or the block size is less than a sixth threshold. For example, the fifth threshold may be equal to one of the following: 256 or 1024. Alternatively or additionally, the sixth threshold may be equal to one of the following: 16 or 32.

[0582] In some embodiments, blocks using IBC Merge may include IBC Merge blocks of all sizes. Alternatively, blocks using IBC Merge may include IBC Merge blocks that meet certain block size conditions. In this case, the conditions may include at least one of the following: the block size (e.g., chroma block width multiplied by chroma block height) is greater than a seventh threshold, or the block size is less than an eighth threshold. For example, the seventh threshold may be equal to one of the following: 256 or 1024. Alternatively or additionally, the eighth threshold may be equal to one of the following: 16 or 32.

[0583] In some embodiments, the CCP mode encoded or decoded by the target encoding / decoding mode for the encoding / decoding unit may include at least one of the following features: all luminance and chrominance transform blocks of the encoding / decoding unit include all-zero transform coefficient amplitudes; the luminance transform block of the encoding / decoding unit includes all-zero transform coefficient amplitudes but the chrominance transform block of the encoding / decoding unit includes at least one non-zero transform coefficient amplitude; or the luminance transform block of the encoding / decoding unit includes at least one non-zero transform coefficient amplitude.

[0584] In some embodiments, information may be accumulated or updated based on the CCP mode encoded or decoded by the target codec mode for each slice or each picture. In some embodiments, information may be counted during the syntax parsing phase. In some other embodiments, information may be counted for each non-intra-slice. In some embodiments, information may be stored for each slice or each picture. In some embodiments, information may be reset to zero for each group of pictures (GOP). For example, the size of a GOP may be equal to one of the following: 4, 8, 16, or 32, etc. In some embodiments, information may be reset to zero for each random access point. Alternatively, information may be reset to zero for each progressive decode refresh (GDR) picture or each instant decode refresh (IDR) picture.

[0585] In some embodiments, determining the manner in which a codec mode is applied to a video unit based on codec information associated with a previously encoded or decoded stripe or a previously encoded or decoded picture can be used in at least one of the following: single-tree or dual-tree. In some other embodiments, determining the manner in which a codec mode is applied to a video unit based on codec information associated with a previously encoded or decoded stripe or a previously encoded or decoded picture can be used in at least one of the following: chroma codec, luma codec, intra-block codec, inter-block codec, or IBC block codec. In some embodiments, determining the manner in which a codec mode is applied to a video unit based on codec information associated with a previously encoded or decoded stripe or a previously encoded or decoded picture can be used in inter-frame stripes. For example, an inter-frame stripe can be a B-strip or a P-strip. In some other embodiments, determining the manner in which a codec mode is applied to a video unit based on codec information associated with a previously encoded or decoded stripe or a previously encoded or decoded picture can be used in intra-frame stripes. For example, an intra-frame stripe can be an I-strip.

[0586] In some embodiments, an indication of whether to determine the manner in which a codec mode is applied to a video unit based on codec information associated with a previously encoded or decoded stripe or a previously encoded or decoded picture, and / or how to determine the manner in which a codec mode is applied to a video unit based on codec information associated with a previously encoded or decoded stripe or a previously encoded or decoded picture, may be indicated at one of the following: sequence level, picture group level, picture level, stripe level, or slice group level. In some other embodiments, an indication of whether to determine the manner in which a codec mode is applied to a video unit based on codec information associated with a previously encoded or decoded stripe or a previously encoded or decoded picture, and / or how to determine the manner in which a codec mode is applied to a video unit based on codec information associated with a previously encoded or decoded stripe or a previously encoded or decoded picture, may be indicated at one of the following: sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), dependency parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), stripe header, or slice group header. In some embodiments, determining whether the application of a codec mode to a video unit is applied to at least one of a sequence or picture group, based on codec information associated with a previously encoded or decoded stripe or picture, may depend on at least one of an SPS flag or a PPS flag. In some embodiments, determining the application of a codec mode to a video unit based on codec information associated with a previously encoded or decoded stripe or picture may be applied only to Screen Content Codec (SCC) sequences. For example, determining the application of a codec mode to a video unit based on codec information associated with a previously encoded or decoded stripe or picture may be based on at least one of an SPS flag or a PPS flag. Alternatively, determining the application of a codec mode to a video unit based on codec information associated with a previously encoded or decoded stripe or picture may be based on rules that do not require syntax element signaling. For example, the rules may include SCC content detection.

[0587] In some embodiments, an indication of whether to determine the manner in which a codec mode is applied to a video unit based on codec information associated with a previously encoded or decoded strip or a previously encoded or decoded picture, and / or how to determine the manner in which a codec mode is applied to a video unit based on codec information associated with a previously encoded or decoded strip or a previously encoded or decoded picture, may include one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, strip, slice, sub-picture, or region containing more than one sample or pixel. In some embodiments, method 3500 further includes: determining, based on encoded or decoded information of the video unit of the video, whether to determine the manner in which a codec mode is applied to a video unit based on codec information associated with a previously encoded or decoded strip or a previously encoded or decoded picture, and / or how to determine the manner in which a codec mode is applied to a video unit based on codec information associated with a previously encoded or decoded strip or a previously encoded or decoded picture. The encoded or decoded information may include at least one of the following: block size, color format, single-tree segmentation and / or dual-tree segmentation, color components, stripe type, or image type.

[0588] According to another embodiment of this disclosure, a non-transitory computer-readable recording medium is provided. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. The method includes: determining, based on encoding / decoding information associated with previously encoded or decoded stripes or previously encoded or decoded pictures, how to apply encoding / decoding modes to video units of the video; and generating a bitstream based on the determination.

[0589] According to further embodiments of this disclosure, a method for storing a bitstream of video is provided. The method includes: determining, based on encoding / decoding information associated with previously encoded or decoded stripes or previously encoded or decoded pictures, how to apply encoding / decoding modes to video units of the video; generating a bitstream based on the determination; and storing the bitstream in a non-transitory computer-readable recording medium.

[0590] The embodiments of this disclosure can be described according to the following entries, and their features can be combined in any reasonable manner.

[0591] Item 1. A method for video processing, comprising: a conversion between a video unit of a video and a bitstream of the video; determining, based on information associated with the video unit, whether a cross-component prediction (CCP) mode is permitted for the video unit; and performing the conversion based on the determination.

[0592] Item 2. The method according to Item 1, wherein the CCP mode includes an inter-frame CCP Merge mode.

[0593] Item 3. The method according to Item 1, wherein the information associated with the video unit includes at least one of the following: block width, block height, transform coefficient magnitude, picture sequence count (POC) distance, Merge prediction method, or inter-frame advanced motion vector prediction (AMVP) prediction method.

[0594] Item 4. The method according to Item 3, wherein the CCP mode is permitted for the video unit if the video unit is merge encoded or decoded, or wherein the CCP mode is permitted for the video unit having a block size of a predetermined range if the video unit is inter-frame AMVP encoded or decoded.

[0595] Item 5. The method according to Item 4, wherein the block size within the predetermined range includes at least one of the following: the chroma block width multiplied by the chroma block height is less than or equal to a first threshold, or the chroma block width multiplied by the chroma block height is greater than or equal to a second threshold.

[0596] Item 6. The method according to Item 5, wherein the first threshold comprises one of the following: 2048, 1024, or 512, and / or wherein the second threshold comprises one of the following: 32, 16, or 4.

[0597] Item 7. The method according to Item 4, wherein the CCP mode is permitted for the video unit if the luminance transform block and chrominance transform block of the video unit include at least one non-zero transform coefficient magnitude.

[0598] Item 8. The method according to Item 3, wherein the CCP mode is permitted for the video unit if the video unit is included in a strip or picture that satisfies a rule based on the target reference picture POC distance.

[0599] Item 9. The method according to Item 3, wherein the CCP mode is permitted for video units having a pre-determined range of block sizes if the video unit is included in a strip or picture that does not satisfy the rule based on the target reference picture POC distance.

[0600] Item 10. The method according to Item 9, wherein the block size within the predetermined range includes at least one of the following: the chroma block width multiplied by the chroma block height is less than or equal to a first threshold, or the chroma block width multiplied by the chroma block height is greater than or equal to a second threshold.

[0601] Item 11. The method according to Item 10, wherein the first threshold comprises one of the following: 2048, 1024, or 512, and / or wherein the second threshold comprises one of the following: 32, 16, or 4.

[0602] Item 12. The method according to Item 8 or 9, wherein the rule based on the POC distance of the target reference image includes: the POC difference between the reference image of the current image and the current image is equal to a negative value, and / or the absolute POC difference between the reference image of the current image and the current image is less than a predetermined threshold.

[0603] Item 13. The method according to Item 8 or 9, wherein the CCP mode is permitted for the video unit if the luminance transform block and chrominance transform block of the video unit include all non-zero transform coefficient amplitudes.

[0604] Item 14. The method according to Item 8 or 9, wherein the CCP mode is permitted for the video unit if the video unit is encoded or decoded using AMVP.

[0605] Item 15. The method according to Item 14, wherein the video unit is encoded or decoded via inter-frame AMVP and / or via intra-frame block copy (IBC) AMVP.

[0606] Item 16. The method according to any one of items 1 to 15, wherein determining whether the CCP mode is permitted for the video unit is used in at least one of: single-tree or dual-tree.

[0607] Item 17. The method according to any one of items 1 to 15, wherein determining whether the CCP mode is permitted for the video unit is used for at least one of: chroma coding, luma coding, intra-block coding, inter-block coding, or IBC block coding.

[0608] Item 18. The method according to any one of items 1 to 15, wherein it is determined whether the CCP mode is permitted for use by the video unit in an inter-frame stripe.

[0609] Item 19. The method according to Item 18, wherein the inter-frame stripe is a B stripe or a P stripe.

[0610] Item 20. The method according to any one of items 1 to 15, wherein it is determined whether the CCP mode is permitted for use by the video unit in an intra-frame stripe.

[0611] Item 21. The method according to Item 20, wherein the intra-frame stripe is an I-strip.

[0612] Item 22. The method according to any one of items 1 to 21, wherein an indication of whether the CCP mode is permitted for use in the video unit and / or how to determine whether the CCP mode is permitted for use in the video unit is indicated at one of the following: sequence level, picture group level, picture level, strip level, or slice group level.

[0613] Item 23. The method according to any one of Items 1 to 21, wherein the indication of whether and / or how to determine whether the CCP mode is permitted for use in the video unit is indicated in one of the following: sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), dependency parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header, or slice header.

[0614] Item 24. The method according to any one of Items 22 to 23, wherein determining whether the CCP mode is permitted for use by the video unit is applied to at least one of a sequence or a group of pictures depends on at least one of an SPS flag or a PPS flag.

[0615] Item 25. The method according to any one of items 22 to 23, wherein it is determined whether the CCP mode is permitted for the video unit to be applied to a screen content codec (SCC) sequence.

[0616] Item 26. The method according to Item 25, wherein it is determined whether the CCP mode is permitted for the video unit to be applied based on at least one of the SPS flag or the PPS flag.

[0617] Item 27. The method according to Item 25, wherein determining whether the CCP mode is permitted for use by the video unit is based on rules that do not require syntax element signaling, wherein the rules include SCC content detection.

[0618] Item 28. The method according to any one of items 1 to 21, wherein an indication of whether the CCP mode is permitted for use in the video unit and / or how to determine whether the CCP mode is permitted for use in the video unit is included in one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, strip, slice, sub-picture, or region containing more than one sample point or pixel.

[0619] Item 29. The method according to any one of items 1 to 21 further comprises: determining, based on encoded or decoded information of the video unit of the video, whether to determine whether the CCP mode is permitted for use in the video unit and / or how to determine whether the CCP mode is permitted for use in the video unit, wherein the encoded or decoded information includes at least one of the following: block size, color format, single-tree segmentation and / or dual-tree segmentation, color components, stripe type, or picture type.

[0620] Item 30. A method for video processing, comprising: a conversion between video units of a video and a bitstream of the video; determining, based on encoding / decoding information associated with previously encoded or decoded stripes or previously encoded or decoded pictures, how to apply an encoding / decoding mode to the video units; and performing the conversion based on the determination.

[0621] Item 31. The method according to Item 30, wherein the determination is made following the same rules on both the encoder and decoder sides.

[0622] Item 32. The method according to Item 31, wherein the determination is made for the current strip or the current picture, and the determination applies to video units included in the current strip or the current picture.

[0623] Item 33. The method according to Item 30, wherein if the information of the CCP mode encoded or decoded by the target codec mode in the previously encoded or decoded strip or the previously encoded or decoded picture is less than or equal to a threshold, the CCP mode encoded or decoded by the target codec mode is not allowed to be used in the block of the current strip or the current picture using the target codec mode, wherein the information includes at least one of the following: the selection ratio of the CCP mode encoded or decoded by the target codec mode, the area of ​​the CCP mode encoded or decoded by the target codec mode, or the number of the CCP modes encoded or decoded by the target codec mode, and wherein the target codec mode includes one of the following: Inter-Frame Advanced Motion Vector Prediction (AMVP), Inter-Frame Merge, Intra-Frame Block Copy (IBC) AMVP, IBC Merge.

[0624] Item 34. The method according to Item 33, wherein the CCP mode encoded or decoded by the target encoding / decoding mode includes an inter-frame CCP Merge mode.

[0625] Item 35. The method according to Item 33, wherein the threshold includes one of the following: zero, a constant value, or a variable that depends on the strip or image resolution and / or block dimension.

[0626] Item 36. The method according to Item 33, wherein the previously encoded or decoded stripe or the previously encoded or decoded image is decoded and / or encoded before the current stripe or the current image.

[0627] Item 37. The method according to Item 36, wherein the previously encoded or decoded stripe or the previously encoded or decoded image is located in the same temporal layer as the current stripe or the current image.

[0628] Item 38. The method according to Item 33, wherein for the block in the current strip or the current picture using the target codec mode, the syntax elements related to the block-level use of the CCP mode encoded or decoded by the target codec mode are not transmitted via signaling.

[0629] Item 39. The method according to Item 38, wherein a default value indicating that the CCP mode encoded or decoded by the target codec mode is not applied is used for the block in the current stripe or the current picture where the target codec mode is used.

[0630] Item 40. The method according to Item 30, wherein if the information of CCP modes encoded or decoded by the target codec mode in the previously encoded or decoded stripe or the previously encoded or decoded picture is greater than a threshold, at least one block-level syntax element is signaled to indicate whether the CCP modes encoded or decoded by the target codec mode are applied to blocks using the target codec mode in the current stripe or the current picture, wherein the information includes at least one of the following: the selection ratio of the CCP modes encoded or decoded by the target codec mode, the area of ​​the CCP modes encoded or decoded by the target codec mode, or the number of CCP modes encoded or decoded by the target codec mode, and wherein the target codec mode includes one of the following: Inter-Frame Advanced Motion Vector Prediction (AMVP), Inter-Frame Merge, Intra-Frame Block Copy (IBC) AMVP, IBC Merge.

[0631] Item 41. The method according to any one of items 33 to 40, wherein the block using the inter-frame AMVP includes inter-frame AMVP blocks of all sizes.

[0632] Item 42. The method according to any one of items 33 to 40, wherein the block using the inter-frame AMVP comprises an inter-frame AMVP block that satisfies a block size condition, wherein the condition includes at least one of the following: the block size is greater than a first threshold, or the block size is less than a second threshold.

[0633] Item 43. The method according to Item 42, wherein the first threshold is equal to one of the following: 1024, 512, or 2048, and / or wherein the second threshold is equal to one of the following: 16, 32, or 64.

[0634] Item 44. The method according to any one of items 33 to 40, wherein the block using the inter-frame merge includes inter-frame merge blocks of all sizes.

[0635] Item 45. The method according to any one of items 33 to 40, wherein the block using the inter-frame merge includes an inter-frame merge block that satisfies a block size condition, wherein the condition includes at least one of the following: the block size is greater than a third threshold, or the block size is less than a fourth threshold.

[0636] Item 46. The method according to Item 45, wherein the third threshold is equal to one of the following: 1024, 512, or 2048, and / or wherein the fourth threshold is equal to one of the following: 16, 32, or 64.

[0637] Item 47. The method according to any one of items 33 to 40, wherein the block using the IBC AMVP includes IBC AMVP blocks of all sizes.

[0638] Item 48. The method according to any one of items 33 to 40, wherein the block using the IBC AMVP comprises an IBC AMVP block that satisfies a block size condition, wherein the condition includes at least one of the following: the block size is greater than a fifth threshold, or the block size is less than a sixth threshold.

[0639] Item 49. The method according to Item 48, wherein the fifth threshold is equal to one of the following: 256 or 1024, and / or wherein the sixth threshold is equal to one of the following: 16 or 32.

[0640] Item 50. The method according to any one of items 33 to 40, wherein the block using the IBC Merge includes IBC Merge blocks of all sizes.

[0641] Item 51. The method according to any one of items 33 to 40, wherein the block using the IBC Merge comprises an IBC Merge block that satisfies a block size condition, wherein the condition includes at least one of the following: the block size is greater than a seventh threshold, or the block size is less than an eighth threshold.

[0642] Item 52. The method according to Item 51, wherein the seventh threshold is equal to one of the following: 256 or 1024, and / or wherein the eighth threshold is equal to one of the following: 16 or 32.

[0643] Item 53. The method according to any one of items 33 to 40, wherein the CCP mode encoded or decoded for the codec unit by the target codec mode includes at least one of the following features: all luminance and chrominance transform blocks of the codec unit include all-zero transform coefficient amplitudes; the luminance transform block of the codec unit includes all-zero transform coefficient amplitudes but the chrominance transform block of the codec unit includes at least one non-zero transform coefficient amplitude; or the luminance transform block of the codec unit includes at least one non-zero transform coefficient amplitude.

[0644] Item 54. The method according to any one of items 33 to 40, wherein the information is accumulated or updated based on the CCP mode encoded or decoded by the target encoding / decoding mode for each strip or each image.

[0645] Item 55. The method according to Item 54, wherein the information is counted during the syntax parsing phase.

[0646] Item 56. The method according to Item 54, wherein the information is counted for each non-intra-frame stripe.

[0647] Item 57. The method according to Item 54, wherein the information is stored for each strip or each image.

[0648] Item 58. The method described in Item 54, wherein the information is reset to zero for each group of pictures (GOP).

[0649] Item 59. The method according to Item 58, wherein the size of the GOP is equal to one of the following: 4, 8, 16, or 32.

[0650] Item 60. The method according to Item 54, wherein the information is reset to zero for each random access point.

[0651] Item 61. The method according to Item 54, wherein the information is reset to zero for each Progressive Decode Refresh (GDR) image or each Instant Decode Refresh (IDR) image.

[0652] Item 62. The method according to any one of items 30 to 61, wherein the manner of determining the application of the encoding / decoding mode to the video unit based on the encoding / decoding information associated with the previously encoded or decoded strip or the previously encoded or decoded picture is used in at least one of: single-tree or dual-tree.

[0653] Item 63. The method according to any one of items 30 to 61, wherein the manner in which the encoding / decoding mode is applied to the video unit is determined based on the encoding / decoding information associated with the previously encoded or decoded stripe or the previously encoded or decoded picture, and is used by at least one of: chroma encoding / decoding, luma encoding / decoding, intra-block encoding / decoding, inter-block encoding / decoding, or IBC block encoding / decoding.

[0654] Item 64. The method according to any one of items 30 to 61, wherein the manner in which the encoding / decoding mode is applied to the video unit is determined in the inter-frame strip based on the encoding / decoding information associated with the previously encoded or decoded strip or the previously encoded or decoded picture.

[0655] Item 65. The method according to Item 64, wherein the inter-frame stripe is a B stripe or a P stripe.

[0656] Item 66. The method according to any one of items 30 to 61, wherein the manner in which the encoding / decoding mode is applied to the video unit is determined in the intra-frame strip based on the encoding / decoding information associated with the previously encoded or decoded strip or the previously encoded or decoded picture.

[0657] Item 67. The method according to Item 66, wherein the intra-frame stripe is an I-strip.

[0658] Item 68. The method according to any one of items 30 to 67, wherein the indication of whether to determine the manner in which the codec mode is applied to the video unit is based on the codec information associated with the previously encoded or decoded strip or the previously encoded or decoded picture, and / or how to determine the manner in which the codec mode is applied to the video unit is based on the codec information associated with the previously encoded or decoded strip or the previously encoded or decoded picture, is indicated at one of the following: sequence level, picture group level, picture level, strip level, or slice group level.

[0659] Item 69. The method according to any one of items 30 to 67, wherein the indication of whether the manner of applying the codec mode to the video unit is determined based on the codec information associated with the previously encoded or decoded strip or the previously encoded or decoded picture, and / or how the manner of applying the codec mode to the video unit is determined based on the codec information associated with the previously encoded or decoded strip or the previously encoded or decoded picture, is indicated in one of the following: sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), dependency parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header, or slice header.

[0660] Item 70. The method according to any one of items 68 to 69, wherein determining whether the manner in which the codec mode is applied to the video unit is applied to at least one of the sequences or picture groups based on the codec information associated with the previously encoded or decoded stripe or the previously encoded or decoded picture depends on at least one of the SPS flag or PPS flag.

[0661] Item 71. The method according to any one of items 68 to 69, wherein the manner in which the encoding / decoding mode is applied to the video unit is determined based on the encoding / decoding information associated with the previously encoded or decoded strip or the previously encoded or decoded picture, and is applied to the screen content encoding / decoding (SCC) sequence.

[0662] Item 72. The method according to Item 71, wherein the manner in which the codec mode is applied to the video unit is determined based on the codec information associated with the previously encoded or decoded strip or the previously encoded or decoded picture, and at least one of the SPS flag or PPS flag is applied.

[0663] Item 73. The method according to Item 71, wherein the manner in which the codec mode is applied to the video unit is determined based on the codec information associated with the previously encoded or decoded stripe or the previously encoded or decoded picture, and is based on rules that do not require syntax element signaling, wherein the rules include SCC content detection.

[0664] Item 74. The method according to any one of items 30 to 67, wherein the indication of whether the manner of applying the codec mode to the video unit is determined based on the codec information associated with the previously encoded or decoded strip or the previously encoded or decoded picture, and / or how the manner of applying the codec mode to the video unit is determined based on the codec information associated with the previously encoded or decoded strip or the previously encoded or decoded picture, is included in one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, strip, slice, sub-picture, or region containing more than one sample or pixel.

[0665] Item 75. The method according to any one of items 30 to 67, further comprising: determining, based on encoded or decoded information of the video unit of the video, whether to determine, based on the encoding / decoding information associated with the previously encoded or decoded strip or the previously encoded or decoded picture, the manner in which the encoding / decoding mode is applied to the video unit and / or how to determine, based on the encoding / decoding information associated with the previously encoded or decoded strip or the previously encoded or decoded picture, the encoded or decoded information including at least one of: block size, color format, single-tree segmentation and / or dual-tree segmentation, color components, stripe type, or picture type.

[0666] Item 76. The method according to any one of items 1 to 75, wherein the conversion includes encoding the video unit into the bitstream.

[0667] Item 77. The method according to any one of items 1 to 75, wherein the conversion comprises decoding the video unit from the bitstream.

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

[0669] Item 79. A non-transitory computer-readable storage medium storing instructions that cause a processor to execute the method according to any one of items 1 to 77.

[0670] Item 80. A non-transitory computer-readable recording medium storing a bitstream of video generated by a method performed by means of a video processing apparatus, wherein the method includes: determining, based on information associated with video units of the video, whether a cross-component prediction (CCP) mode is permitted for the video units; and generating the bitstream based on the determination.

[0671] Item 81. A method for storing a bitstream of video, comprising: determining, based on information associated with video units of the video, whether a cross-component prediction (CCP) mode is permitted for the video units; generating the bitstream based on the determination; and storing the bitstream in a non-transitory computer-readable recording medium.

[0672] Item 82. A non-transitory computer-readable recording medium storing a bitstream of video generated by a method performed by means of a video processing apparatus, wherein the method comprises: determining, based on encoding / decoding information associated with previously encoded or decoded stripes or previously encoded or decoded pictures, a manner in which encoding / decoding modes are applied to video units of the video; and generating the bitstream based on the determination.

[0673] Item 83. A method for storing a bitstream of video, comprising: determining, based on encoding / decoding information associated with previously encoded or decoded stripes or previously encoded or decoded pictures, a manner in which encoding / decoding modes are applied to video units of the video; generating the bitstream based on the determination; and storing the bitstream in a non-transitory computer-readable recording medium.

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

[0675] It should be understood that, Figure 36 The computing device 3600 shown is for illustrative purposes only and is not intended to imply any limitation on the functionality and scope of the embodiments of this disclosure.

[0676] like Figure 36As shown, computing device 3600 includes general-purpose computing device 3600. Computing device 3600 may include at least one or more processors or processing units 3610, memory 3620, storage unit 3630, one or more communication units 3640, one or more input devices 3650, and one or more output devices 3660.

[0677] In some embodiments, the computing device 3600 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 mobile phones, stations, units, devices, multimedia computers, multimedia tablet computers, internet nodes, communicators, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio receivers, e-book devices, gaming devices, or any combination thereof, and includes accessories and peripherals of these devices, or any combination thereof. It is conceivable that the computing device 3600 can support any type of interface to the user (such as "wearable" circuitry devices, etc.).

[0678] Processing unit 3610 can be a physical processor or a virtual processor, and can perform various processes based on programs stored in memory 3620. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capabilities of computing device 3600. Processing unit 3610 may also be referred to as a central processing unit (CPU), microprocessor, controller, or microcontroller.

[0679] Computing device 3600 typically includes various computer storage media. Such media can be any media accessible by computing device 3600, including but not limited to volatile and non-volatile media, or removable and non-removable media. Memory 3620 can be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (such as read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), or flash memory) or any combination thereof. Storage cell 3630 can be any removable or non-removable media and may include machine-readable media, such as memory, flash drives, disks, or other media that can be used to store information and / or data and can be accessed within computing device 3600.

[0680] The computing device 3600 may also include additional removable / non-removable storage media, volatile / non-volatile storage media. Although in Figure 36 Not shown, but may provide disk drives for reading from and / or writing to removable non-volatile disks, and optical disc drives for reading from and / or writing to removable non-volatile optical discs. In this case, each drive may be connected to a bus (not shown) via one or more data media interfaces.

[0681] Communication unit 3640 communicates with another computing device via a communication medium. Furthermore, the functionality of components in computing device 3600 can be implemented by a single computing cluster or by multiple computing machines communicating via communication connections. Therefore, computing device 3600 can operate in a networked environment using logical connections to one or more other servers, networked personal computers (PCs), or other general-purpose network nodes.

[0682] Input device 3650 can be one or more of various input devices, such as a mouse, keyboard, trackball, voice input device, etc. Output device 3660 can be one or more of various output devices, such as a monitor, speaker, printer, etc. With the aid of communication unit 3640, computing device 3600 can also communicate with one or more external devices (not shown), such as storage devices and display devices. Computing device 3600 can also communicate with one or more devices that enable a user to interact with computing device 3600, or any device that enables computing device 3600 to communicate with one or more other computing devices (e.g., network card, modem, etc.), if needed. Such communication can be performed via an input / output (I / O) interface (not shown).

[0683] In some embodiments, some or all components of computing device 3600 are not integrated into a single device, but may be deployed within a cloud computing architecture. In a cloud computing architecture, components may be provided remotely and work together to achieve the functionality described herein. In some embodiments, cloud computing provides computing, software, data access, and storage services without requiring end users to know the physical location or configuration of the systems or hardware providing these services. In various embodiments, cloud computing provides services via a wide area network (WAN), such as the Internet, using suitable protocols. For example, cloud computing providers offer applications via a WAN that can be accessed through a web browser or any other computing component. The software or components of the cloud computing architecture, along with the corresponding data, may be stored on servers at remote locations. Computing resources in a cloud computing environment may be consolidated or distributed at locations in remote data centers. Cloud computing infrastructure may provide services through shared data centers, although they may appear as a single access point for users. Therefore, cloud computing architectures can be used to provide the components and functionality described herein from service providers at remote locations. Alternatively, they may be provided from conventional servers or installed directly or otherwise on client devices.

[0684] In embodiments of this disclosure, computing device 3600 can be used to implement video encoding / decoding. Memory 3620 may include one or more video codec modules 3625 having one or more program instructions. These modules can be accessed and executed by processing unit 3610 to perform the functions of the various embodiments described herein.

[0685] In an example embodiment of performing video encoding, input device 3650 may receive video data as input 3670 to be encoded. The video data may be processed, for example, by video codec module 3625 to generate an encoded bitstream. The encoded bitstream may be provided as output 3680 via output device 3660.

[0686] In an example embodiment of performing video decoding, input device 3650 may receive an encoded bitstream as input 3670. The encoded bitstream may be processed, for example, by a video codec module 3625 to generate decoded video data. The decoded video data may be provided as output 3680 via output device 3660.

[0687] While this disclosure has been specifically shown and described with reference to exemplary embodiments thereof, those skilled in the art will understand that various changes in form and detail may be made without departing from the spirit and scope of this application as defined by the appended claims. Such changes are intended to be covered by the scope of this application. Therefore, the foregoing description of embodiments of this application is not intended to be limiting.

Claims

1. A method for video processing, comprising: For the conversion between video units and the bitstream of the video, determine whether cross-component prediction (CCP) mode is allowed for the video unit based on information associated with the video unit; as well as The conversion is performed based on the determination.

2. The method of claim 1, wherein the CCP mode includes an inter-frame CCP Merge mode.

3. The method of claim 1, wherein the information associated with the video unit includes at least one of the following: block width, block height, transform coefficient magnitude, picture sequence count (POC) distance, Merge prediction method, or inter-frame advanced motion vector prediction (AMVP) prediction method.

4. The method of claim 3, wherein if the video unit is merge-encoded or decoded, the CCP mode is permitted for the video unit, or Wherein, if the video unit is encoded or decoded via inter-frame AMVP, the CCP mode is permitted for the video unit having a block size within a predetermined range.

5. The method of claim 4, wherein the predetermined range of block size includes at least one of the following: The product of the chroma block width and the chroma block height is less than or equal to the first threshold, or The chroma block width multiplied by the chroma block height is greater than or equal to the second threshold.

6. The method of claim 5, wherein the first threshold comprises one of the following: 2048, 1024, or 512, and / or The second threshold includes one of the following: 32, 16, or 4.

7. The method of claim 4, wherein the CCP mode is permitted for the video unit if the luminance transform block and chrominance transform block of the video unit include at least one non-zero transform coefficient magnitude.

8. The method of claim 3, wherein the CCP mode is permitted for the video unit if the video unit is included in a strip or image that satisfies a rule based on the target reference image POC distance.

9. The method of claim 3, wherein if the video unit is included in a strip or picture that does not satisfy the rule based on the target reference picture POC distance, the CCP mode is permitted for the video unit having a block size of a predetermined range.

10. The method of claim 9, wherein the predetermined range of block size comprises at least one of the following: The product of the chroma block width and the chroma block height is less than or equal to the first threshold, or The chroma block width multiplied by the chroma block height is greater than or equal to the second threshold.

11. The method of claim 10, wherein the first threshold comprises one of the following: 2048, 1024, or 512, and / or The second threshold includes one of the following: 32, 16, or 4.

12. The method of claim 8 or 9, wherein the rule based on the target reference image POC distance comprises: The difference in Proof of Concept (POC) between the reference image and the current image is equal to a negative value, and / or An absolute POC difference between the reference picture and the current picture of the current picture is less than a predetermined threshold.

13. The method of claim 8 or 9, wherein the CCP mode is allowed for the video unit if the luma transform block and the chroma transform block of the video unit include all non-zero transform coefficient amplitudes.

14. The method of claim 8 or 9, wherein the CCP mode is allowed for the video unit if the video unit is encoded or decoded via AMVP.

15. The method of claim 14, wherein the video unit is encoded or decoded via inter-AMVP and / or intra-block copy (IBC) AMVP.

16. The method of any of claims 1-15, wherein determining whether the CCP mode is allowed for the video unit is used in at least one of: single tree or dual tree.

17. The method of any of claims 1-15, wherein determining whether the CCP mode is allowed for the video unit is used for at least one of: chroma coding, luma coding, intra block coding, inter block coding, or IBC block coding.

18. The method of any of claims 1-15, wherein determining whether the CCP mode is allowed for the video unit is used in an inter slice.

19. The method of claim 18, wherein the inter slice is a B slice or a P slice.

20. The method of any of claims 1-15, wherein determining whether the CCP mode is allowed for the video unit is used in an intra slice.

21. The method of claim 20, wherein the intra slice is an I slice.

22. The method of any of claims 1-21, wherein whether and / or how the CCP mode is allowed for the video unit is indicated at one of: a sequence level, a picture group level, a picture level, a slice level, or a tile group level.

23. The method of any of claims 1-21, wherein whether and / or how the CCP mode is allowed for the video unit is indicated in one of: a sequence header, a picture header, a sequence parameter set (SPS), a video parameter set (VPS), a dependent parameter set (DPS), a decoding capability information (DCI), a picture parameter set (PPS), an adaptation parameter set (APS), a slice header, or a tile group header.

24. The method of any of claims 22-23, wherein whether the CCP mode is allowed for the video unit is determined depends on at least one of a SPS flag or a PPS flag.

25. The method of any of claims 22-23, wherein determining whether the CCP mode is allowed for the video unit is applied for screen content coding (SCC) sequences.

26. The method of claim 25, wherein determining whether the CCP mode is allowed for the video unit is applied based on at least one of an SPS flag or a PPS flag.

27. The method of claim 25, wherein determining whether the CCP mode is allowed for the video unit is applied is determined based on a rule that does not require syntax element signaling, wherein the rule comprises SCC content detection.

28. The method of any of claims 1-21, wherein whether to determine whether the CCP mode is allowed for the video unit and / or how to determine whether the CCP mode is allowed for the video unit is indicated in one of: a prediction block (PB), a transform block (TB), a coding block (CB), a prediction unit (PU), a transform unit (TU), a coding unit (CU), a virtual pipeline data unit (VPDU), a coding tree unit (CTU), a CTU row, a slice, a tile, a subpicture, or a region containing more than one sample or pixel.

29. The method of any of claims 1-21, further comprising: determining whether to determine whether the CCP mode is allowed for the video unit and / or how to determine whether the CCP mode is allowed for the video unit based on encoded or decoded information of the video unit of the video, the encoded or decoded information comprising at least one of: a block size, a color format, a single tree partitioning and / or a dual tree partitioning, a color component, a slice type, or a picture type.

30. A method for video processing, comprising: for a conversion between a video unit of a video and a bitstream of the video, determining a manner of applying a coding mode to the video unit based on coding information associated with a previously encoded or decoded slice or a previously encoded or decoded picture; and performing the conversion based on the determination.

31. The method of claim 30, wherein the determination is made following the same rule at an encoder side and a decoder side.

32. The method of claim 31, wherein the determination is made for a current slice or a current picture, and the determination is applicable to video units included in the current slice or the current picture. ​ 33. The method of claim 30, wherein if information of CCP modes coded or decoded with a target coding mode in the previously coded or decoded slice or the previously coded or decoded picture is less than or equal to a threshold, the CCP modes coded or decoded with the target coding mode are not allowed for use of the blocks using the target coding mode in the current slice or the current picture, wherein the information comprises at least one of: a selection ratio of the CCP modes coded or decoded with the target coding mode, an area of the CCP modes coded or decoded with the target coding mode, or a number of the CCP modes coded or decoded with the target coding mode, and wherein the target coding mode comprises one of: Inter Advanced Motion Vector Prediction (AMVP), Inter Merge, Intra Block Copy (IBC) AMVP, IBC Merge.

34. The method of claim 33, wherein the CCP modes coded or decoded with the target coding mode comprise Inter CCP Merge mode.

35. The method of claim 33, wherein the threshold comprises one of: zero, a constant value, or a variable depending on slice or picture resolution and / or block dimension.

36. The method of claim 33, wherein the previously coded or decoded slice or the previously coded or decoded picture is decoded and / or coded before the current slice or the current picture.

37. The method of claim 36, wherein the previously coded or decoded slice or the previously coded or decoded picture is located at a same temporal layer as the current slice or the current picture.

38. The method of claim 33, wherein for the blocks using the target coding mode in the current slice or the current picture, syntax elements related to block-level usage of the CCP modes coded or decoded with the target coding mode are not signaled.

39. The method of claim 38, wherein a default value indicating the CCP modes coded or decoded with the target coding mode are not applied is used for the blocks using the target coding mode in the current slice or the current picture.

40. The method of claim 30, wherein if information of a target coding mode coded or decoded CCP mode in the previously coded or decoded slice or the previously coded or decoded picture is greater than a threshold, at least one block-level syntax element is signaled to indicate whether the CCP mode coded or decoded with the target coding mode is applied to a block using the target coding mode in the current slice or the current picture, wherein the information comprises at least one of: a selection ratio of the CCP mode coded or decoded with the target coding mode, an area of the CCP mode coded or decoded with the target coding mode, or a number of the CCP mode coded or decoded with the target coding mode, and wherein the target coding mode comprises one of: inter advanced motion vector prediction (AMVP), inter Merge, intra block copy (IBC) AMVP, IBC Merge.

41. The method of any of claims 33-40, wherein the blocks using the inter AMVP comprise inter AMVP blocks of all sizes.

42. The method of any of claims 33-40, wherein the blocks using the inter AMVP comprise inter AMVP blocks that satisfy a condition of a block size, wherein the condition comprises at least one of: the block size is greater than a first threshold, or the block size is less than a second threshold.

43. The method of claim 42, wherein the first threshold is equal to one of: 1024, 512, or 2048, and / or wherein the second threshold is equal to one of: 16, 32, or 64.

44. The method of any of claims 33-40, wherein the blocks using the inter Merge comprise inter Merge blocks of all sizes.

45. The method of any of claims 33-40, wherein the blocks using the inter Merge comprise inter Merge blocks that satisfy a condition of a block size, wherein the condition comprises at least one of: the block size is greater than a third threshold, or the block size is less than a fourth threshold.

46. The method of claim 45, wherein the third threshold is equal to one of: 1024, 512, or 2048, and / or wherein the fourth threshold is equal to one of: 16, 32, or 64.

47. The method of any of claims 33-40, wherein the blocks using the IBC AMVP comprise IBC AMVP blocks of all sizes.

48. The method of any of claims 33-40, wherein the blocks using the IBC AMVP comprise IBC AMVP blocks that satisfy a condition of a block size, wherein the condition comprises at least one of: the block size is greater than a fifth threshold, or the block size is less than a sixth threshold.

49. The method of claim 48, wherein the fifth threshold is equal to one of: 256 or 1024, and / or wherein the sixth threshold value is equal to one of: 16 or 32.

50. The method of any of claims 33-40, wherein the blocks for which the IBC Merge is used include IBC Merge blocks of all sizes.

51. The method of any of claims 33-40, wherein the blocks for which the IBC Merge is used include IBC Merge blocks that satisfy a condition on block size, wherein the condition includes at least one of: the block size is greater than a seventh threshold value, or the block size is less than an eighth threshold value.

52. The method of claim 51, wherein the seventh threshold value is equal to one of: 256 or 1024, and / or wherein the eighth threshold value is equal to one of: 16 or 32.

53. The method of any of claims 33-40, wherein the CCP mode that is encoded or decoded for a coding unit with the target coding mode includes at least one of the following features: all luma and chroma transform blocks of the coding unit include all-zero transform coefficient amplitudes, luma transform blocks of the coding unit include all-zero transform coefficient amplitudes but chroma transform blocks of the coding unit include at least one non-zero transform coefficient amplitude, or luma transform blocks of the coding unit include at least one non-zero transform coefficient amplitude.

54. The method of any of claims 33-40, wherein the information is accumulated or updated based on the CCP mode that is encoded or decoded with the target coding mode for each slice or each picture.

55. The method of claim 54, wherein the information is counted during a syntax parsing stage.

56. The method of claim 54, wherein the information is counted for each non-intra slice.

57. The method of claim 54, wherein the information is stored for each slice or each picture.

58. The method of claim 54, wherein the information is reset to zero for each group of pictures (GOP).

59. The method of claim 58, wherein the size of the GOP is equal to one of: 4, 8, 16, or 32.

60. The method of claim 54, wherein the information is reset to zero for each random access point.

61. The method of claim 54, wherein the information is reset to zero for each gradual decoding refresh (GDR) picture or each instantaneous decoder refresh (IDR) picture.

62. The method of any of claims 30-61, wherein determining the manner in which the coding mode is applied to the video unit based on the coding information associated with the previously encoded or decoded slice or the previously encoded or decoded picture is used in at least one of: single tree or dual tree.

63. The method according to any of the claims 30 to 61, wherein the determination of the way the coding mode is applied to the video unit based on the coding information associated with the previously encoded or decoded slice or the previously encoded or decoded picture is used for at least one of: chroma coding, luma coding, intra block coding, inter block coding, or IBC block coding.

64. The method according to any of the claims 30 to 61, wherein the determination of the way the coding mode is applied to the video unit based on the coding information associated with the previously encoded or decoded slice or the previously encoded or decoded picture is used in inter slices.

65. The method according to claim 64, wherein the inter slices are B slices or P slices.

66. The method according to any of the claims 30 to 61, wherein the determination of the way the coding mode is applied to the video unit based on the coding information associated with the previously encoded or decoded slice or the previously encoded or decoded picture is used in intra slices.

67. The method according to claim 66, wherein the intra slices are I slices.

68. The method according to any of the claims 30 to 67, wherein an indication of whether and / or how the way the coding mode is applied to the video unit based on the coding information associated with the previously encoded or decoded slice or the previously encoded or decoded picture is indicated at one of: sequence level, picture group level, picture level, slice level, or tile group level.

69. The method according to any of the claims 30 to 67, wherein an indication of whether and / or how the way the coding mode is applied to the video unit based on the coding information associated with the previously encoded or decoded slice or the previously encoded or decoded picture is indicated in one of: sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), dependent parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptation parameter set (APS), slice header, or tile group header.

70. The method according to any of the claims 68 to 69, wherein whether the way the coding mode is applied to the video unit based on the coding information associated with the previously encoded or decoded slice or the previously encoded or decoded picture is applied to at least one of a sequence or a picture group depends on at least one of a SPS flag or a PPS flag. ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 71. The method of any of claims 68-69, wherein the determination that the manner of applying the coding mode to the video unit based on the coding information associated with the previously encoded or decoded slice or the previously encoded or decoded picture is applied to screen content coding (SCC) sequences.

72. The method of claim 71, wherein the determination that the manner of applying the coding mode to the video unit based on the coding information associated with the previously encoded or decoded slice or the previously encoded or decoded picture is applied based on at least one of an SPS flag or a PPS flag.

73. The method of claim 71, wherein the determination that the manner of applying the coding mode to the video unit based on the coding information associated with the previously encoded or decoded slice or the previously encoded or decoded picture is applied is determined based on a rule that does not require syntax element signaling, wherein the rule comprises SCC content detection.

74. The method of any of claims 30-67, wherein whether the manner of applying the coding mode to the video unit based on the coding information associated with the previously encoded or decoded slice or the previously encoded or decoded picture and / or how the manner of applying the coding mode to the video unit based on the coding information associated with the previously encoded or decoded slice or the previously encoded or decoded picture is indicated in one of: a prediction block (PB), a transform block (TB), a coding block (CB), a prediction unit (PU), a transform unit (TU), a coding unit (CU), a virtual pipeline data unit (VPDU), a coding tree unit (CTU), a CTU row, a slice, a tile, a subpicture, or a region containing more than one sample or pixel.

75. The method of any of claims 30-67, further comprising: determining, based on encoded or decoded information of the video unit of the video, whether the manner of applying the coding mode to the video unit based on the coding information associated with the previously encoded or decoded slice or the previously encoded or decoded picture and / or how the manner of applying the coding mode to the video unit based on the coding information associated with the previously encoded or decoded slice or the previously encoded or decoded picture, the encoded or decoded information comprising at least one of: a block size, a color format, a single tree partitioning and / or a dual tree partitioning, a color component, a slice type, or a picture type.

76. The method of any of claims 1-75, wherein the conversion comprises encoding the video unit into the bitstream.

77. The method of any of claims 1-75, wherein the conversion comprises decoding the video unit from the bitstream.

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

79. A non-transitory computer-readable storage medium storing instructions to cause a processor to perform the method of any of claims 1-77.

80. A non-transitory computer-readable recording medium storing a bitstream of a video generated by a method performed by an apparatus for video processing, wherein the method comprises: determining, based on information associated with a video unit of the video, whether a cross-component prediction (CCP) mode is allowed for the video unit; and generating the bitstream based on the determination.

81. A method for storing a bitstream of a video, comprising: determining, based on information associated with a video unit of the video, whether a cross-component prediction (CCP) mode is allowed for the video unit; generating the bitstream based on the determination; and storing the bitstream in a non-transitory computer-readable recording medium.

82. A non-transitory computer-readable recording medium storing a bitstream of a video generated by a method performed by an apparatus for video processing, wherein the method comprises: determining, based on coding information associated with a previously coded or decoded slice or a previously coded or decoded picture, a manner in which a coding mode is applied to a video unit of the video; and generating the bitstream based on the determination.

83. A method for storing a bitstream of a video, comprising: determining, based on coding information associated with a previously coded or decoded slice or a previously coded or decoded picture, a manner in which a coding mode is applied to a video unit of the video; generating the bitstream based on the determination; and storing the bitstream in a non-transitory computer-readable recording medium.