Method and apparatus of multi-model LM with classification threshold in gradient domain for video coding systems
By employing gradient-domain classification thresholds to group neighboring samples and apply tailored CCP models, the method enhances video coding performance and prediction accuracy for chroma samples, addressing inefficiencies in existing MMLM modes.
Patent Information
- Application Number
- PCT/CN2025/085600
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-03
- Filing Date
- 2025-03-28
- Publication Date
- 2025-10-09
AI Technical Summary
Existing video coding systems face challenges in improving coding performance, particularly in handling various types of video sources and enhancing prediction accuracy for chroma samples using Multi-Model Linear Model (MMLM) modes.
The method involves using classification thresholds derived from gradient domain to classify neighboring samples into groups and apply specific Cross-Component Prediction (CCP) models to enhance chroma prediction, utilizing gradient filters and thresholds to determine the appropriate model for each group of samples.
This approach improves coding performance and prediction quality by optimizing the selection of CCP models based on gradient values, leading to more efficient video encoding and decoding processes.
Smart Images

Figure CN2025085600_09102025_PF_FP_ABST
Abstract
Description
METHOD AND APPARATUS OF MULTI-MODEL LM WITH CLASSIFICATION THRESHOLD IN GRADIENT DOMAIN FOR VIDEO CODING SYSTEMS CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present invention is a Non-Provisional Application of and claims priority to U.S. Provisional Patent Application No. 63 / 573, 621, filed on April 3, 2024. The U.S. Provisional Patent Application is hereby incorporated by reference in its entirety.FIELD OF THE INVENTION
[0002] The present invention relates to video coding. In particular, the present invention relates to schemes to improve the coding performance for video coding systems using Multi-Model Linear Model (MMLM) mode. BACKGROUND AND RELATED ART
[0003] Versatile video coding (VVC) is the latest international video encoding standard developed by the Joint Video Experts Team (JVET) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG) . The standard has been published as an ISO standard: ISO / IEC 23090-3: 2021, Information technology -Coded representation of immersive media -Part 3: Versatile video coding, published Feb. 2021. VVC is developed based on its predecessor HEVC (High Efficiency Video Coding) by adding more coding tools to improve coding efficiency and also to handle various types of video sources including 3-dimensional (3D) video signals.
[0004] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing. For Intra Prediction, the prediction data is derived based on previously coded video data in the current picture. For Inter Prediction 112, Motion Estimation (ME) is performed at the encoder side and Motion Compensation (MC) is performed based on the result of ME to provide prediction data derived from other picture (s) and motion data. Switch 114 selects Intra Prediction 110 or Inter-Prediction 112 and the selected prediction data is supplied to Adder 116 to form prediction errors, also called residues. The prediction error is then processed by Transform (T) 118 followed by Quantization (Q) 120. The transformed and quantized residues are then coded by Entropy Encoder 122 to be included in a video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packed with side information such as motion and coding modes associated with Intra prediction and Inter prediction, and other information such as parameters associated with loop filters applied to underlying image area. The side information associated with Intra Prediction 110, Inter prediction 112 and in-loop filter 130, is provided to Entropy Encoder 122 as shown in Fig. 1A. When an Inter-prediction mode is used, a reference picture or pictures have to be reconstructed at the encoder end as well. Consequently, the transformed and quantized residues are processed by Inverse Quantization (IQ) 124 and Inverse Transformation (IT) 126 to recover the residues. The residues are then added back to prediction data 136 at Reconstruction (REC) 128 to reconstruct video data. The reconstructed video data may be stored in Reference Picture Buffer 134 and used for prediction of other frames.
[0005] As shown in Fig. 1A, incoming video data undergoes a series of processing in the encoding system. The reconstructed video data from REC 128 may be subject to various impairments due to a series of processing. Accordingly, in-loop filter 130 is often applied to the reconstructed video data before the reconstructed video data are stored in the Reference Picture Buffer 134 in order to improve video quality. For example, deblocking filter (DF) , Sample Adaptive Offset (SAO) and Adaptive Loop Filter (ALF) may be used. The loop filter information may need to be incorporated in the bitstream so that a decoder can properly recover the required information. Therefore, loop filter information is also provided to Entropy Encoder 122 for incorporation into the bitstream. In Fig. 1A, Loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in the reference picture buffer 134. The system in Fig. 1A is intended to illustrate an exemplary structure of a typical video encoder. It may correspond to the High Efficiency Video Coding (HEVC) system, VP8, VP9, H. 264 or VVC.
[0006] The decoder, as shown in Fig. 1B, can use similar or portion of the same functional blocks as the encoder except for Transform 118 and Quantization 120 since the decoder only needs Inverse Quantization 124 and Inverse Transform 126. Instead of Entropy Encoder 122, the decoder uses an Entropy Decoder 140 to decode the video bitstream into quantized transform coefficients and needed coding information (e.g. ILPF information, Intra prediction information and Inter prediction information) . The Intra prediction 150 at the decoder side does not need to perform the mode search. Instead, the decoder only needs to generate Intra prediction according to Intra prediction information received from the Entropy Decoder 140. Furthermore, for Inter prediction, the decoder only needs to perform motion compensation (MC 152) according to Inter prediction information received from the Entropy Decoder 140 without the need for motion estimation.
[0007] According to VVC, an input picture is partitioned into non-overlapped square block regions referred as CTUs (Coding Tree Units) , similar to HEVC. Each CTU can be partitioned into one or multiple smaller size coding units (CUs) . The resulting CU partitions can be in square or rectangular shapes. Also, VVC divides a CTU into prediction units (PUs) as a unit to apply prediction process, such as Inter prediction, Intra prediction, etc.
[0008] In the following sections, some existed intra prediction methods are briefly reviewed.
[0009] Intra Mode Coding with 67 Intra Prediction Modes
[0010] To capture the arbitrary edge directions presented in natural video, the number of directional intra modes in VVC is extended from 33, as used in HEVC, to 65. The new directional modes not in HEVC are depicted as dotted arrows in Fig. 2, and the planar and DC modes remain the same. These denser directional intra prediction modes apply for all block sizes and for both luma and chroma intra predictions.
[0011] In VVC, several conventional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes for the non-square blocks.
[0012] In HEVC, every intra-coded block has a square shape and the length of each of its side is a power of 2. Thus, no division operations are required to generate an intra-predictor using DC mode. In VVC, blocks can have a rectangular shape that necessitates the use of a division operation per block in the general case. To avoid division operations for DC prediction, only the longer side is used to compute the average for non-square blocks.
[0013] Decoder-side Intra Mode Derivation (DIMD)
[0014] When DIMD is applied, up to five intra modes are derived from the reconstructed neighbour samples, and those five predictors are combined with the non-directional predictor (planar or block vector based predictor) with the weights derived from the histogram of gradients as described in JVET-O0449. The decision for the non-directional modes is taken according to the template cost. Specifically, the block vectors of all adjacent and non-adjacent merge candidates (coded in IntraTMP or IBC) are compared to planar prediction on the reconstructed template. The template cost (SATD) is used to select the best predictor among them.
[0015] The division operations in weight derivation are performed utilizing the same lookup table (LUT) based integerization scheme used by the CCLM. For example, the division operation in the orientation calculation: Orient=Gy / Gx is computed by the following LUT-based scheme: x = Floor (Log2 (Gx) ) normDiff = ( (Gx<< 4) >> x) &15 x += (3 + (normDiff ! = 0) ? 1 : 0) Orient = (Gy* (DivSigTable [normDiff] | 8) + (1<< (x-1) ) ) >> x. where DivSigTable
[0016] = {0, 7, 6, 5 , 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0} .
[0016] Derived intra modes are included in the primary list of intra most probable modes (MPM) , so that the DIMD process is performed before the MPM list is constructed. The primary derived intra mode of a DIMD block is stored with a block and is used for MPM list construction of the neighbouring blocks.
[0017] Intra Prediction Fusion
[0018] This intra prediction method derives predicted samples as a weighted combination of multiple predictors generated from different reference lines. In this process multiple intra predictors are generated and then fused by weighted averaging. The process of deriving the predictors to be used in the fusion process is described as follows: 1) For angular intra prediction modes including the single mode case of TIMD and DIMD, the proposed method derives intra prediction by weighting intra predictions obtained from multiple reference lines represented as pfusion=w0pline+w1pline+1, where pline is the intra prediction from the default reference line and pline+1 is the prediction from the line above the default reference line. The weights are set as w0=3 / 4 and w1=1 / 4. 2) For TIMD mode with blending, pline is used for the first mode (w0=1, w1=0) and pline+ is used for the second mode (w0=0, w1=1) . 3) For DIMD mode with blending, the number of predictors selected for a weighted average is increased from 3 to 6.
[0019] Intra prediction fusion method is applied to luma blocks when angular intra mode has non-integer slope (required reference samples interpolation) and the block size is greater than 16, it is used with MRL and not applied for ISP coded blocks. In the method studied in the sub--test a, PDPC is applied for the intra prediction mode using the closest to the current block reference line.
[0020] Multi-Model LM (MMLM)
[0021] CCLM included in VVC is extended by adding three Multi-model LM (MMLM) modes (JVET-D0110) . In each MMLM mode, the reconstructed neighbouring samples are classified into two classes using a threshold which is the average of the luma reconstructed neighbouring samples. The linear model of each class is derived using the Least-Mean-Square (LMS) method. For the CCLM mode, the LMS method is also used to derive the linear model. A slope adjustment to is applied to cross-component linear model (CCLM) and to Multi-model LM prediction. The adjustment is tilting the linear function which maps luma values to chroma values with respect to a centre point determined by the average luma value of the reference samples.
[0022] Convolutional Cross-Component Intra Prediction Model (CCCM)
[0023] In this method convolutional cross-component model (CCCM) is applied to predict chroma samples from reconstructed luma samples in a similar spirit as done by the current CCLM modes. As with CCLM, the reconstructed luma samples are down-sampled to match the lower resolution chroma grid when chroma sub-sampling is used. Similar to CCLM top, left or top and left reference samples are used as templates for model derivation.
[0024] Also, similarly to CCLM, there is an option of using a single model or multi-model variant of CCCM. The multi-model variant uses two models, one model derived for samples above the average luma reference value and another model for the rest of the samples (following the spirit of the CCLM design) . Multi-model CCCM mode can be selected for PUs which have at least 128 reference samples available.
[0025] Convolutional Filter of CCCM
[0026] The convolutional 7-tap filter consist of a 5-tap plus sign shape spatial component, a nonlinear term and a bias term. The input to the spatial 5-tap component of the filter consists of a centre (C) luma sample which is collocated with the chroma sample to be predicted and its above / north (N) , below / south (S) , left / west (W) and right / east (E) neighbours as illustrated in Fig. 3.
[0027] The nonlinear term P is represented as power of two of the centre luma sample C and scaled to the sample value range of the content: P = (C*C + midVal) >> bitDepth.
[0028] That is, for 10-bit content it is calculated as: P = (C*C + 512) >> 10.
[0029] The bias term B represents a scalar offset between the input and output (similarly to the offset term in CCLM) and is set to middle chroma value (e.g. 512 for 10-bit content) .
[0030] Output of the filter is calculated as a convolution between the filter coefficients ci and the input values and clipped to the range of valid chroma samples: predChromaVal = c0C + c1N + c2S + c3E + c4W + c5P + c6B.
[0031] Calculation of Filter Coefficients of CCCM
[0032] The filter coefficients ci are calculated by minimising MSE between predicted and reconstructed chroma samples in the reference area. Fig. 4 illustrates the reference area which consists of 2 or 6 lines of chroma samples above and left of the PU. Whether to use 6 lines or 2 lines of neighbouring samples to derive the CCCM model parameters in the single model CCCM is determined by a template cost. Similarly, for the multi-model CCCM mode, the two candidates use 6 lines neighbouring luma samples or luma samples collocated with the current chroma block to derive mean values which separate samples into two groups. The cost is derived by applying the candidate CCP (either 2 or 6 lines) on a template, calculating the sum of absolute difference (SAD) between CCP predicted samples and reconstructed samples in the template.
[0033] Reference area extends one PU width to the right and one PU height below the PU boundaries. Area is adjusted to include only available samples. The extensions to the area shown in blue are needed to support the “side samples” of the plus shaped spatial filter and are padded when in unavailable areas.
[0034] The MSE minimization is performed by calculating autocorrelation matrix for the luma input and a cross-correlation vector between the luma input and chroma output. Autocorrelation matrix is LDL decomposed and the final filter coefficients are calculated using back-substitution. The process follows roughly the calculation of the ALF filter coefficients in ECM, however LDL decomposition was chosen instead of Cholesky decomposition to avoid using square root operations.
[0035] The autocorrelation matrix is calculated using the reconstructed values of luma and chroma samples. These samples are full range (e.g. between 0 and 1023 for 10-bit content) resulting in relatively large values in the autocorrelation matrix. This requires high bit depth operations during the model parameters calculation. It is proposed to remove fixed offsets from luma and chroma samples in each PU for each model. This is driving down the magnitudes of the values used in the model creation and allows reducing the precision needed for the fixed-point arithmetic. As a result, 16-bit decimal precision is proposed to be used instead of the 22-bit precision of the original CCCM implementation.
[0036] Reference sample values just outside the top-left corner of the PU are used as the offsets (offsetLuma, offsetCb and offsetCr) for simplicity. The samples values used in both model creation and final prediction (i.e., luma and chroma in the reference area, and luma in the current PU) are reduced by these fixed values, as follows: C'= C –offsetLuma N'= N –offsetLuma S'= S –offsetLuma E'= E –offsetLuma W'= W –offsetLuma P'= nonLinear (C') B = midValue = 1 << (bitDepth -1) and the chroma value is predicted using the following equation, where offsetChroma is equal to offsetCr and offsetCb for Cr and Cb components, respectively: predChromaVal = c0C'+ c1N'+ c2S'+ c3E'+ c4W'+ c5P'+ c6B + offsetChroma.
[0037] In order to avoid any additional sample level operations, the luma offset is removed during the luma reference sample interpolation. This can be done, for example, by substituting the rounding term used in the luma reference sample interpolation with an updated offset including both the rounding term and the offsetLuma. The chroma offset can be removed by deducting the chroma offset directly from the reference chroma samples. As an alternative way, impact of the chroma offset can be removed from the cross-component vector giving identical result. In order to add the chroma offset back to the output of the convolutional prediction operation the chroma offset is added to the bias term of the convolutional model.
[0038] The process of CCCM model parameter calculation requires division operations. Division operations are not always considered implementation friendly. The division operations are replaced with multiplication (with a scale factor) and shift operation, where a scale factor and a number of shifts are calculated based on denominator similar to the method used in calculation of CCLM parameters.
[0039] Gradient Linear Model (GLM)
[0040] For YUV 4: 2: 0 colour format, a gradient linear model (GLM) method can be used to predict the chroma samples from luma sample gradients. Two modes are supported: a two-parameter GLM mode and a three-parameter GLM mode.
[0041] Compared with the CCLM, instead of down-sampled luma values, the two-parameter GLM utilizes luma sample gradients to derive the linear model. Specifically, when the two-parameter GLM is applied, the input to the CCLM process, i.e., the down-sampled luma samples L, are replaced by luma sample gradients G. The other parts of the CCLM (e.g., parameter derivation, prediction sample linear transform) are kept unchanged. C=α·G+β
[0042] In the three-parameter GLM, a chroma sample can be predicted based on both the luma sample gradients and down-sampled luma values with different parameters. The model parameters of the three-parameter GLM are derived from 6 rows and columns adjacent samples by the LDL decomposition based MSE minimization method as used in the CCCM. C=α0·G+α1·L+α2·β
[0043] For signalling, when the CCLM mode is enabled to the current CU, one flag is signalled to indicate whether GLM is enabled for both Cb and Cr components; if the GLM is enabled, another flag is signalled to indicate which of the two GLM modes is selected and one syntax element is further signalled to select one of 4 gradient filters (filters 510-540 as shown in Fig. 5) for the gradient calculation.
[0044] CCCM Signalling
[0045] Usage of the mode is signalled with a CABAC coded PU level flag. One new CABAC context was included to support this. When it comes to signalling, CCCM is considered a sub-mode of CCLM. That is, the CCCM flag is only signalled if intra prediction mode is LM_CHROMA.
[0046] CCCM Using Non-Downsampled Luma Samples (NS-CCCM)
[0047] CCCM mode with 3x2 filter using non-downsampled luma samples is used, which consists of 6-tap spatial terms, four nonlinear terms and a bias term. The 6-tap spatial terms correspond to 6 neighbouring luma samples (i.e., L0, L1, …, L5) around the chroma sample (i.e., C) to be predicted, the four non-linear terms are derived from the samples L0, L1, L2, and L3 as shown in Fig. 6. where αi is the coefficient, and β is the offset. Same to the existing CCCM design, up to 6 lines / columns of chroma samples above and left to the current CU are applied to derive the filter coefficients. The filter coefficients are derived based on the same LDL decomposition method used in CCCM. The proposed method is signalled as an additional CCCM model besides the existing one. When the CCCM is selected, one single flag is signalled and used for both chroma components to indicate whether the default CCCM model or the proposed CCCM model is applied. Additionally, SPS signalling is introduced to indicate whether the CCCM using non-downsampled luma samples is enabled.
[0048] Gradient and Location Based Convolutional Cross-Component Model (GL-CCCM)
[0049] This method maps luma values into chroma values using a filter with inputs consisting of one spatial luma sample, two gradient values, two location information, a nonlinear term, and a bias term. The GL-CCCM method uses gradient and location information instead of the 4 spatial neighbour samples used in the CCCM filter. The GL-CCCM filter used for the prediction is: predChromaVal = c0C + c1Gy + c2Gx + c3Y + c4X + c5P + c6B where Gy and Gx are the vertical and horizontal gradients, respectively, and are calculated as Fig. 7: Gy = (2N + NW + NE) – (2S + SW + SE) Gx = (2W + NW + SW) – (2E + NE + SE)
[0050] Moreover, the Y and X are the spatial coordinates of the centre luma sample. The rest of the parameters are the same as CCCM tool. The reference area for the parameter calculation is the same as CCCM method.
[0051] The usage of the mode is signalled with a CABAC coded PU level flag. When it comes to signalling, GL-CCCM is considered a sub-mode of CCCM. That is, the GL-CCCM flag is only signalled if original CCCM flag is true.
[0052] Similar to the CCCM, GL-CCCM tool has 6 modes for calculating the parameters: ● Single-model GL-CCCM from above and left templates ● Single-model GL-CCCM from above template ● Single-model GL-CCCM from left template · Multi-model GL-CCCM from above and left templates ● Multi-model GL-CCCM from above template ● Multi-model GL-CCCM from left template
[0053] The encoder performs SATD search for the 6 GL-CCCM modes along with the existing CCCM modes to find the best candidates for full RD tests.
[0054] CCCM with Multiple Downsampling Filters (MDF-CCCM)
[0055] Multiple downsampling filters are applied to a group of reconstructed luma samples in a CCCM. The linear combination of these downsampled reconstructed samples is multiplied by derived filter coefficients to form the final chroma predictor. The horizontal or vertical location of the centre luma sample are also considered in the tested model. The cross-component models shown below are tested as additional CCCM modes with a mode index signalled in the bitstream: (1) Model 1: predChroma = c0 *H (C) + c1 *G1 (C) + c2 *G2 (C) + c3 *G3 (C) + c4 * P (H (C) ) + c5 * P (G1 (C) ) + c6 *P (G2 (C) ) + c7 *X + c8 *Y + c9 *B (2) Model 2: predChroma = c0 *H (C) + c1 *H (W) + c2 *H (E) + c3 *G1 (C) + c4 *G1 (W) + c5 *G1 (E) + c6 *P (H (C) ) + c7 *P (H (W) ) + c8 *P (H (E) ) + c9 *X + c10*B (3) Model 3: predChroma = c0 *H (C) + c1 *H (NE) + c2 *H (SW) + c3 * G3(C) + c4 * G3 (NE) + c5 * G3 (SW) + c6 * P (H (C) ) + c7 * P (H (NE) ) + c8 * P (H (SW) ) + c9 *Y + c10 *B where H (·) 810, G1 (·) 820, G2 (·) 830, G3 (·) 840 are various downsampling filters as indicated in Fig. 8, C denotes the current chroma sample position, and N, S, W, E, NE, SW are the positions around C, ci are filter coefficients, P and B are nonlinear term and bias term, and X and Y are the horizontal and vertical locations of the centre luma sample with respect to the top-left coordinate of the block.
[0056] Cross-Component Prediction Merge Mode
[0057] For chroma coding, a flag is signalled to indicate whether CCP mode (including the CCLM, CCCM, GLM and their variants) or non-CCP mode (conventional chroma intra prediction mode, fusion of chroma intra prediction mode) is used. If the CCP mode is selected, one more flag is signalled to indicate how to derive the CCP type and parameters, i.e., either from a CCP merge list or signalled / derived on-the-fly. A CCP merge candidate list is constructed from the spatial adjacent, spatial non-adjacent, or history-based candidates. After including these candidates, default models are further included to fill the remaining empty positions in the merge list. In order to remove redundant CCP models in the list, pruning operation is applied. After constructing the list, the CCP models in the list are reordered depending on the SAD costs, which are obtained using the neighbouring template of the current block. More details are described below.
[0058] Spatial Adjacent and Non-Adjacent Candidates
[0059] The positions and inclusion order of the spatial adjacent and non-adjacent candidates are the same as those defined in ECM for regular inter merge prediction candidates.
[0060] History-Based Candidates
[0061] A history-based table is maintained to include the recently used CCP models, and the table is reset at the beginning of each CTU row. If the current list is not full after including spatial adjacent and non-adjacent candidates, the CCP models in the history-based table are added into the list.
[0062] Default Candidates
[0063] CCLM candidates with default scaling parameters are considered, only when the list is not full after including the spatial adjacent, spatial non-adjacent, or history-based candidates. If the current list has no candidates with the single model CCLM mode, the default scaling parameters are {0, 1 / 8, -1 / 8, 2 / 8, -2 / 8, 3 / 8, -3 / 8, 4 / 8, -4 / 8, 5 / 8, -5 / 8, 6 / 8} . Otherwise, the default scaling parameters are {0, the scaling parameter of the first CCLM candidate + {1 / 8, -1 / 8, 2 / 8, -2 / 8, 3 / 8, -3 / 8, 4 / 8, -4 / 8, 5 / 8, -5 / 8, 6 / 8} } .
[0064] A flag is signalled to indicate whether the CCP merge mode is applied or not. If CCP merge mode is applied, an index is signalled to indicate which candidate model is used by the current block. In addition, CCP merge mode is not allowed for the current chroma coding block when the current CU is coded by intra sub-partitions (ISP) with single tree, or the current chroma coding block size is less than or equal to 16. In this disclosure, the “CCP mode” and “LM mode” are exchangeable notations.
[0065] In the present invention, methods and apparatus to improve the coding performance for video coding systems using Multi-Model Linear Model (MMLM) mode are disclosed. BRIEF SUMMARY OF THE INVENTION
[0066] A method and apparatus for video coding are disclosed. According to this method, input data associated with a current block comprising a current first-colour block and a current second-colour block is received, wherein the input data comprise pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side. One or more classification thresholds are determined based on neighbouring gradient values derived from neighbouring samples of the current block. The neighbouring samples of the current block are classified into multiple groups according to the neighbouring gradient values and said one or more classification thresholds. Multiple CCP (Cross-Component Prediction) models associated with the multiple groups are determined respectively. The current second-colour block is encoded or decoded by applying the multiple CCP models to the current first-colour block, wherein a target CCP model corresponding to a target group from the multiple CCP models is selected for a target second-colour sample in the current second-colour block, and wherein the target group is determined based on a current gradient value of a corresponding target first-colour reconstruction sample and said one or more classification thresholds.
[0067] In one embodiment, a predefined or indicated gradient filter is applied to neighbouring first-colour reconstruction samples to derive gradient values of the neighbouring samples of the current block. In one embodiment, said one or more classification thresholds corresponds to one classification threshold, and wherein a mean, median, or mode of the gradient values of the neighbouring samples of the current block is used as said one classification threshold to classify the neighbouring samples of the current block. In one embodiment, current gradient values of corresponding target first-colour reconstruction samples are compared with said one classification threshold to classify the corresponding target first-colour reconstruction samples into a first group and a second group.
[0068] In one embodiment, the target CCP model for the target group is derived using neighbouring first-colour and / or second-colour reconstruction samples of the target group.
[0069] In one embodiment, said one or more classification thresholds correspond to multiple classification thresholds and only one or more valid classification thresholds from the multiple classification thresholds are considered as one or more final classification thresholds. In one embodiment, said one or more valid classification thresholds among the multiple classification thresholds having lower model errors are inferred as said one or more final classification thresholds. In one embodiment, only a single final classification threshold having a lowest model error among said one or more final classification thresholds is indicated.BRIEF DESCRIPTION OF THE DRAWINGS
[0070] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing.
[0071] Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.
[0072] Fig. 2 shows the 67 intra prediction modes as adopted by the VVC video coding standard.
[0073] Fig. 3 illustrates an example of spatial part of the convolutional filter.
[0074] Fig. 4 illustrates an example of reference area with paddings used to derive the filter coefficients.
[0075] Fig. 5 illustrates an example of Sobel filters to derive the gradient information of the collocated luma sample for the target chroma.
[0076] Fig. 6 illustrates the 6-tap spatial terms corresponding to 6 neighbouring luma samples (i.e., L0, L1, …, L5) around the chroma sample (i.e., C) to be predicted for CCCM mode.
[0077] Fig. 7 illustrates the current chroma sample position C, and N, S, W, E, NE, SW are the down-sampled luma positions around C.
[0078] Fig. 8 illustrates filters H (·) , G1 (·) , G2 (·) , and G3 (·) used by Multiple Downsampling Filters (MDF) for cross-component modes.
[0079] Fig. 9 illustrates a flowchart of an exemplary video coding system that incorporates classification threshold derivation based on gradient-domain data according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION
[0080] It will be readily understood that the components of the present invention, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the systems and methods of the present invention, as represented in the figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of selected embodiments of the invention. References throughout this specification to “one embodiment, ” “an embodiment, ” or similar language mean that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment.
[0081] Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, however, that the invention can be practiced without one or more of the specific details, or with other methods, components, etc. In other instances, well-known structures, or operations are not shown or described in detail to avoid obscuring aspects of the invention. The illustrated embodiments of the invention will be best understood by reference to the drawings, wherein like parts are designated by like numerals throughout. The following description is intended only by way of example, and simply illustrates certain selected embodiments of apparatus and methods that are consistent with the invention as claimed herein.
[0082] PROPOSED METHOD
[0083] Several methods are proposed to improve the coding performance or prediction quality by using multiple-model LM (MMLM) .
[0084] MMLM Using the Gradient-Domain Classification Threshold
[0085] The classification threshold of MMLM can be determined or derived from gradient domain. For example, a predefined or indicated gradient filter can be applied to the neighbouring luma reconstruction samples to get the gradient values of neighbouring samples, the mean / median / mode of the neighbouring gradient values is used as the threshold (TH) to classify the neighbouring samples into two groups. The cross-component prediction (CCP) model of each group is derived using the neighbouring luma and / or chroma reconstruction samples of each group (i.e., rather than using the gradient values of neighbouring samples) . In one embodiment, when generating the prediction, if the gradient value of the corresponding luma reconstruction samples is less than or equal to TH, the first CCP model is applied. Otherwise, the second CCP model is applied to the corresponding luma reconstruction samples. In another embodiment, when generating the prediction, if the gradient value of the corresponding luma reconstruction samples is greater than or equal to TH, the first CCP model is applied. Otherwise, the second CCP model is applied to the corresponding luma reconstruction samples.
[0086] For another example, the classification threshold in gradient domain of MMLM can be determined or derived from the neighbouring samples of the current picture or from the neighbouring samples of the reference block of reference pictures (e.g., indicated by motion-vectors, block-vectors, or reference picture index) . The predefined or indicated gradient filter is applied to the neighbouring luma reconstruction samples of the current block and the reference block of reference pictures, respectively. The final classification threshold of MMLM is indicated from one or more valid classification thresholds. Suppose the derived (n+1) classification thresholds are TH0, TH1, …, THn, and the two CCP models derived from the neighbouring samples of the current block using the i-th classification threshold are denoted as and where i = 0, 1, 2, .., n. The model error by using the and is
[0087] In one embodiment, the final classification threshold of MMLM is inferred as the classification threshold has the lowest model error (i.e., the i-th classification threshold has the minimal ) . In another embodiment, k out of (n+1) classification thresholds having lower model errors are selected as the candidate classification thresholds. The final classification threshold of MMLM is indicated from one of k candidate classification thresholds. In still another embodiment, the final classification threshold of MMLM is inferred as the classification threshold has the most balanced group member numbers. For example, after using the i-th classification threshold, the number of neighbouring samples belonging to the first group and the second group are pi and qi. The final classification threshold of MMLM is the i-th classification threshold has the minimal | pi -qi |.
[0088] Two or more gradient filters can be jointly used to determine if the first CCP model is applied or the second CCP model is applied. For example, assume two gradient filters (denoted as G1 and G2) are applied to the corresponding luma reconstruction samples at chroma position (x, y) , the gradient magnitude of G1 and G2 at (x, y) are G1 (x, y) and G2 (x, y) . In one embodiment, if G1 (x, y) is greater than or equal to G2 (x, y) , the first CCP model is applied. Otherwise, the second CCP model is applied. In another embodiment, if G1 (x, y) is less than or equal to G2 (x, y) , the first CCP model is applied. Otherwise, the second CCP model is applied.
[0089] The sign of two or more gradient filters can be jointly used to determine if the first CCP model is applied or the second CCP model is applied. For still the same example, assume two gradient filters (denoted as G1 and G2) are applied to the corresponding luma reconstruction samples at chroma position (x, y) , the gradient value sign of G1 and G2 at (x, y) are S1 (x, y) and S2(x, y) . In one embodiment, if S1 (x, y) is equal to S2 (x, y) , the first CCP model is applied. Otherwise, the second CCP model is applied. In another embodiment, if G1 (x, y) is positive, the first CCP model is applied. Otherwise, the second CCP model is applied. In another embodiment, if G2 (x, y) is positive, the first CCP model is applied. Otherwise, the second CCP model is applied.
[0090] When using MMLM to generate the prediction of the current block, the classification threshold derived from gradient domain is firstly used to classify the neighbouring samples into two groups. If the samples belong to a group is less than a threshold (e.g., less than 1, 2, 3, 4, 5, 6, or a percentage of valid neighbouring sample number) , the classification threshold is re-derived by using the neighbouring luma or chroma reconstruction samples. If the samples belong to a group is still less than a threshold by classifying using the re-derived classification threshold, the single model LM is used to generate the prediction of the current block.
[0091] If GLM prediction mode is allowed, the gradient filter for deriving classification threshold of MMLM is selected from GLM gradient filters. In another embodiment, the allowed gradient filter for deriving classification threshold of MMLM includes, but not limited to, the following 16 gradient filters. Table 1. The gradient filters for deriving classification threshold of MMLM
[0092] Multiple Prediction Fusion Using Gradient Magnitude
[0093] When doing prediction fusion, two or more predictions are combined together as the final prediction. In one embodiment, the gradient magnitude derived from each prediction can be used to derived the combination weight. For example, assume (n+1) predictions (denoted as P0, P1, …, Pn) are combined together as the final prediction, if the current prediction location is (x, y) , the final prediction can be expressed as: P=w0×P0+w1×P1+w2×P2+…+wn×Pn w0, w1, …, wn are the combination weights of (n+1) predictions, and the combination weight are derived from gradient magnitudes. If m gradient filters are used to derive the gradient magnitude, the gradient magnitude of each gradient filters of i-th prediction are denoted as at position (x, y) of the current block, the final gradient magnitude can be The combination weight of wk can be where k = 0, 1, …, n.
[0094] Inheriting the MMLM Using Gradient-Domain Classification Threshold
[0095] If the current block is predicted by MMLM using gradient-domain classification threshold, the gradient filter index, CCP model parameters, and the classification threshold of the current block are saved for the inheritance of later prediction blocks.
[0096] For example, if the inherited gradient filter index from a spatiotemporal position is greater than 0 and the CCP model type is MMLM, the inherited gradient filter is applied to the corresponding luma reconstruction samples to determine if the first inherited CCP model or the second inherited CCP model is used to generate the current chroma prediction sample.
[0097] For another example, if GLM prediction mode is allowed, but cannot used for MMLM, when the current block is predicted by MMLM using gradient-domain classification threshold, the logical OR operator is applied to combine the GLM type and the current CCP model type as the CCP model type of the current block.
[0098] Default MMLM Candidates for CCP Merge Mode
[0099] When the CCP merge candidate list is not full after including the spatial adjacent, spatial non-adjacent, temporal, or history-based candidates, the MMLM candidates modified from existing MMLM candidates are considered as default candidates. For example, if no existing CCLM candidates and at least one MMLM candidates are valid in the list, the default candidates can be modified from existing MMLM candidates.
[0100] In one embodiment, the modified MMLM candidate uses the gradient-domain classification threshold derived from the neighbouring luma reconstruction samples of the current block, and the CCP models are copied from existing MMLM candidates.
[0101] In another embodiment, if the to-be-modified MMLM candidate uses gradient-domain classification threshold, the modified MMLM candidate uses modified gradient-domain classification threshold. For example, if the original gradient-domain classification threshold is T, the modified classification threshold can be T + d or T –d, where d is the difference value.
[0102] Syntax of the Proposed Method
[0103] When signalling the proposed prediction mode, a syntax is signalled to indicate if the proposed prediction mode is used or not once the current chroma prediction mode is MMLM. If the current chroma prediction mode is not MMLM (e.g., single model cross-component prediction mode) , the syntax used to indicate the usage of the proposed method is not present and inferred to be equal to false. If the proposed method is used, the gradient filter can be indicated explicitly or implicitly. For example, if k candidate gradient filters are allowed, the index of the selected gradient filters is explicitly indicated (i.e., one out of k candidates) . The index can be signalled (e.g., signalled using truncate unary code, Exp-Golomb code, or fix length code) and shared among both the current Cb and Cr blocks.
[0104] Any of the foregoing proposed methods of deriving classification threshold for MMLM mode can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in an inter / intra / prediction module of an encoder, and / or an inter / intra / prediction module of a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the inter / intra / prediction module of the encoder and / or the inter / intra / prediction module of the decoder, so as to provide the information needed by the inter / intra / prediction module. With reference to the encoder and decoder in Fig. 1A and Fig. 1B, any of the proposed methods can be implemented in an inter / intra / prediction / transform module (e.g. Intra Pred. 110 in Fig. 1A) of an encoder, and / or an inter / intra / prediction / transform module (e.g. Intra Pred. 150 in Fig. 1B) of a decoder.
[0105] Fig. 9 illustrates a flowchart of an exemplary video coding system that incorporates classification threshold derivation based on gradient-domain data according to an embodiment of the present invention. The steps shown in the flowchart may be implemented as program codes executable on one or more processors (e.g., one or more CPUs) at the encoder side and / or decoder side. The steps shown in the flowchart may also be implemented based hardware such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to this method, input data associated with a current block comprising a current first-colour block and a current second-colour block is received in step 910, wherein the input data comprise pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side. One or more classification thresholds are determined based on neighbouring gradient values derived from neighbouring samples of the current block in step 920. The neighbouring samples of the current block are classified into multiple groups according to the neighbouring gradient values and said one or more classification thresholds in step 930. Multiple CCP (Cross-Component Prediction) models associated with the multiple groups are determined respectively in step 940. The current second-colour block is encoded or decoded by applying the multiple CCP models to the current first-colour block in step 950, wherein a target CCP model corresponding to a target group from the multiple CCP models is selected for a target second-colour sample in the current second-colour block, and wherein the target group is determined based on a current gradient value of a corresponding target first-colour reconstruction sample and said one or more classification thresholds.
[0106] The flowchart shown is intended to illustrate an example of video coding according to the present invention. A person skilled in the art may modify each step, re-arranges the steps, split a step, or combine steps to practice the present invention without departing from the spirit of the present invention. In the disclosure, specific syntax and semantics have been used to illustrate examples to implement embodiments of the present invention. A skilled person may practice the present invention by substituting the syntax and semantics with equivalent syntax and semantics without departing from the spirit of the present invention.
[0107] The above description is presented to enable a person of ordinary skill in the art to practice the present invention as provided in the context of a particular application and its requirement. Various modifications to the described embodiments will be apparent to those with skill in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed. In the above detailed description, various specific details are illustrated in order to provide a thorough understanding of the present invention. Nevertheless, it will be understood by those skilled in the art that the present invention may be practiced.
[0108] Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both. For example, an embodiment of the present invention can be one or more circuit circuits integrated into a video compression chip or program code integrated into video compression software to perform the processing described herein. An embodiment of the present invention may also be program code to be executed on a Digital Signal Processor (DSP) to perform the processing described herein. The invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA) . These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention. The software code or firmware code may be developed in different programming languages and different formats or styles. The software code may also be compiled for different target platforms. However, different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.
[0109] The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Claims
1.A method of coding colour pictures using coding tools including one or more cross component models related modes, the method comprising:receiving input data associated with a current block comprising a current first-colour block and a current second-colour block, wherein the input data comprise pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side;determining one or more classification thresholds based on neighbouring gradient values derived from neighbouring samples of the current block;classifying the neighbouring samples of the current block into multiple groups according to the neighbouring gradient values and said one or more classification thresholds;determining multiple CCP (Cross-Component Prediction) models associated with the multiple groups respectively; andencoding or decoding the current second-colour block by applying the multiple CCP models to the current first-colour block, wherein a target CCP model corresponding to a target group from the multiple CCP models is selected for a target second-colour sample in the current second-colour block, and wherein the target group is determined based on a current gradient value of a corresponding target first-colour reconstruction sample and said one or more classification thresholds.2.The method of Claim 1, wherein a predefined or indicated gradient filter is applied to neighbouring first-colour reconstruction samples to derive gradient values of the neighbouring samples of the current block.3.The method of Claim 2, wherein said one or more classification thresholds corresponds to one classification threshold, and wherein a mean, median, or mode of the gradient values of the neighbouring samples of the current block is used as said one classification threshold to classify the neighbouring samples of the current block.4.The method of Claim 3, wherein current gradient values of corresponding target first-colour reconstruction samples are compared with said one classification threshold to classify the corresponding target first-colour reconstruction samples into a first group and a second group.5.The method of Claim 1, wherein the target CCP model for the target group is derived using neighbouring first-colour and / or second-colour reconstruction samples of the target group.6.The method of Claim 1, wherein said one or more classification thresholds correspond to multiple classification thresholds and only one or more valid classification thresholds from the multiple classification thresholds are considered as one or more final classification thresholds.7.The method of Claim 6, wherein said one or more valid classification thresholds among the multiple classification thresholds having lower model errors are inferred as said one or more final classification thresholds.8.The method of Claim 6, wherein only a single final classification threshold having a lowest model error among said one or more final classification thresholds is indicated.9.An apparatus for coding colour pictures, the apparatus comprising one or more electronic circuits or processors arranged to:receive input data associated with a current block comprising a current first-colour block and a current second-colour block, wherein the input data comprise pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side;determine one or more classification thresholds based on neighbouring gradient values derived from neighbouring samples of the current block;classify the neighbouring samples of the current block into multiple groups according to the neighbouring gradient values and said one or more classification thresholds;determine multiple CCP (Cross-Component Prediction) models associated with the multiple groups respectively; andencode or decode the current second-colour block by applying the multiple CCP models to the current first-colour block, wherein a target CCP model corresponding to a target group from the multiple CCP models is selected for a target second-colour sample in the current second-colour block, and wherein the target group is determined based on a current gradient value of a corresponding target first-colour reconstruction sample and said one or more classification thresholds.
Citation Information
Patent Citations
Methods and apparatuses for cross-component prediction
US20230283766A1
Video coding using multi-model linear model
WO2020185888A1
Decoder-side chroma intra prediction mode gradient-based derivation
WO2023131137A1
Method and apparatus for implicit cross-component prediction in video coding system
WO2023198142A1
Method, apparatus, and medium for video processing
WO2024055940A1