Methods and apparatus of inheriting cross-component model based on cascaded vector

By deriving cascaded vectors from neighboring blocks to inform cross-component model information, the method addresses inefficiencies in chroma component encoding, resulting in improved coding performance and video quality.

WO2025149025A1PCT designated stage expired Publication Date: 2025-07-17MEDIATEK INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/071714
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-12
Filing Date
2025-01-10
Publication Date
2025-07-17

AI Technical Summary

Technical Problem

Existing video coding systems face challenges in efficiently encoding and decoding chroma components due to insufficient utilization of cross-component models, leading to suboptimal coding performance and quality.

Method used

The method involves deriving cascaded vectors recursively from motion or block vectors of neighboring blocks to determine cross-component model information, which is then used to encode or decode chroma components, enhancing prediction accuracy and coding efficiency.

Benefits of technology

This approach improves chroma component encoding and decoding by refining cross-component model parameters, leading to enhanced coding performance and video quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025071714_17072025_PF_FP_ABST
    Figure CN2025071714_17072025_PF_FP_ABST
Patent Text Reader

Abstract

Method and apparatus for coding the chroma component using Cross-Component Model (CCM) information based on a cascaded motion vector or block vector are disclosed. According to this method, when referencing CCM information from one or more neighbouring blocks, if at least one neighbouring block has a first MV (Motion Vector) or a first BV (Block Vector) : one or more cascaded vectors are derived, wherein each cascaded vector is derived recursively as a sum of traced vectors starting from the first MV or the first BV; target CCM information is determined based on said one or more cascaded vectors and a merge list is derived accordingly; and the current second-colour block is encoded or decoded by using coding information comprising the target CCM information, wherein corresponding prediction data for the current second-colour block is generated by applying a cross-component model with the target CCM information to the current first-colour block.
Need to check novelty before this filing date? Find Prior Art

Description

METHODS AND APPARATUS OF INHERITING CROSS-COMPONENT MODEL BASED ON CASCADED VECTORCROSS REFERENCE TO RELATED APPLICATIONS

[0001] The present invention is a non-Provisional Application of and claims priority to U.S. Provisional Patent Application No. 63 / 620, 208, filed on January 12, 2024. The U.S. Provisional Patent Application is hereby incorporated by reference in its entirety.FIELD OF THE INVENTION

[0002] The present invention relates to video coding system using coding tools including one or more cross component models related modes. In particular, the present invention relates to coding the chroma component using cross-component model information based on a cascaded motion vector or block vector. BACKGROUND AND RELATED ART

[0003] 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.

[0004] 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.

[0005] As shown in Fig. 1A, incoming video data undergoes a series of processing in the encoding system. The reconstructed video data from REC 128 may be subject to various impairments due to a series of processing. Accordingly, in-loop filter 130 is often applied to the reconstructed video data before the reconstructed video data are stored in the Reference Picture Buffer 134 in order to improve video quality. For example, deblocking filter (DF) , Sample Adaptive Offset (SAO) and Adaptive Loop Filter (ALF) may be used. The loop filter information may need to be incorporated in the bitstream so that a decoder can properly recover the required information. Therefore, loop filter information is also provided to Entropy Encoder 122 for incorporation into the bitstream. In Fig. 1A, Loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in the reference picture buffer 134. The system in Fig. 1A is intended to illustrate an exemplary structure of a typical video encoder. It may correspond to the High Efficiency Video Coding (HEVC) system, VP8, VP9, H. 264 or VVC.

[0006] The decoder, as shown in Fig. 1B, can use similar or portion of the same functional blocks as the encoder except for Transform 118 and Quantization 120 since the decoder only needs Inverse Quantization 124 and Inverse Transform 126. Instead of Entropy Encoder 122, the decoder uses an Entropy Decoder 140 to decode the video bitstream into quantized transform coefficients and needed coding information (e.g. ILPF information, Intra prediction information and Inter prediction information) . The Intra prediction 150 at the decoder side does not need to perform the mode search. Instead, the decoder only needs to generate Intra prediction according to Intra prediction information received from the Entropy Decoder 140. Furthermore, for Inter prediction, the decoder only needs to perform motion compensation (MC 152) according to Inter prediction information received from the Entropy Decoder 140 without the need for motion estimation.

[0007] In order to improve the coding performance for a system using cross-component models, methods and apparatus of using cross-component model associated with a cascaded vector are disclosed. BRIEF SUMMARY OF THE INVENTION

[0008] A method and apparatus for coding colour pictures or video 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 current first-colour block and a current second-colour block is received, wherein the input data comprise pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side. When referencing CCM (Cross-Component Model) information from one or more neighbouring blocks, if at least one neighbouring block has a first MV (Motion Vector) or a first BV (Block Vector) , the following steps are performed: one or more cascaded vectors are derived, wherein each cascaded vector is derived recursively as a sum of traced vectors starting from the first MV or the first BV; target CCM information is determined based on said one or more cascaded vectors; a merge list comprising the target CCM information is determined; and the current second-colour block is encoded or decoded by using the merge list, wherein corresponding prediction data for the current second-colour block is generated by applying a cross-component model with the target CCM information to the current first-colour block when the target CCM information is selected.

[0009] In one embodiment, if a second reference block indicated by a current cascaded vector has a second MV or a second BV, the second MV or the second BV is used as a next traced vector and the next cascaded vector is formed by adding the next traced vector to the current cascaded vector, wherein the current cascaded vector is initially set to the first MV or the first BV. In one embodiment, each traced vector corresponds to an L0 MV, an L1 MV, or one BV.

[0010] In one embodiment, for each recursion, if one reference block indicated by one cascaded vector has multiple MVs or BVs, multiple cascaded vectors are derived. In one embodiment, a set of cascaded vectors is derived for different numbers of trace depth. In one embodiment, a set of cascaded vectors is derived from all possible sums of the traced vectors, and wherein the traced vectors correspond to a target trace depth.

[0011] In one embodiment, trace depth associated with said one or more cascaded vectors corresponds to a finite number smaller than a maximum limit. In another embodiment, trace depth associated with said one or more cascaded vectors corresponds an infinite number. In yet another embodiment, trace depth associated with said one or more cascaded vectors corresponds to a pre-defined number.

[0012] In one embodiment, each of said one or more neighbouring block corresponds to a CU / CB, PU, TU / TB or a corresponding block with a same size as the current block.

[0013] In one embodiment, when deriving corresponding CCM information to be stored in a target block, after finishing encoding / decoding the target block, multiple sets of CCM information are stored in the target block. In one embodiment, if the target block has a target MV or BV available and the target block is CCP (Cross-Component Prediction) coded, the CCM information of one or more reference blocks located by one or more cascaded vectors are also stored in the target block in addition to storing the CCM information used by the target block. In another embodiment, if the target block has a target MV or BV available and the target block is not CCP (Cross-Component Prediction) coded, the CCM information of one or more reference blocks located by one or more cascaded vectors are stored. In yet another embodiment, a maximum number of sets of the CCM information allowed to be stored in one block is pre-defined.

[0014] In one embodiment, if an available number of sets of the CCM information exceeds a maximum allowed number, priority of the CCM information to be stored is pre-defined. In one embodiment, if the target block is CCP coded, the CCM information used by the target block has a highest priority. In one embodiment, the priority is determined based on trace depth of a target cascaded vector. In one embodiment, the CCM information associated with a shorter trace depth has a higher priority.BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing.

[0016] Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.

[0017] Fig. 2 illustrates an example of sample locations used for deriving α and β of the cross-component model.

[0018] Fig. 3 illustrates an example of classifying the neighbouring samples into two groups for MMLM.

[0019] Fig. 4 illustrates the spatial part of the convolutional filter.

[0020] Fig. 5 shows 4 gradient patterns for GLM.

[0021] Fig. 6 illustrates the 5 neighbouring blocks used for deriving spatial merge candidates for VVC.

[0022] Fig. 7 illustrates the possible candidate pairs considered for redundancy check in VVC.

[0023] Fig. 8 illustrates an example of temporal candidate derivation, where a scaled motion vector is derived according to POC (Picture Order Count) distances.

[0024] Fig. 9 illustrates the position for the temporal candidate selected between candidates C0 and C1.

[0025] Fig. 10 illustrates the spatial neighboring blocks used to derive the spatial merge candidates.

[0026] Fig. 11 illustrates an example of search area used for Intra template matching.

[0027] Fig. 12 illustrates an example of use of IntraTMP block vector for IBC block.

[0028] Fig. 13 shows an exemplary system block diagram for Cross-component residual model (CCRM) .

[0029] Fig. 14 illustrates the luma samples L0, . . ., L5 in relation to the chroma sample C.

[0030] Fig. 15 illustrates an example of how to derive AR-BVP (Auto-Relocated Block Vector Prediction) .

[0031] Fig. 16 illustrates an example of five spatial locations checked for block Bn in order to derive block vector BVn, n+1.

[0032] Fig. 17 illustrates an example of CMVP (Chained MVP) candidates derived as the sum of the recursively traced MVs and BVs based on the pre-derived MVs for the inter merge candidate list.

[0033] Fig. 18 illustrates an example of deriving MVk (m) by checking the existence of MVs or BVs in MV / BV storage corresponding to all five positions of the current block.

[0034] Fig. 19A and Fig. 19B illustrate two search patterns of pre-defined positions and the pre-defined order for non-adjacent spatial neighbouring candidate derivation.

[0035] Fig. 20 illustrates examples of CCM information propagation based on block vectors, where the blocks with dash line (i.e., A, E, G) are coded in a cross-component model.

[0036] Fig. 21 illustrates examples of CCM information propagation based on motion vectors, where the blocks with dash line (i.e., A, E, G) are coded in a cross-component model.

[0037] Fig. 22 illustrates an example of CCM information propagation with collocated position, where the block with dash line (i.e., A) is coded in in a cross-component model.

[0038] Fig. 23 illustrates an example of the cascaded vector derivation, where the cascaded vector is derived as the sum of the recursively traced motion vectors and block vectors based on the motion vector or the block vector of the neighbouring block.

[0039] Fig. 24 illustrates a flowchart of an exemplary video coding system that uses CCM information associated with a cascaded vector according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION

[0040] 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.

[0041] 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.

[0042] I. Related Art

[0043] I. 1 Cross-Component Linear Model Prediction

[0044] To reduce the cross-component redundancy, 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. α is called the scaling parameter and β is called the offset parameter.

[0045] 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.

[0046] 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'’a nd H’a re 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.

[0047] 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.

[0048] The four neighbouring luma samples at the selected positions are down-sampled and compared four times to find two larger values: x0A and x1A, and two smaller values: x0B and x1B. Their corresponding chroma sample values are denoted as y0A, y1A, y0B and y1B. Then, xA, xB, yA and yB are derived as: Xa= (x0A + x1A +1) >>1; Xb= (x0B + x1B +1) >>1; Ya= (y0A + y1A +1) >>1; Yb= (y0B + y1B +1) >>1 (2)

[0049] Finally, the linear model parameters α and β are obtained according to the following equations. β=Yb-α·Xb      (4)

[0050] 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.

[0051] 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.

[0052] In LM_Amode, 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.

[0053] In LM_LA mode, left and above templates are used to calculate the linear model coefficients.

[0054] I. 2 Multiple Model CCLM (MMLM)

[0055] 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.

[0056] In this disclosure, the terms MMLM_LT and MMLM_LA are used interchangeably.

[0057] 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.

[0058] I. 3 Convolutional Cross-Component Model (CCCM)

[0059] 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.

[0060] 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.

[0061] That is, for 10-bit content it is calculated as: P = (C*C + 512 ) >> 10.

[0062] 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 middle chroma value (512 for 10-bit content) .

[0063] 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.

[0064] I. 4 Gradient Linear Model (GLM)

[0065] 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.

[0066] Compared with the CCLM, instead of down-sampled luma values, the two-parameter GLM utilizes luma sample gradients to derive the linear model. Specifically, when the two-parameter GLM is applied, the input to the CCLM process, i.e., the down-sampled luma samples L, are replaced by luma sample gradients G. The other parts of the CCLM (e.g. parameter derivation, prediction sample linear transform) are kept unchanged: C=α·G+β.

[0067] 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·β

[0068] 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.

[0069] Four gradient filters (510-540) are enabled for the GLM, as illustrated in Fig. 5.

[0070] I. 5 Spatial Candidate Derivation

[0071] The derivation of spatial merge candidates in VVC is the same as that in HEVC except that the positions of first two merge candidates are swapped. A maximum of four merge candidates (B0, A0, B1 and A1) for current CU 610 are selected among candidates located in the positions depicted in Fig. 6. The order of derivation is B0, A0, B1, A1 and B2. Position B2 is considered only when one or more neighbouring CU of positions B0, A0, B1, A1 are not available (e.g. belonging to another slice or tile) or is intra coded. After candidate at position A1 is added, the addition of the remaining candidates is subject to a redundancy check which ensures that candidates with the same motion information are excluded from the list so that coding efficiency is improved. To reduce computational complexity, not all possible candidate pairs are considered in the mentioned redundancy check. Instead, only the pairs linked with an arrow in Fig. 7 are considered and a candidate is only added to the list if the corresponding candidate used for redundancy check does not have the same motion information.

[0072] I. 6 Temporal Candidates Derivation

[0073] In this step, only one candidate is added to the list. Particularly, in the derivation of this temporal merge candidate for a current CU 810, a scaled motion vector is derived based on the co-located CU 820 belonging to the collocated reference picture as shown in Fig. 8. The reference picture list and the reference index to be used for the derivation of the co-located CU is explicitly signalled in the slice header. The scaled motion vector 830 for the temporal merge candidate is obtained as illustrated by the dotted line in Fig. 8, which is scaled from the motion vector 840 of the co-located CU using the POC (Picture Order Count) distances, tb and td, where tb is defined to be the POC difference between the reference picture of the current picture and the current picture and td is defined to be the POC difference between the reference picture of the co-located picture and the co-located picture. The reference picture index of temporal merge candidate is set equal to zero.

[0074] The position for the temporal candidate is selected between candidates C0 and C1, as depicted in Fig. 9. If CU at position C0 is not available, is intra coded, or is outside of the current row of CTUs, position C1 is used. Otherwise, position C0 is used in the derivation of the temporal merge candidate.

[0075] I. 7 Non-Adjacent Spatial Candidate

[0076] The non-adjacent spatial merge candidates as in JVET-L0399 are inserted after the TMVP in the regular merge candidate list. The pattern of spatial merge candidates is shown in Fig. 10.The distances between non-adjacent spatial candidates and current coding block are based on the width and height of current coding block. The line buffer restriction is not applied.

[0077] I. 8 Intra Template Matching Prediction

[0078] Intra template matching prediction (IntraTMP) is a special intra prediction mode that copies the best prediction block from the reconstructed part of the current frame, whose L-shaped template matches the current template. For a predefined search range, the encoder searches for the most similar template matched with the current template in a reconstructed part of the current frame and uses the corresponding block as a prediction block. The encoder then signals the usage of this mode, and the same prediction operation is performed at the decoder side.

[0079] The prediction signal is generated by matching the L-shaped, top-only or left-only causal neighbour of the current block with another block in a predefined search area in Fig. 11 consisting of: R1: all or any subset of current CTU R2: top-left CTU R3: above CTU R4: left CTU

[0080] In Fig. 11, the current block 1110 in R1 is matched with the corresponding block 1112 in R2. The templates for the current block and the matched block are shown as darker-colour L-shaped areas. Area 1122 corresponds to reconstructed region in the current picture 1120. Sum of absolute differences (SAD) is used as a cost function. Within each region, the decoder searches for the template that has least SAD with respect to the current one and uses its corresponding block as a prediction block.

[0081] The dimensions of all regions (SearchRange_w, SearchRange_h) are set proportional to the block dimension (BlkW, BlkH) to have a fixed number of SAD comparisons per pixel. That is: SearchRange_w = a *BlkW, SearchRange_h = a *BlkH, where ‘a’ is a constant that controls the gain / complexity trade-off. In practice, ‘a’ is equal to  5.

[0082] To speed-up the template matching process, the search range of all search regions is subsampled by a factor of 3. After finding the best match, a refinement process is performed. The refinement is done via a second template matching search around the best match with a reduced range.

[0083] The Intra template matching tool is enabled for CUs with size less than or equal to 64 in width and height. This maximum CU size for Intra template matching is configurable.

[0084] The Intra template matching prediction mode is signalled at CU level through a dedicated flag when DIMD (Decoder-side Intra Mode Derivation) is not used for current CU.

[0085] I. 9 IntraTMP Derived Block Vector Candidates for IBC

[0086] In this method, block vector (BV) derived from the intra template matching prediction (IntraTMP) is used for intra block copy (IBC) . The stored IntraTMP BV of the neighbouring blocks along with IBC BV are used as spatial BV candidates in IBC candidate list construction.

[0087] IntraTMP block vector is stored in the IBC block vector buffer and, the current IBC block can use both IBC BV and IntraTMP BV of neighbouring blocks as BV candidates for IBC BV candidate list as shown in Fig. 12.

[0088] In Fig. 12, block 1210 corresponds to the current block and block 1212 corresponds to a neighbouring IntraTMP block. The IntraTMP BV 1216 is used to locate the best matching block 1222 according to the matching cost between template 1214 and template 1224. Area 1232 corresponds to reconstructed region in the current picture 1230. IntraTMP block vectors are added to IBC block vector candidate list as spatial candidates.

[0089] I. 10 Cross-component residual model (CCRM)

[0090] As in 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) . Fig. 13 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. Filter coefficients are derived in step 1320 for each chroma component separately using the prediction signals (i.e., predY 1310, and predCb 1312 or predCr 1314) and the filters are applied to the reconstructed luma signal in step 1330 as shown in Fig. 13. The reconstructed luma signal is formed by combining the luma prediction (PredY) 1310 and residual luma signal (resY) using an adder 1322. After applying the filters, step 1330 generates filtered-predicted Cb 1340 and filtered-predicted Cr 1350. The reconstructed Cb signal is formed by combining the filtered-predicted Cb 1340 and residual Cb signal (i.e., resCb) using an adder 1342. Similarly, the reconstructed Cr signal is formed by combining the filtered-predicted Cr 1350 and residual Cr signal (i.e., resCr) using an adder 1352.

[0091] The proposed 8-tap filter consists 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. 14. 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.

[0092] 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.

[0093] 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.

[0094] 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.

[0095] I. 11 JVET-AG0091: EE2-1.8: Auto-Relocated Block Vector Prediction

[0096] In EE2-1.8, Auto-Relocated Block Vector Prediction (AR-BVP) is introduced into IBC merge / AMVP candidate list construction.

[0097] As shown in Fig. 15, a guiding block vector BV0, 1 associated with the current block B0 points to a reference block B1. If B1 has a BV denoted as BV1, 2 pointing to a reference block B2, then BV0, 2, given by BV0, 2 = BV0, 1 +BV1, 2, is defined as the AR-BVP, guided by BV0, 1. Similarly, BV0, n+1 can be derived by: BV0, n+1 =BV0, n+BVn, n+1 = BV0, 1+BV1, 2 +…+BVn-1, n +BVn, n+1.

[0098] Three tests are conducted in this EE. In EE2-1.8a, the length of the AR-BVP trace path is 1 (i. e, n=1) . In EE2-1.8b, the length of the AR-BVP trace path is 2 (i. e, n=2) . In EE2-1.8c, there is no constraint for the length of the AR-BVP trace path.

[0099] When deriving BVn, n+1 guided by BV0, n, all five positions including top-left (e.g. LT in Fig. 16) , top-right (e.g. RT in Fig. 16) , centre (e.g. Ctr in Fig. 16) , bottom-left (e.g. LB in Fig. 16) , and bottom-right (e.g. RB in Fig. 16) positions of Bn are checked to find BVn, n+1.

[0100] In our implementation, the initial guiding block vector BV0, 1 is set to be an existing BVP already in the IBC merge / AMVP candidate list.

[0101] The AR-BVP candidates are inserted after the HBVP candidates. The IBC merge / AMVP candidate list size is kept unchanged.

[0102] I. 12 JVET-AG0073: Non-EE2: Chained Motion Vector Prediction

[0103] This contribution introduces a chained MV prediction (CMVP) into inter merge candidate list construction.

[0104] As shown in Fig. 17, CMVP candidates can be derived as the sum of the recursively traced MVs and BVs based on the pre-derived MVs for the inter merge candidate list. For instance, a CMVP candidate, a set of motion vectors MVk / m and reference picture RefPick / m can be derived by: MVk / m = MVk (0) + BVk (0) + MVk (1) +MVk (2) + …+ MVk (m) , RefPick / m = RefPick (m) , where k and m indicate the number of merge index and trace depths of the CMVP.

[0105] When deriving MVk / m, MVk (m) is found by checking the existence of MVs or BVs in MV / BV storage corresponding to all five positions of the current block as shown in Fig. 18 (i.e., the centre, top-left, top-right, bottom-left, and bottom-right of the current block) .

[0106] When pre-derived merge candidates targeting CMVP candidates have two MVs, a MVk / m is derived for each list (i.e., L0 and L1) and each trace depth. Up to two MVs can be derived for each list and each trace depth, and the MV set is sequentially inserted into inter merge candidate list.

[0107] The traceable reference pictures are only within the reference picture list. CMVP candidates are inserted after HMVP candidates for the regular merge and TM merge. When deriving CMVP candidates, hpelIfIdx, bcwIdx, licFlag, and mhpFlag are not inherited. CMVP candidates are not derived when the TMVP is disabled.

[0108] II. Proposed method

[0109] The following methods are proposed to improve the cross-component prediction accuracy or coding performance.

[0110] II. 1 Inheriting Neighbouring Model Parameters for Refining the Cross-Component Model Parameters

[0111] When applying the 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.

[0112] In one embodiment, if the inherited neighbour 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 the average value of neighbouring luma and chroma samples of the current block.

[0113] In one embodiment, if the inherited neighbour block is coded in CCLM mode, after inheriting model parameters, the offset parameter 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 offset parameter is (β′nei + dB) . For yet another embodiment, the final offset parameter is inherited from a historical list or the neighbouring blocks, but is not further refined by dB.

[0114] For yet another 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. For yet another embodiment, the offset parameter (e.g. c6×B or c6 in CCCM) is not re-derived.

[0115] For still another embodiment, if the inherited candidate applies GLM gradient pattern to its luma reconstructed samples, the current block shall also inherit the GLM gradient pattern of the candidate and apply to the current luma reconstructed samples.

[0116] For still another embodiment, if the inherited neighbour block is coded with multiple cross-component models (e.g. MMLM, or CCCM with multi-model) , the classification threshold is also inherited to classify the neighbouring samples of the current block into multiple groups, and the inherited multiple cross-component model parameters are further assigned to each group.

[0117] II. 2 Inheriting CCM Information

[0118] 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.

[0119] As mentioned earlier in this disclosure, the CCM information includes, but not limited to, prediction mode (e.g. CCLM, MMLM, CCCM, CCCM with multi-models, 2-parameter GLM, 3-parameter GLM (GLM with luma terms) , CCRM) , information indicating whether non-linear terms are used in the model, model index for indicating which model shape is used in convolutional model, classification threshold for multi-model, information indicating whether non-downsampled samples are used in convolutional model, down-sampling filter flag, down-sampling filtering index when multiple down-sampling filters are used, information indicating whether multiple down-sampling filters are used, number of neighbouring lines used to derive model, types of templates used to derive model (e.g. top-left, top, left) , multi-model flag, post-filtering flag or model parameters.

[0120] In another 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. The gradient term can be calculated in either the downsampled domain or the non-downsampled domain. The location term can be calculated with respect to the top-left coordinates of the current block or the picture. In addition to storing model parameters, a prediction mode can be stored in the CCM information for indicating 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 for indicating which type of mixed CCCM model is inherited. For example, gradient and location based CCCM (GL-CCCM) proposed in JVET-AB0119 is a mixed CCCM model which consists of one spatial term in centre position, two gradient terms for the horizontal direction and the vertical direction, two location terms X and Y for the relative horizontal location and the relative vertical location, one non-linear term and one bias term. In addition to storing model parameters, a prediction mode can be stored in the CCM information for indicating that the inherited model is a GL-CCCM model.

[0121] II. 3 Inheriting Spatial Neighbouring Model Parameters

[0122] For another 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.

[0123] 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.

[0124] In one embodiment, the pre-defined positions can be the positions depicted in Fig. 6 in the section entitled “Spatial Candidate Derivation” , and the pre-defined order can be B0, A0, B1, A1 and B2, or A0, B0, B1, A1 and B2.

[0125] 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. The pre-defined positions include the positions at the immediate above (W >> 1) or ( (W >> 1) –1) position if W is greater than or equal to TH, and the positions at the immediate left (H >> 1) or ( (H >> 1) –1) position if H is greater than or equal to TH

[0126] II. 4 Inheriting Temporal Neighbouring Model Parameters

[0127] 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} , αxi<αxj if i<j, αy={αy1, αy2, αy3, …, αyn}, αyi<αyj if i<j.

[0128] All values in αx and αy are positive numbers. Let (xmod, 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.

[0129] In one sub-embodiment, αx= αy. For example, αx=αy= {1, 2, 3, 4, 5} .

[0130] In another sub-embodiment, αx≠ αy. For example, α_x= {1 / 2, 1, 3 / 2, 2, 5 / 2} and αy= {1, 2, 3, 4, 5} .

[0131] 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, 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) of the previous coded slices / picture.

[0132] In one sub-embodiment, αx= αy. For example, αx=αy= {1, 2, 3, 4, 5} .

[0133] In another sub-embodiment, αx≠ αy. For example, α_x= {1 / 2, 1, 3 / 2, 2, 5 / 2} and αy= {1, 2, 3, 4, 5} .

[0134] 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.

[0135] In one embodiment, let δx and δy be two fixed positive numbers. The inherited model parameters can be from the block at positions (xmid+αxi×δx, ymid+αyi×δy) , (xmid+αxi×δx, ymid-αyi×δy) , (xmid-αxi×δx, ymid+αyi×δy) , (xmid-αxi×δx,ymid-αyi×δy) , (xmid+αxi×δx, 0) , (xmid-αxi×δx, 0) , (0, ymid+αyi×δy) , (0, ymid-αyi×δy) (xmid+αxi×δx, ymid) , (xmid-αxi×δx, ymid) , (xmid, ymid+αyi×δy) , (xmid, ymid-αyi×δy) of the previous coded slices / picture.

[0136] 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, 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) of the previous coded slices / picture.

[0137] 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) , (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, or 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) , (x+w, y+h) .

[0138] In one embodiment, the inherited model parameters can be from the block at some pre-defined positions. The pre-defined positions and the inclusion order can be the same as those of inter merge mode.

[0139] The previous coded picture which the inherited parameter model is from is referred as the collocated picture hereafter.

[0140] In one embodiment, the previous coded picture the inherited parameter model is from, i.e., the collocated picture, is one of the pictures in the reference lists.

[0141] In one embodiment, the collocated picture can be the same as the collocated picture of inter merge mode.

[0142] 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] .

[0143] In one embodiment, the collocated picture is selected as the picture in the reference lists whose POC difference between the reference 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.

[0144] In another sub-embodiment, if there are two pictures whose POC difference between the reference respective picture and the current picture are both the smallest, the picture with the smaller POC is selected.

[0145] In another sub-embodiment, if there are two pictures whose POC difference between the reference respective picture and the current picture are both the smallest, the picture with the larger POC is selected.

[0146] In one embodiment, the collocated picture is selected as the picture in the reference lists whose QP difference between the reference 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.

[0147] 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.

[0148] In one embodiment, the rules to select / not select the collocated pictures described in the paragraphs above can be combined.

[0149] II. 5 Inheriting Non-Adjacent Spatial Neighbouring Models

[0150] 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.

[0151] 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.

[0152] In one sub-embodiment, the pre-defined positions and the pre-defined order are as depicted in Fig. 19A and Fig. 19B. The positions of the numbered squares are the pre-defined positions. The number inside each square indicate the pre-defined order. Positions in Pattern 1 (1910) is added into the list before positions in Pattern 2 (1920) . The distance between each pre-defined positions are proportional to the width and height of the current block.

[0153] 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.

[0154] II. 6 Inheriting Model Parameters from History Table

[0155] 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 candidate can be from the beginning of the table to the end of the table. In another embodiment, the adding order of historical candidate can be from a certain pre-defined position to the end of the table. In another embodiment, the adding order of historical candidate can be from the end of the table to the beginning of the table. In another embodiment, the adding order of historical candidate can be from a certain pre-defined position to the beginning of the table. In another embodiment, the adding order of historical candidate can be in an interleaved manner (e.g. the first added candidate is from the beginning of the table, the second added candidate is from the end of the table and so on) .

[0156] In one embodiment, single cross-component model history table can be maintained for storing the previous cross-component model, 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.

[0157] II. 7 Inheriting from Fusion Mode

[0158] Fusion mode refers to any 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.

[0159] 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.

[0160] In one embodiment, in addition to inheriting and refining the CCP model parameters, the fusion weight and the coding mode of non-CCP coded intra prediction are also inherited. That is, the chroma intra fusion mode is inherited.

[0161] II. 8 Constructing a Candidate List

[0162] 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 candidate list can include spatial neighbouring candidates, temporal neighbouring candidate, historical candidates, non-adjacent neighbouring candidates, single model candidates generated based on other inherited models. For another example, the candidate list can include the same candidates as previous example, but the candidates are added into the list in a different order.

[0163] 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.

[0164] In one sub-embodiment, the default candidates can be CCLM models. The final scaling parameter α is from the set {0, 1 / 8, -1 / 8, +2 / 8, -2 / 8, +3 / 8, -3 / 8, +4 / 8, -4 / 8} , and the offset parameter β=1 /  (1<<bit_depth) or is derived based on neighbouring luma and chroma samples. For example, if the average value of neighbouring luma and chroma samples are lumaAvg and chromaAvg, then β is derived by β=chromaAvg-α·lumaAvg. The average value of neighbouring luma samples (lumaAvg) can be calculated by using all selected luma samples. Similarly, average value of neighbouring chroma samples (chromaAvg) can be calculated by using all selected chroma samples.

[0165] In another embodiment, a default candidate can be an earlier candidate with a delta scaling parameter refinement. The earlier candidate is a CCLM model. For example, if the scaling parameter of an earlier candidate is α, the scaling parameter of a default candidate is (α+Δα) , where Δα can be 1 / 8, -1 / 8, +2 / 8, -2 / 8, +3 / 8, -3 / 8, +4 / 8, -4 / 8. And the offset parameter of a default candidate will be derived by using (α+Δα) and the average values of neighbouring luma and chroma samples of the current block.

[0166] II. 9 Signalling the Inherited Candidate Index in the List

[0167] 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.

[0168] The maximum allowed candidate number is 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.

[0169] 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.

[0170] II. 10 Vector Propagated Cross-Component Models

[0171] In one embodiment, after encoding / decoding a block, the cross-component model (CCM) information of the current block is derived and stored in the current block. The stored CCM information can be referenced by the following coding blocks. The following coding blocks can inherit CCM information from the current block. The definition of CCM information is in the section entitled “Inheriting CCM Information” . The stored CCM information can be inherited as but not limited to the following types of candidates: spatial candidates (as in the section entitled “Inheriting Spatial Neighbouring Model Parameters” ) , non-adjacent candidates (as in the section entitled “Inheriting Non-Adjacent Spatial Neighbouring Models” ) , temporal candidates (as in the section entitled “Inheriting Temporal Neighbouring Model Parameters” ) , historical candidates (as in the section entitled “Inheriting Model Parameters from History Table” ) .

[0172] In one embodiment, if the current block is cross-component prediction (CCP) coded, the cross-component model used by the current block can be stored and be referenced by the following coding blocks. When a block is CCP coded, that means the block uses a cross-component model to generate the prediction of the block based on a cross-component model. The block may use a cross-component model inherited from neighbouring block, a cross-component model derived based on neighbouring luma and chroma predicted / reconstructed sample values (e.g. CCLM, MMLM, CCCM, CCRM) , cross-component model used in chroma fusion which means the chroma prediction is based on adding one or more hypotheses of cross-component prediction to one or more existing hypotheses of prediction of non-cross-component prediction, or any combination of the above.

[0173] In one embodiment, if the current block is not CCP coded, and there are block vectors available in the current block, (e.g. the current luma block is coded in IBC or IntraTMP mode, the collocated luma block is coded in IBC or IntraTMP mode) , the CCM information of the current block can be derived by copying the CCM information of the reference block located by the block vector. For example, as shown in Fig. 20, block B is not CCP coded and there are block vectors available at block B. The reference block A is located by the block vector. The CCM information of the reference block A, which uses cross-component model, is copied and stored in block B. In one embodiment, if the reference block located by the block vector is not CCP coded either, but there is CCM information stored in the reference block, the CCM information of the current block can be derived by copying the CCM information stored in the reference block. That is, even when the reference block is not CCP coded, as long as the reference block has valid stored CCM information, the stored CCM information can be referenced by the current block. For example, as shown in Fig. 20, the current block C has block vector available, and its reference block B, which is not CCP coded, has CCM information stored. The CCM information of block B is copied and stored in block C. The CCM information stored in block B was copied from block A, hence the CCM information of block A is propagated to block C. By only accessing block B, block C can retrieve CCM information originally from block A. In one embodiment, if the reference block located by the block vector is not CCP coded and does not have CCM information stored, no CCM information is stored for the current block.

[0174] In one embodiment, when the current block has multiple block vectors available (e.g. the block vector can be bi-directional, the block can have multiple IntraTMP block vectors, or the current chroma block is collocated with multiple luma blocks and more than one of the luma blocks has block vectors) , to derive the CCM information of the current block, if only one of the reference blocks located by the block vectors has CCM information, the CCM information from the reference block which has CCM information is copied to and stored in the current block. For example, as shown in Fig. 20, suppose block F has two block vectors with two corresponding reference blocks G and H. Block G has CCM information and block H does not. The CCM information of block G is copied to and stored in block F.

[0175] For another embodiment, when the current block has multiple block vectors, and more than one of the reference block located by the block vectors has CCM information, one of the reference blocks is selected based on a set of pre-defined rules. The CCM information of the selected reference block is then copied and stored in the current block.

[0176] For one sub-embodiment, the reference block which is CCP coded is selected.

[0177] For one sub-embodiment, the reference block whose distance to the current block is the smallest is selected. The CCM information of the selected reference block is copied to and stored in the current block. The distance between the reference block and the current block, located at (xr, yr) and (xc, yc) respectively, can be computed by  (xr, yr) and (xc, yc) can be the top-left, top-right, bottom-left, bottom-right, or centre positions of the reference block and the current block.

[0178] For one sub-embodiment, the reference block which has the smallest horizontal distance, |xr -xc|, is selected. The CCM information of the selected reference block is copied to and stored in the current block.

[0179] For another sub-embodiment, the reference block which has the smallest vertical distance, |yr -yc|, is selected. The CCM information of the selected reference block is copied to and stored in in the current block.

[0180] For one sub-embodiment, the rules described previously can be combined, and not all the rules described previously need to be applied. For example, the reference block which is CCP coded is selected. If there are more than one CCP coded reference block, then the block which has the shortest distance to the current block among the CCP coded reference blocks is selected. If there is more than one CCP coded reference block whose distance to the current block is the smallest, the reference block which has the smallest horizontal distance, |xr -xc|, is selected. For another example, the reference block which is CCP coded is selected. If there is more than one CCP coded reference block, then the block which has the shortest distance to the current block among the CCP coded reference blocks are selected. If there is more than one CCP coded reference block whose distance to the current block is the smallest, the reference block which has smallest vertical distance, |yr -yc|, is selected. The CCM information of the selected reference block is copied to and stored in the current block.

[0181] In one embodiment, if the current block is not CCP coded and there are motion vectors available in the current block (e.g. the current luma block is inter-coded) , the CCM information of the current block can be derived by copying the CCM information of its reference block in a reference picture, located by the motion vectors of the current block. For example, as shown in Fig. 21, block B is not CCP coded and there are motion vectors available at block B. The reference block A is located by the motion vector. The CCM information of the reference block A, which uses cross-component model, is copied and stored in block B. For one embodiment, if the reference block located by the motion vector is also not CCP coded, but there is CCM information stored in the reference block, the CCM information of the current block can be derived by copying the CCM information stored in the reference block. That is, even when the reference block is not CCP coded, as long as the reference block has valid stored CCM information, the stored CCM information can be referenced by the current block. For example, as shown in Fig. 21, the current block C has motion vector available, and its reference block B, which is not CCP coded, has CCM information stored. The CCM information of block B is copied and stored in block C. The CCM information stored in block B was copied from block A, hence the CCM information of block A is propagated to block C. By only accessing block B, block C can retrieve CCM information originally from block A. For one embodiment, if the reference block located by the motion vector is not CCP coded and does not have CCM information stored, no CCM information is stored for the current block.

[0182] For one embodiment, when the current block is inter-coded with bi-directional prediction, to derive the CCM information of the current block, if only one of the reference blocks located by the motion vectors has CCM information, the CCM information from the reference block which has CCM information is copied to and stored in the current block. For example, as shown in Fig. 21, suppose block F is inter-coded with bi-directional prediction. The two reference blocks located by the motion vectors are block G and block H. Block G has stored CCM information and block H does not. The CCM information of block G is copied to and stored in block F.

[0183] For another embodiment, when the current block is inter-coded with bi-directional prediction, and both reference blocks located by the motion vectors have stored CCM information, the CCM information of the current block is derived by combining all or a subset of the CCM models of its reference blocks.

[0184] For another embodiment, when the current block is inter-coded with bi-directional prediction, and both reference blocks located by the motion vectors have stored CCM information, one of the reference blocks is selected based on a set of pre-defined rules. The CCM information of the selected reference block is then copied and stored in the current block.

[0185] For one sub-embodiment, the reference block which is CCP coded is selected.

[0186] For one sub-embodiment, the reference block whose reference picture (i.e., the picture which the reference block is in) has the smaller POC distance to the current picture is selected. The CCM information of the selected reference block is copied to and stored in the current block. As shown in Fig. 21, block F is inter-coded with bi-directional prediction. The two reference blocks located by the motion vectors are block G and block H. Assume block G and block H both have stored CCM information, and |N1-N2| is smaller than |N3-N2|. Then, block G is selected, and the CCM information of block G is copied to and stored in block F.

[0187] For one sub-embodiment, the reference block whose reference picture has the smaller QP difference from the current picture is selected. The CCM information of the selected reference block is copied to and stored in the current block.

[0188] For one sub-embodiment, the reference block whose reference picture has the smaller QP value is selected. For another sub-embodiment, the reference block whose reference picture has the larger QP values is selected.

[0189] For one sub-embodiment, the rules described previously can be combined, and not all the rules described previously need to be applied.

[0190] In one embodiment, if the current block is inter-coded or there is block vector available in the current block, the CCM information of the current block can be derived by copying the CCM information of the reference block located by the motion vector or the block vector. For example, as shown in Fig. 22, the current block C has block vector available, and its referenced block B has motion vector available. The CCM information of block B is copied from block A. The CCM information of block B is then copied to block C. Hence the CCM information of block A is propagated to the current block C.

[0191] II. 11 Cascaded Vector Cross-Component Models

[0192] In one embodiment, when referencing the cross-component model (CCM) information from neighbouring blocks, if the neighbouring block has motion vector or block vector available, cascaded vectors can be derived based the motion vector or the block vector of the neighbouring block. CCM information of the blocks indicated by the cascaded vectors can also be inherited. The definition of CCM information is in the section entitled “Inheriting CCM Information” . The neighbouring blocks can be, but not limited to, the following types of candidates: spatial candidates (as in the section entitled “Inheriting Spatial Neighbouring Model Parameters” ) , non-adjacent candidates (as in the section entitled “Inheriting Non-Adjacent Spatial Neighbouring Models” ) , temporal candidates (as in the section entitled “Inheriting Temporal Neighbouring Model Parameters” ) , historical candidates (as in the section entitled “Inheriting Model Parameters from History Table” ) .

[0193] As depicted in Fig. 23, the cascaded vector can be derived as the sum of the recursively traced motion vectors and block vectors based on the motion vector or the block vector of the neighbouring block. For example, a cascade vector can be derived as follows: Let the L0 motion vector of the neighbour block be MVL0 (0) , the block vector of the block indicated by MVL0 (0) is BV (0) , the L0 motion vector of the block indicated by BV (0) is MVL0 (1) and so on. The cascaded vector MV_m is: MV_m = MVL0 (0) + BV (0) + MVL0 (1) + …+ MVL0 (m) .

[0194] The reference picture of MVL0_m is: RefPicL0_m = RefPicL0 (m) .

[0195] Here m is the trace depth, that is the number of reference picture referenced back.

[0196] Cascaded vectors can be the sum of L0 motion vectors, L1 motion vectors, and block vectors.

[0197] For each recursion, multiple cascaded vectors can be derived if the based block has multiple motion vectors or multiple block vectors. For example, assume the block indicated by MVL0 (1) is bi-prediction and has two motion vector MVL0 (2) and MVL1 (2) . Two cascaded vectors can be derived as MV_1 + MVL0 (2) and MV_1 + MVL1 (2) , where MV_1 = MVL0 (0) +BV(0) + MVL0 (1) .

[0198] The trace depth m can be a finite value, for example, m = 1. That is, the maximum value of m is a finite value. There is a limit to the number of reference picture reference back. The trace depth m can also be infinite. That is, all trace depth values are allowed, and there is no limit to number of reference picture referenced back. The trace depth m can be pre-defined. That is, there can be a pre-defined threshold for the maximum number for trace depth.

[0199] A set of cascaded vectors can be derived for different m. That is, for all the allowed trace depth, one or more cascaded vectors can be derived.

[0200] The neighbouring block can be a CU / CB, PU, TU / TB or a corresponding block with the same size of the current block.

[0201] Multiple Vector-Propagated Cross-Component Models

[0202] As described in the section entitled “Vector Propagated Cross-Component Models” , after encoding / decoding a block, the cross-component model (CCM) information of the current block is derived and stored in the current block. In one embodiment, more than one CCM information can be stored in the current block.

[0203] In one embodiment, if the current block has motion vector or block vector available and the current block is cross-component prediction (CCP) coded, in addition to storing the cross-component model used by the current block, the CCM information of the reference block located by the cascaded vector, as described in the section entitled “Cascaded Vector Cross-Component Models” can also be stored in the current block for future referencing. Note that when trace depth is 0, the cascaded vector degenerates to the motion vector or the block vector of the current block. Hence, the CCM information of the reference block located by the motion vector or the block vector of the current block can also be stored in the current block for future referencing. If the current block is not CCP code, the CCM information of the reference block located by the cascaded vector, as described in the section entitled “Cascaded Vector Cross-Component Models” can also be stored in the current block for future referencing.

[0204] The maximum number of CCM information allowed to be stored in one block can be pre-defined. If the available number of CCM information exceeds the maximum allowed number, the priority of the CCM information to be stored can be pre-defined. For example, if the current block is CCP coded, the current CCM information has the highest priority. For another example, the priority can be determined based on the trace depth of the cascaded vector. The shorter the trace depth is, the higher the priority is for the CCM information. The above rules can be combined.

[0205] Any of the foregoing proposed methods of cascaded vector derivation and associated CCM information can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in an inter / intra / prediction module of an encoder, and / or an inter / intra / prediction module of a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the inter / intra / prediction module of the encoder and / or the inter / intra / prediction module of the decoder, so as to provide the information needed by the inter / intra / prediction module.

[0206] The method of cascaded vector derivation and associated CCM information as described above can be implemented in an encoder side or a decoder side. For example, any of the proposed method can be implemented in an Intra coding module (e.g. Intra Pred 150 in Fig. 1B) in a decoder or an Intra coding module is an encoder (e.g. Intra Pred. 110 in Fig. 1A) . Any of the proposed propagated cross-component prediction 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 propagated cross-component prediction processing. While the intra prediction units (e.g. unit 110 in Fig. 1A and unit 150 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) ) .

[0207] Fig. 24 illustrates a flowchart of an exemplary video coding system that uses CCM information associated with a cascaded vector 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 or decoder side. The steps shown in the flowchart may also be implemented based hardware such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to this method, input data associated with a current block comprising a current first-colour block and a current second-colour block is received in step 2410, 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. When referencing CCM (Cross-Component Model) information from one or more neighbouring blocks, whether at least one neighbouring block has a first MV (Motion Vector) or a first BV (Block Vector) is checked in step 2420. If at least one neighbouring block has a first MV or a first BV (i.e., the “Yes” path) , steps 2430-2460 are performed. Otherwise (i.e., the “No” path) , steps 2430-2460 are skipped. In step 2430, one or more cascaded vectors are derived, wherein each cascaded vector is derived recursively as a sum of traced vectors starting from the first MV or the first BV. In step 2440, target CCM information is determined based on said one or more cascaded vectors. In step 2450, a merge list comprising the target CCM information is determined. In step 2460, the current second-colour block is encoded or decoded by using the merge list, wherein corresponding prediction data for the current second-colour block is generated by applying a cross-component model with the target CCM information to the current first-colour block when the target CCM information is selected.

[0208] 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.

[0209] 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.

[0210] 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.

[0211] The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims

1.A method of coding colour pictures using coding tools including one or more cross component models related modes, the method comprising:receiving input data associated with a current block comprising a current first-colour block and a current second-colour block, wherein the input data comprise pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side;when referencing CCM (Cross-Component Model) information from one or more neighbouring blocks, if at least one neighbouring block has a first MV (Motion Vector) or a first BV (Block Vector) :deriving one or more cascaded vectors, wherein each cascaded vector is derived recursively as a sum of traced vectors starting from the first MV or the first BV;determining target CCM information based on said one or more cascaded vectors;determining a merge list comprising the target CCM information; andencoding or decoding the current second-colour block by using the merge list, wherein corresponding prediction data for the current second-colour block is generated by applying a cross-component model with the target CCM information to the current first-colour block when the target CCM information is selected.2.The method of Claim 1, wherein if a second reference block indicated by a current cascaded vector has a second MV or a second BV, the second MV or the second BV is used as a next traced vector and the next cascaded vector is formed by adding the next traced vector to the current cascaded vector, wherein the current cascaded vector is initially set to the first MV or the first BV.3.The method of Claim 1, wherein each traced vector corresponds to an L0 MV, an L1 MV, or one BV.4.The method of Claim 1, wherein for each recursion, if one reference block indicated by one cascaded vector has multiple MVs or BVs, multiple cascaded vectors are derived.5.The method of Claim 4, wherein a set of cascaded vectors is derived for different numbers of trace depth.6.The method of Claim 4, wherein a set of cascaded vectors is derived from all possible sums of the traced vectors, and wherein the traced vectors correspond to a target trace depth.7.The method of Claim 1, wherein trace depth associated with said one or more cascaded vectors corresponds to a finite number smaller than a maximum limit.8.The method of Claim 1, wherein trace depth associated with said one or more cascaded vectors corresponds an infinite number.9.The method of Claim 1, wherein trace depth associated with said one or more cascaded vectors corresponds to a pre-defined number.10.The method of Claim 1, wherein each of said one or more neighbouring block corresponds to a CU / CB, PU, TU / TB or a corresponding block with a same size as the current block.11.The method of Claim 1, wherein when deriving corresponding CCM information to be stored in a target block, after finishing encoding / decoding the target block, multiple sets of CCM information are stored in the target block.12.The method of Claim 11, wherein if the target block has a target MV or BV available and the target block is CCP (Cross-Component Prediction) coded, the CCM information of one or more reference blocks located by one or more cascaded vectors are also stored in the target block in addition to storing the CCM information used by the target block.13.The method of Claim 11, wherein if the target block has a target MV or BV available and the target block is not CCP (Cross-Component Prediction) coded, the CCM information of one or more reference blocks located by one or more cascaded vectors are stored.14.The method of Claim 11, wherein a maximum number of sets of the CCM information allowed to be stored in one block is pre-defined.15.The method of Claim 11, wherein if an available number of sets of the CCM information exceeds a maximum allowed number, priority of the CCM information to be stored is pre-defined.16.The method of Claim 15, wherein if the target block is CCP coded, the CCM information used by the target block has a highest priority.17.The method of Claim 15, wherein the priority is determined based on trace depth of a target cascaded vector.18.The method of Claim 17, wherein the CCM information associated with a shorter trace depth has a higher priority.19.An apparatus for coding colour pictures or video 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 current first-colour block and a current second-colour block, wherein the input data comprise pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side;when referencing CCM (Cross-Component Model) information from one or more neighbouring blocks, if at least one neighbouring block has a first MV (Motion Vector) or a first BV (Block Vector) :derive one or more cascaded vectors, wherein each cascaded vector is derived recursively as a sum of traced MVs or BVs starting from the first MV or the first BV;determine target CCM information based on said one or more cascaded vectors;determine a merge list comprising the target CCM information;andencode or decode the current second-colour block by using the merge list, wherein corresponding prediction data for the current second-colour block is generated by applying a cross-component model with the target CCM information to the current first-colour block when the target CCM information is selected.

Citation Information

Patent Citations

  • Method and apparatus for video encoding or decoding

    US20200296382A1

  • CCLM-based intra-prediction method and apparatus therefor

    US20220038683A1

  • Image encoding / decoding method and apparatus, and recording medium storing bitstream

    US20220086428A1

  • Method and apparatus for cross component linear model with multiple hypotheses intra modes in video coding system

    WO2023116706A1

  • Method and apparatus of cross-component linear model prediction with refined parameters in video coding system

    WO2023138627A1