Cross-component prediction using multiple components

By optimizing the conversion between video blocks and bitstream representations through cross-component prediction methods, the problem of increasing bandwidth requirements in video encoding and decoding technologies is solved, achieving more efficient video compression and encoding/decoding.

CN114788278BActive Publication Date: 2025-10-24DOUYIN VISION CO LTD +1
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202080085360.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-12-08
Filing Date
2020-12-08
Publication Date
2025-10-24
Estimated Expiration
2040-12-08

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies consume a large amount of bandwidth on the Internet and digital communication networks. As the number of connected user devices increases, bandwidth demand continues to grow, necessitating more efficient video compression methods.

Method used

A cross-component prediction method is adopted, including cross-component prediction mode and cross-component linear model. By disabling or enabling specific codec tools and syntax elements, the conversion between video blocks and bitstream representations is optimized. Nearby reference samples are used for prediction and padding to reduce redundant information.

Benefits of technology

It improves video encoding and decoding efficiency, reduces bandwidth requirements, enhances the quality and efficiency of video compression, and is applicable to existing and future video encoding and decoding standards.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114788278B_ABST
    Figure CN114788278B_ABST
Patent Text Reader

Abstract

Devices, systems, and methods of digital video coding are described that include prediction from multiple cross-component (PMC) methods. An exemplary method of video processing includes making a first determination of a disabling of a cross-component prediction (CCP) mode for a conversion between a video block of a video and a bitstream representation of the video, and based on the first determination, making a second determination of whether a first syntax element indicating usage of an enhanced two-step cross-component prediction mode (TSCPM) coding tool or an enhanced cross-component linear model (CCLM) coding tool is included in the bitstream representation. The method further includes performing the conversion based on the second determination.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims priority to and the benefit of International Patent Application No. PCT / CN2019 / 123857 filed December 8, 2019. The entire disclosure of the above application is incorporated by reference as part of the disclosure of this application. TECHNICAL FIELD

[0003] This patent document relates to video coding techniques, devices, and systems. BACKGROUND

[0004] Despite the advances in video compression, digital video still consumes the largest bandwidth use on the Internet and other digital communication networks. As the number of connected user devices that can receive and display video increases, the bandwidth demand for digital video usage is expected to continue to grow. SUMMARY

[0005] Devices, systems, and methods related to cross-component prediction methods are described.

[0006] In one example aspect, a video processing method is disclosed. The method includes making a first determination that a cross-component prediction (CCP) mode is disabled for a conversion between a video block of a video and a bitstream representation of the video, and based on the first determination, making a second determination as to whether a first syntax element indicating usage of an enhanced two-step cross-component prediction mode (TSCPM) coding tool or an enhanced cross-component linear model (CCLM) coding tool is included in the bitstream representation. The method further includes performing the conversion based on the second determination.

[0007] In another example aspect, a video processing method is disclosed. The method includes making a first determination that an intra block copy (IBC) mode is disabled for a conversion between a video block of a video and a bitstream representation of the video, and based on the first determination, making a second determination as to whether a first syntax element indicating usage of an adaptive block vector (BV) precision coding tool is included in the bitstream representation. The method further includes performing the conversion based on the second determination.

[0008] In another example aspect, a video processing method is disclosed. The method includes determining, for a conversion between a video block of a video and a bitstream representation of the video, that linear model parameters of an enhanced cross-component prediction (CCP) coding tool are assigned default values in a case that a collocated reference sample of the video block is located outside a current video unit in which a current sample of the video block is located. The method further includes performing the conversion based on the determination.

[0009] In another example aspect, a video processing method is disclosed. The method includes determining, for a conversion between a video block of a video and a bitstream representation of the video, linear model parameters of an enhanced cross-component prediction (CCP) coding tool based on padding a neighboring reference sample of the video block in a case that the neighboring reference sample is located outside a current video unit in which a current sample of the video block is located. The method also includes performing the conversion based on the determining.

[0010] In another example aspect, a video processing method is disclosed. The method includes determining, for a conversion between a video block of a video and a bitstream representation of the video, to omit an enhanced cross-component prediction (CCP) mode in the bitstream representation in a case that a neighboring reference sample of the video block is located outside a current video unit in which a current sample of the video block is located. The method also includes performing the conversion based on the determining.

[0011] Another example video processing method includes determining, using a representative sample of a second component of a video and / or a third component of the video, a prediction value of a sample of a first component of a video block of the video, and performing a conversion between the video block and a bitstream representation of the video block according to the determined prediction value of the first component.

[0012] In another example aspect, a video processing method is disclosed. The method includes determining, for a conversion between a video block of a video and a coded representation of the video, to disable a cross-component mode for the conversion, and performing the conversion based on the determination according to a format rule of the coded representation, wherein the format rule specifies to omit, from the coded representation, a syntax element indicating an enhancement to the cross-component mode.

[0013] In another example aspect, a video processing method is disclosed. The method includes determining, for a conversion between a video block of a video and a coded representation of the video, to disable an intra block copy mode for the conversion, and performing the conversion based on the determination according to a format rule of the coded representation, wherein the format rule specifies to omit, from the coded representation, a syntax element indicating a use of adaptive precision.

[0014] In another representative aspect, the above-described method is implemented in the form of a processor-executable code and stored in a computer-readable program medium.

[0015] In yet another representative aspect, an apparatus configured or operable to perform the above-described method is disclosed. The apparatus can include a processor programmed to implement the method.

[0016] In yet another representative aspect, a video decoder apparatus can implement the method as described herein.

[0017] The above and other aspects and features of the disclosed technology are more fully described in the accompanying drawings, specification, and claims. BRIEF DESCRIPTION OF DRAWINGS

[0018] Figure 1 Neighboring blocks used in intra mode prediction are shown.

[0019] Figure 2 67 intra prediction modes are shown.

[0020] Figure 3 Neighboring blocks used in most probable mode (MPM) list construction process are shown.

[0021] Figure 4 Reference samples for wide-angle intra prediction are shown.

[0022] Figure 5 Discontinuity problem when direction exceeds 45 degrees is shown.

[0023] Figure 6A Example definition of samples used for position dependent intra prediction combination (PDPC) applied to diagonal right top mode is shown.

[0024] Figure 6B Example definition of samples used for position dependent intra prediction combination (PDPC) applied to diagonal left bottom mode is shown.

[0025] Figure 6C Example definition of samples used for position dependent intra prediction combination (PDPC) applied to adjacent right top mode is shown.

[0026] Figure 6D Example definition of samples used for position dependent intra prediction combination (PDPC) applied to adjacent left bottom mode is shown.

[0027] Figure 7 Example of reference line for intra prediction is shown.

[0028] Figure 8 Position of samples used for deriving a and b is shown.

[0029] Figure 9A Chroma samples (triangles) and their corresponding four luma samples (circles) are shown.

[0030] Figure 9B Down-sampling filter for cross-component linear model (CCLM) in Versatile Video Coding (VVC) is shown.

[0031] Figure 10A Linear model top (LM-T) side assuming chroma block size equal to NxN is shown.

[0032] Figure 10BA linear model left (LM-L) side is shown assuming a chroma block size equal to NxN.

[0033] Figure 11A An example of a linear model (LM) parameter derivation process is shown with 4 entries.

[0034] Figure 11B Another example of a linear model (LM) parameter derivation process is shown with 4 entries.

[0035] Figure 12 An illustration of a straight line between the minimum and maximum luminance values is shown.

[0036] Figure 13 A coding process for a two-step cross-component prediction mode (TSCPM) is shown with 4:2:0 and 8x8 luma blocks, 4x4 chroma blocks as an example.

[0037] Figure 14 An example of four neighboring samples is shown where both the left and above reference samples are available.

[0038] Figure 15A Six representative color component Cl samples (dark gray) are shown for predicting (X c , Y c ).

[0039] Figure 15B Eight representative color component Cl samples (dark gray) are shown for predicting (X c , Y c ).

[0040] Figure 16 A decoding process diagram is shown utilizing the proposed method.

[0041] Figure 17 A flowchart of a method of example video processing is shown.

[0042] Figure 18 is a block diagram of a video processing device.

[0043] Figure 19 is a block diagram showing an example video processing system in which various techniques disclosed herein can be implemented.

[0044] Figure 20 is a block diagram illustrating an example video coding system.

[0045] Figure 21 is a block diagram illustrating an encoder in accordance with some embodiments of the disclosure.

[0046] Figure 22 is a block diagram illustrating a decoder in accordance with some embodiments of the disclosure.

[0047] Figure 23 is a flowchart representation of a method of video processing according to the present technology.

[0048] Figure 24 is a flowchart representation of another video processing method according to the present technology.

[0049] Figure 25 is a flowchart representation of another video processing method according to the present technology.

[0050] Figure 26 is a flowchart representation of another video processing method according to the present technology.

[0051] Figure 27 is a flowchart representation of another video processing method according to the present technology. DETAILED DESCRIPTION

[0052] The use of section headings in this document is for ease of understanding and does not limit the embodiments disclosed in a section to only that section. In addition, although certain embodiments are described with reference to a general video codec or other specific video codec, the disclosed techniques are also applicable to other video codec technologies. In addition, although some embodiments describe video coding and decoding steps in detail, it will be understood that the corresponding decoding steps of undoing the coding and decoding will be implemented by the decoder. In addition, the term video processing includes video coding or compression, video decoding or decompression, and video transcoding, in which video pixels are represented from one compressed format to another compressed format or at a different compression bit rate.

[0053] 1 Overview

[0054] The technology described in this patent application relates to image / video codec technology. Specifically, it relates to cross-component prediction in image / video codecs. It can be applied to existing video codec standards such as High Efficiency Video Codec (HEVC) or the upcoming standard (Universal Video Codec). It can also be applied to future video codec standards or video codecs.

[0055] 2 Background

[0056] Video coding standards have evolved mainly through the development of the well-known ITU-T and ISO / IEC standards. ITU-T produced H.261 and H.263, ISO / IEC produced MPEG-1 and MPEG-4 Visual, and the two organizations jointly produced the H.262 / MPEG-2 Video and H.264 / MPEG-4 Advanced Video Coding (AVC) and H.265 / HEVC standards. Since H.262, the video coding standards are based on the hybrid video coding structure, where temporal prediction plus transform coding is utilized. To explore future video coding technologies beyond HEVC, the Joint Video Exploration Team (JVET) was founded by VCEG and MPEG jointly in 2015. Since then, many new methods have been adopted by JVET and put into the reference software named Joint Exploration Model (JEM). In April 2018, the Joint Video Team (JVT) was formed by VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) to work on the VVC standard with the goal to compress video at 50% bitrate reduction compared to HEVC.

[0057] 2.1 Color format

[0058] Chroma subsampling is a practice of encoding images with lower resolution for chroma information than for luma information by exploiting the fact that the human visual system is less sensitive to color differences than to luminance differences.

[0059] 4:2:0 is a 2:1 subsampling horizontally and vertically. A signal with 4:4:4 chroma is uncompressed (so no subsampling is done) and transmits full luma and color data. In a four-by-two array of pixels, 4:2:2 has half the chroma of 4:4:4, while 4:2:0 has a quarter of the available color information.

[0060] Assuming a chroma block size of MxN, where M is the width of the chroma block and N is the height of the chroma block, the top-left position within the chroma block is denoted by (x, y). The co-located luma block can be identified by:

[0061]

[0062] 2.2 Intra prediction in HEVC / H.265

[0063] In a picture, two different redundancies can be identified: 1) spatial or temporal redundancy, 2) psycho-visual redundancy. To remove spatial redundancy, a prediction process is used. Intra prediction is the process of predicting pixels of a frame of a picture. Intra prediction uses neighborhood pixels to predict a block of a picture. Before intra prediction, the frame has to be divided.

[0064] In HEVC, one picture / slice / tile can be divided into multiple coding tree units (CTU). The size of CTU can be 64x64, 32x32 or 16x16 according to the texture complexity and other parameters. Coding tree unit (CTU) is thus a coding logical unit, which is further coded into HEVC bitstream. It includes three blocks, i.e. luma (Y) and two chroma components (Cb and Cr). Taking 4:2:0 color format as an example, the luma component has LxL samples and each chroma component has L / 2xL / 2 samples. Each block is called coding tree block (CTB). The size (LxL) of each CTB is the same as that of CTU (64x64, 32x32 or 16x16). Each CTB can be repeatedly divided in a quad-tree structure from the same size as CTB to 8x8 size. Each block resulting from such partitioning is called coding block (CB) and becomes the decision point of prediction type (inter or intra prediction). The prediction type along with other parameters is coded in a coding unit (CU). So CU is the basic unit of HEVC prediction, each of which is predicted from previously coded data. And CU includes three components (Y, Cb and Cr). CB can still be too large to store a motion vector (inter-picture (temporal) prediction) or an intra-picture (spatial) prediction mode. Therefore, prediction block (PB) is introduced. Each CB can be differently partitioned into PBs according to the predictability in temporal and / or spatial domain. The size of CTU can be 32x32, 16x16, 8x8 or 4x4.

[0065] There are two intra prediction modes, PCM (pulse code modulation) and normal intra prediction mode.

[0066] 2.2.1 PCM (pulse code modulation)

[0067] In I_PCM mode, prediction, transform, quantization and entropy coding are bypassed. The samples of a block are coded by directly representing the sample values without prediction or applying transform.

[0068] In HEVC, I_PCM mode is only applied to 2Nx2N PU. The maximum and minimum I_PCM CU size is signaled in SPS, the legal I_PCM CU sizes are 8x8, 16x16 and 32x32, and the user-selected PCM sample bit depth is signaled in SPS for luma and chroma respectively.

[0069] Taking luma samples as an example: recSamplesL[i,j] = pcm_sample_luma[(nS*j)+i] << (BitDepthY - PCMBitDepthY). When PCMBitDepthY = BitDepthY, it becomes lossless coding.

[0070] 2.2.2 Normal Intra Prediction

[0071] For the luma component, there are 35 modes, including Planar, DC and 33 angular prediction modes, applicable to all block sizes. To better code these luma prediction modes, first a most probable mode (MPM) flag is coded to indicate whether one of the 3 MPM modes is selected. If the MPM flag is false, the 32 remaining modes are coded with fixed length coding.

[0072] The selection of the set of three most probable modes is based on the modes of two neighboring PUs, one to the left of the current PU and one above the current PU. Let the Intra modes of the top-left corner of the current PU be A and B, respectively, where the two neighboring blocks are in Figure 1 shown in FIG. 3.

[0073] If the neighboring PUs are not coded as Intra, or coded in pulse code modulation (PCM) mode, the PU is considered as a DC predicted PU. In addition, when the above neighboring PU is out of the CTU, B is assumed to be the DC mode to avoid introducing an additional row buffer for Intra mode reconstruction.

[0074] If A is not equal to B, the first two most probable modes denoted as MPM[0] and MPM[1] are set equal to A and B, respectively, and the third most probable mode denoted as MPM[2] is determined as follows:

[0075] - If neither A nor B is the Planar mode, MPM[2] is set to the Planar mode.

[0076] - Otherwise, if neither A nor B is the DC mode, MPM[2] is set to the DC mode.

[0077] - Otherwise (one of the two most probable modes is the Planar mode and the other is the DC mode), MPM[2] is set equal to the angular mode 26 (directly vertical).

[0078] If A is equal to B, the three most probable modes are determined as follows. In the case where they are not angular modes (A and B are less than 2), the three most probable modes are set equal to the Planar mode, the DC mode and the angular mode 26, respectively. Otherwise (A and B are greater than or equal to 2), the first most probable mode MPM[0] is set equal to A and the two remaining most probable modes MPM[1] and MPM[2] are set equal to the neighboring direction of A and computed as follows:

[0079] MPM[1] = 2 + ((A - 2 - 1 + 32) % 32)

[0080] MPM[2] = 2 + ((A - 2 + 1) % 32)

[0081] where % denotes the modulo operator (e.g., a % b represents the remainder of a divided by b).

[0082] For chroma components, there are 5 modes, including DM, Planar, DC, Horizontal, and Vertical.

[0083] 2.3 Intra prediction in VVC

[0084] 2.3.1 Intra mode coding with 67 intra prediction modes

[0085] To capture arbitrary edge directions presented in natural videos, the number of directional intra modes is increased from 33 used in HEVC to 65. The additional directional modes are represented by the gray dashed arrows in Figure 2 , and the Planar and DC modes remain unchanged. These denser directional intra prediction modes are applied to all block sizes and for both luma and chroma intra prediction.

[0086] The traditional angular intra prediction directions are defined as clockwise directions from 45 degrees to -135 degrees, as shown in Figure 2 . In VTM2, for non-square blocks, several traditional angular intra prediction modes are replaced adaptively with wide-angle intra prediction modes. The replaced modes are signaled using the original method and remapped to the indices of wide-angle modes after parsing. The total number of intra prediction modes is unchanged, e.g., 67, and the intra mode coding is unchanged.

[0087] In HEVC, each intra coded block has a square shape and each of its sides has a length that is a power of 2. Therefore, generating the intra predictor using the DC mode does not require a division operation. In VVC2, the block can have a rectangular shape, which makes it necessary to use a division operation for each block in general case. To avoid the division operation for DC prediction, only the longer side is used to calculate the average value for non-square blocks.

[0088] 2.3.2 Intra mode coding for luma component with 6 MPMs

[0089] In VVC reference software VTM3.0.rc1, as shown in Figure 3 , only the intra modes of the neighboring positions A and B denoted as LEFT and ABOVE are used for MPM list generation. For non-MPM coding, a truncated binary coding is applied.

[0090] Let the intra modes of the current CU’s left and above positions be Mode A and Mode B , respectively.

[0091] If the top neighboring CU is not coded as Intra, or coded in Pulse Code Modulation (PCM) mode, the CU is considered as a planar-predicted CU. In addition, when the top neighboring CU is out of the CTU, Mode B is assumed to be planar mode to avoid introducing additional line buffers for Intra mode reconstruction.

[0092] The 6 MPM modes are denoted by MPM[i] (i is 0...5). The following steps are performed in order:

[0093] 1. The initialized values: MPM[6] = {Mode A ,!Mode A , 50, 18, 46, 54};

[0094] 2. If Mode A is equal to Mode B , the following applies

[0095] - If Mode A is greater than 1 (non-DC / planar), MPM[6] = {Mode A , planar, DC, 2+((candIntraPredModeA+62) % 65), 2+((candIntraPredModeA-1) % 65, 2+((candIntraPredModeA+61) % 65))};

[0096] 3. Otherwise (Mode A is equal to Mode B ), the following applies:

[0097] - MPM[0] = Mode A , MPM[1] = Mode B

[0098] - Set variable biggerldx as follows:

[0099] biggerldx = candModeList[0] > candModeList[1]? 0 : 1

[0100] - If both Mode A and Mode B are greater than 1, MPM[x], where x = 2..5, are derived as follows:

[0101] 2..5:

[0102] MPM[2] = INTRA_PLANAR

[0103] PM[3] = INTRA_DC

[0104] - If MPM[biggerldx] - MPM[!biggerldx] is neither equal to 64 nor equal to 1, the following applies:

[0105] MPM[4] = 2 + ((MPM[biggerldx] + 62) % 65)

[0106] MPM[5] = 2 + ((MPM[biggerldx] - 1) % 65)

[0107] - Otherwise, the following applies:

[0108] MPM[4] = 2 + ((MPM[biggerldx] + 61) % 65)

[0109] MPM[5] = 2 + (candModeList[biggerldx] % 65)

[0110] - Otherwise, if the sum of Mode A and Mode B is greater than or equal to 2, the following applies:

[0111] MPM[2] =!MPM[!biggerldx]

[0112] MPM[3] = 2 + ((MPM[biggerldx] + 62) % 65)

[0113] MPM[4] = 2 + ((MPM[biggerldx] - 1) % 65)

[0114] MPM[5] = 2 + ((MPM[biggerldx] + 61) % 65)

[0115] where % denotes the modulo operator (e.g., a % b denotes the remainder of a divided by b).

[0116] 2.3.3 Wide-angle intra prediction for non-square blocks

[0117] The traditional angular intra prediction directions are defined as clockwise directions from 45 degrees to -135 degrees. In VTM2, for non-square blocks, several traditional angular intra prediction modes are replaced adaptively with wide-angle intra prediction modes. The replaced modes are signaled using the original method and remapped to the indices of wide-angle modes after parsing. The total number of intra prediction modes for a particular block is unchanged, e.g., 67, and the intra mode coding is unchanged.

[0118] To support these prediction directions, a top reference of length 2W+1 and a left reference of length 2H+1 are defined as Figure 4shown.

[0119] The mode number of the alternative mode in the wide direction mode depends on the aspect ratio of the block. The alternative intra prediction modes are shown in Table 2-1.

[0120] Table 2-1 - Intra prediction modes replaced by wide-angle modes

[0121]

[0122] like Figure 5 As shown, in the case of wide-angle intra prediction, two vertically adjacent predicted samples can use two non-adjacent reference samples. Therefore, low-pass reference sample filtering and side smoothing are applied to wide-angle prediction to reduce the increased gap Δp α negative impact.

[0123] 2.3.4 Position-dependent Intra-frame Prediction Combination

[0124] In VTM2, the results of intra prediction for planar mode are further modified by the Position Dependent Intra Prediction Combining (PDPC) method. PDPC is an intra prediction method that uses a combination of unfiltered boundary reference samples and HEVC-style intra prediction with filtered boundary reference samples. PDPC is applied to the following intra modes that are not signaled: planar, DC, horizontal, vertical, bottom left angular mode and its eight adjacent angular modes, and top right angular mode and its eight adjacent angular modes.

[0125] Using the intra prediction mode (DC, planar, angular) and a linear combination of reference samples, the prediction sample pred(x,y) is predicted according to the following equation:

[0126] pred(x,y)=(wL×R -1,y +wT×R x,-1 –wTL×R -1,-1 +(64–wL–wT+wTL)×pred(x,y)+32)>>6

[0127] where R x,-1 ,R -1,y Respectively represent the reference sample points located at the top and left of the current sample point (x, y), and R -1,-1 Indicates the reference sample located at the top left corner of the current block.

[0128] If PDPC is applied to DC, planar, horizontal and vertical intra modes, no additional boundary filter is required, while it is required in the case of HEVC DC mode boundary filter or horizontal / vertical mode edge filters.

[0129] Figure 6A- Figure 6DThe definition of the reference samples (R x,-1 , -1,y and R -1,-1 ) applied for PDPC in each prediction mode is illustrated. The prediction sample pred(x’,y’) is located at (x’,y’) within the prediction block. The coordinate x of the reference sample R x,-1 is given by x = x’ + y’ + 1, and the coordinate y of the reference sample R -1,y is similarly given by y = x’ + y’ + 1.

[0130] The PDPC weights depend on the prediction mode and are shown in Table 0-1.

[0131] Table 0-1 - Example of PDPC weights according to prediction mode

[0132] Prediction mode wT wL wTL Diagonal top-right 16 >> ((y' << 1) >> shift) 16 >> ((x' << 1) >> shift) 0 Diagonal bottom-left 16 >> ((y' << 1) >> shift) 16 >> ((x' << 1) >> shift) 0 Adjacent diagonal top-right 32 >> ((y' << 1) >> shift) 0 0 Adjacent diagonal bottom-left 0 32 >> ((x' << 1) >> shift) 0

[0133] 2.3.5 Multi-reference line intra prediction (MRLIP)

[0134] The proposal allows to use reference samples located at different distances, instead of always using reconstructed samples in the neighboring left column and above row (e.g. reference line 0) for intra prediction.

[0135] MRLIP has the following properties:

[0136] - Reference line index signaling

[0137] - For reference line idx > 0, only those from the MPM list, and only the mpm index is signaled without the remaining modes;

[0138] - For reference line index = 0, same as original design, all kinds of intra prediction modes can be selected

[0139] - One line out of three can be selected for one luma block: reference line 0, 1, 3, as shown in Figure 7 .

[0140] - CTU restricted top line

[0141] - MRL for the first line of a block within a CTU is disabled

[0142] 2.3.6 Chroma coding

[0143] In HEVC chroma coding, five modes are allowed for chroma blocks (including one direct mode (DM) which is the intra prediction mode from the corresponding luma block at the top-left corner, and four default modes). The two chroma components share the same intra prediction mode.

[0144] Unlike the design of HEVC, two new methods are proposed, including: cross-component linear model (CCLM) prediction mode and multiple DMs.

[0145] 2.3.6.1 CCLM

[0146] To reduce the cross-component redundancy, a cross-component linear model (CCLM) prediction mode, also referred to as LM, is used in JEM to predict the chroma samples based on the reconstructed luma samples of the same CU by using a linear model as follows:

[0147] pred C (i,j) = a - rec L '(i,j) + β (1)

[0148] where pred C (i,j) denotes the predicted chroma samples in the CU, and rec L '(i,j) denotes the down-sampled reconstructed luma samples of the same CU for color format 4:2:0 or 4:2:2, while rec L '(i,j) denotes the reconstructed luma samples of the same CU for color format 4:4:4. The CCLM parameters a and β are derived by minimizing the regression error between the neighboring reconstructed luma and chroma samples around the current block as follows:

[0149]

[0150]

[0151] where L(n) denotes the down-sampled (for color format 4:2:0 or 4:2:2) or original (for color format 4:4:4) top and left neighboring reconstructed luma samples, C(n) denotes the top and left neighboring reconstructed chroma samples, and the value of N is equal to twice the minimum width and height of the current chroma coding block. For coding blocks with square shape, the above two equations are applied directly.

[0152] The CCLM luma-to-chroma prediction mode is added as an additional chroma intra prediction mode. At the encoder side, a RD cost check of the chroma component is added for the selection of the chroma intra prediction mode. When an intra prediction mode other than the CCLM luma-to-chroma prediction mode is used for the chroma component of a CU, the CCLM Cb-to-Cr prediction is used for the Cr component prediction.

[0153] 2.3.6.1.1 CCLM for non-square blocks

[0154] For non-square coding blocks, the neighboring samples of the longer boundary are first sub-sampled to have the same number of samples as the shorter boundary. Figure 8The positions of the left and top reconstructed samples are shown as well as the samples of the current block involved in the CCLM mode.

[0155] This regression error minimization calculation is performed as part of the decoding process, not just as an encoder search operation, so the syntax is not used to convey the a and b values.

[0156] 2.3.6.1.2 CCLM between chroma components

[0157] CCLM prediction mode also includes prediction between two chroma components, e.g. predicting the Cr component from the Cb component. CCLM Cb to Cr prediction is applied in the residual domain, rather than using the reconstructed sample signal. This is achieved by adding a weighted reconstructed Cb residual to the original Cr intra prediction to form the final Cr prediction:

[0158]

[0159] where resi Cb '(i,j) presents the reconstructed Cb residual sample at position (i,j).

[0160] The scaling factor a is derived in a similar way as in the CCLM luma to chroma prediction. The only difference is that a regression cost with respect to the default value a is added in the error function, so the derived scaling factor is biased towards the default value -0.5, as follows:

[0161]

[0162] where Cb(n) represents the neighboring reconstructed Cb samples, Cr(n) represents the neighboring reconstructed Cr samples, and l is equal to ∑(Cb(n) · Cb(n)) » 9.

[0163] 2.3.6.1.3 Downsampling filter in CCLM mode

[0164] To perform cross-component prediction, for 4:2:0 chroma format where 4 luma samples correspond to 1 chroma sample, the reconstructed luma block needs to be downsampled to match the size of the chroma signal. The default downsampling filter used in CCLM mode (e.g. 6-tap as shown in Figure 9B is as follows.

[0165]

[0166] Note that the positions of the chroma samples are relative to the luma sample positions, this downsampling assumes a "type 0" phase relationship, as shown in Figure 9A for example horizontally co-located samples and vertically interstitial samples.

[0167] 2.3.6.2 Multi-directional LM

[0168] This paper proposes multi-directional LM (MDLM). In MDLM, two additional CCLM modes are proposed: LM-T, in which linear model parameters are derived based on only top neighboring samples, as shown in Figure 10A ; and LM-L, in which linear model parameters are derived based on only left neighboring samples, as shown in Figure 10B .

[0169] 2.3.6.3 Three CCLM solutions in VVC

[0170] CCLM with prediction from luma to chroma as in JEM is adopted in VTM 2.0. Furthermore, JVET-L0338 and JVET-L0191 are further adopted into VTM-3.0.

[0171] In total, three CCLM modes are supported, namely INTRA_LT_CCLM (one in JEM), INTRA_L_CCLM (LM-T), and INTRA_T_CCLM (LM-L). The difference among these three modes is which neighboring samples are utilized to derive linear model parameters (e.g., a, b).

[0172] Given that the chroma block size is equal to nTbW x nTbH, the availability of the top or left block of the current block is determined by availT and availL, respectively. The subsampling rate for the above rows and left columns is xS and yS, respectively.

[0173] 2.3.6.3.1 INTRA_LT_CCLM

[0174] In this mode, also denoted as LM-LT, both above rows and left columns can be utilized to derive linear model parameters. For non-square chroma blocks, subsampling can be performed on the corresponding longer side. That is, at most 2*nS = 2*(min(nTbW, nTbH)) samples can be used for linear model parameter derivation.

[0175] More specifically, the following applies:

[0176] nS = ((availL && availT)? Min(nTbW, nTbH) : (availL? nTbH : nTbW)) (6)

[0178] xS = 1 « (((nTbW > nTbH) && availL && availT)? (Log2(nTbW) - Log2(nTbH)) : 0) (7)

[0179] yS = 1 « (((nTbH > nTbW) && availL && availT)? (Log2(nTbH) - Log2(nTbW)) : 0) (8)

[0180] 2.3.6.3.2 INTRA_L_CCLM

[0181] In this mode, also denoted as LM-L, both the above row and the top-left side (up to numSampL samples) are utilized if needed.

[0182] More specifically, the following applies:

[0183] xS and yS are set to 1 (e.g., no sub-sampling regardless of whether it is a non-square or square block).

[0184] numSampL = (availL && predModeIntra == INTRA_L_CCLM)? (nTbH + numLeftBelow) : 0 (9)

[0185] 2.3.6.3.3 INTRA_T_CCLM

[0186] In this mode, also denoted as LM-T, both the left column and the bottom-left side (up to numSampT samples) are utilized if needed.

[0187] More specifically, the following applies:

[0188] xS and yS are set to 1 (e.g., no sub-sampling regardless of whether it is a non-square or square block).

[0189] numSampT = (availT && predModeIntra == INTRA_T_CCLM)? (nTbW + numTopRight) : 0 (10)

[0190] 2.3.6.4 Four-point based linear model derivation

[0191] The linear model parameters are derived using 2 or 4 points of neighboring luma samples and their corresponding chroma samples. Depending on the color format, the luma samples can be those down-sampled luma samples instead of using the reconstructed luma samples directly.

[0192] Basically, the 2 or 4 points are selected with equal distance. Assume the block width and block height of the current chroma block are W and H, respectively. And the top-left coordinate of the current chroma block is [0, 0].

[0193] 1. If both the above and left blocks are available, and the current mode is normal LM mode (excluding LM-T and LM-L), select the 2 chroma samples located in the above line and the 2 chroma samples located in the left column.

[0194] The coordinates of the two above samples are [floor(W / 4), -1] and [floor(3*W / 4), -1]. The coordinates of the two left samples are [-1, floor(H / 4)] and [-1, floor(3*H / 4)]. As shown in Figure 11A the selected samples are painted with a solid color (e.g. gray or black). Figure 11A An example is shown when both the above and left neighboring samples are available.

[0195] Subsequently, the 4 samples are sorted according to the luma sample intensity and divided into 2 groups. The two larger samples and the two smaller samples are averaged separately. The cross-component prediction model is derived with the 2 averaged points. Alternatively, the maximum and minimum of the four samples are used to derive the LM parameters.

[0196] 2. If the above block is available, while the left block is not available, select 4 chroma samples from the above block when W>2, and 2 chroma samples when W=2.

[0197] The coordinates of the four selected above samples are [W / 8, -1], [W / 8+W / 4, -1], [W / 8+2*W / 4, -1] and [W / 8+3*W / 4, -1]. As shown in Figure 11B the selected samples are painted with a solid color (e.g. gray or black). Figure 11B An example is shown when only the above neighboring sample is available and the right top is not available.

[0198] 3. If the left block is available, while the above block is not available, select 4 chroma samples from the left block when H>2, and 2 chroma samples when H=2.

[0199] The coordinates of the four selected left samples are [-1, H / 8], [-1, H / 8+H / 4], [-1, H / 8+2*H / 4, -1] and [-1, H / 8+3*H / 4].

[0200] 4. If both the left and above blocks are not available, use the default prediction. Wherein a is equal to 0, and β is equal to 1 « (BitDepth-1), where BitDepth represents the bit depth of the chroma samples.

[0201] 5. If the current mode is LM-T mode, 4 chroma samples are selected from the above block when W' > 2, and 2 chroma samples are selected when W' = 2. W' is the available number of above neighboring samples, which can be 2*W.

[0202] The coordinates of the four selected above samples are [W' / 8, -1], [W' / 8 + W' / 4, -1], [W' / 8 + 2*W' / 4, -1] and [W' / 8 + 3*W' / 4, -1].

[0203] 6. If the current mode is LM-L mode, 4 chroma samples are selected from the left block when H' > 2, and 2 chroma samples are selected when H' = 2. H' is the available number of left neighboring samples, which can be 2*H.

[0204] The coordinates of the four selected left samples are [-1, H' / 8], [-1, H' / 8 + H' / 4], [-1, H' / 8 + 2*H' / 4, -1] and [-1, H' / 8 + 3*H' / 4].

[0205] JVET-L0191 proposes to replace the LMS algorithm with linear model parameters a and b by a straight line equation, the so-called two-point method. The two smaller values of the four are averaged, denoted as A; and the two larger values (the remaining two) of the four are averaged, denoted as B. Figure 12 A and B are depicted in the middle.

[0206] where the linear model parameters a and b are obtained according to the following equations:

[0207]

[0208] b = y A - a * x A (12)

[0209] The division to derive a is avoided and replaced by a multiplication and a shift as follows:

[0210] - If above or left neighboring block is available, the following applies:

[0211] a = 0;

[0212] iShift = 16

[0213] shift = (InternalBitDepth > 8)? InternalBitDepth - 9 : 0;

[0214] add = shift? 1 << (shift - 1) : 0;

[0215] diff = (max luma - min luma + add) » shift;

[0216] if (diff > 0)

[0217] {

[0218] div = ((MaxChroma - min chroma) * g_aiLMDivTableLow[diff - 1] + 32768) » 16;

[0219] a = (((MaxChroma - min chroma) * g_aiLMDivTableHigh[diff - 1] + div + add) » shift);

[0220] }

[0221] b = min chroma - ((a * min luma) » is hift);

[0222] - Otherwise the following applies:

[0223] a = 0; iShift = 0; b = 1 « (BitDepth - 1) C - 1)

[0224] where S is set equal to iShift, a is set equal to a, and b is set equal to b; g_aiLMDivTableLow and g_aiLMDivTableHigh are two tables each having 512 entries. Each entry stores a 16-bit integer.

[0225] For deriving the chroma prediction values, for the current VTM implementation the multiplication is replaced by integer operations as follows:

[0226]

[0227] The prediction values are further clipped to the allowed range of chroma values.

[0228] 2.3.6.5 Chroma prediction generation process

[0229] The following applies for all three supported LM modes:

[0230] The prediction samples predSamples[x][y] (with x = 0..nTbW-1, y = 0..nTbH-1) of a chroma block are derived as follows:

[0231] predSamples[x][y] = Clip1C(((pDsY[x][y] * a) » k) + b) (14)

[0233] Clip1 C (x) = Clip3(0, (1 « BitDepth C )-1, x) (15)

[0234] where (a, b), k (set to S) are two linear model parameters derived from the CCLM mode selected for the chroma block from the subblock 0 or 0 or 0 according to the following:

[0235] More specifically, the downsampled co-located luma samples pDsY[x][y], where x = 0..nTbW - 1, y = 0..nTbH - 1, are derived as follows, where either the (1, 2, 1; 1, 2, 1) downsampling filter or the (1, 1) downsampling filter is used for the left top position:

[0236] - pDsY[x][y], where x = 1..nTbW - 1, y = 0..nTbH - 1, are derived as follows:

[0237]

[0238] - If availL is equal to TRUE, pDsY[0][y], where y = 0..nTbH - 1, are derived as follows:

[0239]

[0240] - Otherwise, pDsY[0][y], where y = 0..nTbH - 1, are derived as follows:

[0241] pDsY[0][y] = (pY[0][2*y] + pY[0][2*y+1] + 1) » 1 (18)

[0242] In the above example, pY indicates the co-located luma reconstructed samples before deblocking filtering.

[0243] 2.3.6.6 Syntax design of chroma intra prediction modes

[0244] 7.3.9.5 Coding unit syntax

[0245]

[0246]

[0247] Table 20 - Specification of IntraPredModeC[xCb][yCb] depending on cclm_mode_flag, cclm_mode_idx, intra_chroma_pred_mode and lumaIntraPredMode

[0248]

[0249] 2.4 Two-step cross-component prediction mode (TSCPM) in AVS3

[0250] This section gives an example of the two-step cross-component prediction mode (TSCPM) in AVS3. TSCPM is done by the following steps:

[0251] 1) Obtain a linear model from the neighboring reconstructed samples

[0252] 2) Apply the linear model to the original reconstructed luma block to obtain an internal prediction block.

[0253] 3) The internal prediction block is down-sampled to generate the final chroma prediction block.

[0254] Figure 13 The basic procedure of the chroma prediction block generation process is depicted. The left square represents the original reconstructed luma samples at (x,y) of the co-located luma block at (x,y). By simply applying a linear model with parameters (a, b) to each luma sample, a temporary chroma prediction block is generated. Thereafter, the temporary chroma prediction block is further down-sampled to generate the final chroma prediction block. L

[0255] The linear model derivation process and the down-sampling process are described in the following subsections.

[0256] 2.4.1 Derivation of the linear model

[0257] In one embodiment, 4 or 2 samples can be selected and the average of the two larger values and the two smaller values is utilized to compute the parameters.

[0258] Selection of neighboring samples

[0259] First, the ratio r of the width and height of the chroma coded block is computed according to Equation 19. Then, based on the availability of the above row and left column, four or two samples are selected.

[0260]

[0261] ​More specifically, if both the above and left neighboring reference samples are available, the four samples located at [0, -1], [width - max(l, r), -1], [-1, 0], [-1, height - max(l, r)] are selected. When only the above neighboring reference sample is available, the four samples located at [0, -1], [width / 4, -1], [2width / 4, -1], [3width / 4, -1] are used. For the case where only the left reference sample is accessible, [-1, 0], [-1, height / 4], [-1, 2height / 4], [-1, 3height / 4] are adopted. Figure 14 An example of the location of the four neighboring samples is shown. The selected samples are colored yellow.

[0262] Subsequently, the 4 samples are sorted according to the luma sample intensity and divided into 2 groups. The two larger samples and the two smaller samples are averaged separately. The cross-component prediction model is derived with the 2 averaged points. In one example, similar to 0 can be used to derive a, b and shift, where the average of the two larger selected sample values is (MaxLuma, MaxChroma) and the average of the two smaller selected sample values is (MinLuma, MinChroma).

[0263] If only the above block of the current chroma block with width 2 or the left block of the current chroma block with height 2 is available, [0, -1] and [1, -1] of the above line or [-1, 0], [-1, 1] of the left line are selected. The chroma prediction model is derived according to the luma and chroma values of the 2 selected samples. In one example, similar to 0 can be used to derive a, b and shift.

[0264] If neither the left nor the above block is available, the default prediction is used. Where a is equal to 0 and b is equal to 1 « (BitDepth - 1), where BitDepth represents the bit depth of the chroma samples.

[0265] 2.4.2 Two-step derivation process for chroma prediction block

[0266] The temporary chroma prediction block is generated with equation 21, where P' c (x, y) represents the temporary prediction block. a and b are the model parameters. R L (x, y) is the reconstructed luma sample.

[0267] P' (x, y) = a x R c (x, y) + b (12) L (x, y) (13)

[0268] Similar to the normal intra prediction process, clipping operation is applied to P' c(x, y) to ensure it is within [0, 1 « (BitDepth - 1)].

[0269] A six-tap filter (e.g., [1 2 1; 1 2 1]) is introduced for the downsampling process of the temporary chroma prediction block, as shown in Equation 4

[0270] P c = (2 x P' c (2x,2y) + 2 x P' c (2x,2y+1) + P' c (2x-1,2y) + P' c (2x+1,2y) + P' c (2x-1,2y+1) + P' c (2x+1,2y-1) + offset0) » 3 (14)

[0271] In addition, for the chroma samples located in the leftmost column, [1 1] if changed to apply the downsampling filter.

[0272] P c = (P' c (2x,2y) + P' c (2x+1,2y) + offset1) » 1

[0273] These two variables offset0 and offset1 are integer values. In some examples, the variables offset0 and offset1 can be set to 4 and 1, respectively. In some examples, offset0 and offset1 can be set to 0.

[0274] 2.4.3 Other TSCPM modes

[0275] In addition to the TSCPM mode described in the above subsection (denoted as TSCPM-LT), two additional TSCPM modes are introduced, denoted as TSCPM-L and TSCPM-A, where only the left or top neighboring samples are utilized.

[0276] 2.4.4 Syntax design

[0277] Based on the AVS3 specification, a flag is used to signal whether the chroma intra prediction mode is TSCPM. This flag (as the second bin) is coded immediately after the DM mode usage indication (the first bin). The following table lists the detailed bin string for each chroma mode.

[0278] Table 0-4: Coded signaling of TSCPM using chroma intra modes in TAVS3.

[0279]

[0280] 3 Problem

[0281] The design of cross-component prediction methods (including CCLM, TSCPM) utilizes the luma information to predict the chroma color components (e.g., Cb or Cr). Note that for the second chroma color component (e.g., Cr) to be coded, the other two color components (e.g., luma and Cb) are already available. How to utilize this information needs further study.

[0282] 4 Technical Solution

[0283] To solve the above problem, a method of predicting from multiple cross components (PMC) is proposed. In PMC, the prediction signal of a first color component C0 can be derived using the reconstructed representative samples of the corresponding blocks of the second and / or third color components denoted by C1 and C2. In yet another example, the prediction signal of C0 can also depend on the neighboring (e.g., adjacent or non-adjacent) samples of C1. In yet another example, the prediction signal of C0 can further depend on the neighboring (e.g., adjacent or non-adjacent) samples of the reconstructed samples of C0.

[0284] The following detailed technologies should be considered as examples to explain the general concepts. These technologies should not be interpreted in a narrow way. Furthermore, these technologies can be combined in any way.

[0285] In the following description, the term “cross-component prediction (CCP)” can represent any variant of the coding method that uses the information of the second color component to derive the reconstructed / predicted signal of the first color component.

[0286] 1. The coding / decoding process (e.g., prediction signal derivation process) of a C0 block coded by PMC can depend on the reconstructed samples and / or predicted samples with representative samples of C1 color component and / or C2 color component corresponding to the current C0 sample.

[0287] a. In one example, a linear function can be applied to the representative samples with C1 and / or C2 color component and / or the neighboring samples (including adjacent or non-adjacent) of the current C0 block.

[0288] b. In one example, a non-linear function can be applied to the representative samples with C1 and / or C2 color component and / or the neighboring samples (including adjacent or non-adjacent) of the current C0 block.

[0289] c. In one example, the final prediction value of one sample in the C0 block denoted by FPred c0 is derived by using the following equation:

[0290] FPred c0= X x TPred c0 + Y x (Rec c2 - FPred c2 ) + Z (4-1)

[0291] where TPred c0 denotes the temporary prediction value of a sample using existing prediction modes (e.g., intra / inter / IBC prediction modes), Rec c2 and FPred c2 denote the reconstructed and final prediction values of the representative C2 sample.

[0292] d. In one example, the final prediction value of a sample in the C0 block, denoted by FPred c0 , is derived using the following equation:

[0293] FPred c0 = X x (a c0 * Rec c1 + b c0 ) + Y x (Rec c2 - (a c2 * Rec c1 + b c2 ) + Z (4-2)

[0294] where Rec c1 and Rec c2 denote the reconstructed values of the representative C1 and C2 samples, respectively.

[0295] e. In one example, the final prediction value of a sample in the C0 block, denoted by FPred c0 , is derived by using the following equation:

[0296] FPred c0 = (X x a c0 - Y x a c2 ) * Rec c1 + (X x b c0 - Y x b c2 ) + Y x Rec c2 + Z (4-3)

[0297] f. In one example, for a current C0 block with size equal to K’ x L’, two temporary blocks of C0 and C2 (with size equal to K x L) and the corresponding C1 block (with size equal to K x L) can be first derived according to the linear model parameters (X x a c0 , X x b c0 ) and (Y x a c2 , Y x b c2 ), respectively. The temporary blocks can be further down-sampled to K’ x L’ with or without clipping.

[0298] i. In one example, two temporary blocks are derived using the linear model parameters applied to the corresponding C1 block, similarly to the CCLM / TSCPM process.

[0299] g. In one example, for a current C0 block of size equal to K' x L', one temporary block of size equal to K x L' can be derived from the representative C1 block of size equal to K x L and the linear model parameters (X x a c0 - Y x a c2 , X x b c0 - Y x b c2 ).

[0300] i. Alternatively, in addition, the final prediction can be generated by adding or subtracting co-located samples in the temporary block (with or without being down-sampled to Y x Rec c2 ). c2

[0301] h. In one example, for a current C0 block of size equal to K' x L', one can first derive a temporary C1 block from the C1 block of size equal to K x L, e.g. using a down-sampling filter. The linear model parameters (X x a c0 , X x b c0 ) and (Y x a c2 , Y x b c2 ) can be applied to the temporary C1 block, and then either add co-located samples in the temporary block to Y x Rec c2 after the linear model parameters are applied, or subtract co-located samples in the temporary block from Y x Rec c2 after the linear model parameters are applied.

[0302] i. In the above examples, the variables X, Y are two variables that can represent weighting factors, and Z is an offset value; a c0 , a c2 are two variables applied to the representative C1 samples; b c0 , b c2 are offset values.

[0303] i. In one example, X or Y or Z is equal to 1.

[0304] ii. In one example, X or Y or Z is equal to 0.

[0305] iii. In one example, X is equal to 1, Y is equal to -1, and Z is equal to 0.

[0306] iv. In one example, X or Y or Z is equal to 2 K or -2 K ​where K is an integer value, such as a value in the range [-M, N], where M and N are not less than 0.

[0307] v. The variables used in the above equations can be predefined or signaled in the bitstream.

[0308] 1) Alternatively, the variables used in the above equations can be derived on the fly.

[0309] vi. For all samples within a video unit (e.g., a coding block / prediction block / transform block), one or more variables used in the above equations can be the same.

[0310] 1) Optionally, multiple sets of variables used in the above equations can be derived or signaled.

[0311] 2) Alternatively, a first sample in the video unit can select a first set of variable values; and a second sample in the video unit can select a second set of variable values, where at least one variable value in the first set and the second set is different.

[0312] j. In the above examples, Ci (i is 0 to 2) can be defined as follows:

[0313] i. In one example, C0 is the Cb; C1 is Y, and C2 is the Cr color component.

[0314] ii. In one example, C0 is the Cr; C1 is Y, and C2 is the Cb color component.

[0315] iii. In one example, C0 is the luma color component (Y in YCbCr format; G in RGB format), and C1 and C2 are the remaining two color components.

[0316] k. In one example, the representative samples can be obtained by downsampling.

[0317] l. In the above examples, Rec c2 may be the corresponding C2 sample.

[0318] m. In the above examples, the final prediction value can be further clipped to a specific range.

[0319] 2. How to select and / or how many representative samples of C1 and / or C2 are used to predict a C0 sample can be determined on the fly.

[0320] a. In one example, how to select the representative samples of C1 and / or C2 can be based on the location of the current C0 sample and / or the color format.

[0321] i. Taking the 4:2:0 color format as an example, the representative C1 / C2 samples can be the samples around the C1 / C2 sample corresponding to the sample.

[0322] a) Assuming the chroma sample to be predicted is located at (X c ,Y c ), which can be equal to (X,Y), L representative luma reconstructed samples can be defined as:

[0323] 1) For example, two representative luma reconstructed samples are defined as the samples located at (2X,2Y),(2X,2Y+1).

[0324] 2) For example, two representative luma reconstructed samples are defined as the samples: (2X,2Y),(2X+1,2Y).

[0325] 3) For example, Figure 15A six representative luma reconstructed samples are depicted in FIG. 1. Figure 15A- Figure 15B shows an example of the selection of the PMC representative C1 samples.

[0326] 4) For example, Figure 15B eight representative luma reconstructed samples are depicted in FIG. 2.

[0327] ii. In one example, the representative C2 sample can have the same coordinator as the current C0 sample.

[0328] b. In one example, the representative samples can be defined as those reconstructed samples before applying the in-loop filtering methods (e.g. Deblocking Filter / SAO / ALF / CCALF).

[0329] c. In one example, the representative samples can be defined as a function of multiple reconstructed samples before applying the in-loop filtering methods (e.g. Deblocking Filter / SAO / ALF / CCALF).

[0330] i. In one example, the function can be defined as a down-sampling filtering process.

[0331] ii. In one example, the function can be defined as a linear function (e.g. weighted average) or a non-linear function.

[0332] 3. The linear model parameters can be applied to the representative C1 samples.

[0333] a. In one example, (α c0 ,β c0 ) are the linear model parameters derived for the current sample / current block.

[0334] i. In one example, they can be derived using the neighboring samples of the current block C0 and the neighboring samples of the C1 block.

[0335] b. In one example, (a c2 , b c2 ) are linear model parameters derived for a C2 block representing a C2 sample / covering a C2 sample.

[0336] i. In one example, they can be derived using neighboring samples of a C2 block and neighboring samples of a C1 block.

[0337] c. Linear model parameters can be derived in the same way as used in VVC / JEM, or in the same way as those used in TSCPM, or in the way described in PCT / CN2018 / 114158, PCT / CN2018 / 118799, PCT / CN2018 / 119709, PCT / CN2018 / 125412, PCT / CN2019 / 070002, PCT / CN2019 / 075874, PCT / CN2019 / 075993, PCT / CN2019 / 076195, PCT / CN2019 / 079396, PCT / CN2019 / 079431, PCT / CN2019 / 079769,

[0338] These patents are hereby incorporated by reference in their entirety.

[0339] i. Alternatively, linear model parameters can be derived from neighboring reconstructed C1 samples without downsampling.

[0340] ii. Alternatively, linear model parameters can be derived from neighboring reconstructed C0 / C2 samples by upsampling.

[0341] iii. Alternatively, in addition, linear model parameters can be first clipped to a range before being used in CCP (TSCPM or CCLM) mode.

[0342] 4. Multiple PMC modes can be allowed to have different variable values / different linear model parameter derivation methods and / or different downsampling / upsampling methods and / or different locations of reconstructed / downsampled reconstructed neighboring samples for linear model derivation.

[0343] a. In one example, one mode is defined as can only utilize neighboring samples from above row and / or directly above row.

[0344] b. In one example, one mode is defined as can only utilize neighboring samples from left column and / or below left column.

[0345] c. In one example, one mode is defined as can derive multiple linear models (e.g., multiple sets of linear models) and apply them to one block.

[0346] i. In one example, the current luma reconstructed block and / or the neighboring reconstructed samples can be divided into M (M>1) categories. Different categories can utilize different linear models.

[0347] d. In one example, a mode is defined as a down-sampling filter is defined as a sub-sampling filter. Suppose the color sample to be predicted is located at (x,y), L representative luma reconstructed samples are defined as the samples located at (2*x-1,2*y), (2*x-1,2*y+1), (2*x,2*y), (2*x,2*y+1), (2*x+1,2*y) and (2*x+1,2*y+1).

[0348] i. In one example, K samples closest to the location (a,b) can be used. The variables (a,b) can depend on the color format. In one example, for 4:2:0 color format, a=2*x and b=2*y.

[0349] ii. In one example, the predicted samples of a chroma block can only depend on K samples (K is an integer value) out of the L representative luma reconstructed samples.

[0350] iii. In one example, the predicted samples of a chroma block can only depend on the sample located at (2*x,2*y).

[0351] iv. In one example, the predicted samples of a chroma block can only depend on the sample located at (2*x+1,2*y).

[0352] v. In one example, the predicted samples of a chroma block can only depend on the sample located at (2*x+1,2*y+1).

[0353] vi. In one example, the predicted samples of a chroma block can only depend on the sample located at (2*x,2*y+1).

[0354] vii. In one example, the predicted samples of a chroma block can only depend on the samples located at (2*x,2*y) and (2*x,2*y+1).

[0355] 5. When PMC is enabled for a video unit of a C0 color component (e.g., for a Cr block), the residual information of the video unit can be further signaled.

[0356] a. Alternatively, the signaling of the residual information of the video unit can be omitted, e.g., only zero coefficients are available.

[0357] b. Alternatively, a flag (e.g., a block flag (CBF) for coding of a C0 color component) can still be signaled to indicate whether there is a non-zero coefficient in the video unit.

[0358] i. Or, the CBF for the Co color component is not signaled, and in one example, the CBF is inferred to be equal to 1.

[0359] c. Or, in addition, the signaling of the flag indicating whether there is a non-zero coefficient in the corresponding C2 block (e.g., coded block flag (CBF) for the C2 color component) can always be skipped.

[0360] i. Or, in addition, the CBF for the C2 color component is inferred to be equal to 1.

[0361] ii. Or, in addition, whether and / or how the CBF for the C2 block is signaled can depend on the use of PMC and / or which PMC mode.

[0362] iii. Or, in addition, whether and / or how the CBF for the Co block is signaled can depend on the use of PMC and / or which PMC mode.

[0363] d. Or, in addition, the signaling of the flag indicating whether there is a non-zero coefficient in the corresponding Cl block (e.g., coded block flag (CBF) for the Cl color component) can always be skipped.

[0364] i. Or, in addition, the CBF for the Cl color component is inferred to be equal to 1.

[0365] ii. Or, in addition, whether and / or how the CBF for the Cl block is signaled can depend on the use of PMC and / or which PMC mode.

[0366] iii. Or, in addition, whether and / or how the CBF for the Co block is signaled can depend on the use of PMC and / or which PMC mode.

[0367] Signaling related to PMC

[0368] 6. The PMC mode can be considered as some additional prediction mode.

[0369] a. Whether the indication of the PMC mode is signaled can depend on the coding mode of the current block.

[0370] i. In one example, the indication is signaled only when the current block is coded with one or more specific modes.

[0371] b. Whether the indication of the PMC mode is signaled can depend on the color format.

[0372] i. For example, if the color format is 4:0:0, the indication is not signaled.

[0373] c. In one example, a bin / flag indicating the use of the PMC mode of C0 can be signaled / parsed according to the CBF flag and / or the prediction mode of C1 and / or C2.

[0374] i. In one example, the PMC mode can be signaled when the CBF flag of C1 and / or C2 is 1 or 0, and / or the prediction mode of C1 and / or C2 is one of the CCP (e.g., TSCPM / CCLM) modes.

[0375] ii. In one example, the PMC mode can be inferred to be 0 if the CBF flag of C1 and / or C2 is 0 and / or the prediction mode of C1 and / or C2 is not one of the CCP (e.g., TSCPM / CCLM) modes.

[0376] d. In one example, in addition to the existing intra prediction modes, an indication to enable one of the multiple PMC modes can be first signaled / parsed.

[0377] i. Alternatively, in addition, when one of the multiple PMC modes is enabled for a block, an index of the multiple PMC modes can be further signaled.

[0378] ii. In one example, a first bin can be coded to indicate the use of the DM mode, followed by a second bin coded to indicate the use of the CCP (e.g., TSCPM / CCLM), and a third bin coded to indicate the use of the PMC mode.

[0379] a) Optionally, a second bin can be coded to indicate the use of the PMC, and a third bin can be coded to indicate the use of the CCP (e.g., TSCPM / CCLM) mode.

[0380] b) Optionally, a first bin can be coded to indicate the use of the PMC mode, followed by a bin coded to indicate the use of the DM and / or CCP (e.g., TSCPM / CCLM) mode.

[0381] e. In one example, the PMC mode can be considered as an additional variation of the cross-component prediction method, such as part of a set of CCP (e.g., CCLM / TSCPM) modes.

[0382] i. Alternatively, whether to signal / pars the PMC mode can depend on the use of the CCP mode.

[0383] a) In one example, if a CCP mode is enabled for a block (e.g., cclm_mode_flag in VVC, the second bin of the chroma intra prediction mode in AVS3), an index can be further signaled to indicate which of the multiple CCP modes is applied to the block.

[0384] 1) Alternatively, for those available CCP methods, it can be further classified into multiple categories, such as TSCPM / CCLM / PMC. The indication of the category index can be further signaled.

[0385] [1] In one example, the indication of the category index can be coded first, if needed, followed by the index relative to the category.

[0386] [2] In one example, the indication of the category index can be coded after the index relative to the category, if needed.

[0387] [3] In one example, the first index relative to the first category (e.g., the indication of TSCPM) and the second index relative to the second category can be coded with the same or different context.

[0388] f. In one example, the order of signaling the DM / CCP / PMC modes (e.g., DM before or after PMC) can depend on the mode information of the coding of the spatial block.

[0389] i. In one example, if the neighboring block is coded with the PMC mode, the indication of the PMC mode can be signaled before the indication of other CCP / DM modes.

[0390] ii. Alternatively, if the neighboring block is coded with the DM mode, the indication of the DM mode can be signaled before the indication of the CCP mode.

[0391] iii. Optionally, if the neighboring block is coded with a non-PMC mode (e.g., DM mode or other chroma intra prediction mode not equal to PMC), the indication of the DM mode can be signaled before the indication of the PMC mode.

[0392] g. Alternatively, the PMC mode is considered as a new intra prediction mode in addition to the existing modes.

[0393] i. In one example, different PMC modes can be assigned with different mode indices and coded with a binary bin string.

[0394] h. In one example, the indication of the usage of the PMC mode (e.g., flag / bin) can be bypass coded, e.g., without any context.

[0395] i. Alternatively, the indication of the usage of the PMC mode (e.g., flag / bin) can be context coded, e.g., with one or more contexts.

[0396] a) In one example, the mode information (e.g., equal to PMC or equal to CCP) of the neighboring block and / or the availability of the neighboring block can be used to derive the context.

[0397] b) In one example, the context can be derived according to the block dimension (e.g., width and / or height) of the current block.

[0398] i. In one example, with three PMC modes enabled to handle a video unit (e.g., video / picture / slice / tile / slice / subpicture), the following coding method can be utilized with an indication of the usage of one mode. Denote the three PCM modes as PMC_Mode0, PMC_Mode1, PMC_Mode2, where PMC_Mode0 indicates the PMC mode using both left and above neighboring samples to derive the linear model parameters; PMC_Mode1 and PMC_Mode2 indicate the PMC modes using only left and only above neighboring samples to derive the linear model parameters, respectively.

[0399] i. Some examples are listed in Table 4-1, Table 4-2, Table 4-3, Table 4-4, Table 4-5, Table 4-6, Table 4-7 to describe the corresponding bin string for different chroma intra prediction modes. The differences compared to the design before the introduction of PMC are highlighted in bold italic text. Note that the TSCPM listed in these tables can be replaced by other CCP methods, and the bin order / mode index can also be swapped.

[0400] Signaling related to differences of Cross Component Prediction (CCP) method

[0401] 7. Whether to signal / parse the indication of the CCP method (e.g., LM-T, LM-L, TSCPM-T, TSCPM-L, PMC-T, PMC-L) can depend on the availability of the neighboring samples (e.g., adjacent or not adjacent).

[0402] a. In one example, the indication of the CCP method (e.g., LM-T, TSCPM-T, PMC-T) that relies on the above neighboring sample can not be signaled if the above neighboring sample is not available.

[0403] b. In one example, the indication of the CCP method (e.g., LM-L, TSCPM-L, PMC-L) that relies on the left neighboring sample can not be signaled if the left neighboring sample is not available.

[0404] c. In one example, if neither the left nor the above neighboring samples are available, the indication of the CCP method relying on neighboring samples (e.g., LM-T, LM-L, TSCPM-T, TSCPM-L, PMC-T, PMC-L, LM-LT, TSCPM-LT, PMC-LT, other variations of CCLM / TSCPM / PMC) can not be signaled.

[0405] d. In one example, if only the neighboring samples located on one side (either the left or the above of the current block) are available, the indication of the CCP method relying on neighboring samples on both sides (e.g., LM-LT, TSCPM-LT, PMC-LT) can not be signaled.

[0406] e. In one example, if either the left or the above neighboring samples are not available, the indication of the CCP method relying on neighboring samples (e.g., LM-T, LM-L, TSCPM-T, TSCPM-L, PMC-T, PMC-L, CCLM, TSCPM, PMC) can not be signaled.

[0407] f. Alternatively, in addition, when the indication is not signaled, the coding method is inferred to be disabled.

[0408] 8. The indication of whether and / or how to use the above methods can be signaled in a video processing unit (e.g., in a sequence / video / picture / slice / tile / subpicture / CTU row / CTU / VPDU / CU / PU / TU / CU / PU / subblock).

[0409] a. Alternatively, in addition, the indication of whether and / or how to use the above methods can be signaled in a SPS / VPS / PPS / picture header / slice header / tile group header / group of CTUs / CTU / other kind of video data unit.

[0410] 9. Whether and / or how to use the above methods can depend on decoded information, such as the block dimension, the position of the block relative to the video processing unit (e.g., relative to the slice), the slice / picture type, the partition type (e.g., dual tree or single tree), etc.

[0411] a. In one example, for blocks (e.g., chroma blocks) with a number of samples greater than (or equal to) M (e.g., M = 4096, 1024), such methods are not allowed.

[0412] b. In one example, for blocks (e.g., chroma blocks) with a number of samples less than (or equal to) M (e.g., M = 4, 8, 16), such methods are not allowed.

[0413] c. In one example, for blocks (e.g., chroma blocks) with width and / or height greater than (or equal to) M (e.g., M = 64, 32), this method is not allowed.

[0414] d. In one example, for blocks (e.g., chroma blocks) with width and / or height less than (or equal to) M (e.g., M = 2, 4), this method is not allowed.

[0415] e. When the above methods are forbidden, an indication of skipping the use of these methods can be signaled.

[0416] f. Alternatively, the bitstream is confirmed to follow the rule of disabling this method when certain conditions (e.g., depending on block dimensions) are met.

[0417] In the above examples, if the neighboring block is not in the current picture / slice / tile / patch / tile group / subpicture / other video processing unit that includes the current sample, the neighboring block is not available. Thus, the term “cross-component prediction (CCP)” can refer to any cross-component prediction, such as TSCPM, CCLM, and PMC.

[0418] 10. If the CCP mode is disabled (e.g., tscpm_enable_flag = 0), the syntax element (e.g., enhance_tscpm_enable_flag) indicating the enablement of the enhanced TSCPM or enhanced CCLM (e.g., TSCPM_L, TSCPM_T, LM_T, LM_L) should be implicitly inferred to be 0 without signaling / parsing.

[0419] 11. If the enhanced CCP (e.g., enhanced TSCPM mode or enhanced CCLM) is disabled (e.g., enhance_tscpm_enable_flag = 0), the following can apply:

[0420] a. The flag / bin (index 2 in Table 5-1) indicating the type of TSCPM (e.g., TSCPM_LT or enhanced TSCPM) should be removed.

[0421] b. The flag / bin (index 3 in Table 5-1) differentiating TSCPM-L and TSCPM-T should also be excluded.

[0422] 12. If the intra block copy (IBC) mode is disabled (ibc_enable_flag = 0), the flag / bin indicating the adaptive BV precision (ABVR) (abvr_enable_flag) should be implicitly inferred to be 0 without signaling / parsing.

[0423] 13. In case left and / or above neighboring reference samples are not available, linear model parameters a and b of an enhanced CCP (e.g., TSCPM_L, TSCPM_T / PMC_L, PMC_T / LM_L, LM_T) can be set to default values.

[0424] c. The default value of a can be 0.

[0425] d. The default value of b can be 0.

[0426] e. The default value of b can be 1 « (bitDepth - 1), where bitDepth is the bit depth of the samples (corresponding to luma or chroma samples).

[0427] f. In one example, linear model parameters a and b of an enhanced CCP (e.g., TSCPM_T, PMC_T, LM_T) using above neighboring samples can be set to default values if above neighboring reference samples are not available.

[0428] g. In one example, linear model parameters a and b of an enhanced CCP (e.g., TSCPM_T, PMC_T, LM_T) using left neighboring samples can be set to default values if left neighboring reference samples are not available.

[0429] 14. In case left and / or above neighboring reference samples are not available, linear model parameters a and b of an enhanced CCP (e.g., TSCPM_L, TSCPM_T / PMC_L, PMC_T / LM_L, LM_T) can be derived by padding neighboring reference samples.

[0430] h. In one example, linear model parameters a and b of an enhanced CCP (e.g., TSCPM_T, PMC_T, LM_T) using above neighboring samples can be derived by padding above neighboring reference samples if above neighboring reference samples are not available.

[0431] i. In one example, linear model parameters a and b of an enhanced CCP (e.g., TSCPM_T, PMC_T, LM_T) using left neighboring samples can be derived by padding left neighboring reference samples if left neighboring reference samples are not available.

[0432] 15. In case left and / or above neighboring reference samples are not available, at least one enhanced CCP mode (e.g., TSCPM_L, TSCPM_T / PMC_L, PMC_T / LM_L, LM_T) can be excluded from a conformant bitstream.

[0433] j.In one example, if the above neighboring reference sample is not available, the enhanced CCP modes (e.g., TSCPM_T, PMC_T, LM_T) that only use the above neighboring sample should not be applied in the conformance bitstream.

[0434] k.In one example, if the left neighboring reference sample is not available, the enhanced CCP modes (e.g., TSCPM_T, PMC_T, LM_T) that only use the left neighboring sample should not be applied in the conformance bitstream.

[0435] Table 4-1: bin string for each chroma intra prediction mode (PMC is considered as one of the TSCPM modes, and one bin (e.g., 4th bin) is further signaled to indicate whether it belongs to TSCPM or PMC).

[0436]

[0437]

[0438] Table 4-2: bin string for each chroma intra prediction mode (PMC is considered as one of the TSCPM modes, and one bin string (e.g., 4th bin) is further signaled to indicate whether it belongs to TSCPM or PMC).

[0439]

[0440]

[0441] Table 4-3: bin string for each chroma intra prediction mode (PMC is considered as a new category (indicated by 1st bin), before the indication of TSCPM (indicated by 2nd bin)).

[0442]

[0443] Table 4-4: bin string for each chroma intra prediction mode (PMC is considered as a new category (indicated by 0th bin)).

[0444]

[0445]

[0446] Table 4-5: bin string for each chroma intra prediction mode (the indication of PMC mode is signaled after the TSCPM modes, indicated by the 2nd bin).

[0447]

[0448] Table 4-6: Bin string for each chroma intra prediction mode (each PMC mode is considered as a new chroma intra prediction mode. All PMC modes are added after the existing modes).

[0449]

[0450]

[0451] Table 4-7: Bin string for each chroma intra prediction mode (mode index is signaled after CBF flag).

[0452]

[0453]

[0454] 5. Embodiment

[0455] An example of the decoding process is shown below. Prediction from multiple cross- component (PMC) modes is proposed. The prediction of component C0 is derived from the reconstructed samples of other color components C1 and C2.

[0456] 5.1 Embodiment #1

[0457] In this embodiment, C0 is the Cr color component, C1 is the luma color component, and C2 is the Cb color component.

[0458] The prediction of Cr component is derived from the linear combination of Y and Cb reconstructed samples. Three multiple cross-component (e.g., PMC LT, PMC L, and PMC T) modes are proposed. As shown in Table 5-1, the PMC modes are represented with a flag after TSCPM. Meanwhile, the indication of explicit PMC mode index (e.g., PMC LT, PMC L, and PMC T) is aligned with the representation of TSCPM mode index (e.g., TSCPM LT, TSCPM L, and TSCPM T). In addition, if the corresponding Cb / Cr block is coded with a PMC mode, the coded block flag (cbf) of Cb block is inferred as 1. For the case where the left and / or above neighboring reference samples are not available, only TSCPM LT / PMC LT is used. In this case, bin2 and bin3 indicating the utilization of enhanced TSCPM / PMC (e.g., TSCPM L, TSCPM T / PMC L, PMC T) and the index can be removed.

[0459] Table 0-1: Bin string for each chroma intra prediction mode (PMC is considered as one of the TSCPM modes, and one bin (e.g., 4th bin) is further signaled to indicate whether it belongs to TSCPM or PMC).

[0460]

[0461]

[0462] The overall process is shown in Figure 16 First, the inter-channel linear model parameters (a0, b0) for Y-Cb and (a1, b1) for Y-Cr are obtained from the neighboring reconstructed samples. The linear model parameters derivation methods for PMC LT, PMC L and PMC T are the same as TSCPM LT, TSCPM L and TSCPM T in AVS3, respectively.

[0463] Second, the internal block IPred with the same dimension as the coded block of luma is generated by the following linear model

[0464] IPred = (a0 + a1) Rec Y + (b0 + b1), (15)

[0465] where Rec Y is the reconstructed samples of Y component.

[0466] Third, the down-sampled block IPred' is generated from IPred, which uses the same down-sampling filter set as in TSCPM.

[0467] Fourth, the final prediction FPred Cr of Cr can be expressed as follows:

[0468] FPred Cr = Clip(0, (1 « bitDepth) - 1, IPred' - Rec Cb ). (16)

[0469] where Rec Cb is the reconstructed samples of Cb component.

[0470] Alternatively, the following can apply:

[0471] A method from multiple cross-component prediction (PMC) is proposed, where the prediction of Cr component is derived by a linear combination of Y and Cb reconstructed samples. First, an internal block IPred is derived according to a linear model applied to the corresponding luma block, and the final prediction of Cr is set to the difference between the down-sampled temporary block and the reconstructed Cb block. More specifically, the final prediction of Cr block is defined as follows:

[0472] IPred = A Rec Y + B, (24)

[0473] FPred Cr = IPred' - RecCb . (25)

[0474] where Rec Y denotes the reconstruction of the Y component and IPred is an internal block having the same dimension of the luma coding block. IPred' denotes the down-sampled IPred which employs the same down-sampling filter set as in TSCPM.

[0475] To keep the complexity as low as possible and to restore the logic of TSCPM, the linear parameters (A, B) are set to (a0+ a1, b0+ b1), where (a0, b0) and (a1, b1) are two sets of linear model parameters derived for Cb and Cr respectively, such as using the TSCPM / CCLM approach.

[0476] 5.2 Embodiment #2

[0477] If the TSCPM mode is disabled (tscpm_enable_flag = 0), the flag / bin (enhance_tscpm_enable_flag) indicating the enablement of the enhanced TSCPM (e.g., TSCPM_L, TSCPM_T) is implicitly inferred to be 0 without the need for signaling / parsing.

[0478] 5.3 Embodiment #3

[0479] If the enhanced TSCPM mode is disabled (e.g., enhance_tscpm_enable_flag = 0), the flag / bin (index 2 in Table 5-1) indicating the TSCPM type (e.g., TSCPM_LT or enhanced TSCPM) is removed. The flag / bin (index 3 in Table 5-1) used to differentiate between TSCPM-L and TSCPM-T is also excluded.

[0480] 5.4 Embodiment #4

[0481] If the intra block copy (IBC) mode is disabled (ibc_enable_flag = 0), the flag / bin (abvr_enable_flag) is implicitly inferred to be 0 without the need for signaling / parsing.

[0482] 5.5 Embodiment #5

[0483] Multiple cross-component PMC predictions

[0484] 7.1.2.2 Sequence header

[0485] Table 14 Sequence header

[0486]

[0487]

[0488] 7.2.2.2 Sequence header

[0489]

[0490]

[0491] 7.1.6 Coded unit definition

[0492] Table 33 Coded unit definition

[0493]

[0494]

[0495] 8.3.3.2.1 Derivation of the binarization model

[0496] If ctxldxlnclw is not present, the binarization model ctx is equal to ctxArray[ ctxldx ], where ctxArray is an array that stores the binarization models and ctxldx is an index value of the array; otherwise, the binarization models ctx and ctxw are equal to ctxArray[ ctxldx ] and ctxArray[ ctxldxw ], where ctxArray is an array that stores the binarization models and ctxldx and ctxldxw are index values of the array. ctxldx for each bin of a syntax element is equal to ctxldxlncl plus ctxldxstart, and ctxldxw is equal to ctxldxlnclw plus ctxldxstart. ctxldxstart for each syntax element and ctxldxlncl for each bin are as shown in Table 53, and ctxldxlnclw is as shown in 8.3.3.2.17.

[0497] Table 53 ctxldxstart and ctxldxlncl for a syntax element

[0498] Syntax elements ctxldxinc ctxldxstart ctx's lcu_qp_delta See 8.3.3.2.2 0 4 sao_merge_type_index binldx + SaoMergeLeftAvai + SaoMergeUpAvai - 1 4 3 sao_mode 0 7 1 sao_interval_offset_abs 0 8 1 alf_lcu_enable_flag 0 9 1 qt_split_flag See 8.3.3.2.3 10 4 bet_split_flag See 8.3.3.2.4 14 9 bet_split_type_flag See 8.3.3.2.5 23 3 bet_split_dir_flag See 8.3.3.2.6 26 5 root_cu_mode 0 31 1 intra_chroma_pred_mode See 8.3.3.2.7 32 4 intra_chroma_enhanced_mode See 8.3.3.2.8 36 1 Intra_chroma_pmc_flag ]]> ​ See 8.3.3.2.8 37 1

[0499] 8.3.3.2.9 Determination of ctxldxlncl for intra_chroma_pmc_mode

[0500]

[0501]

[0502] 9.5.6.2 Normal intra prediction mode

[0503] a) if the current prediction block E is a chroma block:

[0504] 1) if the luma prediction mode IntraLumaPredMode of the prediction block with the value of 0 of the PredBlockOrder in the current coding unit is equal to 0, 2, 12 or 24, isRedundant is equal to 1; otherwise, isRedundant is equal to 0.

[0505] 2) if the value of tscpm_enable_flag is equal to '1' and the value of intra_chroma_pred_mode is equal to 1,

[0506] 3) determine the initial value according to intra_chroma_enhanced_mode:

[0507] • if the value of intra_chroma_enhanced_mode is equal to 0, IntraChromaPredMode is equal to 5;

[0508] • otherwise, if the value of intra_chroma_enhanced_mode is equal to 1, IntraChromaPredMode is equal to 6;

[0509] • otherwise, if the value of intra_chroma_enhanced_mode is equal to 2, IntraChromaPredMode is equal to 7;

[0510]

[0511] 4) otherwise,

[0512] if the value of tscpm_enable_flag is equal to '1' and the value of intra_chroma_pred_mode is not equal to 0, the value of intra_chroma_pred_mode is reduced by 1;

[0513] • if isRedundant is equal to 0, IntraChromaPredMode is equal to intra_chroma_pred_mode otherwise, in order, the following operations are performed:

[0514] o If IntraLumaPredMode is equal to 0, then predIntraChromaPredMode is equal to 1; if IntraLumaPredMode is equal to 2, then predIntraChromaPredMode is equal to 4; if IntraLumaPredMode is equal to 12, then predIntraChromaPredMode is equal to 3; if IntraLumaPredMode is equal to 24, then predIntraChromaPredMode is equal to 2.

[0515] o If the value of intra_chroma_pred_mode is equal to 0, then IntraChromaPredMode is equal to 0; otherwise, if the value of intra_chroma_pred_mode is less than predIntraChromaPredMode, then IntraChromaPredMode is equal to intra_chroma_pred_mode; otherwise, IntraChromaPredMode is equal to intra_chroma_pred_mode plus 1.

[0516] 9.7.5. Normal intra prediction for chroma prediction blocks

[0517] Determines the general intra prediction method for chroma blocks according to IntraChromaPredMode.

[0518]

[0519] The size of the current prediction block is M×N, I represents the luminance sample array of the compensated samples of the image where the current block is located, r[i], c[j] (i=0~2M, j=0~2N) are the luminance reference samples, and row[i], col[i] (i=0~2M, j=0~2N) are the chrominance reference samples.

[0520] If row[i] (i=1 to M) and col[i] (i=1 to N) are both "unavailable", then α is equal to 0, β is equal to 1<<(BitDepth-1), and the value of iShift is equal to 0; otherwise, iShift is equal to 16, and α and β are derived according to the following steps:

[0521] If IntraChromaPredMode is equal to 5, 8 :

[0522] 1) The first step is to get (x[i], y[i]), where i = 0 to 3:

[0523] (1) if both row[i] (i = 1 ~ M) and col[j] (j = 1 ~ N) are "available":

[0524] set posA0 equal to 0, and posL0 equal to 0; if M is greater than or equal to N, then posA1 equal to M - [M / N], and posL1 equal to N - 1; otherwise, posA1 equal to M - 1, and posL1 equal to N - [N / M]

[0525] (x[0], y[0]) = ((r[2xposA0] + 2xr[2xposA0 + l] + r[2xposA0 + 2] + 2) » 2, row[posA0 + 1])

[0526] (x[l], y[l]) = ((r[2xposAl] + 2xr[2xposAl + l] + r[2xposAl + 2] + 2) » 2, row[posAl + 1])

[0527] (x[2], y[2]) = ((c[2xposL0 + l] + c[2xposL0 + 2] + l) » 1), col[posL0 + 1])

[0528] (x[3], y[3]) = ((c[2xposLl + l] + c[2xposLl + 2] + l) » 1), col[posLl + 1])

[0529] (2) if row[i] is "available", and col[j] is "unavailable" (i = 1 ~ M, j = 1 ~ N):

[0530] set posA0 equal to 0, posAl equal to [M / 4], posA2 equal to [2xM / 4], and posA3 equal to [3xM / 4]

[0531] (x[0], y[0]) = ((3xr[2xposA0 + l] + r[2xposA0 + 2] + 2) » 2, row[posA0 + 1])

[0532] (x[l], y[l]) = ((r[2xposAl] + 2xr[2xposAl + l] + r[2xposAl + 2] + 2) » 2, row[posAl + 1])

[0533] (x[2], y[2]) = ((r[2xposA2] + 2xr[2xposA2 + l] + r[2xposA2 + 2] + 2) » 2, row[posA2 + 1])

[0534] (x[3],y[3]) = ((r[2xposA3 + 1] + 2x r[2xposA3 + 2] + r[2xposA3 + 3] + 2) » 2, row[posA3 + 1])

[0535] (3) If row[i] is "unavailable" and col[j] is "available" (i = 1 ~ M, j = 1 ~ N):

[0536] Let posLo equal 0, posLi equal [N / 4], posL2 equal [2xN / 4], and posL3 equal [3xN / 4]

[0537] (x[0],y[0]) = ((c[2xposLo + 1] + c[2xposLo + 2] + 1) » 1), col[posLo + 1])

[0538] (x[1],y[1]) = ((c[2xposLi + 1] + c[2xposLi + 2] + 1) » 1), col[posLi + 1])

[0539] (x[2],y[2]) = ((c[2xposL2 + 1] + c[2xposL2 + 2] + 1) » 1), col[posL2 + 1])

[0540] (x[3],y[3]) = ((c[2xposL3 + 1] + c[2xposL3 + 2] + 1) » 1), col[posL3 + 1])

[0541] If IntraChromaPredMode is equal to 6,

[0542] (1) Count the number of reconstructed pixels on the upper side and set it as Len:

[0543] Let posAo equal 0, posAi equal [Len / 4], posA2 equal [2xLen / 4], and posA3 equal [3xLen / 4]

[0544] (x[0],y[0]) = ((3xr[2xposAo + 1] + r[2xposAo + 2] + 2) » 2, row[posAo + 1])

[0545] (x[1],y[1]) = ((r[2xposAi + 1] + 2xr[2xposAi + 2] + r[2xposAi + 3] + 2) » 2, row[posAi + 1])

[0546] (x[2],y[2]) = ((r[2*posA2]+2*r[2*posA2+1]+r[2*posA2+2]+2)>>2, row[posA2+1])

[0547] (x[3],y[3]) = ((r[2*posA3]+2*r[2*posA3+1]+r[2*posA3+2]+2)>>2, row[posA3+1])

[0548] If IntraChromaPredMode is equal to 7,

[0549] (1) Calculate the number of available pixels on the left and record it as Len:

[0550] Let posLo equal 0, posLi equal [Len / 4], posL2 equal [2*Len / 4], and posL3 equal [3*Len / 4]

[0551] (x[0],y[0]) = ((c[2*posLo+1]+c[2*posLo+2]+1)>>1), col[posLo+1])

[0552] (x[1],y[1]) = ((c[2*posLi+1]+c[2*posLi+2]+1)>>1), col[posLi+1])

[0553] (x[2],y[2]) = ((c[2*posL2+1]+c[2*posL2+2]+1)>>1), col[posL2+1])

[0554] (x[3],y[3]) = ((c[2*posL3+1]+c[2*posL3+2]+1)>>1), col[posL3+1])

[0555] 2) The second step is to calculate the linear model coefficients a, b:

[0556] (1) Let minIdx[2] = {0, 2}, maxIdx[2] = {1, 3}:

[0557] If x[minIdx[0]] is greater than x[minIdx[1]], exchange the values of minIdx[0] and minIdx[1];

[0558] If x[maxIdx[0]] is greater than x[maxIdx[1]], exchange the values of maxIdx[0] and maxIdx[1];

[0559] If x[minIdx[0]] is greater than x[maxIdx[l]], swap the values of minIdx[0] and maxIdx[0] and the values of minIdx[l] and maxIdx[l];

[0560] If x[minIdx[l]] is greater than x[maxIdx[0]], swap the values of minIdx[l] and maxIdx[0];

[0561] (xMin, yMin) = ((x[minIdx[0]] + x[minIdx[l]] + 1) » 1, (y[minIdx[0]] + y[minIdx[l]] + 1) » 1)

[0562] (xMax, yMax) = ((x[maxIdx[0]] + x[maxIdx[l]] + 1) » 1, (y[maxIdx[0]] + y[maxIdx[l]] + 1) » 1)

[0563] diffX = xMax - xMin

[0564] diffY = yMax - yMin

[0565] If diffX is greater than 64:

[0566] a = (diffY TscpmTable[((diffX + add) » shift) - 1] + add) » shift

[0567] b = yMin - ((a xMin) » iShift)

[0568] where shift = (BitDepth > 8)? BitDepth - 6 : 2, add = 1 « (shift - 1)

[0569] Else if diffX is greater than 0:

[0570] a = (diffY TscpmTable[diffX - 1])

[0571] b = yMin - ((a xMin) » iShift)

[0572] Else:

[0573] a = 0

[0574] b = yMin

[0575] The values of TscpmTable are shown in Table 86

[0576] 2) Third step, calculate chroma prediction value:

[0577] a) If IntraChromaPredMode is equal to 5, 6 or 7, or if IntraChromaPredMode is equal to and the current Cb component, the value of the prediction is obtained as follows:

[0578] predChroma[x][y] = Clip1(((a x I[x][y]) » iShift) + β) (x = 0 ~ 2M-1, y = 0 ~ 2N-1)

[0579] predMatrix[0][y] = (predChroma[0][2y] + predChroma[0][2y+1] + 1) » 1, (y = 0 ~ N-1)

[0580] predMatrix[x][y] = (predChroma[2x-1][2y] + 2 x prevChroma[2x][2y] + predChroma[2x+1][2y] + predChroma[2x-1][2y+1] + 2 x predChroma[2x][2y+1] + predChroma[2x+1][2y+1] + 4) » 3, (x = 1 ~ M-1, y = 0 ~ N-1)

[0581] Otherwise,

[0582] predChroma[x][y] = (((a_cb + a_cr) x I[x][y]) » iShift) + β_cb + β_cr (x = 0 ~ 2M-1, y = 0 ~ 2N-1)

[0583] predMatrixTemp[0][y] = (predChroma[0][2y] + predChroma[0][2y+1] + 1) » 1, (y = 0 ~ N-1)

[0584] predMatrixTemp[x][y] = (predChroma[2x-1][2y] + 2 x prevChroma[2x][2y] + predChroma[2x+1][2y] + predChroma[2x-1][2y+1] + 2 x predChroma[2x][2y+1] + predChroma[2x+1][2y+1] + 4) » 3, (x = 1 ~ M-1, y = 0 ~ N-1)

[0585] predMatrix[x][y] = predMatrixTemp[x][y] - Cb[x][y], (x = 0 ~ M-1, y = 0 ~ N-1)

[0586] Example implementations of the disclosed technology

[0587] Figure 17 A flowchart showing a method 1700 of example video processing is shown. At operation 1702, a prediction value for a sample of a first component of a video block of a video is determined using representative samples of a second component of the video and / or a third component of the video. At operation 1704, a conversion is performed between the video block and a bitstream representation of the video block according to the determined prediction value of the first component.

[0588] In some embodiments, the determination is based on a reconstructed value of the representative samples or a prediction value of the representative samples. In some embodiments, the representative samples are obtained during the conversion. In some embodiments, the prediction value of the first component of one sample of the video block is obtained using an equation. In some embodiments, the equation comprises: FPred c0 = X x TPred c0 + Y x (Rec c2 - FPred c2 ) + Z, where FPred c0 is the prediction value of the one sample, X and Y are weighting factors, Z is an offset value, TPred c0 is a temporary prediction value of the one sample using a prediction mode, and Rec c2 and FPred c2 represent reconstructed values and final prediction values of the representative samples of the third component, respectively.

[0589] In some embodiments, the equation comprises: FPred c0 = X x (a c0 * Rec c1 + b c0 ) + Y x (Rec c2 - (a c2 * Rec c1 + b c2 ) + Z, where FPred c0 is the prediction value of the one sample, X and Y are weighting factors, Z is an offset value, a c0 , a c2 are two variables applied to the representative samples of the second component, b c0 and b c2 are offset values, Rec c1 and Rec c2 represent reconstructed values of the representative samples of the second component and the third component, respectively.

[0590] In some embodiments, the equation comprises: FPred c0 = (X x a c0 - Y x a c2 ) * Rec c1 + (X x b c0 - Y x b c2 ) + Y x Rec c2 + Z, where FPred c0 is a prediction value of a sample, X and Y are weighting factors, Z is an offset value, a c0 , a c2 are two variables applied to a representative sample of the second component, b c0 , and b c2 are offset values, Rec c1 , and Rec c2 represent reconstructed values of the representative sample of the second component and of the third component, respectively

[0591] In some embodiments, X or Y or Z is equal to 1, or X or Y or Z is equal to 0, or X is equal to 1, Y is equal to -1 and Z is equal to 0, or X or Y or Z is equal to 2K or -2K, where K is an integer value in the range [-M, N], where M and N are greater than or equal to 0. In some embodiments, the equation comprises predefined, or signaled in the bitstream, or derived variables.

[0592] In some embodiments, Figure 17 the method of deriving two temporary video blocks for the first component and the third component from the two sets of linear model parameters corresponding to the second video block associated with the second component, wherein the two temporary video blocks and the second video block have a first width and a first height, the first width and the first height being different from the second width and the second height of the video block. In some embodiments, the two temporary blocks are derived using the linear model parameters applied to the second video block associated with the second component.

[0593] In some embodiments, Figure 17 the method of deriving one temporary video block from the linear model parameters corresponding to the second video block associated with the second component, wherein the one temporary video block and the second video block have a first width and a first height, the first width and the first height being different from the second width and the second height of the video block. In some embodiments, Figure 17 the method of deriving one temporary video block from the linear model parameters corresponding to the second video block associated with the second component, wherein the one temporary video block and the second video block have a first width and a first height, the first width and the first height being different from the second width and the second height of the video block. In some embodiments,

[0594] In some embodiments, the first component is a blue chroma component, the second component is a luma component, and the third component is a red chroma component, or the first component is a red chroma component, the second component is a luma component, and the third component is a blue chroma component, or the first component is a luma component or a blue component, and the second and third components are the remaining components.

[0595] In some embodiments, the selection of representative samples and the number of representative samples for the second component and / or the third component are determined on the fly. In some embodiments, the selection of representative samples is based on the position and / or color format of the current sample of the first component. In some embodiments, the color format includes a 4:2:0 color format, and the representative samples of the second component and / or the third component surround the samples of the second component and / or the third component.

[0596] In some embodiments, the representative samples include reconstructed samples before the loop filtering method. In some embodiments, the representative samples are a function of the reconstructed samples before the loop filtering method. In some embodiments, the linear model parameters are applied to the representative samples of the second component. In some embodiments, the linear model parameters include αc0 and βc0 derived for the samples or video blocks, αc0 and βc0. c0 is the variable applied to the representative sample of the second component, and β c0 is the offset value.

[0597] In some embodiments, α is derived using neighboring samples of the video block and neighboring samples of a second video block associated with the second component. c0 and β c0 In some embodiments, the linear model parameters include αc2 and βc2 derived for a representative sample of the third component or a third video block associated with the third component, α c2 is the variable applied to the representative sample of the third component, and β c2 In some embodiments, α is derived using adjacent samples of the second video block and adjacent samples of the third video block associated with the second component. c2 and β c2 .

[0598] In some embodiments, the linear model parameters are derived using the Universal Video Codec (VVC), the Joint Exploration Model (JEM), or the Two-Step Cross-Component Prediction Mode (TSCPM). In some embodiments, the equation includes variables, and the predicted value is determined using one of multiple predictions from multiple cross-component (PMC) modes, the predictions including: different variable values ​​or different derivation methods for the linear model parameters, and / or different downsampling or upsampling methods, and / or different locations of reconstructed or downsampled neighboring samples used to derive the linear model parameters.

[0599] In some embodiments, residual information of the video block is further signaled when the prediction from the multiple cross-component (PMC) modes is enabled for the video block of the first component. In some embodiments, residual information of the video block is omitted when the prediction from the multiple cross-component (PMC) modes is enabled for the video block of the first component. In some embodiments, a flag indicating presence of non-zero coefficients in the video block of the first component is signaled. In some embodiments, an indication of the prediction from the multiple cross-component (PMC) modes for the video block is signaled based on a coding mode of the video block. In some embodiments, an indication of the prediction from the multiple cross-component (PMC) modes for the video block is signaled based on a color format.

[0600] In some embodiments, a bin or flag indicating utilization of the prediction from the multiple cross-component (PMC) modes from the first component is signaled or parsed according to a coded block flag (CBF) and / or a prediction mode of the second component and / or the third component. In some embodiments, a prediction value is determined using one of a plurality of predictions from the multiple cross-component (PMC) modes, and an indication of enabling one of the PMC modes is signaled or parsed in addition to existing intra prediction modes. In some embodiments, an index to the plurality of PMC modes is signaled.

[0601] In some embodiments, a prediction value is determined using one of a plurality of predictions from the multiple cross-component (PMC) modes, and an indication of enabling one of the PMC modes is signaled or parsed in addition to existing intra prediction modes. In some embodiments, a prediction value is determined using one of a plurality of predictions from the multiple cross-component (PMC) modes, and the plurality of PMC modes are additional variations of a cross-component prediction (CCP) mode or method. In some embodiments, a determination of one of the PMC modes is signaled or parsed depending on a usage of one of the CCP modes.

[0602] In some embodiments, a prediction value is determined using a cross-component prediction (CCP) method, and the CCP method is signaled based on availability of neighboring samples adjacent to samples of the first component. In some embodiments, an indication is not signaled for the CCP method that relies on a neighboring sample located above a sample of the first component and is not available. In some embodiments, an indication is not signaled for the CCP method that relies on a neighboring sample located to the left of a sample of the first component and is not available. In some embodiments, a prediction value is determined using a cross-component prediction (CCP) method or a prediction from multiple cross-components (PMC) mode, wherein the CCP method or the PMC mode is indicated via signaling in a video processing unit.

[0603] In some embodiments, Figure 17The method of can further include performing the determining based on decoded information associated with the video block, the prediction value being determined using a cross component prediction (CCP) method or a prediction from a plurality of cross component (PMC) modes. In some embodiments, the determining disallows the use of the CCP or the PMC to determine the prediction value in response to the video block having a number of samples greater than or equal to an integer M, where M is 4096 or 1024. In some embodiments, the determining disallows the use of the CCP or the PMC to determine the prediction value in response to the video block having a number of samples less than or equal to an integer M, where M is 4, 8, or 16.

[0604] Figure 18 is a block diagram of a video processing device 1800. The device 1800 can be used to implement one or more methods described herein. The device 1800 can be embodied in a smartphone, tablet computer, computer, Internet of Things (IoT) receiver, etc. The device 1800 can include one or more processors 1802, one or more memories 1804, and video processing hardware 1806. The processor(s) 1802 can be configured to implement one or more methods described in the present document, including but not limited to method 15. The memory (memories) 1804 can be used for storing data and code used during the operation of the present techniques, including but not limited to code used to implement the methods described herein. The video processing hardware 1806 can be used to implement in hardware circuitry some of the techniques described in the present document. In some embodiments, video coding methods can be implemented using a device implemented in hardware platforms, as described with reference to Figure 18

[0605] Figure 19 is a block diagram showing an example video processing system 1900 in which various techniques disclosed herein can be implemented. Various implementations can include some or all of the components of the system 1900. The system 1900 can include an input 1902 for receiving video content. The video content can be received in a raw or uncompressed format, e.g., 8 or 10-bit multi-component pixel values, or can be in a compressed or encoded format. The input 1902 can represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces, such as Ethernet, passive optical network (PON), etc., and wireless interfaces, such as Wi-Fi or cellular interfaces.

[0606] ​The system 1900 can include a coding component 1704, which can implement various coding or encoding methods described in this document. The coding component 1704 can reduce the average bitrate of a video from the input 1902 to the output of the coding component 1704 to produce a coded representation of the video. Thus, coding techniques are sometimes referred to as video compression or video transcoding techniques. The output of the coding component 1704 can be stored, or transmitted via a communication connected, as represented by component 1706. The component 1908 can use the stored or transmitted bitstream (or coded) representation of the video received at the input 1902 to generate pixel values or displayable video sent to a display interface 1910. The process of generating user-viewable video from a bitstream representation is sometimes referred to as video decompression. Moreover, while certain video processing operations are referred to as “coding” operations or tools, it should be understood that coding tools or operations are used at an encoder, and corresponding decoding tools or operations inverse to the results of the coding would be performed by a decoder.

[0607] Examples of peripheral bus interfaces or display interfaces can include Universal Serial Bus (USB) or High Definition Multimedia Interface (HDMI) or DisplayPort, among others. Examples of storage interfaces include SATA (Serial Advanced Technology Attachment), PCI, IDE interfaces, among others. The techniques described in this document can be implemented in various electronic devices such as mobile phones, laptops, smart phones, or other devices capable of performing digital data processing and / or video display.

[0608] Figure 20 is a block diagram illustrating an example video coding system 100 that can utilize the techniques of this disclosure.

[0609] As shown in Figure 20 , the video coding system 100 can include a source device 110 and a destination device 120. The source device 110 generates encoded video data, which can be referred to as a video encoding device. The destination device 120 can decode the encoded video data generated by the source device 110, which can be referred to as a video decoding device.

[0610] The source device 110 can include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.

[0611] Video source 112 can include a source such as a video capture device, an interface to receive video data from a video content provider, and / or a computer graphics system for generating video data, or a combination of such sources. The video data can comprise one or more pictures. Video encoder 114 encodes video data from video source 112 to generate a bitstream. The bitstream can include a sequence of bits that form a coded representation of the video data. The bitstream can include coded pictures and associated data. A coded picture is a coded representation of a picture. The associated data can include sequence parameter sets, picture parameter sets, and other syntax structures. I / O interface 116 can include a modulator / demodulator (modem) and / or a transmitter. The encoded video data can be transmitted directly to destination device 120 via I / O interface 116 and network 130a. The encoded video data can also be stored onto a storage medium / server 130b for access by destination device 120.

[0612] Destination device 120 can include an I / O interface 126, a video decoder 124, and a display device 122.

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

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

[0615] Figure 21 is a block diagram showing an example of a video encoder 200, which can be Figure 20 the video encoder 114 in the system 100 shown.

[0616] Video encoder 200 can be configured to perform any or all of the techniques of this disclosure. In Figure 21 In an example, video encoder 200 includes a plurality of functional components. The techniques described in this disclosure can be shared by the various components of video encoder 200. In some examples, a processor can be configured to perform any or all of the techniques described in this disclosure.

[0617] The functional components of video encoder 200 can include partition unit 201, prediction unit 202 which can include mode select unit 203, motion estimation unit 204, motion compensation unit 205, and intra-prediction unit 206, residual generation unit 207, transform unit 208, quantization unit 209, inverse quantization unit 210, inverse transform unit 211, reconstruction unit 212, buffer 213, and entropy encoding unit 214.

[0618] In other examples, video encoder 200 can include more, less, or different functional components. In an example, prediction unit 202 can include an intra-block copy (IBC) unit. The IBC unit can perform prediction in IBC mode, in which at least one reference picture is the picture in which the current video block is located.

[0619] Furthermore, some components, such as motion estimation unit 204 and motion compensation unit 205, can be highly integrated, but are represented separately for illustrative purposes. Figure 5 In examples, are represented separately.

[0620] Partition unit 201 can partition a picture into one or more video blocks. Video encoder 200 and video decoder 300 can support various video block sizes.

[0621] Mode select unit 203 can select one of the coding modes (intra or inter), for example, based on the error results, and provide the resulting intra or inter coded block to residual generation unit 207 to generate residual block data and to reconstruction unit 212 to reconstruct the coded block for use as a reference picture. In some examples, mode select unit 203 can select a combination of intra and inter prediction (CIIP) mode, in which the prediction is based on both an inter prediction signal and an intra prediction signal. In the case of inter prediction, mode select unit 203 can also select a precision of the motion vectors for the block (e.g., sub-pixel or integer pixel precision).

[0622] To perform inter prediction for a 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 to the current video block. Motion compensation unit 205 can determine a predicted video block for the current video block based on the motion information and decoded samples of pictures from buffer 213 other than the picture in which the current video block is associated.

[0623] Motion estimation unit 204 and motion compensation unit 205 can perform different operations for a current video block, for example, depending on whether the current video block is in an I slice, a P slice, or a B slice.

[0624] In some examples, the motion estimation unit 204 can perform uni-prediction for the current video block, and the motion estimation unit 204 can search for a reference video block for the current video block in a reference picture in List 0 or List 1. The motion estimation unit 204 can then generate a reference index indicating the reference picture in List 0 or List 1 that includes the reference video block and a motion vector indicating a spatial displacement between the current video block and the reference video block. The motion estimation unit 204 can output the reference index, the prediction direction indicator, and the motion vector as the motion information for the current video block. The motion compensation unit 205 can generate a predicted video block for the current block based on the reference video block indicated by the motion information for the current video block.

[0625] In other examples, the motion estimation unit 204 can perform bi-prediction for the current video block, the motion estimation unit 204 can search for a reference video block for the current video block in a reference picture in List 0, and can also search for another reference video block for the current video block in a reference picture in List 1. The motion estimation unit 204 can then generate a reference index indicating the reference pictures in List 0 and List 1 that include the reference video blocks and a motion vector indicating a spatial displacement between the reference video blocks and the current video block. The motion estimation unit 204 can output the reference index and the motion vector for the current video block as the motion information for the current video block. The 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 for the current video block.

[0626] In some examples, the motion estimation unit 204 can output a set of all motion information for a decoder's decoding process.

[0627] In some examples, the motion estimation unit 204 can not output a set of all motion information for the current video. Instead, the motion estimation unit 204 can signal the motion information for the current video block with reference to the motion information of another video block. For example, the motion estimation unit 204 can determine that the motion information for the current video block is sufficiently similar to the motion information of a neighboring video block.

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

[0629] In another example, the motion estimation unit 204 can identify another video block and a motion vector difference (MVD) in a syntax structure associated with the current video block. The motion vector difference indicates a difference between the motion vector of the current video block and the motion vector of the indicated video block. The video decoder 300 can use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.

[0630] As described above, video encoder 200 can predictively signal motion vectors. Two examples of prediction signaling techniques that can be implemented by video encoder 200 include advanced motion vector prediction (AMVP) and merge mode signaling.

[0631] 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, intra prediction unit 206 can generate prediction data for the current video block based on decoded samples of other video blocks in the same picture. The prediction data for the current video block can include a predicted video block and various syntax elements.

[0632] Residual generation unit 207 can generate residual data for the current video block by subtracting (e.g., indicated by a negative sign) the predicted video block for the current video block from the current video block. The residual data for the current video block can include a residual video block that corresponds to different sample components of samples in the current video block.

[0633] In other examples, the current video block can not have residual data for the current video block, such as in skip mode, and residual generation unit 207 can not perform the subtraction operation.

[0634] 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 block associated with the current video block.

[0635] After transform processing unit 208 generates a transform coefficient video block associated with the current video block, 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.

[0636] Inverse quantization unit 210 and inverse transform unit 211 can apply inverse quantization and inverse transform, respectively, to a transform coefficient video block to reconstruct a residual video block from the transform coefficient video block. Reconstruction unit 212 can add the reconstructed residual video block to corresponding samples from one or more predicted video blocks generated by prediction unit 202 to produce a reconstructed video block associated with the current block for storage in buffer 213.

[0637] After reconstruction unit 212 reconstructs a video block, in-loop filtering operations can be performed to reduce video block artifacts in the video block.

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

[0639] Figure 22 is a block diagram illustrating an example of a video decoder 300 that can be Figure 20 the system 100 shown.

[0640] The video decoder 300 can be configured to perform any or all of the techniques of this disclosure. In Figure 22 example, the video decoder 300 includes a plurality of functional components. The techniques described in this disclosure can be shared among the various components of the video decoder 300. In some examples, a processor can be configured to perform any or all of the techniques described in this disclosure.

[0641] In Figure 22 example, the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra prediction unit 303, an inverse quantization unit 304, an inverse transformation unit 305, a reconstruction unit 306, and a buffer 307. In some examples, the video decoder 300 can perform a decoding process generally reciprocal to the encoding process described with respect to the video encoder 200 (e.g., Figure 21 ).

[0642] The entropy decoding unit 301 can retrieve an encoded bitstream. The encoded bitstream can include entropy encoded video data (e.g., encoded blocks of video data). The entropy decoding unit 301 can decode the entropy coded video data, and from the entropy decoded video data, the motion compensation unit 302 can determine motion information, including motion vectors, motion vector precision, reference picture list indices, and other motion information. The motion compensation unit 302 can determine this information, for example, by performing AMVP and merge mode.

[0643] The motion compensation unit 302 can generate a motion compensated block, possibly performing interpolation based on an interpolation filter. An identifier of the interpolation filter to be used at sub-pixel precision can be included in the syntax elements.

[0644] The motion compensation unit 302 can use an interpolation filter as used by the video encoder 20 during encoding of the video block to calculate interpolated values for sub-integer pixels of the reference block. The motion compensation unit 302 can determine the interpolation filter used by the video encoder 200 from the received syntax information and use the interpolation filter to generate the prediction block.

[0645] The motion compensation unit 302 can use some of the syntax information to determine the size of the blocks used to encode frames and / or slices of the encoded video sequence, partitioning information describing how each macroblock of a picture of the encoded video sequence is partitioned, modes indicating how each partition is encoded, one or more reference frames (and reference frame lists) for each inter-coded block, and other information to decode the encoded video sequence.

[0646] The intra prediction unit 303 can use, for example, an intra prediction mode received in the bitstream to form a predicted block from spatially neighboring blocks. The inverse quantization unit 303 inverse quantizes (e.g., de-quantizes) quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 301. The inverse transform unit 303 applies an inverse transform.

[0647] The reconstruction unit 306 can add the residual block to a corresponding predicted block generated by the motion compensation unit 202 or the intra prediction unit 303 to form a decoded block. If desired, a deblocking filter can also be applied to filter the decoded block to remove blockiness artifacts. The decoded video blocks are then stored in the buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction and also produces decoded video for presentation on a display device.

[0648] Figure 23 is a flowchart representation of a video processing method 2300 in accordance with the present technology. The method includes, at operation 2310, making a first determination that a conversion between a video block of a video and a bitstream representation of the video disables a cross-component prediction (CCP) mode. The method 2300 includes, at operation 2320, based on the first determination, making a second determination of whether a first syntax element indicating usage of an enhanced two-step cross-component prediction mode (TSCPM) coding tool or an enhanced cross-component linear model (CCLM) coding tool is included in the bitstream representation. The method 2300 further includes, at operation 2330, performing the conversion based on the second determination.

[0649] In some embodiments, the first syntax element is omitted from the bitstream representation due to the CCP mode being disabled. In some embodiments, a second syntax element indicating a type of the enhanced TSCPM coding tool or the enhanced CCLM coding tool is omitted from the bitstream representation in a case where the enhanced TSCPM coding tool or the enhanced CCLM coding tool is disabled. In some embodiments, a third syntax element distinguishing different modes of the enhanced TSCPM coding tool or the enhanced CCLM coding tool is omitted from the bitstream representation in a case where the enhanced TSCPM coding tool or the enhanced CCLM coding tool is disabled.

[0650] Figure 24is a flowchart representation of a video processing method 2400 in accordance with the present technology. The method includes, at operation 2410, making a first determination of a disabling of an intra block copy (IBC) mode for a conversion between a video block of a video and a bitstream representation of the video. The method includes, at operation 2420, based on the first determination, making a second determination of whether a first syntax element indicating usage of an adaptive block vector (BV) precision coding tool is included in the bitstream representation. The method further includes, at operation 2430, performing the conversion based on the second determination. In some embodiments, the first syntax element is omitted from the bitstream representation due to the IBC mode being disabled.

[0651] Figure 25 is a flowchart representation of a video processing method 2500 in accordance with the present technology. The method includes, at operation 2510, for a conversion between a video block of a video and a bitstream representation of the video, determining that linear model parameters of an enhanced cross component prediction (CCP) coding tool are assigned default values in a case that a neighboring reference sample of the video block is located outside a current video unit in which a current sample of the video block is located. The method further includes, at operation 2520, performing the conversion based on the determining.

[0652] In some embodiments, the neighboring reference sample is located to the left or above the video block. In some embodiments, a default value for one of the linear model parameters a is 0. In some embodiments, a default value for one of the linear model parameters β is 0. In some embodiments, a default value for one of the linear model parameters β is 1 « (bitDepth - 1), where bitDepth is a bit depth of samples in the video block. In some embodiments, the neighboring reference sample includes a sample located above the video block, and the linear model parameter using the neighboring reference sample is assigned the default value. In some embodiments, the neighboring reference sample includes a sample located to the left of the video block, and the linear model parameter using the neighboring reference sample is assigned the default value.

[0653] Figure 26 is a flowchart representation of a video processing method 2600 in accordance with the present technology. The method includes, at operation 2610, for a conversion between a video block of a first component of a video and a bitstream representation of the video, determining linear model parameters of an enhanced cross component prediction (CCP) coding tool based on padding a neighboring reference sample of the video block in a case that the neighboring reference sample is located outside a current video unit in which a current sample of the video block is located. The method further includes, at operation 2620, performing the conversion based on the determining.

[0654] In some embodiments, the adjacent reference samples are located to the left or above the video block. In some embodiments, the adjacent reference samples are located above the video block, and the linear model parameters using the adjacent reference samples are derived based on the adjacent reference samples padding above. In some embodiments, the adjacent reference samples are located to the left of the video block, and the linear model parameters using the adjacent reference samples are derived based on the adjacent reference samples padding to the left.

[0655] Figure 27 27 is a flowchart representation of a video processing method 2700 according to the present technology. The method includes, at operation 2710, for converting between a video block of a video and a bitstream representation of the video, determining to omit an enhanced cross-component prediction (CCP) mode in the bitstream representation when a neighboring reference sample of the video block is located outside a current video unit in which a current sample of the video block is located. The method also includes, at operation 2720, performing the conversion based on the determination.

[0656] In some embodiments, the neighboring reference samples are located to the left or above the video block. In some embodiments, the neighboring reference samples are located above the video block, and the enhanced CCP mode that uses only the neighboring reference samples above is omitted from the bitstream representation. In some embodiments, the neighboring reference samples are located to the left of the video block, and the enhanced CCP mode that uses only the neighboring reference samples to the left is omitted from the bitstream representation.

[0657] In some embodiments, performing the conversion includes encoding the video block into a bitstream representation. In some embodiments, the conversion includes decoding the video block from the bitstream representation.

[0658] Some embodiments of the disclosed technology include making a decision or determination to enable a video processing tool or mode. In one instance, when a video processing tool or mode is enabled, the encoder will use or implement the tool or mode in the processing of the video block, but may not necessarily modify the resulting bitstream based on the use of the tool or mode. That is, when the video processing tool or mode is enabled based on the decision or determination, the conversion from the video block to the bitstream representation of the video will use the video processing tool or mode. In another example, when the video processing tool or mode is enabled, the decoder will process the bitstream knowing that the bitstream has been modified based on the video processing tool or mode. That is, the conversion from the bitstream representation of the video to the video block will be performed using the video processing tool or mode enabled based on the decision or determination.

[0659] Some embodiments of the disclosed technology include making a decision or determination to disable a video processing tool or mode. In one example, when a video processing tool or mode is disabled, an encoder will not use the tool or mode when converting a video block into a bitstream representation of the video. In another example, when a video processing tool or mode is disabled, a decoder will process a bitstream knowing that the bitstream has not been modified based on a video processing tool or mode that was enabled based on the decision or determination.

[0660] From the foregoing, it will be appreciated that specific embodiments of the presently disclosed technology have been described herein for purposes of illustration, but that various modifications can be made without deviating from the scope of the application. Accordingly, the presently disclosed technology is not limited except as by the appended claims.

[0661] Implementations of the subject matter and the functional operations described in this patent document can be implemented in various systems, digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Implementations of the subject matter described in this specification can be implemented as one or more computer program products, e.g., one or more modules of computer program instructions encoded on a tangible and non-transitory computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them. The term “data processing apparatus” or “data processing device” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.

[0662] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and are interconnected by a communication network.

[0663] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by special purpose logic circuitry, and / or by a combination of computer hardware and special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

[0664] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0665] This specification is to be regarded in an illustrative manner only, and examples are meant to be illustrative only. As used herein, the use of the term "or" is intended to mean "and / or," unless otherwise indicated by context.

[0666] While this patent document contains many details, these should not be construed as limiting the scope of any invention or of the claimed application, but as merely describing features that are particular embodiments of specific inventions. Certain features described herein in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features described herein in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub-combination. Moreover, although features can be described above as acting in certain combinations and initially claimed as such, one or more features from a claimed combination can in some cases be deleted from the combination in

[0667] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Further, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.

[0668] Only a few implementations and examples are described and other implementations, enhancements and variations can be made based on what is described and illustrated in this patent document.

Claims

1. A method of video processing, comprising: determining, for a conversion between a chroma block of a video and a bitstream of the video, to apply a first intra prediction mode to derive prediction samples of the chroma block, wherein in the first intra prediction mode, the prediction samples of the chroma block are derived based on corresponding luma samples of the chroma block and a linear model, determining, for the chroma block, a first parameter and a second parameter of the linear model, performing the conversion based on the first parameter and the second parameter, wherein in response to left and / or above neighboring reference samples of the chroma block being unavailable, the first parameter is set to a first default value and the second parameter is set to a second default value, wherein in the first intra prediction mode is a PMC_L mode, in response to a left neighboring reference sample of the chroma block being unavailable, the first parameter is set to the first default value and the second parameter is set to the second default value.

2. The method of claim 1, wherein, the first intra prediction mode is a prediction from a plurality of cross-component PMC modes, a PMC_LT mode, a two-step cross-component prediction mode TSCPM, TSCPM_LT, TSCPM_L, or TSCPM_T, and wherein in response to left and above neighboring reference samples of the chroma block being unavailable, the first parameter is set to the first default value and the second parameter is set to the second default value.

3. The method of claim 1, wherein, in the first intra prediction mode is a PMC_T mode, in response to an above neighboring reference sample of the chroma block being unavailable, the first parameter is set to the first default value and the second parameter is set to the second default value.

4. The method of claim 1, wherein, the first default value and the second default value are different.

5. The method of claim 1, wherein, The chroma block is a Cb chroma block, and the linear model includes predChroma[x][y] = Clip1(((a Cb *I[x][y]) » iShift) + b Cb ), wherein a Cb denotes the first parameter, wherein β Cb denotes the second parameter, where iShift is an integer, where x is an integer not less than 0 and smaller than 2W, and W is a width of the Cb chroma block, where y is an integer not less than 0 and smaller than 2H, and H is a height of the Cb chroma block, where I[x][y] represents a luma sample value at position [x][y], and where predChroma is used to derive the prediction samples of the chroma block.

6. The method of claim 5, wherein the first default value is equal to 0.

7. The method of claim 5, wherein the second default value is equal to 1 « (BitDepth - 1), where BitDepth represents a bit depth of a chroma sample.

8. The method of claim 5, wherein, the first intra prediction mode is applied to a Cr chroma block corresponding to the Cb chroma block, and where the prediction samples of the Cr chroma block are derived based on (((((a Cb + a Cr ) * I[x][y]) » iShift) + b Cb + b Cr ), where a Cr and b Cr denote two parameters. where the prediction samples of the Cr chroma block are derived based on (((((a Cb + a Cr ) * I[x][y]) » iShift) + b Cb + b Cr ), where a Cr and b Cr denote two 9. The method of claim 8, wherein the prediction samples of a Cr chroma block are derived as follows: predMatrixTemp[0][n] = (predChroma[0][2n] + predChroma[0][2n + 1] + 1) » 1, predMatrixTemp[m][n] = (predChroma[2m - 1][2n] + predChroma[2m][2n] + 1) » 1, 2 * predChroma[2m][2n] + predChroma[2m+1][2n] + predChroma[2m-1][2n+1] + 2 * predChroma[2m][2n+1] + predChroma[2m+1][2n+1] + 4) » 3, predMatrix[k][n] = predMatrixTemp[k][n] - Cb[k][n], where m is an integer greater than 0 and less than W, n is an integer not less than 0 and less than H, k is an integer not less than 0 and less than W, where predChroma[][] is based on ((((α Cb +α Cr )*I[x][y])>>iShift)+β Cb +β Cr ) and where predMatrix[][] represents the prediction samples of the Cr chroma block.

10. The method of claim 8, wherein, In response to left and / or above neighboring reference samples of the chroma block being unavailable, a Cr is set to the first default value, and b Cr is set to the second default value.

11. The method of claim 1, wherein, A first syntax element indicating whether the first intra prediction mode is enabled is included in the bitstream.

12. The method of claim 1, wherein, A second syntax element indicating whether TSCPM is enabled is included in the bitstream, and enhanced TSCPM is enabled only in response to the second syntax element indicating that TSCPM is enabled.

13. The method of claim 1, wherein, In a case where enhanced TSCPM is enabled, one or more flags indicating the type of TSCPM are included in the bitstream.

14. The method of claim 1, wherein, In a case where the fourth syntax element indicates that an intra block copy (IBC) mode is disabled for a video block of the video, adaptive BV precision (ABVR) is inferred to be disabled for the video block.

15. The method of claim 1, wherein, The conversion includes encoding the chroma block into the bitstream.

16. The method of claim 1, wherein, The conversion includes decoding the chroma block from the bitstream.

17. An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions thereon, wherein, The instructions, when executed by the processor, cause the processor to: determine, for a conversion between a chroma block of a video and a bitstream of the video, to apply a first intra prediction mode to derive prediction samples of the chroma block, wherein in the first intra prediction mode, the prediction samples of the chroma block are derived based on corresponding luma samples of the chroma block and a linear model, determine, for the chroma block, a first parameter and a second parameter of the linear model, perform the conversion based on the first parameter and the second parameter, wherein, in response to left and / or above neighboring reference samples of the chroma block being unavailable, the first parameter is set to a first default value and the second parameter is set to a second default value, wherein, in a case where the first intra prediction mode is a PMC_L mode, in response to a left neighboring reference sample of the chroma block being unavailable, the first parameter is set to the first default value and the second parameter is set to the second default value.

18. A non-transitory computer-readable storage medium storing instructions that cause a processor to: determine, for a conversion between a chroma block of a video and a bitstream of the video, to apply a first intra prediction mode to derive prediction samples of the chroma block, wherein in the first intra prediction mode, the prediction samples of the chroma block are derived based on corresponding luma samples of the chroma block and a linear model, determine, for the chroma block, a first parameter and a second parameter of the linear model, perform the conversion based on the first parameter and the second parameter, wherein, in response to left and / or above neighboring reference samples of the chroma block being unavailable, the first parameter is set to a first default value and the second parameter is set to a second default value, wherein, in a case where the first intra prediction mode is a PMC_L mode, in response to a left neighboring reference sample of the chroma block being unavailable, the first parameter is set to the first default value and the second parameter is set to the second default value. wherein in response to left and / or above neighboring reference samples of the chroma block being unavailable, the first parameter is set to a first default value and the second parameter is set to a second default value, wherein in the first intra prediction mode is a PMC L mode, in response to left neighboring reference samples of the chroma block being unavailable, the first parameter is set to the first default value and the second parameter is set to the second default value.

19. A method of storing a bitstream of a video, comprising: determining, for a chroma block of a video, that a first intra prediction mode is applied to derive prediction samples of the chroma block, wherein in the first intra prediction mode, the prediction samples of the chroma block are derived based on corresponding luma samples of the chroma block and a linear model, determining, for the chroma block, a first parameter and a second parameter of the linear model, generating the bitstream based on the first parameter and the second parameter, storing the bitstream into a non-transitory computer readable storage medium, wherein in response to left and / or above neighboring reference samples of the chroma block being unavailable, the first parameter is set to a first default value and the second parameter is set to a second default value, wherein in the first intra prediction mode is a PMC L mode, in response to left neighboring reference samples of the chroma block being unavailable, the first parameter is set to the first default value and the second parameter is set to the second default value.

Citation Information

Patent Citations

  • Two step cross-component prediction mode based on multiple parameter

    CN113261291A