WO2025007693A1 - Methods and apparatus of inheriting cross-component models from non-intra coded blocks for cross-component prediction merge mode - Google Patents

Methods and apparatus of inheriting cross-component models from non-intra coded blocks for cross-component prediction merge mode Download PDF

Info

Publication number
WO2025007693A1
WO2025007693A1 PCT/CN2024/097398 CN2024097398W WO2025007693A1 WO 2025007693 A1 WO2025007693 A1 WO 2025007693A1 CN 2024097398 W CN2024097398 W CN 2024097398W WO 2025007693 A1 WO2025007693 A1 WO 2025007693A1
Authority
WO
WIPO (PCT)
Prior art keywords
cross
block
component
model
colour
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2024/097398
Other languages
French (fr)
Inventor
Hsin-Yi Tseng
Man-Shu CHIANG
Chia-Ming Tsai
Chih-Wei Hsu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MediaTek Inc
Original Assignee
MediaTek Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MediaTek Inc filed Critical MediaTek Inc
Priority to CN202480056647.8A priority Critical patent/CN121773619A/en
Priority to EP24835176.9A priority patent/EP4740476A1/en
Publication of WO2025007693A1 publication Critical patent/WO2025007693A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the present invention is a non-Provisional Application of and claims priority to U.S. Provisional Patent Application No. 63/511,920, filed on July 5, 2023.
  • the U.S. Provisional Patent Application is hereby incorporated by reference in its entirety.
  • the present invention relates to video coding.
  • the present invention relates to inter prediction for chroma component by applying a cross-component model to reconstructed luma samples.
  • VVC Versatile video coding
  • JVET Joint Video Experts Team
  • MPEG ISO/IEC Moving Picture Experts Group
  • 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.
  • HEVC High Efficiency Video Coding
  • Fig. 1A illustrates an exemplary adaptive Inter/Intra video encoding system incorporating loop processing.
  • Intra Prediction 110 the prediction data is derived based on previously coded video data in the current picture.
  • 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.
  • T Transform
  • Q Quantization
  • 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.
  • 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.
  • 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.
  • 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.
  • deblocking filter (DF) may be used.
  • SAO Sample Adaptive Offset
  • ALF Adaptive Loop Filter
  • 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.
  • DF deblocking filter
  • SAO Sample Adaptive Offset
  • ALF Adaptive Loop Filter
  • 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.
  • HEVC High Efficiency Video Coding
  • the decoder 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.
  • 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.
  • 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.
  • processing throughput drops when a picture has smaller intra blocks because of sample processing data dependency between neighbouring intra blocks.
  • the predictor generation of an intra block requires top and left boundary reconstructed samples from neighbouring blocks. Therefore, intra prediction has to be sequentially processed block by block.
  • the smallest intra CU is 8x8 luma samples.
  • the luma component of the smallest intra CU can be further split into four 4x4 luma intra prediction units (PUs) , but the chroma components of the smallest intra CU cannot be further split. Therefore, the worst case hardware processing throughput occurs when 4x4 chroma intra blocks or 4x4 luma intra blocks are processed.
  • chroma intra CBs smaller than 16 chroma samples e.g. size 2x2, 4x2, and 2x4
  • chroma intra CBs with width smaller than 4 chroma samples size 2xN
  • a smallest chroma intra prediction unit is defined as a coding tree node whose chroma block size is larger than or equal to 16 chroma samples and has at least one child luma block smaller than 64 luma samples, or a coding tree node whose chroma block size is not 2xN and has at least one child luma block with 4xN luma samples. It is required that in each SCIPU, all CBs are inter, or all CBs are non-inter, i.e, either intra or intra block copy (IBC) .
  • IBC intra block copy
  • chroma block of the non-inter SCIPU shall not be further split and the luma block of the SCIPU is allowed to be further split.
  • the small chroma intra CBs with size less than 16 chroma samples or with size 2xN are removed.
  • chroma scaling is not applied in case of a non-inter SCIPU.
  • no additional syntax is signalled, and whether a SCIPU is non-inter can be derived by the prediction mode of the first luma CB in the SCIPU.
  • the type of a SCIPU is inferred to be non-inter if the current slice is an I-slice or the current SCIPU has a 4x4 luma partition in it after further split one time (because no inter 4x4 is allowed in VVC) ; otherwise, the type of the SCIPU (inter or non-inter) is indicated by one flag before parsing the CUs in the SCIPU.
  • the 2xN intra chroma blocks are removed by disabling vertical binary and vertical ternary splits for 4xN and 8xN chroma partitions, respectively.
  • the small chroma blocks with size 2x2, 4x2, and 2x4 are also removed by partitioning restrictions.
  • a restriction on picture size is considered to avoid 2x2/2x4/4x2/2xN intra chroma blocks at the corner of pictures by considering the picture width and height to be multiple of max (8, MinCbSizeY) .
  • pred C (i, j) represents the predicted chroma samples in a CU and rec L (i, j) represents the downsampled reconstructed luma samples of the same CU.
  • ⁇ CCLM_LT, CCLM_L, CCLM_T ⁇ and ⁇ CCLM_LA, CCLM_L, CCLM_A ⁇ and ⁇ LM_LA, LM_L, LM_A ⁇ are used interchangeably.
  • the CCLM parameters ( ⁇ and ⁇ ) are derived with at most four neighbouring chroma samples and their corresponding down-sampled luma samples.
  • W ⁇ H the current chroma block dimensions
  • W'’ and H’ are set as:
  • the four neighbouring luma samples at the selected positions are down-sampled and compared four times to find two larger values: x 0 A and x 1 A , and two smaller values: x 0 B and x 1 B .
  • Their corresponding chroma sample values are denoted as y 0 A , y 1 A , y 0 B and y 1 B .
  • Fig. 2 shows an example of the location of the left and above samples and the sample of the current block involved in the LM_LA mode.
  • LM_A 2 LM modes
  • LM_L 2 LM modes
  • LM_A mode only the above template is used to calculate the linear model coefficients. To get more samples, the above template is extended to (W+H) samples. In LM_L mode, only left template is used to calculate the linear model coefficients. To get more samples, the left template is extended to (H+W) samples.
  • LM_LA mode left and above templates are used to calculate the linear model coefficients.
  • MMLM multiple model CCLM mode
  • JEM J. Chen, E. Alshina, G. J. Sullivan, J. -R. Ohm, and J. Boyce, Algorithm Description of Joint Exploration Test Model 7, document JVET-G1001, ITU-T/ISO/IEC Joint Video Exploration Team (JVET) , Jul. 2017
  • MMLM multiple model CCLM mode
  • neighbouring luma samples and neighbouring chroma samples of the current block are classified into two groups, each group is used as a training set to derive a linear model (i.e., a particular ⁇ and ⁇ are derived for a particular group) .
  • the samples of the current luma block are also classified based on the same rule for the classification of neighbouring luma samples.
  • a convolutional model is applied to improve the chroma prediction performance.
  • the convolutional model has 7-tap filter consisting 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. 4.
  • the bias term (denoted as B) represents a scalar offset between the input and output (similarly to the offset term in CCLM) and is set to the middle chroma value (512 for 10-bit content) .
  • 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.
  • the GLM utilizes luma sample gradients to derive the linear model. Specifically, when the 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
  • C ⁇ G+ ⁇ .
  • 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 ⁇
  • 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 for the gradient calculation.
  • the derived filters are applied to the reconstructed luma signal producing the final chroma predictions.
  • the input to the filter consists of 6 spatial luma samples, a non-regression-model term, and a bias term.
  • Filter coefficients are derived in step 620 for each block separately using the prediction signals (i.e., predY 610, predCb 612 and predCr 614) and the filters are applied to the reconstructed luma signal in step 630 as shown in Fig. 6.
  • the reconstructed luma signal is formed by combining the luma prediction (PredY) 610 and residual luma signal (resY) using an adder 622.
  • the step 630 After applying the filters, the step 630 generates filtered-predicted Cb 640 and filtered-predicted Cr 650.
  • the reconstructed Cb signal is formed by combining the filtered-predicted Cb 640 and residual Cb signal (i.e., resCb) using an adder 642.
  • the reconstructed Cr signal is formed by combining the filtered-predicted Cr 650 and residual Cr signal (i.e., resCr) using an adder 652.
  • the proposed 8-tap filter consist of 6 spatial luma samples, a nonlinear term, and a bias term.
  • the spatial luma samples (L0, ..., L5) are obtained from the luma grid selecting the 6 luma samples closest to the chroma position C without down sampling as shown in Fig. 7.
  • nonlinear is CCCM’s nonlinear operator and B is bias.
  • the filter coefficients are derived using ECM’s division-free Gaussian elimination method and the necessary offsets are applied to samples prior to filter derivation.
  • Intra reference samples are used as additional input samples in filter derivation when the block has less than 64 chroma samples.
  • CCCM design of at most 6 rows and columns of intra reference samples is used.
  • Blocks having 256 chroma samples or more are divided into subblocks that have at most 256 chroma samples. Subblocks containing zero luma residual are skipped.
  • a method and apparatus for coding colour pictures using coding tools including one or more cross component models related modes are disclosed.
  • input data associated with a current block comprising a first-colour block and a 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, and wherein the current block is coded in a non-intra mode.
  • a cross-component model for the current block is determined.
  • a target cross-component predictor is derived by applying the cross-component model to reconstructed first-colour samples.
  • the second-colour block is encoded or decoded by using prediction data comprising the target cross-component predictor.
  • the cross-component model for the current block is stored, referenced by following coding blocks, or both. In one embodiment, all model parameters of the cross-component model are stored. In another embodiment, a subset of model parameters of the cross-component model is stored. In one embodiment, if a target following coding block is coded in an intra mode, the target following coding block is allowed to use the cross-component model stored. In one embodiment, if a target following coding block is coded in the non-intra mode, the target following coding block is allowed to use the cross-component model stored.
  • the cross-component model is derived from reconstructed first-colour samples and reconstructed second-colour samples.
  • the reconstructed first-colour samples and the reconstructed second-colour samples are from regions indicated by a motion vector or a block vector.
  • the cross-component model is derived based on CCRM (Cross-Component Residual Model) .
  • the cross-component model is inherited from a neighbouring block.
  • the neighbouring block corresponds to a spatial neighbouring block or a temporal neighbouring block.
  • different cross-component models associated with blocks coded in different modes are stored in different buffers.
  • a first cross-component model associated with intra-coded blocks and a second cross-component model associated with inter-coded blocks are stored in two different buffers.
  • Fig. 1A illustrates an exemplary adaptive Inter/Intra video encoding system incorporating loop processing.
  • Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.
  • Fig. 2 illustrates an example of sample locations used for deriving ⁇ and ⁇ of the cross-component model.
  • Fig. 3 illustrates an example of classifying the neighbouring samples into two groups for MMLM.
  • Fig. 4 illustrates the spatial part of the convolutional filter.
  • Fig. 5 shows 4 gradient patterns for GLM.
  • Fig. 6 illustrates a system block diagram for CCRM decoder.
  • Fig. 7 illustrates the six luma samples L0, ..., L5 in relation to the chroma sample C.
  • Fig. 8 illustrates the 5 neighbouring blocks used for deriving spatial merge candidates for VVC.
  • Fig. 9 illustrates an example of inheriting temporal neighbouring model parameters.
  • Figs. 10A-B illustrates two search patterns for inheriting non-adjacent spatial neighbouring models.
  • Fig. 11 illustrates an example of the neighbouring templates for calculating model error for reordering the candidates.
  • Fig. 12 illustrates a flowchart of an exemplary video coding system that generates inter predictor for the chroma component by applying a cross-component model to reconstructed luma samples according to an embodiment of the present invention.
  • the following methods are proposed to improve the cross-component prediction accuracy or coding performance by generating inter predictor for the chroma component by applying a cross-component model to reconstructed luma samples.
  • the cross-component model (CCM) information (more details in section entitled: “Inheriting CCM information” ) including model parameters can be inherited from neighbouring blocks.
  • the final scaling parameter of the current block is inherited from the neighbouring blocks.
  • the offset parameter e.g., ⁇ in CCLM
  • the offset parameter is derived based on the inherited scaling parameter and/or the average value of neighbouring luma and chroma samples of the current block.
  • the offset parameter can be inherited or can be further refined by dB. For example, if the final offset parameter is inherited from a selected neighbouring block, and the inherited offset parameter is ⁇ ′ nei , then the final scaling parameter is ( ⁇ ′ nei + dB) . dB can be zero.
  • the filter coefficients (c i ) are inherited.
  • the offset parameter e.g., c 6 ⁇ B or c 6 in CCCM
  • c 6 ⁇ B or c 6 in CCCM can be re-derived based on the inherited parameter and the average value of neighbouring corresponding position luma and chroma samples of the current block.
  • the filter coefficients (c i ) are inherited.
  • the offset parameter e.g., c 6 ⁇ B or c 6 in CCCM is also inherited and is not re-derived.
  • the current block shall also inherit the GLM gradient pattern of the candidate and apply to the current luma reconstruction samples.
  • the cross-component model (CCM) information of inherited cross-component model can be stored together with the inherited model parameters.
  • the CCM information can be inherited together with the inherited model parameters.
  • the prediction of the current block can be generated based on the inherited CCM information and inherited model parameters.
  • the CCM information can include but not limited to prediction mode (e.g., CCLM, MMLM, CCCM, 2-parameter GLM, 3-parameter GLM) , model index for indicating which model shape is used in convolutional model, classification threshold for multi-model, information to indicate that non-downsampled samples are used in convolutional model, down-sampling filter flag, down-sampling filtering index when multiple down-sampling filters are used, number of neighbouring lines used to derive model, types of templates used to derive model, post-filtering flag and model parameters.
  • prediction mode e.g., CCLM, MMLM, CCCM, 2-parameter GLM, 3-parameter GLM
  • model index for indicating which model shape is used in convolutional model
  • classification threshold for multi-model information to indicate that non-downsampled samples are used in convolutional model
  • down-sampling filter flag down-sampling filtering index when multiple down-sampling filters are used, number of neighbouring lines used to der
  • a mixed CCCM model consisting of various terms (e.g., spatial term, gradient term, location term, non-linear term and bias term) can be inherited.
  • a prediction mode can be stored in the CCM information to indicate that the inherited model is a mixed CCCM model consisting of various terms.
  • a model index can also be stored in the CCM information to indicate which type of mixed CCCM model is inherited. For example, gradient and location based CCCM (GL-CCCM) proposed in JVET-AB0119 (Ramin G.
  • Non-EE2 Gradient and location based convolutional cross-component model (GL-CCCM) for intra prediction
  • JVET Joint Video Exploration Team
  • JVET-AB0119 Joint Video Exploration Team
  • a prediction mode can be stored in the CCM information to indicate that the inherited model is a GL-CCCM model.
  • the inherited model parameters can be from a block that is an immediate neighbouring block.
  • the models from blocks at pre-defined positions are added into the candidate list in a pre-defined order.
  • the pre-defined positions and the pre-defined order can be the same as those of spatial candidates for inter merge mode.
  • the pre-defined positions can be the positions depicted in Fig. 8.
  • the pre-defined order can be B 0 , A 0 , B 1 , A 1 and B 2 .
  • the pre-defined positions can include positions immediate above the current block, such as (x + W >> 1, y-1) or (x + (W+1) >> 1, y-1) , if W is greater than or equal to a threshold TH.
  • the pre-defined positions can also include positions immediate left to the current blocks, such as (x-1, y+H>>1) or (x-1, y+ (H+1) >>1) , if H is greater than or equal to a threshold TH.
  • TH can be 2, 4, 8, 16, 32, or 64.
  • the inherited model parameters can be from the block in the previous coded slices/pictures.
  • the inherited model parameters can be from the block in the previous coded slices/pictures. For example, as shown in Fig. 9, the current block position is at (x, y) and the block size is w ⁇ h.
  • ⁇ x and ⁇ y are set to 0.
  • ⁇ x and ⁇ y are set to the horizontal and vertical motion vectors of the current block. In one embodiment, if the current block is inter bi-prediction, ⁇ x and ⁇ y are set to the horizontal and vertical motion vectors in reference picture list 0. In one embodiment, if the current block is inter bi-prediction, ⁇ x and ⁇ y are set to the horizontal and vertical motion vectors in reference picture list 1.
  • the inherited model parameters can be from the block in the previous coded slices/pictures in the reference lists. For example, if the horizontal and vertical motion vectors in reference picture list 0 is ⁇ x L0 and ⁇ y L0 , the motion vector can be scaled to other reference pictures in the reference list 0 and 1. If the motion vector is scaled to the i th reference picture in the reference list 0 as ( ⁇ x L0, i0 , ⁇ y L0, i0 ) . The model can be from the block in the i th reference picture in the reference list 0, and ⁇ x and ⁇ y are set to ( ⁇ x L0, i0 , ⁇ y L0, i0 ) .
  • the motion vector in reference picture list 0 is ⁇ x L0 and ⁇ y L0
  • the motion vector is scaled to the i th reference picture in the reference list 1 as ( ⁇ x L0, i1 , ⁇ y L0, i1 ) .
  • the model can be from the block in the i th reference picture in the reference list 1, and ⁇ x and ⁇ y are set to ( ⁇ x L0, i1 , ⁇ y L0, i1 ) .
  • the inherited model parameters can be from the block in the previous coded slices/pictures.
  • the current block position is at (x, y) and the block size is w ⁇ h.
  • All values in ⁇ x and ⁇ y are positive numbers.
  • (x mid , y mid ) (x+w/2, y+h/2) .
  • the inherited model parameters can be from the block at positions (x mid ⁇ xi ⁇ w, y mid ⁇ yi ⁇ h) , , (x mid ⁇ xi ⁇ w, y mid ) , (x mid , y mid ⁇ yi ⁇ h) of the previous coded slices/picture.
  • ⁇ x ⁇ y .
  • the current block position is at (x, y) and the block size is w ⁇ h.
  • the inherited model parameters can be from the block at positions (x+ ⁇ xi ⁇ w, y+ ⁇ yi ⁇ h) , (x+ ⁇ xi ⁇ w, y- ⁇ yi ⁇ h) , (x- ⁇ xi ⁇ w, y+ ⁇ yi ⁇ h) , (x- ⁇ xi ⁇ w, y- ⁇ yi ⁇ h) , (x+ ⁇ xi ⁇ w, y) , (x- ⁇ xi ⁇ w, y) , (x, y+ ⁇ yi ⁇ h) , or (x, y- ⁇ yi ⁇ h) of the previous coded slices/picture.
  • ⁇ x ⁇ y .
  • the models from the positions closer to (x mid , y mid ) are added into the final merge candidate list first. In another embodiment, the models from the positions closer to (x, y) are added into the final merge candidate list first.
  • ⁇ x and ⁇ y be two fixed positive numbers.
  • the inherited model parameters can be from the block at positions (x mid + ⁇ xi ⁇ x, y mid + ⁇ yi ⁇ y) , (x mid + ⁇ xi ⁇ x, y mid - ⁇ yi ⁇ y) , (x mid - ⁇ xi ⁇ x, y mid + ⁇ yi ⁇ y) , (x mid - ⁇ xi ⁇ x, y mid - ⁇ yi ⁇ y) , (x mid + ⁇ xi ⁇ x, y mid ) , (x mid - ⁇ xi ⁇ x, y mid ) , (x mid , y mid + ⁇ yi ⁇ y) , or (x mid , y mid - ⁇ yi ⁇ y) of the previous coded slices/picture.
  • the current block position is at (x, y) and the block size is w ⁇ h.
  • ⁇ x and ⁇ y be two fixed positive numbers
  • the inherited model parameters can be from the block at positions (x+ ⁇ xi ⁇ x, y+ ⁇ yi ⁇ y) , (x+ ⁇ xi ⁇ x, y- ⁇ yi ⁇ y) , (x- ⁇ xi ⁇ x, y+ ⁇ yi ⁇ y) , (x- ⁇ xi ⁇ x, y- ⁇ yi ⁇ y) , (x+ ⁇ xi ⁇ x, y) , (x- ⁇ xi ⁇ x, y) , (x, y+ ⁇ yi ⁇ y) , or (x, y- ⁇ yi ⁇ y) of the previous coded slices/picture.
  • the current block position is at (x, y) and the block size is w ⁇ h.
  • the inherited model parameters can be from the block at some pre-defined positions (x′, y′) of the previous coded slices/picture. For one example, the positions are inside the corresponding area of the current encoding block, i.e., x ⁇ x′ ⁇ x+w and y ⁇ y′ ⁇ y+h.
  • the inherited model parameters can be from the block at (x, y) , (x+w-1, y) , (x, y+h-1) , (x+w-1, y+h-1) , or (x+w/2, y+h/2) .
  • the positions are outside of the corresponding area of the current encoding block, i.e., x′ ⁇ x+or x′ ⁇ x+w, and y′ ⁇ y or y′ ⁇ y+h.
  • the inherited model parameters can be from the block at (x-1, y) , (x, y-1) , (x-1, y-1) , (x+w, y) , (x+w-1, y-1) , (x+w, y-1) , (x, y+h) , (x-1, y+h-1) , (x-1, y+h) , (x+w, y+h-1) , (x+w-1, y+h) , or (x+w, y+h) .
  • the previous coded picture which the inherited parameter model is from is referred as the collocated picture hereafter.
  • the previous coded picture where the inherited parameter model is from (i.e., the collocated picture) is one of the pictures in the reference lists.
  • the collocated picture is signalled in the picture/slice header.
  • the reference list and the reference index are signalled in the picture/slice header.
  • the collocated picture is selected as L0 [0] .
  • the collocated picture is selected as L1 [0] .
  • the collocated picture is selected as the picture in the reference lists whose POC difference between the respective picture and the current picture is the smallest. For example, if the POC of current picture is 8, the POCs of pictures in reference list 0 are ⁇ 7, 6, 5, 0 ⁇ and POCs of pictures in reference list 1 are ⁇ 7, 6, 5, 4 ⁇ , then L0 [0] (equivalent to L1 [0] ) is selected since its POC difference is the smallest.
  • the picture with the smaller POC is selected.
  • the picture with the larger POC is selected.
  • the picture with smaller QP difference between the respective picture and the current picture is selected.
  • the picture with the smaller QP is selected.
  • the picture with the larger QP is selected.
  • the collocated picture is selected as the picture in the reference lists whose QP difference between the respective picture and the current picture is the smallest. For example, if the QP of current picture is 28, and the QPs of the pictures in reference list 0 are ⁇ 19, 26, 23 ⁇ and the QPs of the pictures in reference list 1 are ⁇ 23, 22, 21 ⁇ . Then L0 [1] is selected.
  • the picture with the smaller QP is selected.
  • the picture with the larger QP is selected.
  • the picture with the smaller POC distance is selected.
  • the collocated picture is selected as the picture in the reference lists whose QP is the smallest.
  • the collocated picture is selected as the picture in the reference lists whose QP is the largest.
  • the previous coded picture which the inherited parameter model is from i.e., the collocated picture
  • the collocated picture is the most recently coded I-picture.
  • the cross-component model information of the most recently coded I-slice/picture is stored in a long-term reference buffer.
  • the collocated picture and the pre-defined positions where the inherited parameter model is from is determined by the motion vector of a neighbouring block. For example, if the current block position is at (x, y) and the block size is w ⁇ h.
  • ⁇ x and ⁇ y are set to the L0 horizontal and vertical motion vectors of the neighbouring block, and the collocated picture is the L0 reference picture indicated by the L0 motion vector of the neighbouring block.
  • ⁇ x and ⁇ y are set to the L1 horizontal and vertical motion vectors of the neighbouring block, and the collocated picture is the L1 reference picture indicated by the L1 motion vector of the neighbouring block.
  • the neighbouring block is the left block of the current block.
  • the neighbouring block is the above block of the current block.
  • the pre-defined positions in the previous coded slices/pictures where the inherited parameter model is from is determined by the motion vector of a neighbouring block.
  • ⁇ x and ⁇ y be the horizontal and vertical displacements determined based on the selected motion vector of the neighbouring block
  • the current block position is at (x, y)
  • the block size is w ⁇ h.
  • the inherited model parameters can also be from the block positions in the patterns described in earlier paragraphs.
  • the inherited model parameters can be from (x 1 + ⁇ x, y 1 + ⁇ y) , (x 2 + ⁇ x, y 2 + ⁇ y) , (x 3 + ⁇ x, y 3 + ⁇ y) , ..., (x N + ⁇ x, y N + ⁇ y) , where ⁇ x and ⁇ y are the horizontal and vertical displacements determined based on the selected motion vector of the neighbouring block. For example, let the current block size be w ⁇ h.
  • the inherited model parameters can be from the block at positions (x′+ ⁇ xi ⁇ w, y′+ ⁇ yi ⁇ h) , (x′+ ⁇ xi ⁇ w, y′- ⁇ yi ⁇ h) , (x′- ⁇ xi ⁇ w, y′+ ⁇ yi ⁇ h) , (x′- ⁇ xi ⁇ w, y′- ⁇ yi ⁇ h) , (x′+ ⁇ xi ⁇ w, y′) , (x′- ⁇ xi ⁇ w, y′) , (x′, y′+ ⁇ yi ⁇ h) , or (x′, y′- ⁇ yi ⁇ h) of the previous coded slices/picture.
  • the inherited model parameters can be from the block at positions (x′+ ⁇ xi ⁇ x, y′+ ⁇ yi ⁇ y) , (x′+ ⁇ xi ⁇ x, y′- ⁇ yi ⁇ y) , (x′- ⁇ xi ⁇ x, y′+ ⁇ yi ⁇ y) , (x′- ⁇ xi ⁇ x, y′- ⁇ yi ⁇ y) , (x′+ ⁇ xi ⁇ x, y′) , (x′- ⁇ xi ⁇ x, y′) , (x′, y′+ ⁇ yi ⁇ y) , or (x′, y′- ⁇ yi ⁇ y) of the previous coded slices/picture.
  • the inherited model parameters can be from the block at some pre-defined positions relative to (x′, y′) of the previous coded slices/picture.
  • the positions can be (x′, y′) , (x′+w-1, y′) , (x′, y′+h-1) , (x′+w-1, y′+h-1) , or (x′+w/2, y′+h/2) .
  • the positions can be (x′-1, y′) , (x′, y′-1) , (x′-1, y′-1) , (x′+w, y′) , (x′+w-1, y′-1) , (x′+w, y′-1) , (x′, y′+h) , (x′-1, y′+h-1) , (x′-1, y′+h) , (x′+w, y′+h-1) , (x′+w-1, y′+h) , or (x′+w, y′+h) .
  • the neighbouring block can be at a pre-defined position.
  • the position can be at the A 0 position as depicted in Fig. 8.
  • the pre-defined position can also be at A 1 , B 0 , B 1 , B 2 . If the block at the pre-defined position is not an inter block, no neighbouring block is selected.
  • the neighbouring block when selecting the neighbouring block, there can be a list of pre-defined positions.
  • the positions are placed according to the checking order.
  • the positions can be B 0 , A 0 , B 1 , A 1 and B 2 as depicted in Fig. 8.
  • the selected neighbouring block can be the first position in the list that is an inter block.
  • the L0 motion vector is selected. If the L0 motion vector is not available, select the L1 motion vector. For another example, the L1 motion vector is selected. If the L1 motion vector is not available, select the L0 motion vector
  • the positions in the list of pre-defined positions are checked in the pre-defined checking order.
  • the selected motion vector is the first whose reference picture is the collocated picture.
  • the positions can be B 0 , A 0 , B 1 , A 1 and B 2 as depicted in Fig. 8.
  • the L0 motion vector is first checked, and then the L1 motion vector.
  • the checking order is (B 0 , L 0 ) , (B 0 , L 1 ) , (A 0 , L 0 ) , (A 0 , L 1 ) , ..., (B 2 , L 1 ) .
  • the L1 motion vector is first checked, and then the L0 motion vector.
  • the inherited model parameters can also be from the block positions in the patterns described in earlier paragraphs.
  • the horizontal and vertical displacements ⁇ x and ⁇ y are determined based on the selected motion vector of the neighbouring block. For example, if the reference picture of the selected motion vector and the collocated picture are the same picture, ⁇ x equals to the horizontal part of the selected motion vector and ⁇ y equals to the vertical part of the selected motion vector.
  • ⁇ x equals to the horizontal part of the selected motion vector after rounding
  • ⁇ y equals to the vertical part of the selected motion vector after rounding.
  • the rounding method used can be but not limited to the following methods: rounding toward negative infinity, rounding toward positive infinity, rounding toward zero, or rounding to the nearest integer (e.g., rounding away from zero, rounding half up, rounding half down, ...) .
  • the reference picture of the selected motion vector and the collocated picture are not the same.
  • the reference picture can be one of the pictures in the reference list, while the collocated picture is signalled in the picture/slice header.
  • the selected motion vector be (mv_x, mv_y) .
  • ⁇ x mv_x * (td/tb)
  • ⁇ y mv_y * (td/tb) .
  • ⁇ x equals to mv_x * (td/tb) after rounding or the horizontal part of the selected motion vector after rounding and ⁇ y equals to mv_y * (td/tb) after rounding or the vertical part of the selected motion vector after rounding.
  • the rounding method used can be, but not limited to, the following methods: rounding toward negative infinity, rounding toward positive infinity, rounding toward zero, or rounding to the nearest integer (e.g., rounding away from zero, rounding half up, rounding half down, ...) .
  • the inherited model parameters are derived by using the luma and chroma reconstruction samples of the collocated block.
  • the collocated block is a block positioned at (x’, y’) in the collocated picture with block size w ⁇ h, when the inherited model is from position (x’, y’) .
  • the collocated block can be a block positioned at (x’, y’) in the collocated picture with block size m ⁇ n, where m and n are fixed positive values.
  • the collocated block can be at (x, y) .
  • the collocated block can be at (x+ ⁇ x, y+ ⁇ y) in the collocated picture.
  • (x’, y’) can be the block positions in the patterns described in earlier paragraphs.
  • (x’, y’) can be (x+ ⁇ xi ⁇ w, y+ ⁇ yi ⁇ h) , (x+ ⁇ xi ⁇ w, y- ⁇ yi ⁇ h) , (x- ⁇ xi ⁇ w, y+ ⁇ yi ⁇ h) , (x- ⁇ xi ⁇ w, y- ⁇ yi ⁇ h) , (x+ ⁇ xi ⁇ w, y) , (x- ⁇ xi ⁇ w, y) , (x, y+ ⁇ yi ⁇ h) , or (x, y- ⁇ yi ⁇ h) .
  • the cross-component parameter model can be inherited from more than one previous coded picture.
  • the cross-component parameter model can be inherited from any picture in a picture set, which contains N previous coded pictures.
  • An index can be signalled/parsed in the bitstream to indicate the selected picture. The index ranges from 0 to N-1.
  • the picture whose POC difference between itself and the current picture is smaller is associated with the smaller index.
  • the picture whose QP difference between itself and the current picture is smaller is associated with the smaller index.
  • the picture whose QP is smaller is associated with the smaller index.
  • the picture whose QP is larger is associated with the smaller index.
  • the inherited model parameters can be from blocks that are non-adjacent spatial neighbouring blocks.
  • the models from blocks at pre-defined positions are added into the candidate list in a pre-defined order.
  • the pre-defined positions and the pre-defined order are the same as those of non-adjacent spatial neighbouring candidates for inter merge mode.
  • the pre-defined positions and the pre-defined order are as depicted in Fig. 10A and Fig. 10B.
  • the positions of the numbered squares are the pre-defined positions.
  • the number inside each square indicates the pre-defined order.
  • Positions in Pattern 1 (1010) is added into the list before positions in Pattern 2 (1020) .
  • the distance between each pre-defined positions are proportional to the width and height of the current block.
  • the inherited model parameters can be from the positions determined by x’ and y’.
  • the inherited model parameters can be from the block at positions (x′+ ⁇ xi ⁇ w, y′+ ⁇ yi ⁇ h) , (x′+ ⁇ xi ⁇ w, y′- ⁇ yi ⁇ h) , (x′- ⁇ xi ⁇ w, y′+ ⁇ yi ⁇ h) , (x′- ⁇ xi ⁇ w, y′- ⁇ yi ⁇ h) , (x′+ ⁇ xi ⁇ w, 0) , (x′- ⁇ xi ⁇ w, 0) , (0, y′+ ⁇ yi ⁇ h) , (0, y′- ⁇ yi ⁇ h) , (x′+ ⁇ xi ⁇ w
  • the inherited model parameters can be from the block at positions (x′+ ⁇ xi ⁇ x, y′+ ⁇ yi ⁇ y) , (x′+ ⁇ xi ⁇ x, y′- ⁇ yi ⁇ y) , (x′- ⁇ xi ⁇ x, y′+ ⁇ yi ⁇ y) , (x′- ⁇ xi ⁇ x, y′- ⁇ yi ⁇ y) , (x′+ ⁇ xi ⁇ x, 0) , (x′- ⁇ xi ⁇ x, 0) , (0, y′+ ⁇ yi ⁇ y) , (0, y′- ⁇ yi ⁇ y) , (x′+ ⁇ xi ⁇ x, y′) , (x′- ⁇ xi ⁇ x, y′) , (x′, y′+ ⁇ yi ⁇ y) , (x′+ ⁇ xi ⁇ x, y′) ,
  • the inherited model parameters can be from the block at some pre-defined positions relative to (x′, y′) of the previous coded slices/picture.
  • the positions can be (x′, y′) , (x′+w-1, y′) , (x′, y′+h-1) , (x′+w-1, y′+h-1) , or (x′+w/2, y′+h/2) .
  • the positions can be (x′-1, y′) , (x′, y′-1) , (x′-1, y′-1) , (x′+w, y′) , (x′+w-1, y′-1) , (x′+w, y′-1) , (x′, y′+h) , (x′-1, y′+h-1) , (x′-1, y′+h) , (x′+w, y′+h-1) , (x′+w-1, y′+h) , or (x′+w, y′+h) .
  • the position can be (x’, y’) , (x’, y’ + h/2) , (x’ + w/2, y’) , (x’ + w/2, y’ + h/2) , (x’ + w, y’) , (x’, y’ + h) , or (x’ + w, y’ + h) .
  • ⁇ x and ⁇ y can be set according to the horizontal and vertical block vectors of the current block. For example, ⁇ x and ⁇ y can be equal to the horizontal and vertical block vectors of the current block.
  • ⁇ x and ⁇ y can be set according to the horizontal and vertical block vectors of a neighbouring block.
  • ⁇ x and ⁇ y can be equal to the horizontal and vertical block vectors of a neighbouring block.
  • the inherited model parameters can be from a cross-component model history table.
  • the history table stores CCM information of valid previous coded blocks.
  • the valid previous coded block refers to any blocks containing valid CCM information.
  • the cross-component models in the history table can be added into the candidate list according to a pre-defined order.
  • the adding order of historical candidates can be from the beginning of the table to the end of the table. In another embodiment, the adding order of historical candidates can be from the end of the table to the beginning of the table.
  • one cross-component model history table can be maintained for storing the previous cross-component model (i.e., CCM information) , and the cross-component model history table can be reset at the start of the current picture, current slice, current tile, every M CTU rows or every N CTUs, where N and M can be any value greater than 0.
  • the cross-component model history table can be reset at the end of the current picture, current slice, current tile, current CTU row or current CTU.
  • multiple history tables are used for storing different types of cross-component models.
  • the first history table is used for storing single model
  • the second history table is used for storing multi-model.
  • the first history table is used for storing gradient model
  • the second history table is used for storing non-gradient model.
  • the second history table is used for storing complicated model (e.g., CCCM) .
  • the adding order can be from the beginning of to the end of a certain table, and then the next history table is added in the same order or in a reversed order.
  • Fusion mode refers to a mode that fuses two predictions to generate the final prediction.
  • a chroma intra prediction that is not generated using a cross-component prediction (CCP) coding tool e.g., CCLM, MMLM, CCCM
  • CCP cross-component prediction
  • a non-CCLM coded intra prediction and a CCLM coded intra prediction are fused together to obtain the final intra prediction.
  • the model parameters for obtaining the CCP coded intra prediction are inherited and further refined.
  • the coding mode of non-CCP coded intra prediction are also inherited. That is, the chroma intra fusion mode is inherited.
  • the candidate list is constructed by adding candidates in a pre-defined order until the maximum candidate number is reached.
  • the candidates added can include all or some of the aforementioned candidates, but not limited to the aforementioned candidates.
  • the pre-defined order can be spatial adjacent candidates, temporal candidates, spatial non-adjacent candidates, historical candidates, and then default candidates.
  • the default candidates can be CCLM models.
  • the scaling parameter ⁇ is from the set ⁇ 0, 1/8, -1/8, +2/8, -2/8, +3/8, -3/8, +4/8, -4/8, ..., +N/8, -N/8 ⁇ , where N is a positive integer.
  • the inclusion order of the default candidates can depend on the absolute value and the sign of the scaling parameter ⁇ .
  • a default candidate can be an earlier candidate with a delta scaling parameter refinement.
  • the earlier candidate is a CCLM model.
  • the scaling parameter of an earlier candidate is ⁇
  • the scaling parameter of a default candidate is ( ⁇ + ⁇ ) .
  • can be 1/8, -1/8, +2/8, -2/8, +3/8, -3/8, +4/8, -4/8, ..., +N/8, -N/8, where N is a positive integer.
  • the offset parameter ⁇ can be derived based on ( ⁇ + ⁇ ) and the average values of neighbouring luma and chroma samples of the current block.
  • the earlier candidate is the first CCLM candidate added into the list.
  • the inclusion order of the default candidates can depend on the absolute value and the sign of the refinement ⁇ .
  • the candidates in the list can be reordered to reduce the syntax overhead when signalling the selected candidate index.
  • the reordering rules can depend on the coding information of neighbouring blocks or the model error. For example, if neighbouring above or left blocks are coded by MMLM, the MMLM candidates in the list can be moved to the head of the current list. Similarly, if neighbouring above or left blocks are coded by single model LM or CCCM, the single model LM or CCCM candidates in the list can be moved to the head of the current list. Similarly, if GLM is used by neighbouring above or left blocks, the GLM related candidates in the list can be moved to the head of the current list.
  • the reordering rule is based on the model error by applying the candidate model to the neighbouring templates of the current block, and then compare the error with the reconstructed samples of the neighbouring template. For example, as shown in Fig. 11, the size of above neighbouring template of the current block is w a ⁇ h a , and the size of left neighbouring template of the current block is w b ⁇ h b .
  • K models are in the current candidate list, and ⁇ k and ⁇ k are the final scale and offset parameters after inheriting the candidate k.
  • the model error of candidate k corresponding to the above neighbouring template is:
  • the candidate k uses CCCM prediction, the and are defined as:
  • c0 k , c1 k , c2 k , c3 k , c4 k , c5 k , and c6 k are the final filtering coefficients after inheriting the candidate k.
  • P and B are the nonlinear term and bias term.
  • the maximum allowed candidate number can be signalled to indicate the maximum size of the merge candidate list.
  • the number can be signalled per CU/CB, per PU, per TU/TB, or per colour component, or per chroma colour component.
  • a high level syntax can be signalled in SPS, PPS, PH or SH to indicate if the proposed method is allowed for the current sequence, picture, or slice.
  • the maximum allowed candidate number of the proposed method can be shared with the maximum allowed candidate number for inter merge mode.
  • the cross-component model can be inherited from neighbouring blocks, as described in earlier sub-sections under Section entitled “Inheriting neighbouring model parameters for refining the cross-component model parameters” . All or any subset of the model parameters can be saved. If the following coding block is intra, the following block is allowed to use the saved model parameters. If the following coding block is inter or any mode-type (e.g. IBC) , the following block is allowed to use the saved model parameters.
  • IBC mode-type
  • the prediction by non-cross-component coding tool can be predefined or signalled.
  • the prediction by non-cross-component coding tool is chroma DM or chroma DIMD.
  • prediction by non-cross-component coding tool is signalled, but the index of cross-component model candidate is predefined or determined by neighbouring blocks coding mode.
  • neighbouring blocks if at least one of neighbouring spatial blocks is coded with CCCM mode, the first candidate has CCCM model parameters is selected. If at least one of neighbouring spatial blocks is coded with GLM mode, the first candidate has GLM pattern parameters is selected. Similarly, if at least one of neighbouring spatial blocks is coded with MMLM mode, the first candidate has MMLM parameters is selected.
  • any of the foregoing proposed methods of generating inter predictor for the chroma component by applying a cross-component model to reconstructed luma samples can be implemented in encoders and/or decoders.
  • 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.
  • any of the proposed methods can be implemented as circuits 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
  • the method of generating inter predictor for the chroma component by applying a cross-component model to reconstructed luma samples can be implemented in an encoder side or a decoder side.
  • any of the proposed c method can be implemented in an Intra/Inter coding module (e.g. Intra Pred. 150/MC 152 in Fig. 1B) in a decoder or an Intra/Inter coding module in an encoder (e.g. Intra Pred. 110/Inter Pred. 112 in Fig. 1A) .
  • Any of the proposed candidate derivation method can also be implemented as a circuit coupled to the intra/inter coding module at the decoder or the encoder.
  • the decoder or encoder may also use additional processing unit to implement the required cross-component prediction processing.
  • Intra Pred. units e.g. unit 110/112 in Fig. 1A and unit 150/152 in Fig. 1B
  • the Intra Pred. units are shown as individual processing units, they may correspond to executable software or firmware codes stored on a media, such as hard disk or flash memory, for a CPU (Central Processing Unit) or programmable devices (e.g. DSP (Digital Signal Processor) or FPGA (Field Programmable Gate Array) ) .
  • DSP Digital Signal Processor
  • FPGA Field Programmable Gate Array
  • Fig. 12 illustrates a flowchart of an exemplary video coding system that generates inter predictor for the chroma component by applying a cross-component model to reconstructed luma samples 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.
  • 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.
  • 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.
  • 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A method and apparatus for coding colour pictures using coding tools including one or more cross component models related modes are disclosed. According to this method, input data associated with a current block comprising a first-colour block and a 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, and wherein the current block is coded in a non-intra mode. A cross-component model for the current block is determined. A target cross-component predictor is derived by applying the cross-component model to reconstructed first-colour samples. The second-colour block is encoded or decoded by using prediction data comprising the target cross-component predictor.

Description

METHODS AND APPARATUS OF INHERITING CROSS-COMPONENT MODELS FROM NON-INTRA CODED BLOCKS FOR CROSS-COMPONENT PREDICTION MERGE MODE
CROSS REFERENCE TO RELATED APPLICATIONS
The present invention is a non-Provisional Application of and claims priority to U.S. Provisional Patent Application No. 63/511,920, filed on July 5, 2023. The U.S. Provisional Patent Application is hereby incorporated by reference in its entirety.
FIELD OF THE INVENTION
The present invention relates to video coding. In particular, the present invention relates to inter prediction for chroma component by applying a cross-component model to reconstructed luma samples.
BACKGROUND AND RELATED ART
Versatile video coding (VVC) is the latest international video coding 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.
Fig. 1A illustrates an exemplary adaptive Inter/Intra video encoding system incorporating loop processing. For Intra Prediction 110, 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.
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.
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.
I. Related Art
I. 1 Intra Chroma Partitioning and Prediction Restriction
In typical hardware video encoders and decoders, processing throughput drops when a picture has smaller intra blocks because of sample processing data dependency between neighbouring intra blocks. The predictor generation of an intra block requires top and left boundary reconstructed samples from neighbouring blocks. Therefore, intra prediction has to be sequentially processed block by block.
In HEVC, the smallest intra CU is 8x8 luma samples. The luma component of the smallest intra CU can be further split into four 4x4 luma intra prediction units (PUs) , but the chroma components of the smallest intra CU cannot be further split. Therefore, the worst case hardware processing throughput occurs when 4x4 chroma intra blocks or 4x4 luma intra blocks are processed. In VVC, in order to improve worst case throughput, chroma intra CBs smaller than 16 chroma samples (e.g. size 2x2, 4x2, and 2x4) and chroma intra CBs with width smaller than 4 chroma samples (size 2xN) are disallowed by constraining the partitioning of chroma intra CBs.
In a single coding tree, a smallest chroma intra prediction unit (SCIPU) is defined as a coding tree node whose chroma block size is larger than or equal to 16 chroma samples and has at least one child luma block smaller than 64 luma samples, or a coding tree node whose chroma block size is not 2xN and has at least one child luma block with 4xN luma samples. It is required that in each SCIPU, all CBs are inter, or all CBs are non-inter, i.e, either intra or intra block copy (IBC) . In case of a non-inter SCIPU, it is further required that the chroma block of the non-inter SCIPU shall not be further split and the luma block of the SCIPU is allowed to be further split. In this way, the small chroma intra CBs with size less than 16 chroma samples or with size 2xN are removed. In addition, chroma scaling is not applied in case of a non-inter SCIPU. Here, no additional syntax is signalled, and whether a SCIPU is non-inter can be derived by the prediction mode of the first luma CB in the SCIPU. The type of a SCIPU is inferred to be non-inter if the current slice is an I-slice or the current SCIPU has a 4x4 luma partition in it after further split one time (because no inter 4x4 is allowed in VVC) ; otherwise, the type of the SCIPU (inter or non-inter) is indicated  by one flag before parsing the CUs in the SCIPU.
For the dual tree in intra picture, the 2xN intra chroma blocks are removed by disabling vertical binary and vertical ternary splits for 4xN and 8xN chroma partitions, respectively. The small chroma blocks with size 2x2, 4x2, and 2x4 are also removed by partitioning restrictions.
In addition, a restriction on picture size is considered to avoid 2x2/2x4/4x2/2xN intra chroma blocks at the corner of pictures by considering the picture width and height to be multiple of max (8, MinCbSizeY) .
I. 2 Cross-Component Linear Model Prediction
A cross-component linear model (CCLM) prediction mode is used in the VVC, for which the chroma samples are predicted based on the reconstructed luma samples of the same CU by using a linear model as follows:
predC (i, j) =α·recL′ (i, j) + β            (1)
where predC (i, j) represents the predicted chroma samples in a CU and recL (i, j) represents the downsampled reconstructed luma samples of the same CU.
In this disclosure, the terms {CCLM_LT, CCLM_L, CCLM_T} and {CCLM_LA, CCLM_L, CCLM_A} and {LM_LA, LM_L, LM_A} are used interchangeably.
The CCLM parameters (α and β) are derived with at most four neighbouring chroma samples and their corresponding down-sampled luma samples. Suppose the current chroma block dimensions are W×H, then W'’ and H’ are set as:
-W’ = W, H’ = H when LM_LA mode is applied;
-W’ =W + H when LM_A mode is applied; and
-H’ = H + W when LM_L mode is applied.
The above neighbouring positions are denoted as S [0, -1] …S [W’ -1, -1] and the left neighbouring positions are denoted as S [-1, 0] , …, S [-1, H’ -1] . Then the four samples are selected as:
-S [W’ /4, -1] , S [3 *W’ /4, -1] , S [-1, H’ /4] , S [-1, 3 *H’ /4] when LM_LA mode is applied and both above and left neighbouring samples are available;
-S [W’ /8, -1] , S [3 *W’ /8, -1] , S [5 *W’ /8, -1] , S [7 *W’ /8, -1] when LM_A mode is applied or only the above neighbouring samples are available; and
-S [-1, H’ /8] , S [-1, 3 *H’ /8] , S [-1, 5 *H’ /8] , S [-1, 7 *H’ /8] when LM_L mode is applied or only the left neighbouring samples are available.
The four neighbouring luma samples at the selected positions are down-sampled and compared four times to find two larger values: x0 A and x1 A, and two smaller values: x0 B and x1 B. Their corresponding chroma sample values are denoted as y0 A, y1 A, y0 B and y1 B. Then xA, xB, yA and yB are derived as:
Xa= (x0 A + x1 A +1) >>1; Xb= (x0 B + x1 B +1) >>1; Ya= (y0 A + y1 A +1) >>1; Yb= (y0 B + y1 B +1) >>1   (2)
Finally, the linear model parameters α and β are obtained according to the following equations.

β=Yb-α·Xb            (4)
Fig. 2 shows an example of the location of the left and above samples and the sample of the current block involved in the LM_LA mode.
Besides the above template and left template can be used to calculate the linear model coefficients together, they also can be used alternatively in the other 2 LM modes, called LM_A, and LM_L modes.
In LM_A mode, only the above template is used to calculate the linear model coefficients. To get more samples, the above template is extended to (W+H) samples. In LM_L mode, only left template is used to calculate the linear model coefficients. To get more samples, the left template is extended to (H+W) samples.
In LM_LA mode, left and above templates are used to calculate the linear model coefficients.
I. 3 Multiple Model CCLM (MMLM)
In the JEM (J. Chen, E. Alshina, G. J. Sullivan, J. -R. Ohm, and J. Boyce, Algorithm Description of Joint Exploration Test Model 7, document JVET-G1001, ITU-T/ISO/IEC Joint Video Exploration Team (JVET) , Jul. 2017) , multiple model CCLM mode (MMLM) is proposed for using two models for predicting the chroma samples from the luma samples for the whole CU. In MMLM, neighbouring luma samples and neighbouring chroma samples of the current block are classified into two groups, each group is used as a training set to derive a linear model (i.e., a particular α and β are derived for a particular group) . Furthermore, the samples of the current luma block are also classified based on the same rule for the classification of neighbouring luma samples.
Fig. 3 shows an example of classifying the neighbouring samples into two groups. Threshold is calculated as the average value of the neighbouring reconstructed luma samples. A neighbouring sample with Rec′L [x, y] <= Threshold is classified into group 1; while a neighbouring sample with Rec′L [x, y] > Threshold is classified into group 2.
I. 4 Convolutional Cross-Component Model (CCCM)
In CCCM, a convolutional model is applied to improve the chroma prediction performance. The convolutional model has 7-tap filter consisting 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. 4.
The nonlinear term (denoted as 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.
That is, for 10-bit content it is calculated as:
P = (C*C + 512) >> 10.
The bias term (denoted as B) represents a scalar offset between the input and output (similarly to the offset term in CCLM) and is set to the middle chroma value (512 for 10-bit content) .
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.
I. 5 Gradient Linear Model (GLM)
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.
Compared with the CCLM, instead of down-sampled luma values, the GLM utilizes luma sample gradients to derive the linear model. Specifically, when the 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+β.
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·β
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 for the gradient calculation.
Four gradient filters (510-540) are enabled for the GLM, as illustrated in Fig. 5.
I. 6 Cross-Component Residual Model (CCRM)
As in JVET-AD0108 (Pekka Astola, et. al., “AHG12: Cross-component residual model (CCRM) for inter prediction” , Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29, 30th Meeting, Antalya, TR, 21–28 April 2023, Document: JVET-AD0108) , it is to apply cross-component residual model (CCRM) to predict chroma samples from reconstructed luma samples when the block uses inter prediction or intra block copy (IBC) . The following figure illustrates the decoder side of the method. The cross-component filters are derived using the prediction signals of luma and chroma. The derived filters are applied to the reconstructed luma signal producing the final chroma predictions. The input to the filter consists of 6 spatial luma samples, a non-regression-model term, and a bias term. Filter coefficients are derived in step 620 for each block separately using the prediction signals (i.e., predY 610, predCb 612 and predCr 614) and the filters are applied to the reconstructed luma signal in step 630 as shown in Fig. 6. The reconstructed luma signal is formed by combining the luma prediction (PredY) 610 and residual luma signal (resY) using an adder 622. After applying the filters, the step 630 generates filtered-predicted Cb 640 and filtered-predicted Cr 650. The reconstructed Cb signal is formed by combining the filtered-predicted Cb 640 and residual Cb signal (i.e., resCb) using an adder 642. Similarly, the reconstructed Cr signal is formed by combining the filtered-predicted Cr 650 and residual Cr signal (i.e., resCr) using an adder 652.
I. 6.1 Convolutional Filter and Calculation of Filter Coefficients
The proposed 8-tap filter consist of 6 spatial luma samples, a nonlinear term, and a bias term. The spatial luma samples (L0, …, L5) are obtained from the luma grid selecting the 6 luma samples closest to the chroma position C without down sampling as shown in Fig. 7. The predicted chroma value is obtained as,
predChromaVal = c0 L0+ c1L1 + c2L2 + c3L3 + c4L4 + c5L5 + c6 nonlinear ( (L0+L3+1) >> 1) 
+ c7 B,
where nonlinear is CCCM’s nonlinear operator and B is bias.
The filter coefficients are derived using ECM’s division-free Gaussian elimination method and the necessary offsets are applied to samples prior to filter derivation.
Intra reference samples are used as additional input samples in filter derivation when the block has less than 64 chroma samples. CCCM’s design of at most 6 rows and columns of intra reference samples is used.
Blocks having 256 chroma samples or more are divided into subblocks that have at most 256 chroma samples. Subblocks containing zero luma residual are skipped.
In order to improve the coding efficiency for inter prediction of chroma component, methods and apparatus of generating inter predictor for the chroma component by applying a cross-component model to reconstructed luma samples are disclosed.
BRIEF SUMMARY OF THE INVENTION
A method and apparatus for coding colour pictures using coding tools including one or more cross component models related modes are disclosed. According to this method, input data associated with a current block comprising a first-colour block and a 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, and wherein the current block is coded in a non-intra mode. A cross-component model for the current block is determined. A target cross-component predictor is derived by applying the cross-component model to reconstructed first-colour samples. The second-colour block is encoded or decoded by using prediction data comprising the target cross-component predictor.
In one embodiment, the cross-component model for the current block is stored, referenced by following coding blocks, or both. In one embodiment, all model parameters of the cross-component model are stored. In another embodiment, a subset of model parameters of the cross-component model is stored. In one embodiment, if a target following coding block is coded in an intra mode, the target following coding block is allowed to use the cross-component model stored. In one embodiment, if a target following coding block is coded in the non-intra mode, the target following coding block is allowed to use the cross-component model stored.
In one embodiment, the cross-component model is derived from reconstructed first-colour samples and reconstructed second-colour samples. In one embodiment, the reconstructed first-colour samples and the reconstructed second-colour samples are from regions indicated by a motion vector or a block vector.
In one embodiment, the cross-component model is derived based on CCRM (Cross-Component Residual Model) .
In one embodiment, the cross-component model is inherited from a neighbouring block. In one embodiment, the neighbouring block corresponds to a spatial neighbouring block or a temporal neighbouring block.
In one embodiment, different cross-component models associated with blocks coded in different modes are stored in different buffers. In one embodiment, a first cross-component model associated with intra-coded blocks and a second cross-component model associated with inter-coded blocks are stored in two different buffers.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1A illustrates an exemplary adaptive Inter/Intra video encoding system incorporating loop processing.
Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.
Fig. 2 illustrates an example of sample locations used for deriving α and β of the cross-component model.
Fig. 3 illustrates an example of classifying the neighbouring samples into two groups for  MMLM.
Fig. 4 illustrates the spatial part of the convolutional filter.
Fig. 5 shows 4 gradient patterns for GLM.
Fig. 6 illustrates a system block diagram for CCRM decoder.
Fig. 7 illustrates the six luma samples L0, ..., L5 in relation to the chroma sample C.
Fig. 8 illustrates the 5 neighbouring blocks used for deriving spatial merge candidates for VVC.
Fig. 9 illustrates an example of inheriting temporal neighbouring model parameters.
Figs. 10A-B illustrates two search patterns for inheriting non-adjacent spatial neighbouring models.
Fig. 11 illustrates an example of the neighbouring templates for calculating model error for reordering the candidates.
Fig. 12 illustrates a flowchart of an exemplary video coding system that generates inter predictor for the chroma component by applying a cross-component model to reconstructed luma samples according to an embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
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.
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.
The following methods are proposed to improve the cross-component prediction accuracy or coding performance by generating inter predictor for the chroma component by applying a cross-component model to reconstructed luma samples.
II. Proposed Method
II. 1 Inheriting Neighbouring Model Parameters for Refining the Cross-Component Model Parameters
When applying cross-component prediction coding tool on the current block to generate prediction signals, the cross-component model (CCM) information (more details in section entitled:  “Inheriting CCM information” ) including model parameters can be inherited from neighbouring blocks.
In one embodiment, if the inherited neighbouring block is coded in CCLM mode, the final scaling parameter of the current block is inherited from the neighbouring blocks. Once the final scaling parameter is determined, the offset parameter (e.g., β in CCLM) is derived based on the inherited scaling parameter and/or the average value of neighbouring luma and chroma samples of the current block.
In one embodiment, if the inherited neighbour block is coded in CCLM mode, after inheriting model parameters, the offset parameter can be inherited or can be further refined by dB. For example, if the final offset parameter is inherited from a selected neighbouring block, and the inherited offset parameter is β′nei, then the final scaling parameter is (β′nei + dB) . dB can be zero.
In one embodiment, if the inherited neighbour block is coded with CCCM, the filter coefficients (ci) are inherited. The offset parameter (e.g., c6×B or c6 in CCCM) can be re-derived based on the inherited parameter and the average value of neighbouring corresponding position luma and chroma samples of the current block.
In one embodiment, if the inherited neighbour block is coded with CCCM, the filter coefficients (ci) are inherited. The offset parameter (e.g., c6×B or c6 in CCCM) is also inherited and is not re-derived.
In one embodiment, if the inherited candidate applies GLM gradient pattern to its luma reconstruction samples, the current block shall also inherit the GLM gradient pattern of the candidate and apply to the current luma reconstruction samples.
II. 2 Inheriting CCM Information
In one embodiment, the cross-component model (CCM) information of inherited cross-component model can be stored together with the inherited model parameters. The CCM information can be inherited together with the inherited model parameters. The prediction of the current block can be generated based on the inherited CCM information and inherited model parameters. The CCM information can include but not limited to prediction mode (e.g., CCLM, MMLM, CCCM, 2-parameter GLM, 3-parameter GLM) , model index for indicating which model shape is used in convolutional model, classification threshold for multi-model, information to indicate that non-downsampled samples are used in convolutional model, down-sampling filter flag, down-sampling filtering index when multiple down-sampling filters are used, number of neighbouring lines used to derive model, types of templates used to derive model, post-filtering flag and model parameters.
In one embodiment, a mixed CCCM model consisting of various terms (e.g., spatial term, gradient term, location term, non-linear term and bias term) can be inherited. In addition to storing model parameters, a prediction mode can be stored in the CCM information to indicate that the inherited model is a mixed CCCM model consisting of various terms. If there are multiple types of mixed CCCM models, a model index can also be stored in the CCM information to indicate which type of mixed CCCM model is inherited. For example, gradient and location based CCCM (GL-CCCM) proposed in JVET-AB0119 (Ramin G. Youvalari, et al., “Non-EE2: Gradient and location based convolutional cross-component model (GL-CCCM) for intra prediction” , Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 28th Meeting, Mainz, DE, 20–28 October 2022, Document: JVET-AB0119) is a mixed CCCM model which consists of one spatial term in centre position, two gradient terms for the horizontal direction and vertical direction, two location terms X and Y for the relative horizontal location and relative vertical location, one non-linear term and one bias term. A prediction mode can be stored in the CCM information to indicate that the inherited model is a GL-CCCM model.
II. 3 Inheriting Spatial Neighbouring Model Parameters
In one embodiment, the inherited model parameters can be from a block that is an immediate neighbouring block. The models from blocks at pre-defined positions are added into the candidate list in a pre-defined order.
In one embodiment, the pre-defined positions and the pre-defined order can be the same as those of spatial candidates for inter merge mode.
In one embodiment, the pre-defined positions can be the positions depicted in Fig. 8. The pre-defined order can be B0, A0, B1, A1 and B2.
In one embodiment, assume the position, width and height of the current block are (x, y) , W and H respectively, the pre-defined positions can include positions immediate above the current block, such as (x + W >> 1, y-1) or (x + (W+1) >> 1, y-1) , if W is greater than or equal to a threshold TH. The pre-defined positions can also include positions immediate left to the current blocks, such as (x-1, y+H>>1) or (x-1, y+ (H+1) >>1) , if H is greater than or equal to a threshold TH. TH can be 2, 4, 8, 16, 32, or 64.
In one embodiment, there is a maximum number of inherited models from spatial neighbours that can be added into the candidate list, and the maximum number is smaller than the number of pre-defined positions.
II. 4 Inheriting Temporal Neighbouring Model Parameters
In one embodiment, if the current slice/picture is a non-intra slice/picture, the inherited model parameters can be from the block in the previous coded slices/pictures.
In one embodiment, if the current slice/picture is a non-intra slice/picture, the inherited model parameters can be from the block in the previous coded slices/pictures. For example, as shown in Fig. 9, the current block position is at (x, y) and the block size is w×h. The inherited model parameters can be from the block at position (x’, y’) , (x’, y’ + h/2) , (x’ + w/2, y’) , (x’ + w/2, y’ + h/2) , (x’ + w, y’) , (x’, y’ + h) , or (x’ + w, y’ + h) of the previous coded slices/picture, where x’ = x + Δx and y’ = y + Δy. In one embodiment, if the prediction mode of the current block is intra, Δx and Δy are set to 0. If the prediction mode of the current block is inter, Δx and Δy are set to the horizontal and vertical motion vectors of the current block. In one embodiment, if the current block is inter bi-prediction, Δx and Δy are set to the horizontal and vertical motion vectors in reference picture list 0. In one embodiment, if the current block is inter bi-prediction, Δx and Δy are set to the horizontal and vertical motion vectors in reference picture list 1.
In one embodiment, if the current block is inter bi-prediction, the inherited model parameters can be from the block in the previous coded slices/pictures in the reference lists. For example, if the horizontal and vertical motion vectors in reference picture list 0 is ΔxL0 and ΔyL0, the motion vector can be scaled to other reference pictures in the reference list 0 and 1. If the motion vector is scaled to the ith reference picture in the reference list 0 as (ΔxL0, i0, ΔyL0, i0) . The model can be from the block in the ith reference picture in the reference list 0, and Δx and Δy are set to (ΔxL0, i0, ΔyL0, i0) . For another example, if the horizontal and vertical motion vectors in reference picture list 0 is ΔxL0 and ΔyL0, the motion vector is scaled to the ith reference picture in the reference list 1 as (ΔxL0, i1, ΔyL0, i1) . The model can be from the block in the ith reference picture in the reference list 1, and Δx and Δy are set to (ΔxL0, i1, ΔyL0, i1) .
In one embodiment, if the current slice/picture is a non-intra slice/picture, the inherited model parameters can be from the block in the previous coded slices/pictures. In one embodiment, the current block position is at (x, y) and the block size is w×h. The two value sets αx and αy are defined as:
αx= {αx1, αx2, αx3, …, αxn} , αxixj if i<j
αy= {αy1, αy2, αy3, …, αyn} , αyiyj if i<j
All values in αx and αy are positive numbers. Let (xmid, ymid) = (x+w/2, y+h/2) . The inherited model parameters can be from the block at positions (xmid±αxi×w, ymid±αyi×h) , , (xmid±αxi×w, ymid) , (xmid, ymid±αyi×h) of the previous coded slices/picture.
In one sub-embodiment, αx= αy. For example, αxy= {1, 2, 3, 4, 5} .
In another sub-embodiment, αx≠ αy. For example, α_x= {1/2, 1, 3/2, 2, 5/2} and αy= {1, 2, 3, 4, 5} .
In another embodiment, the current block position is at (x, y) and the block size is w×h. The inherited model parameters can be from the block at positions (x+αxi×w, y+αyi×h) , (x+αxi×w, y-αyi×h) , (x-αxi×w, y+αyi×h) , (x-αxi×w, y-αyi×h) , (x+αxi×w, y) , (x-αxi×w, y) , (x, y+αyi×h) , or (x, y-αyi×h) of the previous coded slices/picture.
In one sub-embodiment, αx= αy. For example, αxy= {1, 2, 3, 4, 5} .
In another sub-embodiment, αx≠ αy. For example, α_x= {1/2, 1, 3/2, 2, 5/2} and αy= {1, 2, 3, 4, 5} .
In one embodiment, the models from the positions closer to (xmid, ymid) are added into the final merge candidate list first. In another embodiment, the models from the positions closer to (x, y) are added into the final merge candidate list first.
In one embodiment, let δx and δy be two fixed positive numbers. The inherited model parameters can be from the block at positions (xmidxi×δx, ymidyi×δy) , (xmidxi×δx, ymidyi×δy) , (xmidxi×δx, ymidyi×δy) , (xmidxi×δx, ymidyi×δy) , (xmidxi×δx, ymid) , (xmidxi×δx, ymid) , (xmid, ymidyi×δy) , or (xmid, ymidyi×δy) of the previous coded slices/picture.
In another embodiment, the current block position is at (x, y) and the block size is w×h. Let δx and δy be two fixed positive numbers The inherited model parameters can be from the block at positions (x+αxi×δx, y+αyi×δy) , (x+αxi×δx, y-αyi×δy) , (x-αxi×δx, y+αyi×δy) , (x-αxi×δx, y-αyi×δy) , (x+αxi×δx, y) , (x-αxi×δx, y) , (x, y+αyi×δy) , or (x, y-αyi×δy) of the previous coded slices/picture.
In another embodiment, the current block position is at (x, y) and the block size is w×h. The inherited model parameters can be from the block at some pre-defined positions (x′, y′) of the previous coded slices/picture. For one example, the positions are inside the corresponding area of the current encoding block, i.e., x≤x′<x+w and y≤y′<y+h. The inherited model parameters can be from the block at (x, y) , (x+w-1, y) , (x, y+h-1) , (x+w-1, y+h-1) , or (x+w/2, y+h/2) . For another example, the positions are outside of the corresponding area of the current encoding block, i.e., x′<x+or x′≥x+w, and y′<y or y′≥y+h. The inherited model parameters can be from the block at (x-1, y) , (x, y-1) , (x-1, y-1) , (x+w, y) , (x+w-1, y-1) , (x+w, y-1) , (x, y+h) , (x-1, y+h-1) , (x-1, y+h) , (x+w, y+h-1) , (x+w-1, y+h) , or (x+w, y+h) .
The previous coded picture which the inherited parameter model is from is referred as the collocated picture hereafter.
In one embodiment, the previous coded picture where the inherited parameter model is from (i.e., the collocated picture) is one of the pictures in the reference lists.
In one embodiment, the collocated picture is signalled in the picture/slice header. The reference list and the reference index are signalled in the picture/slice header. For example, the collocated picture is  selected as L0 [0] . For another example, the collocated picture is selected as L1 [0] .
In one embodiment, the collocated picture is selected as the picture in the reference lists whose POC difference between the respective picture and the current picture is the smallest. For example, if the POC of current picture is 8, the POCs of pictures in reference list 0 are {7, 6, 5, 0} and POCs of pictures in reference list 1 are {7, 6, 5, 4} , then L0 [0] (equivalent to L1 [0] ) is selected since its POC difference is the smallest.
In one sub-embodiment, if there are two pictures whose POC difference between the respective picture and the current picture are both the smallest, the picture with the smaller POC is selected.
In one sub-embodiment, if there are two pictures whose POC difference between the respective picture and the current picture are both the smallest, the picture with the larger POC is selected.
In another sub-embodiment, if there are two pictures whose POC difference between the respective picture and the current picture are both the smallest, the picture with smaller QP difference between the respective picture and the current picture is selected.
In another sub-embodiment, if there are two pictures whose POC difference between the respective picture and the current picture are both the smallest, the picture with the smaller QP is selected.
In another sub-embodiment, if there are two pictures whose POC difference between the respective picture and the current picture are both the smallest, the picture with the larger QP is selected.
In one embodiment, the collocated picture is selected as the picture in the reference lists whose QP difference between the respective picture and the current picture is the smallest. For example, if the QP of current picture is 28, and the QPs of the pictures in reference list 0 are {19, 26, 23} and the QPs of the pictures in reference list 1 are {23, 22, 21} . Then L0 [1] is selected.
In one sub-embodiment, if there are more than one picture in the reference lists whose QP difference between the respective picture and the current picture are the smallest, the picture with the smaller QP is selected.
In another sub-embodiment, if there are more than one picture in the reference lists whose QP difference between the respective picture and the current picture are the smallest, the picture with the larger QP is selected.
In another sub-embodiment, if there are more than one picture whose QP difference between the respective picture and the current picture are the smallest, the picture with the smaller POC distance is selected.
In one embodiment, the collocated picture is selected as the picture in the reference lists whose QP is the smallest.
In another embodiment, the collocated picture is selected as the picture in the reference lists whose QP is the largest.
In one embodiment, the previous coded picture which the inherited parameter model is from, i.e., the collocated picture, is the most recently coded I-picture. The cross-component model information of the most recently coded I-slice/picture is stored in a long-term reference buffer.
In one embodiment, the collocated picture and the pre-defined positions where the inherited parameter model is from is determined by the motion vector of a neighbouring block. For example, if the current block position is at (x, y) and the block size is w×h. The inherited model parameters can be from the block at position (x’, y’) , (x’, y’ + h/2) , (x’ + w/2, y’) , (x’ + w/2, y’ + h/2) , (x’ + w, y’) , (x’, y’ + h) , or (x’+ w, y’ + h) of the collocated picture, where x’ = x + Δx and y’ = y + Δy.
In one sub-embodiment, Δx and Δy are set to the L0 horizontal and vertical motion vectors of the neighbouring block, and the collocated picture is the L0 reference picture indicated by the L0 motion vector of the neighbouring block.
In one sub-embodiment, if the neighbouring block is inter bi-prediction, Δx and Δy are set to the L1 horizontal and vertical motion vectors of the neighbouring block, and the collocated picture is the L1 reference picture indicated by the L1 motion vector of the neighbouring block.
In one sub-embodiment, the neighbouring block is the left block of the current block.
In another sub-embodiment, the neighbouring block is the above block of the current block.
In one embodiment, the pre-defined positions in the previous coded slices/pictures where the inherited parameter model is from is determined by the motion vector of a neighbouring block. Let Δx and Δy be the horizontal and vertical displacements determined based on the selected motion vector of the neighbouring block, the current block position is at (x, y) and the block size is w×h. The inherited model parameters can be from the block at position (x’, y’) , where x’ = x + Δx and y’ = y + Δy, or where x’ = x +w/2 +Δx and y’ = y + h/2 +Δy.
In another embodiment, the inherited model parameters can also be from the block positions in the patterns described in earlier paragraphs. The positions are centred at (x’, y’) , where x’ = x + Δx and y’ = y + Δy, or where x’ = x + w/2 +Δx and y’ = y + h/2 +Δy. That is, denote the pre-defined positions as (x1, y1) , (x2, y2) , (x3, y3) , …, (xN, yN) , the inherited model parameters can be from (x1+Δx, y1+Δy) , (x2+Δx, y2+Δy) , (x3+Δx, y3+Δy) , …, (xN+Δx, yN+Δy) , where Δx and Δy are the horizontal and vertical displacements determined based on the selected motion vector of the neighbouring block. For example, let the current block size be w×h. The two value sets αx and αy are defined as:
αx= {αx1, αx2, αx3, …, αxn} , αxixj if i<j
αy= {αy1, αy2, αy3, …, αyn}, αyiyj if i<j
All values in αx and αy are positive numbers. The inherited model parameters can be from the block at positions (x′+αxi×w, y′+αyi×h) , (x′+αxi×w, y′-αyi×h) , (x′-αxi×w, y′+αyi×h) , (x′-αxi×w, y′-αyi×h) , (x′+αxi×w, y′) , (x′-αxi×w, y′) , (x′, y′+αyi×h) , or (x′, y′-αyi×h) of the previous coded slices/picture. For another example, let δx and δy be two fixed positive numbers. The inherited model parameters can be from the block at positions (x′+αxi×δx, y′+αyi×δy) , (x′+αxi×δx, y′-αyi×δy) , (x′-αxi×δx, y′+αyi×δy) , (x′-αxi×δx, y′-αyi×δy) , (x′+αxi×δx, y′) , (x′-αxi×δx, y′) , (x′, y′+αyi×δy) , or (x′, y′-αyi×δy) of the previous coded slices/picture. For another example, the inherited model parameters can be from the block at some pre-defined positions relative to (x′, y′) of the previous coded slices/picture. The positions can be (x′, y′) , (x′+w-1, y′) , (x′, y′+h-1) , (x′+w-1, y′+h-1) , or (x′+w/2, y′+h/2) . For another example, the positions can be (x′-1, y′) , (x′, y′-1) , (x′-1, y′-1) , (x′+w, y′) , (x′+w-1, y′-1) , (x′+w, y′-1) , (x′, y′+h) , (x′-1, y′+h-1) , (x′-1, y′+h) , (x′+w, y′+h-1) , (x′+w-1, y′+h) , or (x′+w, y′+h) .
In one embodiment, the neighbouring block can be at a pre-defined position. For example, the position can be at the A0 position as depicted in Fig. 8. The pre-defined position can also be at A1, B0, B1, B2. If the block at the pre-defined position is not an inter block, no neighbouring block is selected.
In another embodiment, when selecting the neighbouring block, there can be a list of pre-defined positions. The positions are placed according to the checking order. For example, the positions can be B0, A0, B1, A1 and B2 as depicted in Fig. 8. The selected neighbouring block can be the first position in the list that is an inter block. The L0 motion vector is selected. If the L0 motion vector is not available, select the L1  motion vector. For another example, the L1 motion vector is selected. If the L1 motion vector is not available, select the L0 motion vector
In another embodiment, if the collocated picture has been determined (e.g., it can be determined with the methods described in earlier paragraphs in this section) , the positions in the list of pre-defined positions are checked in the pre-defined checking order. The selected motion vector is the first whose reference picture is the collocated picture. For example, the positions can be B0, A0, B1, A1 and B2 as depicted in Fig. 8. For each position, the L0 motion vector is first checked, and then the L1 motion vector. That is, the checking order is (B0, L0) , (B0, L1) , (A0, L0) , (A0, L1) , …, (B2, L1) . For another example, the L1 motion vector is first checked, and then the L0 motion vector.
In one embodiment, the inherited model parameters can also be from the block positions in the patterns described in earlier paragraphs. The positions are centred at (x’, y’) , where x’ = x + Δx and y’ = y +Δy.The horizontal and vertical displacements Δx and Δy are determined based on the selected motion vector of the neighbouring block. For example, if the reference picture of the selected motion vector and the collocated picture are the same picture, Δx equals to the horizontal part of the selected motion vector and Δy equals to the vertical part of the selected motion vector. If the horizontal part or the vertical part of the selected motion vector is fractional, Δx equals to the horizontal part of the selected motion vector after rounding and Δy equals to the vertical part of the selected motion vector after rounding. The rounding method used can be but not limited to the following methods: rounding toward negative infinity, rounding toward positive infinity, rounding toward zero, or rounding to the nearest integer (e.g., rounding away from zero, rounding half up, rounding half down, …) . For another example, if the reference picture of the selected motion vector and the collocated picture are not the same. The reference picture can be one of the pictures in the reference list, while the collocated picture is signalled in the picture/slice header. Let the POC distance between the current picture and the reference picture of the selected motion vector be tb, and the POC distance between the current picture and the collocated picture be td, the selected motion vector be (mv_x, mv_y) . Δx = mv_x * (td/tb) and Δy = mv_y * (td/tb) . If mv_x * (td/tb) or mv_y * (td/tb) is fractional, Δx equals to mv_x * (td/tb) after rounding or the horizontal part of the selected motion vector after rounding and Δy equals to mv_y * (td/tb) after rounding or the vertical part of the selected motion vector after rounding. The rounding method used can be, but not limited to, the following methods: rounding toward negative infinity, rounding toward positive infinity, rounding toward zero, or rounding to the nearest integer (e.g., rounding away from zero, rounding half up, rounding half down, …) .
In one embodiment, the inherited model parameters are derived by using the luma and chroma reconstruction samples of the collocated block. Let the current block position be at (x, y) and the block size is w×h. The collocated block is a block positioned at (x’, y’) in the collocated picture with block size w×h, when the inherited model is from position (x’, y’) . For another example, the collocated block can be a block positioned at (x’, y’) in the collocated picture with block size m×n, where m and n are fixed positive values. For example, the collocated block can be at (x, y) . For another example, if Δx and Δy are the L0 horizontal and vertical motion vectors of the neighbouring block, and the collocated picture is the L0 reference picture indicated by the L0 motion vector of the neighbouring block, the collocated block can be at (x+Δx, y+Δy) in the collocated picture. (x’, y’) can be the block positions in the patterns described in earlier paragraphs. For example, (x’, y’) can be (x+αxi×w, y+αyi×h) , (x+αxi×w, y-αyi×h) , (x-αxi×w, y+αyi×h) , (x-αxi×w, y-αyi×h) , (x+αxi×w, y) , (x-αxi×w, y) , (x, y+αyi×h) , or (x, y-αyi×h) .
In one embodiment, the cross-component parameter model can be inherited from more than one previous coded picture. The cross-component parameter model can be inherited from any picture in a picture set, which contains N previous coded pictures. An index can be signalled/parsed in the bitstream to indicate the selected picture. The index ranges from 0 to N-1. In one sub-embodiment, the picture whose POC difference between itself and the current picture is smaller is associated with the smaller index. In another sub-embodiment, the picture whose QP difference between itself and the current picture is smaller is associated with the smaller index. In another sub-embodiment, the picture whose QP is smaller is associated with the smaller index. In another sub-embodiment, the picture whose QP is larger is associated with the smaller index.
II. 5 Inheriting Non-Adjacent Spatial Neighbouring Models
In one embodiment, the inherited model parameters can be from blocks that are non-adjacent spatial neighbouring blocks. The models from blocks at pre-defined positions are added into the candidate list in a pre-defined order.
In one sub-embodiment, the pre-defined positions and the pre-defined order are the same as those of non-adjacent spatial neighbouring candidates for inter merge mode.
In one sub-embodiment, the pre-defined positions and the pre-defined order are as depicted in Fig. 10A and Fig. 10B. The positions of the numbered squares are the pre-defined positions. The number inside each square indicates the pre-defined order. Positions in Pattern 1 (1010) is added into the list before positions in Pattern 2 (1020) . The distance between each pre-defined positions are proportional to the width and height of the current block.
In one embodiment, there is a maximum number of inherited models from non-adjacent spatial neighbours that can be added into the candidate list, and the maximum number is smaller than the number of pre-defined positions.
In one embodiment, let the current block position be (x, y) and the block size be w×h. The two value sets αx and αy are defined as:
αx= {αx1, αx2, αx3, …, αxn} , αxixj if i<j
αy= {αy1, αy2, αy3, …, αyn}, αyiyj if i<j
All values in αx and αy are positive numbers. Let x’ = x + Δx and y’ = y + Δy. The inherited model parameters can be from the positions determined by x’ and y’. For example, the inherited model parameters can be from the block at positions (x′+αxi×w, y′+αyi×h) , (x′+αxi×w, y′-αyi×h) , (x′-αxi×w, y′+αyi×h) , (x′-αxi×w, y′-αyi×h) , (x′+αxi×w, 0) , (x′-αxi×w, 0) , (0, y′+αyi×h) , (0, y′-αyi×h) , (x′+αxi×w, y′) , (x′-αxi×w, y′) , (x′, y′+αyi×h) , (x′, y′-αyi×h) . For another example, let δx and δy be two fixed positive numbers. The inherited model parameters can be from the block at positions (x′+αxi×δx, y′+αyi×δy) , (x′+αxi×δx, y′-αyi×δy) , (x′-αxi×δx, y′+αyi×δy) , (x′-αxi×δx, y′-αyi×δy) , (x′+αxi×δx, 0) , (x′-αxi×δx, 0) , (0, y′+αyi×δy) , (0, y′-αyi×δy) , (x′+αxi×δx, y′) , (x′-αxi×δx, y′) , (x′, y′+αyi×δy) , (x′, y′-αyi×δy) . For another example, the inherited model parameters can be from the block at some pre-defined positions relative to (x′, y′) of the previous coded slices/picture. The positions can be (x′, y′) , (x′+w-1, y′) , (x′, y′+h-1) , (x′+w-1, y′+h-1) , or (x′+w/2, y′+h/2) . For another example, the positions can be (x′-1, y′) , (x′, y′-1) , (x′-1, y′-1) , (x′+w, y′) , (x′+w-1, y′-1) , (x′+w, y′-1) , (x′, y′+h) , (x′-1, y′+h-1) , (x′-1, y′+h) , (x′+w, y′+h-1) , (x′+w-1, y′+h) , or (x′+w, y′+h) . For another example, the position can be (x’, y’) , (x’, y’ + h/2) , (x’ + w/2, y’) , (x’ + w/2, y’ + h/2) , (x’ + w, y’) , (x’, y’ + h) , or (x’ + w, y’ + h) .
In one sub-embodiment, if the prediction mode of the current block is IBC, Δx and Δy can be set according to the horizontal and vertical block vectors of the current block. For example, Δx and Δy can be equal to the horizontal and vertical block vectors of the current block.
In another sub-embodiment, Δx and Δy can be set according to the horizontal and vertical block vectors of a neighbouring block. For example, Δx and Δy can be equal to the horizontal and vertical block vectors of a neighbouring block.
II. 6 Inheriting Model Parameters from History Table
In one embodiment, the inherited model parameters can be from a cross-component model history table. The history table stores CCM information of valid previous coded blocks. The valid previous coded block refers to any blocks containing valid CCM information. The cross-component models in the history table can be added into the candidate list according to a pre-defined order. In one embodiment, the adding order of historical candidates can be from the beginning of the table to the end of the table. In another embodiment, the adding order of historical candidates can be from the end of the table to the beginning of the table.
In one embodiment, one cross-component model history table can be maintained for storing the previous cross-component model (i.e., CCM information) , and the cross-component model history table can be reset at the start of the current picture, current slice, current tile, every M CTU rows or every N CTUs, where N and M can be any value greater than 0. In another embodiment, the cross-component model history table can be reset at the end of the current picture, current slice, current tile, current CTU row or current CTU.
In another embodiment, multiple history tables are used for storing different types of cross-component models. For example, the first history table is used for storing single model, and the second history table is used for storing multi-model. For another example, the first history table is used for storing gradient model, and the second history table is used for storing non-gradient model. For another example, the first history table is used for storing simple linear model (e.g., y = ax + b) , and the second history table is used for storing complicated model (e.g., CCCM) .
In one embodiment, when adding historical candidates from multiple history tables to the candidate list, the adding order can be from the beginning of to the end of a certain table, and then the next history table is added in the same order or in a reversed order.
II. 7 Inheriting from Fusion Mode
Fusion mode refers to a mode that fuses two predictions to generate the final prediction. In the chroma intra fusion mode, a chroma intra prediction that is not generated using a cross-component prediction (CCP) coding tool (e.g., CCLM, MMLM, CCCM) is fused with another chroma intra prediction generated using a cross-component prediction coding tool. For example, a non-CCLM coded intra prediction and a CCLM coded intra prediction are fused together to obtain the final intra prediction.
In one embodiment, when inheriting the cross-component model parameters from the block/position coded by chroma intra fusion mode, the model parameters for obtaining the CCP coded intra prediction are inherited and further refined.
In one embodiment, in addition to inheriting and refining the CCP model parameters, the fusion weight, the coding mode of non-CCP coded intra prediction are also inherited. That is, the chroma intra fusion mode is inherited.
II. 8 Constructing a Candidate List
In one embodiment, the candidate list is constructed by adding candidates in a pre-defined order until the maximum candidate number is reached. The candidates added can include all or some of the aforementioned candidates, but not limited to the aforementioned candidates. For example, the pre-defined order can be spatial adjacent candidates, temporal candidates, spatial non-adjacent candidates, historical candidates, and then default candidates.
In another embodiment, if all the pre-defined neighbouring and historical candidates are added but the maximum candidate number is not reached, some default candidates are added into the candidate list until the maximum candidate number is reached.
In one embodiment, the default candidates can be CCLM models. The scaling parameter α is from the set {0, 1/8, -1/8, +2/8, -2/8, +3/8, -3/8, +4/8, -4/8, …, +N/8, -N/8} , where N is a positive integer. The offset parameter β can be 1/ (1<<bit_depth) or can be derived based on neighbouring luma and chroma samples. For example, if the average value of neighbouring luma and chroma samples are lumaAvg and chromaAvg, β=chromaAvg-α·lumaAvg. In one sub-embodiment, the inclusion order of the default candidates can depend on the absolute value and the sign of the scaling parameter α. For example, the default candidates are added into the list in the following order: α=0, 1/8, -1/8, +2/8, -2/8, +3/8, -3/8, +4/8, -4/8, …, +N/8, -N/8.
In another embodiment, a default candidate can be an earlier candidate with a delta scaling parameter refinement. The earlier candidate is a CCLM model. If the scaling parameter of an earlier candidate is α, the scaling parameter of a default candidate is (α+Δα) . For example, Δα can be 1/8, -1/8, +2/8, -2/8, +3/8, -3/8, +4/8, -4/8, …, +N/8, -N/8, where N is a positive integer. The offset parameter β can be derived based on (α+Δα) and the average values of neighbouring luma and chroma samples of the current block. In one sub-embodiment, the earlier candidate is the first CCLM candidate added into the list. In one sub-embodiment, the inclusion order of the default candidates can depend on the absolute value and the sign of the refinement Δα. For example, the default candidates are added into the list in the following order: Δα=0, 1/8, -1/8, +2/8, -2/8, +3/8, -3/8, +4/8, -4/8, …, +N/8, -N/8.
II. 9 Reordering the Candidates in the List
The candidates in the list can be reordered to reduce the syntax overhead when signalling the selected candidate index. The reordering rules can depend on the coding information of neighbouring blocks or the model error. For example, if neighbouring above or left blocks are coded by MMLM, the MMLM candidates in the list can be moved to the head of the current list. Similarly, if neighbouring above or left blocks are coded by single model LM or CCCM, the single model LM or CCCM candidates in the list can be moved to the head of the current list. Similarly, if GLM is used by neighbouring above or left blocks, the GLM related candidates in the list can be moved to the head of the current list.
In still another embodiment, the reordering rule is based on the model error by applying the candidate model to the neighbouring templates of the current block, and then compare the error with the reconstructed samples of the neighbouring template. For example, as shown in Fig. 11, the size of above neighbouring template of the current block is wa×ha, and the size of left neighbouring template of the current block is wb×hb. Suppose K models are in the current candidate list, and αk and βk are the final scale and offset parameters after inheriting the candidate k. The model error of candidate k corresponding to the above neighbouring template is:
where, andare the reconstructed samples of luma (e.g., after downsampling process or after applying GLM pattern) and reconstructed samples of chroma at position (i, j) in the above template, and 0≤i<wa and 0≤j<ha.
Similarly, the model error of candidate k by the left neighbouring template is:
whereandare the reconstructed samples of luma (e.g., after applying downsampling process or GLM pattern) and reconstructed samples of chroma at position (m, n) in the left template, and 0≤m<wb and 0≤n<hb.
Then the model error of candidate k is:
After calculating the model error among all candidates, it can get a model error list E= {e0, e1, e2, …, ek, …, eK} . Then, it can reorder the candidate index in the inherited candidate list by sorting the model error list in ascending order.
In still another embodiment, if the candidate k uses CCCM prediction, theandare defined as:

where c0k, c1k, c2k, c3k, c4k, c5k, and c6k are the final filtering coefficients after inheriting the candidate k. P and B are the nonlinear term and bias term.
In still another embodiment, if the above neighbouring template is not available, thenSimilarly, if the left neighbouring template is not available, thenIf both templates are not available, the candidate index reordering method using model error is not applied.
II. 10 Signalling the Inherited Candidate Index in the List
An on/off flag is signalled to indicate whether the current block inherits the cross-component model parameters from neighbouring blocks or not. The flag can be signalled per CU/CB, per PU, per TU/TB, or per colour component, or per chroma colour component. A high level syntax can be signalled in SPS, PPS, PH or SH to indicate if the proposed method is allowed for the current sequence, picture, or slice.
The maximum allowed candidate number can be signalled to indicate the maximum size of the merge candidate list. The number can be signalled per CU/CB, per PU, per TU/TB, or per colour component, or per chroma colour component. A high level syntax can be signalled in SPS, PPS, PH or SH to indicate if the proposed method is allowed for the current sequence, picture, or slice. The maximum allowed candidate number of the proposed method can be shared with the maximum allowed candidate number for inter merge mode.
If the current block inherits the cross-component model parameters from neighbouring blocks, the inherited candidate index is signalled. 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. For another example, the index can be signalled per colour component. For example, one inherited index is signalled for Cb component, and another inherited index is signalled for Cr component. For another example, it can use chroma intra prediction syntax (e.g., IntraPredModeC [xCb] [yCb] ) to store the inherited index.
II. 11 Inheriting Model Parameters from Non-Intra Blocks
In one embodiment, when the current block is coded in inter mode or other modes (e.g., intra block copy (IBC) ) , the chroma samples can be predicted by applying a cross-component model to reconstructed luma samples. The cross-component model used to predict the chroma samples can be saved and/or referenced by following coding blocks.
In one sub-embodiment, the cross-component model can be derived from reconstructed luma and chroma samples. The samples can be from regions indicated by the motion vectors or the block vectors. For example, the model used can be derived using the CCRM method. All or any subset of the model parameters can be saved. If the following coding block is intra, the following block is allowed to use the saved model parameters. If the following coding block is inter or any mode-type (e.g. IBC) , the following block is allowed to use the saved model parameters.
In another embodiment, the cross-component model can be inherited from neighbouring blocks, as described in earlier sub-sections under Section entitled “Inheriting neighbouring model parameters for refining the cross-component model parameters” . All or any subset of the model parameters can be saved. If the following coding block is intra, the following block is allowed to use the saved model parameters. If the following coding block is inter or any mode-type (e.g. IBC) , the following block is allowed to use the saved model parameters.
In one sub-embodiment, models from blocks coded in different modes can be stored in different buffers. For example, the models from intra blocks and the models from inter blocks can be stored in different buffers.
II. 12 Inheriting Multiple Cross-Component Models
In another embodiment, it can combine cross-component model candidates with the prediction by non-cross-component coding tools. For example, one cross-component model candidate is selected from the list, and its prediction is denoted as p_ccm. Another prediction, denoted as p_ (non-ccm) , can be from chroma DM, chroma DIMD, or intra angular mode. The final prediction at (x, y) position of the current block is p_final (x, y) = (1-α) ×p_ccm (x, y) +α×p_ (non-ccm) (x, y) , where α is the weighting factor which can be predefined or implicitly derived by neighbouring template cost. For still the same example, the prediction by non-cross-component coding tool can be predefined or signalled. The prediction by non-cross-component coding tool is chroma DM or chroma DIMD. For another example, prediction by non-cross-component coding tool is signalled, but the index of cross-component model candidate is predefined or determined by neighbouring blocks coding mode. For still the same example, if at least one of neighbouring spatial blocks is coded with CCCM mode, the first candidate has CCCM model parameters is selected. If at least one of neighbouring spatial blocks is coded with GLM mode, the first candidate has GLM pattern parameters is selected. Similarly, if at least one of neighbouring spatial blocks is coded with MMLM mode, the first candidate has MMLM parameters is selected.
Any of the foregoing proposed methods of generating inter predictor for the chroma component by applying a cross-component model to reconstructed luma samples 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 circuits 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
The method of generating inter predictor for the chroma component by applying a cross-component model to reconstructed luma samples can be implemented in an encoder side or a decoder side. For example, any of the proposed c method can be implemented in an Intra/Inter coding module (e.g. Intra Pred. 150/MC 152 in Fig. 1B) in a decoder or an Intra/Inter coding module in an encoder (e.g. Intra Pred. 110/Inter Pred. 112 in Fig. 1A) . Any of the proposed candidate derivation method can also be implemented as a circuit coupled to the intra/inter coding module at the decoder or the encoder. However, the decoder or encoder may also use additional processing unit to implement the required cross-component prediction processing. While the Intra Pred. units (e.g. unit 110/112 in Fig. 1A and unit 150/152 in Fig. 1B) are shown as individual processing units, they may correspond to executable software or firmware codes stored on a media, such as hard disk or flash memory, for a CPU (Central Processing Unit) or programmable devices (e.g. DSP (Digital Signal Processor) or FPGA (Field Programmable Gate Array) ) .
Fig. 12 illustrates a flowchart of an exemplary video coding system that generates inter predictor for the chroma component by applying a cross-component model to reconstructed luma samples 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. 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 first-colour block and a second-colour block is received in step 1210, 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, and wherein the current block is coded in a non-intra mode. A cross-component model for the current block is determined in step 1220. A target cross-component predictor is derived by applying the cross-component model to reconstructed first-colour samples in step 1230. The second-colour block is encoded or decoded by using prediction data comprising the target cross-component predictor in step 1240.
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.
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.
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.
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 (14)

  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 first-colour block and a 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, and wherein the current block is coded in a non-intra mode;
    determining a cross-component model for the current block;
    deriving a target cross-component predictor by applying the cross-component model to reconstructed first-colour samples; and
    encoding or decoding the second-colour block by using prediction data comprising the target cross-component predictor.
  2. The method of Claim 1, wherein the cross-component model for the current block is stored, referenced by following coding blocks, or both.
  3. The method of Claim 2, wherein all model parameters of the cross-component model are stored.
  4. The method of Claim 2, wherein a subset of model parameters of the cross-component model is stored.
  5. The method of Claim 2, wherein if a target following coding block is coded in an intra mode, the target following coding block is allowed to use the cross-component model stored.
  6. The method of Claim 2, wherein if a target following coding block is coded in the non-intra mode, the target following coding block is allowed to use the cross-component model stored.
  7. The method of Claim 1, wherein the cross-component model is derived from reconstructed first-colour samples and reconstructed second-colour samples.
  8. The method of Claim 7, wherein the reconstructed first-colour samples and the reconstructed second-colour samples are from regions indicated by a motion vector or a block vector.
  9. The method of Claim 1, wherein the cross-component model is derived based on CCRM (Cross-Component Residual Model) .
  10. The method of Claim 1, wherein the cross-component model is inherited from a neighbouring block.
  11. The method of Claim 10, wherein the neighbouring block corresponds to a spatial neighbouring block or a temporal neighbouring block.
  12. The method of Claim 1, wherein different cross-component models associated with blocks coded in different modes are stored in different buffers.
  13. The method of Claim 12, wherein a first cross-component model associated with intra-coded blocks and a second cross-component model associated with inter-coded blocks are stored in two different buffers.
  14. An apparatus for coding colour pictures using coding tools including one or more cross component models related modes, the apparatus comprising one or more electronic circuits or processors arranged to:
    receive input data associated with a current block comprising a first-colour block and a 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, and wherein the current block is coded in a non-intra mode;
    determine a cross-component model for the current block;
    derive a target cross-component predictor by applying the cross-component model to reconstructed first-colour samples; and
    encode or decode the second-colour block by using prediction data comprising the target cross-component predictor.
PCT/CN2024/097398 2023-07-05 2024-06-05 Methods and apparatus of inheriting cross-component models from non-intra coded blocks for cross-component prediction merge mode Ceased WO2025007693A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202480056647.8A CN121773619A (en) 2023-07-05 2024-06-05 Method and apparatus for inheriting cross-component models from non-intra-frame codec blocks to perform cross-component prediction merging modes.
EP24835176.9A EP4740476A1 (en) 2023-07-05 2024-06-05 Methods and apparatus of inheriting cross-component models from non-intra coded blocks for cross-component prediction merge mode

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202363511920P 2023-07-05 2023-07-05
US63/511,920 2023-07-05

Publications (1)

Publication Number Publication Date
WO2025007693A1 true WO2025007693A1 (en) 2025-01-09

Family

ID=94171222

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2024/097398 Ceased WO2025007693A1 (en) 2023-07-05 2024-06-05 Methods and apparatus of inheriting cross-component models from non-intra coded blocks for cross-component prediction merge mode

Country Status (3)

Country Link
EP (1) EP4740476A1 (en)
CN (1) CN121773619A (en)
WO (1) WO2025007693A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160219283A1 (en) * 2015-01-27 2016-07-28 Qualcomm Incorporated Adaptive cross component residual prediction
WO2019069950A1 (en) * 2017-10-06 2019-04-11 シャープ株式会社 Image coding device and image decoding device
US20210297680A1 (en) * 2016-10-12 2021-09-23 Telefonaktiebolaget Lm Ericsson (Publ) Residual refinement of color components
US20220014772A1 (en) * 2019-03-25 2022-01-13 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method for picture prediction, encoder, and decoder
WO2022191553A1 (en) * 2021-03-08 2022-09-15 현대자동차주식회사 Video coding method and device using matrix-based cross component prediction

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160219283A1 (en) * 2015-01-27 2016-07-28 Qualcomm Incorporated Adaptive cross component residual prediction
US20210297680A1 (en) * 2016-10-12 2021-09-23 Telefonaktiebolaget Lm Ericsson (Publ) Residual refinement of color components
WO2019069950A1 (en) * 2017-10-06 2019-04-11 シャープ株式会社 Image coding device and image decoding device
US20220014772A1 (en) * 2019-03-25 2022-01-13 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method for picture prediction, encoder, and decoder
WO2022191553A1 (en) * 2021-03-08 2022-09-15 현대자동차주식회사 Video coding method and device using matrix-based cross component prediction

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
K. ZHANG (QUALCOMM), J. CHEN (QUALCOMM), L. ZHANG (QUALCOMM), M. KARCZEWICZ (QUALCOMM): "Enhanced Cross-component Linear Model Intra-prediction", 4. JVET MEETING; 20161015 - 20161021; CHENGDU; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), 17 October 2016 (2016-10-17), XP030247413 *

Also Published As

Publication number Publication date
EP4740476A1 (en) 2026-05-13
CN121773619A (en) 2026-03-31

Similar Documents

Publication Publication Date Title
WO2024260406A1 (en) Methods and apparatus of storing temporal models for cross-component prediction merge mode in indexed table
WO2024131931A1 (en) Method and apparatus of most probable mode list unification in video coding system
WO2024120478A1 (en) Method and apparatus of inheriting cross-component models in video coding system
WO2024093785A1 (en) Method and apparatus of inheriting shared cross-component models in video coding systems
EP4740476A1 (en) Methods and apparatus of inheriting cross-component models from non-intra coded blocks for cross-component prediction merge mode
WO2024217479A1 (en) Method and apparatus of temporal candidates for cross-component model merge mode in video coding system
WO2024222624A1 (en) Methods and apparatus of inheriting temporal cross-component models with buffer constraints for video coding
WO2025007804A1 (en) Methods and apparatus of simplified template cost computation for cross-component prediction merge mode
WO2024222798A9 (en) Methods and apparatus of inheriting block vector shifted cross-component models for video coding
WO2025149025A1 (en) Methods and apparatus of inheriting cross-component model based on cascaded vector
WO2026032329A1 (en) Methods and apparatus of unified intra merge mode in video coding systems
WO2026092425A1 (en) Methods and apparatus of unified intra merge mode with inheriting decoder side intra mode derivation in video coding systems
WO2025007972A1 (en) Methods and apparatus for inheriting cross-component models from temporal and history-based neighbours for chroma inter coding
WO2025153050A1 (en) Methods and apparatus of filter-based intra prediction with multiple hypotheses in video coding systems
WO2026067430A1 (en) Methods and apparatus of unified intra merge mode with inter prediction in video coding systems
WO2025167947A1 (en) Methods and apparatus of inter cross-component prediction and regression-based blending of colour components in video coding
WO2024193577A1 (en) Methods and apparatus for hiding bias term of cross-component prediction model in video coding
WO2026012384A1 (en) Method and apparatus of inter shared region for decoder-side derived inter-prediction mode and interccp merge mode in video coding
WO2025209049A1 (en) Methods and apparatus for controlling template-based coding tools in video coding
WO2025209328A1 (en) Method and apparatus of multi-model lm with classification threshold in gradient domain for video coding systems
WO2026086926A1 (en) Methods and apparatus of retrieving luma and chroma intra prediction information for candidates in unified intra merge mode in video coding systems
WO2026017030A1 (en) Method and apparatus of temporal and gpm-derived affine candidates in video coding systems
WO2024120307A9 (en) Method and apparatus of candidates reordering of inherited cross-component models in video coding system
WO2024149247A1 (en) Methods and apparatus of region-wise cross-component model merge mode for video coding
WO2025007952A1 (en) Methods and apparatus for video coding improvement by model derivation

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 24835176

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2024835176

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2024835176

Country of ref document: EP

Effective date: 20260205

WWP Wipo information: published in national office

Ref document number: 2024835176

Country of ref document: EP