Method and apparatus of chroma prediction in video coding system
Patent Information
- Application Number
- EP2024773994
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-04-28
- Filing Date
- 2024-03-14
- Publication Date
- 2026-01-21
Smart Images

Figure CN2024081617_26092024_PF_FP
Abstract
Description
METHOD AND APPARATUS OF CHROMA PREDICTION IN VIDEO CODING SYSTEM
[0001] CROSS REFERENCE TO RELATED APPLICATIONS
[0002] The present invention is a non-Provisional Application of and claims priority to U.S. Provisional Patent Application No. 63 / 490,806, filed on March 17, 2023, U.S. Provisional Patent Application No. 63 / 497,758, filed on April 24, 2023 and U.S. Provisional Patent Application No. 63 / 498,853, filed on April 28, 2023. The U.S. Provisional Patent Applications are hereby incorporated by reference in their entireties.FIELD OF THE INVENTION
[0003] The present invention relates to video coding system. In particular, the present invention relates to schemes to improve chroma prediction by deriving the cross-component prediction. For example, compensated prediction generated using motion information and / or block vectors, or template reconstruction, of corresponding luma and chroma components is used to derive the cross-component prediction.
[0004] BACKGROUND AND RELATED ART
[0005] 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.
[0006] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing. For Intra Prediction, the prediction data is derived based on previously coded video data in the current picture. For Inter Prediction 112, Motion Estimation (ME) is performed at the encoder side and Motion Compensation (MC) is performed based on the result of ME to provide prediction data derived from other picture (s) and motion data. Switch 114 selects Intra Prediction 110 or Inter-Prediction 112 and the selected prediction data is supplied to Adder 116 to form prediction errors, also called residues. The prediction error is then processed by Transform (T) 118 followed by Quantization (Q) 120. The transformed and quantized residues are then coded by Entropy Encoder 122 to be included in a video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packed with side information such as motion and coding modes associated with Intra prediction and Inter prediction, and other information such as parameters associated with loop filters applied to underlying image area. The side information associated with Intra Prediction 110, Inter prediction 112 and in-loop filter 130, are 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.
[0007] 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.
[0008] 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.
[0009] According to VVC, an input picture is partitioned into non-overlapped square block regions referred as CTUs (Coding Tree Units) , similar to HEVC. Each CTU can be partitioned into one or multiple smaller size coding units (CUs) . The resulting CU partitions can be in square or rectangular shapes. Also, VVC divides a CTU into prediction units (PUs) as a unit to apply prediction process, such as Inter prediction, Intra prediction, etc.
[0010] Partitioning of the CTUs Using a Tree Structure
[0011] In VVC, a quadtree with nested multi-type tree using binary and ternary splits segmentation structure replaces the concepts of multiple partition unit types, i.e. it removes the separation of the CU, PU and TU concepts except as needed for CUs that have a size too large for the maximum transform length, and supports more flexibility for CU partition shapes. In the coding tree structure, a CU can have either a square or rectangular shape. A coding tree unit (CTU) is first partitioned by a quaternary tree (a.k.a. quadtree) structure. Then the quaternary tree leaf nodes can be further partitioned by a multi-type tree structure. In most cases, the CU, PU and TU have the same block size in the quadtree with nested multi-type tree coding block structure. The exception occurs when maximum supported transform length is smaller than the width or height of the colour component of the CU.
[0012] In VVC, the coding tree scheme supports the ability for the luma and chroma to have a separate block tree structure. For P and B slices, the luma and chroma CTBs in one CTU have to share the same coding tree structure. However, for I slices, the luma and chroma can have separate block tree structures. When the separate block tree mode is applied, luma CTB is partitioned into CUs by one coding tree structure, and the chroma CTBs are partitioned into chroma CUs by another coding tree structure. This means that a CU in an I slice may consist of a coding block of the luma component or coding blocks of two chroma components, and a CU in a P or B slice always consists of coding blocks of all three colour components unless the video is monochrome.
[0013] Intra Mode Coding with 67 Intra Prediction Modes
[0014] To capture the arbitrary edge directions presented in natural video, the number of directional intra modes in VVC is extended from 33, as used in HEVC, to 65.
[0015] In VVC, several conventional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes for the non-square blocks.
[0016] To keep the complexity of the most probable mode (MPM) list generation low, an intra mode coding method with 6 MPMs is used by considering two available neighbouring intra modes. The following three aspects are considered to construct the MPM list:
[0017] – Default intra modes
[0018] – Neighbouring intra modes
[0019] – Derived intra modes.
[0020] Secondary MPM lists is introduced as described in JVET-D0114 (Seregin, et al., “Block shape dependent intra mode coding” , Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11, 4th Meeting: Chengdu, CN, 15–21 October 2016, Document JVET-D0114) . The existing primary MPM (PMPM) list consists of 6 entries and the secondary MPM (SMPM) list includes 16 entries. A general MPM list with 22 entries is constructed first, and then the first 6 entries in this general MPM list are included into the PMPM list, and the rest of entries form the SMPM list. The first entry in the general MPM list is the Planar mode. The remaining entries are composed of the intra modes of the left (L) , above (A) , below-left (BL) , above-right (AR) , and above-left (AL) neighbouring blocks, the directional modes with added offset from the first two available directional modes of neighbouring blocks, and the default modes.
[0021] Decoder Side Intra Mode Derivation (DIMD)
[0022] When DIMD is applied, multiple intra modes (for example, mode 1 and mode 2 suggested by DIMD derivation process) are derived from the reconstructed neighbour samples, and those predictors are combined with the planar mode predictor with the weights derived from the gradients. The DIMD mode is used as an alternative prediction mode and is always checked in the high-complexity RDO mode.
[0023] To implicitly derive the intra prediction modes of a blocks, a texture gradient analysis is performed at both the encoder and decoder sides. This process starts with an empty Histogram of Gradient (HoG) with 65 entries, corresponding to the 65 angular modes. Amplitudes of these entries are determined during the texture gradient analysis.
[0024] In the first step, DIMD picks a template of T=3 columns and lines from respectively left side and above side of the current block. This area is used as the reference for the gradient based intra prediction modes derivation.
[0025] In the second step, the horizontal and vertical Sobel filters are applied on all 3×3 window positions, centred on the pixels of the middle line of the template. At each window position, Sobel filters calculate the intensity of pure horizontal and vertical directions as Gx and Gy, respectively. Then, the texture angle of the window is calculated as: angle=arctan (Gx / Gy) , (1)
[0026] which can be converted into one of 65 angular intra prediction modes. Once the intra prediction mode index of current window is derived as idx, the amplitude of its entry in the HoG [idx] is updated by addition of: ampl = |Gx|+|Gy| (2)
[0027] Figs. 2A-C show an example of HoG, calculated after applying the above operations on all pixel positions in the template. Fig. 2A illustrates an example of selected template 220 for a current block 210. Template 220 comprises T lines above the current block and T columns to the left of the current block. For intra prediction of the current block, the area 230 at the above and left of the current block corresponds to a reconstructed area and the area 240 below and at the right of the block corresponds to an unavailable area. Fig. 2B illustrates an example for T=3 and the HoGs are calculated for pixels 260 in the middle row and pixels 262 in the middle column. For example, for pixel 252, a 3x3 window 250 is used. Fig. 2C illustrates an example of the amplitudes (ampl) calculated based on equation (2) for the angular intra prediction modes as determined from equation (1) .
[0028] Once HoG is computed, if two intra prediction modes are derived, the indices with two tallest histogram bars are selected as the two implicitly derived intra prediction modes for the block and are further combined with the Planar mode as the prediction of DIMD mode. The prediction fusion is applied as a weighted average of the above three predictors. To this aim, the weight of planar is fixed to 21 / 64 (~1 / 3) . The remaining weight of 43 / 64 (~2 / 3) is then shared between the two HoG IPMs, proportionally to the amplitude of their HoG bars. Fig. 3 illustrates an example of the blending process. As shown in Fig. 3, two intra modes (M1 312 and M2 314) are selected according to the indices with two tallest bars of histogram bars 310. The three predictors (340, 342 and 344) are used to form the blended prediction. The three predictors correspond to applying the M1, M2 and planar intra modes (320, 322 and 324 respectively) to the reference pixels 330 to form the respective predictors. The three predictors are weighted by respective weighting factors (ω1, ω2 and ω3) 350. The weighted predictors are summed using adder 352 to generate the blended predictor 360. Note that, if only one mode (i.e., single mode) exists in the histogram, then no blending process, and no second DIMD mode.
[0029] Besides, the two implicitly derived intra modes are included into the MPM list so that the DIMD process is performed before the MPM list is constructed. The primary derived intra mode of a DIMD block is stored with a block and is used for MPM list construction of the neighbouring blocks.
[0030] Template-based Intra Mode Derivation (TIMD)
[0031] Template-based intra mode derivation (TIMD) mode implicitly derives the intra prediction mode of a CU using a neighbouring template at both the encoder and decoder, instead of signalling the intra prediction mode to the decoder. As shown in Fig. 4, the prediction samples of the template (412 and 414) for the current block 410 are generated using the reference samples (420 and 422) of the template for each candidate mode. A cost is calculated as the SATD (Sum of Absolute Transformed Differences) between the prediction samples and the reconstruction samples of the template. The intra prediction mode with the minimum cost is selected as the DIMD mode and used for intra prediction of the CU. The candidate modes may be 67 intra prediction modes as in VVC or extended to 131 intra prediction modes. In general, MPMs can provide a clue to indicate the directional information of a CU. Thus, to reduce the intra mode search space and utilize the characteristics of a CU, the intra prediction mode can be implicitly derived from the MPM list.
[0032] For each intra prediction mode in MPMs, the SATD (TIMD cost) between the prediction and reconstruction samples of the template is calculated. First two intra prediction modes with the minimum SATD are selected as the TIMD modes suggested by TIMD derivation process. These two TIMD modes are fused with weights after applying PDPC process, and such weighted intra prediction is used to code the current CU. Position dependent intra prediction combination (PDPC) is included in the derivation of the TIMD modes.
[0033] The costs of the two selected modes are compared with a threshold, in the test, the cost factor of 2 is applied as follows: costMode2 < 2*costMode1.
[0034] If this condition is true, the fusion is applied, otherwise only mode1 is used (i.e., single mode case) . Weights of the modes are computed from their SATD costs as follows: weight1 = costMode2 / (costMode1+ costMode2) weight2 = 1 -weight1.
[0035] Template Matching Prediction (TMP)
[0036] Template matching prediction (TMP) 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.
[0037] CCLM (Cross Component Linear Model)
[0038] The main idea behind CCLM mode (sometimes abbreviated as LM mode) is as follows: chroma components of a block can be predicted from the collocated reconstructed luma samples by linear models whose parameters are derived from already reconstructed luma and chroma samples that are adjacent to the block.
[0039] In VVC, the CCLM mode makes use of inter-channel dependencies by predicting the chroma samples from reconstructed luma samples. This prediction is carried out using a linear model in the form P (i, j ) = a · recL′ (i, j) + b. (3)
[0040] Here, P (i, j) represents the predicted chroma samples in a CU and rec′L (i, j) represents the reconstructed luma samples of the same CU which are down-sampled for the case of non-4: 4: 4 colour format. The model parameters a and b are derived based on reconstructed neighbouring luma and chroma samples at both encoder and decoder side without explicit signalling.
[0041] Three CCLM modes, i.e., CCLM_LT, CCLM_L, and CCLM_T, are specified in VVC. These three modes differ with respect to the locations of the reference samples that are used for model parameter derivation. Samples only from the top boundary are involved in the CCLM_T mode and samples only from the left boundary are involved in the CCLM_L mode. In the CCLM_LT mode, samples from both the top boundary and the left boundary are used.
[0042] MMLM Overview
[0043] As indicated by the name, the original CCLM mode employs one linear model for predicting the chroma samples from the luma samples for the whole CU, while in MMLM (Multiple Model CCLM) , there can be two models. 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., 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.
[0044] ○ Threshold is calculated as the average value of the neighbouring reconstructed luma samples. A neighbouring sample with RecL′ [x, y] <= Threshold is classified into group 1; while a neighbouring sample with RecL′ [x, y] > Threshold is classified into group 2.
[0045] ○ Correspondingly, a prediction for chroma is obtained using linear models:
[0046] Convolutional Cross-Component Model (CCCM)
[0047] 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.
[0048] Output of the filter is calculated as a convolution between the filter coefficients and the input values and clipped to the range of valid chroma samples:
[0049] The filter coefficients are calculated by minimising MSE between predicted and reconstructed chroma samples in the reference area.
[0050] The MSE minimization is performed by calculating autocorrelation matrix for the luma input and a cross-correlation vector between the luma input and chroma output. Autocorrelation matrix is LDL decomposed and the final filter coefficients are calculated using back-substitution. The process follows roughly the calculation of the ALF filter coefficients in ECM, however LDL decomposition was chosen instead of Cholesky decomposition to avoid using square root operations.
[0051] Gradient Linear Model (GLM)
[0052] 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+β
[0053] For signalling, when the CCLM mode is enabled for the current CU, two flags are signalled separately for Cb and Cr components to indicate whether GLM is enabled for each component. If the GLM is enabled for one component, one syntax element is further signalled to select one of 16 gradient filters (510-540 in Fig. 5) for the gradient calculation. The GLM can be combined with the existing CCLM by signalling one extra flag in bitstream. When such combination is applied, the filter coefficients that are used to derive the input luma samples of the linear model are calculated as the combination of the selected gradient filter of the GLM and the down-sampling filter of the CCLM.
[0054] Chroma DM mode
[0055] For Chroma DM mode, the intra prediction mode of the corresponding (collocated) luma block covering the centre position of the current chroma block is directly inherited.
[0056] Intra Block Copy
[0057] Intra block copy (IBC) is a tool adopted in HEVC extensions on SCC (Screen Content Coding) . It is well known that it significantly improves the coding efficiency of screen content materials. Since IBC mode is implemented as a block level coding mode, block matching (BM) is performed at the encoder to find the optimal block vector (or motion vector) for each CU. Here, a block vector is used to indicate the displacement from the current block to a reference block, which is already reconstructed inside the current picture. The luma block vector of an IBC-coded CU is in integer precision. The chroma block vector is rounded to integer precision as well. When combined with AMVR (Adaptive Motion Vector Resolution) , the IBC mode can switch between 1-pel and 4-pel motion vector precisions. An IBC-coded CU is treated as the third prediction mode other than intra or inter prediction modes. The IBC mode is applicable to the CUs with both width and height smaller than or equal to 64 luma samples.
[0058] Direct Block Vector (DBV) Mode for Chroma Prediction
[0059] The direct block vector is used for chroma blocks. A flag is signaled to indicate whether a chroma block is coded using IBC mode. If one of the luma blocks in the pre-defined locations is coded with IBC or intraTMP mode, its block vector is scaled and is used as block vector for the chroma block. Template matching is used to perform block vector scaling.
[0060] Inter Prediction Overview
[0061] According to JVET-T2002 Section 3.4. (Jianle Chen, et. al., “Algorithm description for Versatile Video Coding and Test Model 11 (VTM 11) ” , Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29, 20th Meeting, by teleconference, 7 –16 October 2020, Document: JVET-T2002) ) , for each inter-predicted CU, motion parameters consist of motion vectors, reference picture indices and reference picture list usage index, and additional information needed for the new coding feature of VVC to be used for inter-predicted sample generation. The motion parameter can be signalled in an explicit or implicit manner. When a CU is coded with skip mode, the CU is associated with one PU and has no significant residual coefficients, no coded motion vector delta or reference picture index. A merge mode is specified whereby the motion parameters for the current CU, which are obtained from neighbouring CUs, including spatial and temporal candidates, and additional schedules introduced in VVC. The merge mode can be applied to any inter-predicted CU, not only for skip mode. The alternative to the merge mode is the explicit transmission of motion parameters, where motion vector, corresponding reference picture index for each reference picture list and reference picture list usage flag and other needed information are signalled explicitly per each CU.
[0062] Beyond the inter coding features in HEVC, VVC includes a number of new and refined inter prediction coding tools listed as follows:
[0063] – Extended merge prediction
[0064] – Merge mode with MVD (MMVD)
[0065] – Symmetric MVD (SMVD) signalling
[0066] – Affine motion compensated prediction
[0067] – Subblock-based temporal motion vector prediction (SbTMVP)
[0068] – Adaptive motion vector resolution (AMVR)
[0069] – Motion field storage: 1 / 16th luma sample MV storage and 8x8 motion field compression
[0070] – Bi-prediction with CU-level weight (BCW)
[0071] – Bi-directional optical flow (BDOF)
[0072] – Decoder side motion vector refinement (DMVR)
[0073] – Geometric partitioning mode (GPM)
[0074] – Combined inter and intra prediction (CIIP)
[0075] The following description provides the details of those inter prediction methods specified in VVC.
[0076] Extended Merge Prediction
[0077] In VVC, the merge candidate list is constructed by including the following five types of candidates in order:
[0078] 1) Spatial MVP from spatial neighbour CUs
[0079] 2) Temporal MVP from collocated CUs
[0080] 3) History-based MVP from an FIFO table
[0081] 4) Pairwise average MVP
[0082] 5) Zero MVs.
[0083] The size of merge list is signalled in sequence parameter set (SPS) header and the maximum allowed size of merge list is 6. For each CU coded in the merge mode, an index of best merge candidate is encoded using truncated unary binarization (TU) . The first bin of the merge index is coded with context and bypass coding is used for remaining bins.
[0084] The derivation process of each category of the merge candidates is provided in this session. As done in HEVC, VVC also supports parallel derivation of the merge candidate lists (or called as merging candidate lists) for all CUs within a certain size of area.
[0085] Spatial Candidate Derivation
[0086] 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. 6A. 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. 6B 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.
[0087] During the development of the VVC standard, a coding tool referred as Non-Adjacent Motion Vector Prediction (NAMVP) has been proposed in JVET-L0399 (Yu Han, et al., “CE4.4.6: Improvement on Merge / Skip mode” , Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11, 12th Meeting: Macao, CN, 3–12 Oct. 2018, Document: JVET-L0399) . According to the NAMVP technique, the non-adjacent spatial merge candidates are inserted after the TMVP (i.e., the temporal MVP) in the regular merge candidate list. The pattern of non-adjacent spatial merge candidates is shown in Fig. 7. The distances between non-adjacent spatial candidates and current coding block are based on the width and height of current coding block. In Fig. 7, each small square corresponds to a NAMVP candidate and the candidates are ordered (as shown by the number inside the square) according to the distance. The line buffer restriction is not applied. In other words, the NAMVP candidates far away from a current block may have to be stored that may require a large buffer.
[0088] Temporal Candidates Derivation
[0089] 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.
[0090] 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.
[0091] History-based Merge Candidate Derivation
[0092] The history-based MVP (HMVP) merge candidates are added to merge list after the spatial MVP and TMVP. In this method, the motion information of a previously coded block is stored in a table and used as MVP for the current CU. The table with multiple HMVP candidates is maintained during the encoding / decoding process. The table is reset (emptied) when a new CTU row is encountered. Whenever there is a non-subblock inter-coded CU, the associated motion information is added to the last entry of the table as a new HMVP candidate.
[0093] The HMVP table size S is set to be 6, which indicates up to 5 History-based MVP (HMVP) candidates may be added to the table. When inserting a new motion candidate to the table, a constrained first-in-first-out (FIFO) rule is utilized wherein redundancy check is firstly applied to find whether there is an identical HMVP in the table. If found, the identical HMVP is removed from the table and all the HMVP candidates afterwards are moved forward, and the identical HMVP is inserted to the last entry of the table.
[0094] HMVP candidates could be used in the merge candidate list construction process. The latest several HMVP candidates in the table are checked in order and inserted to the candidate list after the TMVP candidate. Redundancy check is applied on the HMVP candidates to the spatial or temporal merge candidate.
[0095] To reduce the number of redundancy check operations, the following simplifications are introduced:
[0096] 1. The last two entries in the table are redundancy checked to A1 and B1 spatial candidates, respectively.
[0097] 2. Once the total number of available merge candidates reaches the maximally allowed merge candidates minus 1, the merge candidate list construction process from HMVP is terminated.
[0098] Pair-wise Average Merge Candidate Derivation
[0099] Pairwise average candidates are generated by averaging predefined pairs of candidates in the existing merge candidate list, using the first two merge candidates. The first merge candidate is defined as p0Cand and the second merge candidate can be defined as p1Cand, respectively. The averaged motion vectors are calculated according to the availability of the motion vector of p0Cand and p1Cand separately for each reference list. If both motion vectors are available in one list, these two motion vectors are averaged even when they point to different reference pictures, and its reference picture is set to the one of p0Cand; if only one motion vector is available, use the one directly; if no motion vector is available, keep this list invalid. Also, if the half-pel interpolation filter indices of p0Cand and p1Cand are different, it is set to 0.
[0100] When the merge list is not full after pair-wise average merge candidates are added, the zero MVPs are inserted in the end until the maximum merge candidate number is encountered.
[0101] Merge Estimation Region
[0102] Merge estimation region (MER) allows independent derivation of merge candidate list for the CUs in the same merge estimation region (MER) . A candidate block that is within the same MER as the current CU is not included for the generation of the merge candidate list of the current CU. In addition, the updating process for the history-based motion vector predictor candidate list is updated only if (xCb + cbWidth ) >> Log2ParMrgLevel is greater than xCb >> Log2ParMrgLevel and (yCb + cbHeight ) >> Log2ParMrgLevel is great than (yCb >> Log2ParMrgLevel ) , and where (xCb, yCb ) is the top-left luma sample position of the current CU in the picture and (cbWidth, cbHeight ) is the CU size. The MER size is selected at the encoder side and signalled as log2_parallel_merge_level_minus2 in the Sequence Parameter Set (SPS) .
[0103] Bi-Prediction with CU-level Weight (BCW)
[0104] In HEVC, the bi-prediction signal, Pbi-pred is generated by averaging two prediction signals, P0 and P1 obtained from two different reference pictures and / or using two different motion vectors. In VVC, the bi-prediction mode is extended beyond simple averaging to allow weighted averaging of the two prediction signals. Pbi-pred= ( (8-w) *P0+w*P1+4)>>3 (4)
[0105] Five weights are allowed in the weighted averaging bi-prediction, w∈ {-2, 3, 4, 5, 10} . For each bi-predicted CU, the weight w is determined in one of two ways: 1) for a non-merge CU, the weight index is signalled after the motion vector difference; 2) for a merge CU, the weight index is inferred from neighbouring blocks based on the merge candidate index. BCW is only applied to CUs with 256 or more luma samples (i.e., CU width times CU height is greater than or equal to 256) . For low-delay pictures, all 5 weights are used. For non-low-delay pictures, only 3 weights (w ∈ {3, 4, 5} ) are used. At the encoder, fast search algorithms are applied to find the weight index without significantly increasing the encoder complexity. These algorithms are summarized as follows. The details are disclosed in the VTM software and document JVET-L0646 (Yu-Chi Su, et. al., “CE4-related: Generalized bi-prediction improvements combined from JVET-L0197 and JVET-L0296” , Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29, 12th Meeting: Macao, CN, 3–12 Oct. 2018, Document: JVET-L0646) .
[0106] The BCW weight index is coded using one context coded bin followed by bypass coded bins. The first context coded bin indicates if equal weight is used; and if unequal weight is used, additional bins are signalled using bypass coding to indicate which unequal weight is used.
[0107] In VVC, CIIP and BCW cannot be jointly applied for a CU. When a CU is coded with CIIP mode, the BCW index of the current CU is set to 2, (i.e., w=4 for equal weight) . Equal weight implies the default value for the BCW index.
[0108] Geometric Partitioning Mode (GPM)
[0109] In VVC, a geometric partitioning mode is supported for inter prediction. The geometric partitioning mode is signalled using a CU-level flag as one kind of merge mode, with other merge modes including the regular merge mode, the MMVD mode, the CIIP mode and the subblock merge mode. In total 64 partitions are supported by geometric partitioning mode for each possible CU size w×h=2m×2n with m, n ∈ {3…6} excluding 8x64 and 64x8.
[0110] When this mode is used, a CU is split into two parts by a geometrically located straight line (shown in Fig. 10) . The location of the splitting line is mathematically derived from the angle and offset parameters of a specific partition. Each part of a geometric partition in the CU is inter-predicted using its own motion; only uni-prediction is allowed for each partition, that is, each part has one motion vector and one reference index. The uni-prediction motion constraint is applied to ensure that same as the conventional bi-prediction, only two motion compensated prediction are needed for each CU. The uni-prediction motion for each partition is derived
[0111] If geometric partitioning mode is used for the current CU, then a geometric partition index indicating the partition mode of the geometric partition (angle and offset) , and two merge indices (one for each partition) are further signalled. The number of maximum GPM candidate size is signalled explicitly in SPS and specifies syntax binarization for GPM merge indices. After predicting each of part of the geometric partition, the sample values along the geometric partition edge are adjusted using a blending processing with adaptive weights. This is the prediction signal for the whole CU, and transform and quantization process will be applied to the whole CU as in other prediction modes. Finally, the motion field of a CU predicted using the geometric partition modes is stored.
[0112] Uni-Prediction Candidate List Construction
[0113] The uni-prediction candidate list is derived directly from the merge candidate list constructed according to the extended merge prediction process. Denote n as the index of the uni-prediction motion in the geometric uni-prediction candidate list. The LX motion vector of the n-th extended merge candidate (X = 0 or 1, i.e., LX = L0 or L1) , with X equal to the parity of n, is used as the n-th uni-prediction motion vector for geometric partitioning mode. In case a corresponding LX motion vector of the n-the extended merge candidate does not exist, the L (1 -X) motion vector of the same candidate is used instead as the uni-prediction motion vector for geometric partitioning mode.
[0114] Blending Along the Geometric Partitioning Edge
[0115] After predicting each part of a geometric partition using its own motion, blending is applied to the two prediction signals to derive samples around geometric partition edge. The blending weight for each position of the CU are derived based on the distance between individual position and the partition edge.
[0116] Combined Inter and Intra Prediction (CIIP)
[0117] In VVC, when a CU is coded in merge mode, if the CU contains at least 64 luma samples (that is, CU width times CU height is equal to or larger than 64) , and if both CU width and CU height are less than 128 luma samples, an additional flag is signalled to indicate if the combined inter / intra prediction (CIIP) mode is applied to the current CU. As its name indicates, the CIIP prediction combines an inter prediction signal with an intra prediction signal. The inter prediction signal in the CIIP mode Pinter is derived using the same inter prediction process applied to regular merge mode; and the intra prediction signal Pintra is derived following the regular intra prediction process with the planar mode. Then, the intra and inter prediction signals are combined using weighted averaging, where the weight value wt is calculated depending on the coding modes of the top and left neighbouring blocks (as shown in Fig. 11) of current CU 1110 as follows:
[0118] – If the top neighbour is available and intra coded, then set isIntraTop to 1, otherwise set isIntraTop to 0;
[0119] – If the left neighbour is available and intra coded, then set isIntraLeft to 1, otherwise set isIntraLeft to 0;
[0120] – If (isIntraLeft + isIntraTop) is equal to 2, then wt is set to 3;
[0121] – Otherwise, if (isIntraLeft + isIntraTop) is equal to 1, then wt is set to 2;
[0122] – Otherwise, set wt to 1.
[0123] The CIIP prediction is formed as follows: PCIIP= ( (4-wt) *Pinter+wt*Pintra+2)>>2 (5)
[0124] Multi-hypothesis prediction (MHP) (More details can be found in JVET-W2025. )
[0125] In the multi-hypothesis inter prediction mode (JVET-M0425) , one or more additional motion-compensated prediction signals are signalled, in addition to the conventional bi prediction signal. The resulting overall prediction signal is obtained by sample-wise weighted superposition. With the bi prediction signal pbi and the first additional inter prediction signal / hypothesis h3, the resulting prediction signal p3 is obtained as follows: p3= (1-α) pbi+αh3
[0126] The weighting factor α is specified by the new syntax element add_hyp_weight_idx, according to the mapping in Table 1.
[0127] Table 1. Mapping between weighting factor α and add_hyp_weight_idx.
[0128] Analogously to above, more than one additional prediction signal can be used. The resulting overall prediction signal is accumulated iteratively with each additional prediction signal. pn+1= (1-αn+1) pn+αn+1hn+1
[0129] The resulting overall prediction signal is obtained as the last pn (i.e., the pn having the largest index n) . For example, up to two additional prediction signals can be used (i.e., n is limited to 2) .
[0130] The motion parameters of each additional prediction hypothesis can be signaled either explicitly by specifying the reference index, the motion vector predictor index, and the motion vector difference, or implicitly by specifying a merge index. A separate multi-hypothesis merge flag distinguishes between these two signalling modes.
[0131] In the present invention, methods to improve chroma prediction by deriving the cross-component prediction using reference data, for example, compensated prediction generated using motion information and / or block vectors or template reconstruction, of corresponding luma and chroma components, are disclosed. Moreover, methods to derive inter, intra, or block-vector prediction using regression based derivation are disclosed.
[0132] BRIEF SUMMARY OF THE INVENTION
[0133] A method and apparatus for video coding are disclosed. According to this method, input data associated with a current block in a current picture comprising a first-colour component and a second-colour component are 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 comprises a first colour block and a second-colour block. Whether a target mode is applied to the current block is determined. In response to applying the target mode to the current block: a target candidate cross-component predictor for the second-colour block is derived, wherein a target candidate cross-component model associated with the target candidate cross-component predictor is derived using reference data of corresponding first-colour component and corresponding second-colour component for the current block, wherein the reference data is associated with a reference region comprising template of the current block or a pre-defined region indicated using a vector; and deriving a final prediction using the target candidate cross-component predictor. The second-colour block is encoded or decoded using the final prediction.
[0134] In one embodiment, the reference data comprises compensated prediction of the corresponding first-colour component and the corresponding second-colour component for the current block. In one embodiment, when the vector is a block vector or the current block is coded using the block vector, the compensated prediction of the corresponding first-colour component and the corresponding second-colour component for the current block is derived using block compensation according to the block vector. In one embodiment, when the vector is a motion vector or the current block is coded using the motion vector, the compensated prediction of the corresponding first-colour component and the corresponding second-colour component for the current block is derived using motion compensation according to the motion vector. In one embodiment, the reference data is derived using reconstruction of the corresponding first-colour component and the corresponding second-colour component for the reference region.
[0135] In one embodiment, the target candidate cross-component model is derived using current prediction samples, template samples, or both.
[0136] In one embodiment, after the target candidate cross-component model is derived, the target candidate cross-component predictor for the second-colour block is derived by applying the target candidate cross-component model to reconstructed first-colour block.
[0137] In one embodiment, the target candidate cross-component model corresponds to CCLM (Cross Component Linear Model) , MMLM (Multiple Model CCLM) , or CCCM (Convolutional Cross-Component Model) .
[0138] In one embodiment, the target candidate cross-component model is selected from a candidate set comprising multiple candidates or referring to a candidate list. In one embodiment, the candidate set comprises one or more inherited cross-component model candidates. In one embodiment, said one or more inherited cross-component model candidates comprise one or more spatial candidates associated with one or more corresponding cross-component models from one or more neighbouring blocks. In another embodiment, said one or more neighbouring blocks correspond to one or more adjacent blocks or one or more non-adjacent blocks. In one embodiment, said one or more inherited cross-component model candidates comprise one or more temporal candidates associated with one or more corresponding cross-component models from one or more temporal collated positions. In one embodiment, said one or more inherited cross-component model candidates comprise one or more history candidates associated with one or more corresponding cross-component models from a history table including one or more corresponding cross-component models from previously coded blocks.
[0139] In one embodiment, (a) a candidate model associated with the target candidate cross-component model is selected from a self-derived candidate set consisting of self-derived candidate cross-component models or (b) the candidate model associated with the target candidate cross-component model is selected between using an inherited model or using a self-derived model. In one embodiment, an index is signalled or parsed explicitly to select the candidate model in case (a) , case (b) , or a combination thereof. In one embodiment, the candidate model in case (a) , case (b) , or a combination thereof is selected implicitly. In one embodiment, the candidate model is selected implicitly using template-based mode derivation.
[0140] In one embodiment, a first syntax is signalled or parsed at a TU (Transform Unit) level, TB (Transform Block) level, CU (Coding Unit) level, CB (Coding Block) level, or a combination thereof to indicate how to obtain the target candidate cross-component model for the current block or whether to apply the target mode to the current block. In one embodiment, the first syntax is signalled or parsed only when satisfying that a corresponding TU or TB has non-zero Cbf (coded block flag equal to true) , the current block is coded using a supported mode, or a size condition is met.
[0141] In one embodiment, when an IBC (Intra Block Copy) related mode or an inter prediction mode is used, block-vector based prediction for the second-colour block or inter prediction for the second-colour block is combined with or replaced by the target candidate cross-component predictor.
[0142] In one embodiment, the block-vector based prediction or the inter prediction is combined with the target candidate cross-component predictor using a weighting.
[0143] In one embodiment, when an inter prediction mode is used for the second-colour block, one or more hypotheses from one or more candidate cross-component models are combined with one or more hypotheses from the inter prediction mode.
[0144] In one embodiment, if a cross-component related mode is used for generating prediction samples for the second-colour block and the current block is coded using an inter or IBC related coding tool, a flag is signalled or parsed to indicate whether the cross-component related mode used is inherited from a previously coded block or derived using a predetermined cross-component mode.
[0145] In one embodiment, the current block is partitioned into multiple subblocks. In one embodiment, each subblock derives its own candidate set or uses its own reference data.BRIEF DESCRIPTION OF THE DRAWINGS
[0146] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing.
[0147] Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.
[0148] Fig. 2A illustrates an example of selected template for a current block, where the template comprises T lines above the current block and T columns to the left of the current block.
[0149] Fig. 2B illustrates an example for T=3 and the HoGs (Histogram of Gradient) are calculated for pixels in the middle row and pixels in the middle column.
[0150] Fig. 2C illustrates an example of the amplitudes (ampl) for the angular intra prediction modes.
[0151] Fig. 3 illustrates an example of the blending process, where two angular intra modes (M1 and M2) are selected according to the indices with two tallest bars of histogram bars.
[0152] Fig. 4 illustrates an example of template-based intra mode derivation (TIMD) mode, where TIMD implicitly derives the intra prediction mode of a CU using a neighbouring template at both the encoder and decoder.
[0153] Fig. 5 illustrates the 16 gradient patterns for Gradient Linear Model (GLM) .
[0154] Fig. 6A illustrates the neighbouring blocks used for deriving spatial merge candidates for VVC.
[0155] Fig. 6B illustrates the possible candidate pairs considered for redundancy check in VVC.
[0156] Fig. 7 illustrates an exemplary pattern of the non-adjacent spatial merge candidates.
[0157] Fig. 8 illustrates an example of temporal candidate derivation, where a scaled motion vector is derived according to POC (Picture Order Count) distances.
[0158] Fig. 9 illustrates the position for the temporal candidate selected between candidates C0 and C1.
[0159] Fig. 10 illustrates examples of the GPM splits grouped by identical angles.
[0160] Fig. 11 illustrates an example of the weight value derivation for Combined Inter and Intra Prediction (CIIP) according to the coding modes of the top and left neighbouring blocks.
[0161] Fig. 12A illustrates the centre of the pattern to select source terms for the luma component.
[0162] Fig. 12B illustrates an example of 5x5 cross pattern and Fig. 12C illustrates an example of 5x5 diamond pattern for the luma component.
[0163] Fig. 13A illustrates the centre of the pattern to select source terms for the chroma component.
[0164] Fig. 13B illustrates an example of 5x5 cross pattern and Fig. 13C illustrates an example of 5x5 diamond pattern for the chroma component.
[0165] Fig. 14 illustrates an example of the spatial neighbouring region of the current block includes above reference region, left reference region, and above-left reference region for deriving the weighting setting.
[0166] Fig. 15 illustrates an example of deriving prediction for a chroma sample using 6 not-downsampled source terms of the luma component.
[0167] Fig. 16 illustrates an example of reconstructed samples and predicted samples at the boundary region of a current block for boundary matching evaluation.
[0168] Fig. 17 illustrates a flowchart of an exemplary video coding system that derives the cross-component prediction using reference data of corresponding luma and chroma components according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION
[0169] 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.
[0170] 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.
[0171] In this invention, methods to improve chroma prediction by using cross-component prediction are disclosed. For example, compensated prediction generated using motion information and / or block vectors, or template reconstruction, of corresponding luma and chroma components is used to derive the cross-component prediction. Moreover, methods to derive inter, intra, or block-vector prediction using regression based derivation are disclosed.
[0172] I. Regression based Derivation of Inter or Intra or Block-Vector Prediction
[0173] In this invention, a novel mechanism to improve accuracy of prediction is proposed. The prediction of the current bock is formed by combining one or more proposed source terms and a proposed weighting setting. As shown in expression (6) (or equation 6) , pred (i, j) is a target (predicted) sample in the current block that can be obtained after this proposed mechanism, sourceTermSet0 includes one or more source terms from luma component, sourceTermSet1 includes one or more source terms from chroma components, and biasTermSet includes one or more bias terms. pred (i, j) = (sourceTermSet0 (i, j) +sourceTermSet1 (i, j) + …+ biasTermSet) with the proposed weighting setting (6)
[0174] where (i, j) is a sample position in the current block.
[0175] The equation (6) is just an example and the proposed mechanism can use any subset or extension of sourceTermSet0, sourceTermSet1, and biasTermSet. Each sample or any subset of samples in the current block gets its target (predicted) sample according to the equation (6) . In the following, the content of sourceTermSet0 is described in Section I. 1, the content of sourceTermSet1 is described in Section I. 2, the content of biasTermSet is described in Section I. 3, and the predictor derivation using the proposed source terms and the proposed weighting setting is described in Section I. 4. Several coding tools, including MHP and / or BCW and / or CIIP and / or fusion of chroma cross-component prediction modes (e.g., TIMD-CCM) , with our proposed mechanism are shown in Section I. 4.
[0176] I. 1 Content of sourceTermSet0 (i, j)
[0177] SourceTermSet0 (i, j) includes one or more luma source terms denoted as sourceTerm00, sourceTerm01, …, and / or sourceTerm0n-1. The value of n means the number of taps for the source term set. In one embodiment, the source terms can be linear terms and / or non-linear terms, only linear terms, and / or only non-linear terms. In another embodiment, n is a pre-defined value such as 1, 2, …or any positive integer. For example, the pre-defined value is fixed in the standard. For another example, the pre-defined value is smaller than or equal to a maximum threshold indicated by a syntax in the bitstream where the syntax is at block, CTU, CTB, slice, tile, picture, SPS, PPS, picture, and / or sequence level. In another embodiment, n is determined according to coding information of the current block and / or sample position (i, j) . For example, when the current block is coded using a specific coding tool, n is (1) fixed at a pre-defined value, (2) determined according to block width, block height, block area, coding information and / or sample information for the current block, (3) determined according to coding information and / or sample information for the adjacent / non-adjacent spatial neighbouring reference region of the current block, and / or (4) determined according to coding information and / or sample information for the temporal reference region of the current block. In another embodiment, the pattern of the n taps refers to a pattern defined as any subset of a window region M x N around / including the position (iL, jL) . That is, (iL, jL) is used to derive the window and / or the pattern which means one or more to-be-used positions. For example, (iL, jL) refers to the centre of the window and / or the pattern. However, (iL, jL) is not limited to referring to the centre of the window and / or the pattern. If the target sample is luma, (iL, jL) is (i, j) . If the target sample is chroma (cb or cr) , (iL, jL) is the collocated luma position from (i, j) .
[0178] For one example, (iL, jL) refers to the centre of the window and only the centre (iL, jL) of the window is used, as shown in Fig. 12A, where the centre is indicated by a grey square C. For another example, (iL, jL) refers to the centre of the window and the pattern is a 5x5 cross, which may or may not include the centre at (iL, jL) as shown in Fig. 12B, where samples used as source terms are shown as dot-filled squares. For yet another example, (iL, jL) refers to the centre of the window and the pattern is a 5x5 diamond, which may or may not include the centre (iL, jL) as shown in Fig. 12C, where samples used as source terms are shown as dot-filled squares.
[0179] In another embodiment, different taps refer to the source terms from different prediction modes or different mode types. In one sub-embodiment, one or more taps are from mode type intra, another one or more taps are from mode type inter, and / or another one or more taps are from mode type IBC. In another sub-embodiment, one or more taps are from MIP intra prediction modes, another one or more taps are from non-MIP intra prediction modes.
[0180] For a source term in the source term set, the following embodiments are used to determine generation of source content.
[0181] In one embodiment, the source content is based on a predicted sample generated by a prediction mode and / or a reconstructed sample generated based on the predicted sample by a prediction mode and a reconstructed residual. For the example of generating cross-component prediction for chroma using a model, the source content, which can be viewed as the input of the model such as the reconstruction from the corresponding luma, is combined or multiplied with the weighting, which can be viewed as the model parameters, to derive the cross-component prediction for chroma.
[0182] In one sub-embodiment, the prediction mode belongs to mode type intra, mode type inter, or a third mode type (e.g., mode type IBC) . For example, the prediction mode belongs to mode type intra, the prediction mode refers to planar, DC, horizontal, vertical, other angular (directional) prediction mode, any intra prediction mode specified in 67 / 131 intra prediction mode domain, wide-angle intra prediction (WAIP) modes, TIMD derived modes, DIMD derived modes, intraTMP, and / or any intra prediction modes specified in the standard. For another example of the prediction mode belonging to mode type inter, the prediction mode refers to skip mode, regular merge modes, MMVD modes, affine modes, SbTMVP, AMVR, any merge mode specified in the standard, any AMVP (advanced MVP where AMVP can be called as non-merge inter) mode specified in the standard, or any inter mode specified in the standard. For another example of the prediction mode belonging to mode type IBC, the prediction mode refers to IBC merge, IBC AMVP, or any IBC mode specified in the standard. Note that any possible combination between the prediction mode and the mode type is supported in this invention. That is, any mentioned prediction mode can be under any mode type according to the standard definition. For example, following the standard definition, if IBC mode belongs to mode type inter, the prediction mode belongs to mode type inter in the embodiments can refer to an IBC mode.
[0183] In another sub-embodiment, the source content is the filtered source or the source with any pre-processing. For example, the source content is the predicted / reconstructed sample after filtering with a pre-defined model or filter. For the example of generating cross-component prediction for chroma using a model, the source content, which can be viewed as the input of the model such as the reconstruction from the corresponding luma, is filtered using downsampling filters or gradient filters.
[0184] In another sub-embodiment, the source content is gradient information from the predicted samples and / or reconstructed samples. If the target sample (i, j) belongs to chroma and gradient information of the collocated luma sample (as the centre circle) is calculated with any one of the following Sobel filters (as gradient filters shown in Fig. 5) or any pre-defined filter. Each value around the centre circle is multiplied with the corresponding predicted / reconstructed samples in the collocated luma block and then added with each other to form the gradient information for the source term of the target sample (i, j) .
[0185] In another sub-embodiment, if the target sample belongs to a luma sample, the predicted sample and / or the reconstructed sample is located within the current block; otherwise (the target sample belongs to a chroma sample (cb or cr) ) , the predicted sample and / or the reconstructed sample is located within the collocated (luma) block from the current (chroma) block. The predicted sample and / or the reconstructed sample is treated as an initial sample and used as source content to generate the target sample.
[0186] In another embodiment, the values of the source terms are further adjusted (added or subtracted) by a pre-defined offset. If the target sample refers to luma, several embodiments are used to generate the offset of the source term. In one sub-embodiment, the offset is determined as the averaging value of (or any subset of) predicted or reconstructed samples in the current block or in the reference region of the current block. In another sub-embodiment, the offset is determined as a sample value of a pre-defined predicted or reconstructed samples in the current block or in the reference region of the current block. For example, the sample value is from the top-left position (just outside of the top-left corner of the current block) . If the target sample refers to chroma, several embodiments are used to generate the offset of the source term. In one sub-embodiment, the offset is determined as the averaging value of (or any subset of) predicted or reconstructed samples in the collocated luma block from the current (chroma) block or in the reference region of the collocated luma block. In another sub-embodiment, the offset is determined as a sample value of a pre-defined predicted or reconstructed samples in the collocated luma block or in the reference region of the collocated luma block. For example, the sample value is from the top-left position (just outside of the top-left corner of the collocated luma block) .
[0187] In another embodiment, the source term may further include location information. For example, if the target sample refers to luma, the horizontal location (i) of (i, j) is used in a source term and the vertical location (j) of (i, j) is used in a source term; Otherwise, the horizontal location of the collocated luma block from the sample (i, j) is used in a source term and the vertical location of the collocated luma block from the sample (i, j) is used in a source term.
[0188] I. 2 Content of sourceTermSet1 (i, j)
[0189] SourceTermSet1 (i, j) includes one or more chroma (cb or cr) source terms denoted as sourceTerm10, sourceTerm11, …, and / or sourceTerm1m-1. The value of m means the number of taps for the source term set. In one embodiment, the source terms can be linear terms and / or non-linear terms, only linear terms, and / or only non-linear terms. In another embodiment, m is a pre-defined value such as 1, 2, …or any positive integer. For example, the pre-defined value is fixed in the standard. For another example, the pre-defined value is smaller than or equal to a maximum threshold indicated by a syntax in the bitstream where the syntax is at block, CTU, CTB, slice, tile, picture, SPS, PPS, picture, and / or sequence level. In another embodiment, m is determined by coding information of the current block and / or sample position (i, j) . For example, when the current block is coded by a specific coding tool, m is (1) fixed at a pre-defined value, (2) determined according to block width, block height, block area, coding information and / or sample information for the current block, (3) determined according to coding information and / or sample information for the adjacent / non-adjacent spatial neighbouring reference region of the current block, and / or (4) determined according to coding information and / or sample information for the temporal reference region of the current block. In another embodiment, the pattern of the m taps refers to a pattern defined as any subset of a window region M2 x N2 around / including the position (iC, jC) . That is, (iC, jC) is used to derive the window and / or the pattern which means one or more to-be-used positions. For some examples, (iC, jC) refers to the centre of the window and / or the pattern. However, (iC, jC) is not limited to referring to the centre of the window and / or the pattern. If the target sample is chroma (cb or cr) , (iC, jC) is (i, j) . If the target sample is luma, (iC, jC) is the collocated chroma position from (i, j) .
[0190] For one example, (iC, jC) refers to the centre of the window and only the centre (iC, jC) of the window is used, as shown in Fig. 13A, where the centre is indicated by a grey square C. For another example, (iC, jC) refers to the centre of the window and the pattern is a 5x5 cross, which may or may not include the centre at (iC, jC) as shown in Fig. 13B, where samples used as source terms are shown as dot-filled squares. For yet another example, (iC, jC) refers to the centre of the window and the pattern is a 5x5 diamond, which may or may not include the centre (iC, jC) as shown in Fig. 13C, where samples used as source terms are shown as dot-filled squares.
[0191] In another embodiment, different taps refer to the source terms from different prediction modes or different mode types. In one sub-embodiment, one or more taps are from mode type intra, another one or more taps are from mode type inter, and / or another one or more taps are from mode type IBC. In another sub-embodiment, one or more taps are from MIP intra prediction modes, another one or more taps are from non-MIP intra prediction modes.
[0192] For a source term in the source term set, the following embodiments are used to determine generation of source content.
[0193] In one embodiment, the source content is based on a predicted sample generated by a prediction mode and / or a reconstructed sample generated based on the predicted sample by a prediction mode and a reconstructed residual.
[0194] In one sub-embodiment, the prediction mode belongs to mode type intra, mode type inter, or a third mode type (e.g., mode type IBC) . For an example of the prediction mode belonging to mode type intra, the prediction mode refers to planar, DC, horizontal, vertical, other angular (directional) prediction mode, any intra prediction modes specified in 67 / 131 intra prediction mode domain, wide-angle intra prediction (WAIP) modes, TIMD derived modes, DIMD derived modes, intraTMP, DBV, any one of cross-component modes (CCLM (including CCLM_LT, CCLM_L, and / or CCLM_T) , MMLM (including MMLM_LT, MMLM_L, and / or MMLM_T) , CCCM (including CCCM_LT, CCCM_L, and / or CCCM_T) , GLM, and / or any variation / extension of the above modes) , and / or any intra prediction modes specified in the standard. For another example of the prediction mode belonging to mode type inter, the prediction mode refers to skip mode, regular merge modes, MMVD modes, affine modes, SbTMVP, AMVR, any merge mode specified in the standard, any AMVP mode specified in the standard, or any inter mode specified in the standard. For another example of the prediction mode belonging to mode type IBC, the prediction mode refers to IBC merge, IBC AMVP (advanced MVP where AMVP can be called as non-merge inter in this disclosure) , or any IBC mode specified in the standard. Note that any possible combination between the prediction mode and the mode type is supported in this invention. That is, any mentioned prediction mode can be under any mode type according to the standard definition. For example, following the standard definition, if IBC mode belongs to mode type inter, the prediction mode belongs to mode type inter in the embodiments can refer to an IBC mode. In one embodiment, DBV can be viewed as using IBC to generate chroma predicted samples.
[0195] In another sub-embodiment, the source content is the filtered source or the source with any pre-processing. For example, the source content is the predicted / reconstructed sample after filtering with a pre-defined model or filter.
[0196] In another sub-embodiment, the source content is gradient information from the predicted samples and / or reconstructed samples. If the target sample (i, j) belongs to luma and gradient information of the collocated chroma sample is calculated with any one of the Sobel filters, any one of the gradient filters, or any pre-defined filter.
[0197] In another sub-embodiment, if the target sample belongs to a chroma sample, the predicted sample and / or the reconstructed sample is located within the current block; otherwise (the target sample belongs to a luma sample) , the predicted sample and / or the reconstructed sample is located within the collocated (chroma) block from the current (luma) block. The predicted sample and / or the reconstructed sample is treated as an initial sample and used as source content to generate the target sample.
[0198] In another embodiment, the values of the source terms are further adjusted (added or subtracted) by a pre-defined offset. If the target sample refers to chroma, several embodiments are used to generate the offset of the source term. In one sub-embodiment, the offset is determined as the averaging value of (or any subset of) predicted or reconstructed samples in the current block or in the reference region of the current block. In another sub-embodiment, the offset is determined as a sample value of a pre-defined predicted or reconstructed samples in the current block or in the reference region of the current block. For example, the sample value is from the top-left position (just outside of the top-left corner of the current block) . If the target sample refers to luma, several embodiments are used to generate the offset of the source term. In one sub-embodiment, the offset is determined as the averaging value of (or any subset of) predicted or reconstructed samples in the collocated chroma block from the current (luma) block or in the reference region of the collocated chroma block. In another sub-embodiment, the offset is determined as a sample value of a pre-defined predicted or reconstructed samples in the collocated chroma block or in the reference region of the collocated chroma block. For example, the sample value is from the top-left position (just outside of the top-left corner of the collocated chroma block) .
[0199] In another embodiment, the source term may further include location information. For example, if the target sample refers to chroma, the horizontal location (i) of (i, j) is used in a source term and the vertical location (j) of (i, j) is used in a source term; Otherwise, the horizontal location of the collocated chroma block from the sample (i, j) is used in a source term and the vertical location of the collocated chroma block from the sample (i, j) is used in a source term.
[0200] I. 3 Content of biasTermSet
[0201] Bias term is any pre-defined value. In one embodiment, the bias term is a midValue according to bitDepth specified in the standard. For example, the bias term is set as (1<<(bitDepth-1) ) . In another embodiment, the bias term is the same for each sample in the current block. That is, the bias term is regardless of the position (i, j) .
[0202] I. 4 Predictor Derivation for Sample (i, j)
[0203] I. 4.1. Proposed Weighting Setting
[0204] The proposed weighting setting is to estimate the relationship (for example, minimizing the distortion) between the combining results of those source terms and the reconstructed samples on the reference region of the current block by a pre-defined regression method, to generate a weighting (referring to model parameters) according to the regression method, and then to apply the weighting on the source terms to get the target (predicted) samples in the current block. In one embodiment, the pre-defined regression method can be linear minimum mean square error (LMMSE) method as cross-component modes, for example, CCLM or can be any unified method with the regression method used for cross-component modes, for example, CCLM. In another embodiment, the pre-defined regression method can be the LDL decomposition method as CCCM or can be any unified method with the regression method used for CCCM. In another embodiment, the pre-defined regression method can be Gaussian elimination. For example, the reference data of the chroma component is derived using the reconstructed samples on the reference region of the chroma block to be the estimation target and the reference data of the corresponding luma component is derived using the reconstructed samples on the reference region of the corresponding luma block to be the source terms. Then, the target cross-component model is derived using the reference data of chroma and luma components.
[0205] In one embodiment, the reference region of the current block is the spatial adjacent or nonadjacent neighbouring region of the current block 1410 as shown in Fig. 14. The spatial neighbouring region of the current block (as template of the current block) includes above reference region 1420, left reference region 1430, above-left reference region 1440, and / or any subset of the above. The size of the above reference region is Aw x AH, the size of the left reference region is Lw x LH, and the size of the above-left reference is ALW x ALH, where
[0206] - Aw = block width of the current block (W) , k*W, W + block height of the current block (H) , any pre-defined value, or any adaptive value depending on the block position, block width, block height, and / or block area of the current block.
[0207] - AH or ALH = H, any pre-defined value (1, 2, 4, …) , or any adaptive value depending on the block position, block width, block height, and / or block area of the current block.
[0208] - Lw or ALW = W, any pre-defined value (1, 2, 4, …) , or any adaptive value depending on the block position, block width, block height, and / or block area of the current block.
[0209] - LH = H, k*H, H + W, any pre-defined value, or any adaptive value depending on the block position, block width, block height, and / or block area of the current block.
[0210] I. 4.2. Different Example Expressions
[0211] I. 4.2.1 predC (i, j) =α0·G (i, j) +α1·rec′L (i, j) +α2·bias
[0212] In this expression of the target sample being chroma, sourceTermSet0 includes two taps as G (i, j) and rec’L (i, j) , sourceTermSet1 is not used, and biasTerm refers to another one tap as midValue. G (i, j) is the gradient information generated from a selected gradient filter and recL′ (i, j) is down-sampled reconstructed luma sample. The model parameters (a0, a1, and a2) of the weighting are derived based on:
[0213] - Using six rows and columns adjacent samples as the reference region of the current block
[0214] - Using the LDL decomposition method as the regression method
[0215] I. 4.2.2. predC (i, j) =α0·C+α1·Gy (i, j) +α2·Gx (i, j) +α3·Y (i, j) +α4·X (i, j) +α5·P (i, j) +α6·bias
[0216] In this expression (similar to JVET-AC0054) of the target sample being chroma, sourceTermSet0 includes six taps as C (the collocated / corresponding luma reconstructed sample) , Gy (i, j) , Gx (i, j) , Y, X, and P (for example, a non-linear term as CCCM) , sourceTermSet1 is not used, and biasTerm refers to another one tap as midValue.
[0217] - Gy (i, j) is the gradient information generated from a vertical gradient filter.
[0218] - Gx (i, j) is the gradient information generated from a horizontal gradient filter.
[0219] - Y and X are the vertical and horizontal locations of the collocated luma sample.
[0220] - Using six rows and columns adjacent samples as the reference region of the current block
[0221] - Using the LDL decomposition method as the regression method
[0222] I. 4.2.3 predL (i, j) =α0·Pmode_0 (i, j) +α1·Pmode_1 (i, j) +…+αs-1·Pmode_s-1 (i, j) +αs·bias
[0223] In this expression of the target sample being luma for an inter coded block, sourceTermSet0 includes s taps as Pmode_0 to Pmode_s-1, sourceTermSet1 is not used, and biasTerm refers to another one tap as midValue.
[0224] - Each or any subset of Pmode_0 (i, j) to Pmode_s-1 (i, j) is the predicted sample from the mode indicated by an inter mode index. For example, Pmode_0 (i, j) is the predicted sample from the first mode derived using the inter mode index. For example, Pmode_s-1(i, j) is the predicted sample from the s-th mode (or (s-1) -th mode if the first mode is 0th mode) derived using the inter mode index. In one embodiment, an inter candidate list is built first and s inter motion candidates in the inter candidate list are used. For example, the inter candidate list refers to a merging / AMVP candidate list which is the same or different from the merging / AMVP candidate list for regular merge / AMVP mode. For example, the merging candidate list for regular merge mode is reused to derive the merging candidate list for the proposed mechanism. In another embodiment, only uni-prediction, only bi-prediction, or uni-prediction and / or bi-prediction inter motion candidates are inserted in the inter candidate list. In another embodiment, the maximum number of candidates in the inter candidate list is specified in the standard as a fixed number or as a syntax as block-level, CTU-level, SPS-level, PPS-level, slice-level, tile-level, picture-level, and / or sequence-level signalling. In another embodiment, an inter mode index is signalled / parsed for indicating each mode (mode 0 to s or s-1) . In another embodiment, an inter mode index is signalled / parsed to indicate a mode (e.g., mode 0) and for the remaining modes, they are selected according to mode 0. In another embodiment, two candidate lists are built. The one or more modes can be selected from one of the two candidate lists or both of the two candidate lists. One list is an inter candidate list containing one or more inter motion candidates and the other is an intra candidate list containing one or more intra candidates. If a list only contains one candidate, the only one candidate is inferred to be used without signalling.
[0225] - Parameters a0 to as-1 can be viewed as a weighting to combine each predictor from the to-be-combined mode.
[0226] In another embodiment, the proposed mechanism is treated as an optional mode (e.g, an optional mode of MHP) . That is, a flag is signalled / parsed at encoder / decoder to indicate whether to use the proposed mechanism for the current block (coded by MHP) . In one sub-embodiment, the flag is at block-level, CTU-level, slice-level, SPS-level, tile-level, PPS-level, and / or picture-level. In another embodiment, the flag is context-coded. For example, only one context is used for signalling the flag. For another example, the context selection of the flag depends on the coding information, block width, block height, and / or block area of the current block and / or the coding information, block width, block height, and / or block area of the neighbouring block.
[0227] In another embodiment, the proposed mechanism is a replacement method. When generating the predictors of the current MHP-coded block with supporting the proposed mechanism, the generation of the predictor is inferred to follow the proposed mechanisms.
[0228] In another embodiment, s here is a pre-defined value. For example, s = 1, 2, 3, or any positive integer. In one sub-embodiment, s is fixed at the pre-defined value in the standard. In another sub-embodiment, s is adaptive according to the coding information, block width, block height, and / or block area of the current block and / or the coding information, block width, block height, and / or block area of the neighbouring block. For example, if the block width height, or area is larger than a pre-defined threshold, s is a larger number; otherwise, s is a smaller number.
[0229] In another embodiment, when using the regression method to derive the model parameters on the reference region of the current block, the to-be-minimized distortion is between the combining resulting, including (1) predictors generated from the mode 0 to s-1 on the reference region of the current block and (2) bias and (3) weighting setting, and the reconstructed samples on the reference region of the current block.
[0230] In another embodiment, sourceTermSet1 can be used in the expression. That is, the corresponding chroma information can be used to generate the target luma samples.
[0231] In another embodiment, the wording “MHP” can be replaced with “BCW” , “GPM” , “CIIP” , and / or any luma / chroma coding tools, which use multiple hypotheses of prediction to form the final prediction of the current block, to apply the proposed mechanism when the current block uses the certain coding tool. When the proposed mechanism is applied to BCW, each hypothesis of prediction refers to an uni-prediction from different lists (list0 or list1) and the expression of generating final prediction is shown as follows. The hypotheses of predictions from list0 and list1are indicated with a shared inter mode index, such as a merge candidate index or an AMVP candidate index. predL(i, j) =α0·Plist_0 (i, j) +α1·Plist_1 (i, j) +α2·bias
[0232] I. 4.2.4 predL (i, j) =α0·Ppat_0 (i, j) +α1·Ppat_1 (i, j) +…+αs-1·Ppat_s-1 (i, j) +αs·bias
[0233] In this expression of the target sample being luma for an inter coded block, sourceTermSet0 includes s taps as Ppat_0 to Ppat_s-1, sourceTermSet1 is not used, and biasTerm refers to another tap as midValue.
[0234] - Each or any subset of Ppat_0 (i, j) to Ppat_s-1 (i, j) is the combined predicted sample following the rule of the inter coding tool for the current block. For an example of the inter coding tool being MHP, the combined predicted sample is formed by a MHP weighted average of each predictor generated from a MHP to-be-blended prediction mode. 0 to s-1 indicates the s-tap pattern (any pre-defined pattern in the Section I) of the source terms.
[0235] In one embodiment, the proposed mechanism is treated as an optional mode (e.g., an optional mode of MHP) . That is, a flag is signalled / parsed at encoder / decoder to indicate whether to use the proposed mechanism for the current block (coded by MHP) . In one sub-embodiment, the flag is at block-level, CTU-level, slice-level, SPS-level, tile-level, PPS-level, and / or picture-level. In another embodiment, the flag is context-coded. For example, only one context is used for signalling the flag. For another example, the context selection of the flag depends on the coding information, block width, block height, and / or block area of the current block and / or the coding information, block width, block height, and / or block area of the neighbouring block.
[0236] In another embodiment, the proposed mechanism is a replacement method. When generating the predictors of the current MHP-coded block with supporting the proposed mechanism, the generation of the predictor is inferred to follow the proposed mechanisms.
[0237] In another embodiment, s here is a pre-defined value. For example, s = 1, 2, 3, or any positive integer. In one sub-embodiment, s is fixed at the pre-defined value in the standard. In another sub-embodiment, s is adaptive according to the coding information, block width, block height, and / or block area of the current block and / or the coding information, block width, block height, and / or block area of the neighbouring block. For example, if the block width height, or area is larger than a pre-defined threshold, s is a larger number; otherwise, s is a smaller number.
[0238] In another embodiment, when using the regression method to derive the model parameters on the reference region of the current block, the to-be-minimized distortion is between the combining resulting, including (1) combining predictors generated from the pattern tap 0 to s-1 on the reference region of the current block and (2) bias and (3) weighting setting, and the reconstructed samples on the reference region of the current block.
[0239] In another embodiment, sourceTermSet1 can be used in the expression. That is, the corresponding chroma information can be used to generate the target luma samples.
[0240] In another embodiment, the wording “MHP” can be replaced with “BCW” , “GPM” , “CIIP” , and / or any luma coding tools to apply the proposed mechanism when the current block uses the certain coding tool. When the certain coding tool is GPM, generating combining predictors on either the reference region of the current block or within the current block, GPM weighted averaging follows the GPM partitioning line. That is, following GPM blending rule, for the samples near the partitioning line, equal weight is used for both of the predictions from the GPM to-be-blended prediction modes; for the samples far away from the partitioning line, a larger weight is used for the prediction from one of GPM to-be-blended modes and a smaller weight is used for the other prediction from of the other GPM to-be-blended mode if the current sample is located at the prediction unit belonging to the one of GPM to-be-blended modes (not belonging to the other GPM to-be-blended mode) .
[0241] I. 4.2.5 predC (i, j) =α0·P_CCM_0 (i, j) +…+αs-1·P_CCM_s-1 (i, j) +αs·bias
[0242] In this expression of the target sample being chroma for a block coded by cross-component mode (CCM) , sourceTermSet1 includes s taps as P_CCM_0 to P_CCM_s-1, sourceTermSet0 is not used, and biasTerm refers to another one tap as midValue.
[0243] - Each or any subset of P_CCM_0 (i, j) to P_CCM_s-1 (i, j) is the predicted sample from the mode which is selected from all or any subset of the candidate cross-component prediction modes for the coding mode. For example, P_CCM_0 (i, j) is the predicted sample from the first mode. For example, P_CCM_s-1 (i, j) is the predicted sample from the s-th mode (or (s-1) -th mode if the first mode is 0-th mode) .
[0244] In one embodiment, s is set as at least two. For the example of s being 2, when the coding mode is CCM, one predictor from CCM_0 and the other predictor from CCM_1 are used for generating the final predictor. In one sub-embodiment, the CCM_0 is indicated by a mode index and CCM_1 is derived by TIMD derivation process. That is, CCM_0 is selected depending on the signalled chroma prediction mode index and CCM_1 is the mode which has the smallest TIMD cost (among a pre-defined set of candidate CCMs) on the reference region (i.e., template) of the current block. For example, the pre-defined set of candidate CCMs for CCM includes MMLM_L, MMLM_T, and / or MMLM_LT. For another example, CCM_0 is one from CCLM_L, CCLM_T, and CCLM_LT.
[0245] In another embodiment, the proposed mechanism is treated as an optional mode (e.g., an optional mode of CCM coded block) . That is, a flag is signalled / parsed at the encoder / decoder to indicate whether to use the proposed mechanism for the current block. In one sub-embodiment, the flag is at the block-level, CTU-level, slice-level, SPS-level, tile-level, PPS-level, and / or picture-level. In another embodiment, the flag is context-coded. For example, only one context is used for signalling the flag. For another example, the context selection of the flag depends on the coding information, block width, block height, and / or block area of the current block and / or the coding information, block width, block height, and / or block area of the neighbouring block.
[0246] In another embodiment, the proposed mechanism is a replacement method. When generating the predictors of the current CCM coded block with supporting the proposed mechanism, the generation of the predictor is inferred to follow the proposed mechanisms.
[0247] In another embodiment, s here is a pre-defined value. For example, s = 1, 2, 3, or any positive integer. In one sub-embodiment, s is fixed at the pre-defined value in the standard. In another sub-embodiment, s is adaptive according to the coding information, block width, block height, and / or block area of the current block and / or the coding information, block width, block height, and / or block area of the neighbouring block. For example, if the block width height, or area is larger than a pre-defined threshold, s is a larger number; otherwise, s is a smaller number.
[0248] In another embodiment, when using the regression method to derive the model parameters on the reference region of the current block, the to-be-minimized distortion is between the combining resulting, including (1) predictors generated from the mode 0 to s-1 on the reference region of the current block, (2) bias and (3) weighting setting, and the reconstructed samples on the reference region of the current block.
[0249] In another embodiment, sourceTermSet0 can be used in the expression. That is, the corresponding luma information can be used to generate the target chroma samples. For example, rec′L(i, j) , G (i, j) , and / or Gy (i, j) , Gx (i, j) are added as the source terms in sourceTermSet0.
[0250] I. 4.2.6. predC (i, j) =α0·Ppat_0 (i, j) +α1·Ppat_1 (i, j) +…+αs-1·Ppat_s-1 (i, j) +αs·bias
[0251] In this expression of the target sample being chroma for a CCM coded block, sourceTermSet1 includes s taps as Ppat_0 to Ppat_s-1, sourceTermSet0 is not used, and biasTerm refers to another one tap as midValue.
[0252] - Each or any subset of Ppat_0 (i, j) to Ppat_s-1 (i, j) is the combined predicted sample following the rule of the CCM coding tool for the current block. For an example of the CCM coding tool being TIMD-CCM, the combined predicted sample is formed by a TIMD-CCM weighted average of each predictor generated from a TIMD-CCM to-be- blended prediction mode. 0 to s-1 indicates the s-tap pattern (any pre-defined pattern in the Section I) of the source terms. An example of TIMD-CCM weighted average is shown in the following.
[0253] - In one case, both of the two to-be-blended CCMs are selected by one or more signalled mode indices. In another case, only one of the two to-be-blended CCMs is selected by a signalled mode index and the other of the two to-be-blended CCMs is determined by the TIMD derivation process. The TIMD derivation process means for each of all candidate CCMs for the other of the two to-be-blended CCMs, a TIMD cost (or called as a template cost) is calculated on the template by comparing the distortion between the reconstructed samples on the template and the predicted samples on the template and the candidate CCM with a smallest TIMD cost is determined as the other of the two to-be-blended CCMs, where the predicted samples on the template are generated by
[0254] ● The models of the current candidate CCM are derived with the inputs as (1) the reference region of the template for the current chroma block and (2) the reference region of the template for the collocated luma block. The derived models of the current candidate CCM would be applied to the reconstructed samples in the template of the collocated luma block to get the predicted samples on the template of the current (chroma) block.
[0255] - In another case, both of the two to-be-blended CCMs are determined by the TIMD derivation process. After deciding the two to-be-blended CCMs, the weighting for the two to-be-blended CCMs depends on the TIMD costs of the two to-be-blended CCMs. The mode with a smaller TIMD cost gets a higher weight when doing TIMD-CCM (or named as template-based-CCM) weighted average.
[0256] In one embodiment, the proposed mechanism is treated as an optional mode (for example, an optional mode of TIMD-CCM) . That is, a flag is signalled / parsed at encoder / decoder to indicate whether to use the proposed mechanism for the current block (coded by TIMD-CCM) . In one sub-embodiment, the flag is at block-level, CTU-level, slice-level, SPS-level, tile-level, PPS-level, and / or picture-level. In another embodiment, the flag is context-coded. For example, only one context is used for signalling the flag. For another example, the context selection of the flag depends on the coding information, block width, block height, and / or block area of the current block and / or the coding information, block width, block height, and / or block area of the neighbouring block.
[0257] In another embodiment, the proposed mechanism is a replacement method. When generating the predictors of the current TIMD-CCM-coded block with supporting the proposed mechanism, the generation of the predictor is inferred to follow the proposed mechanisms.
[0258] In another embodiment, s here is a pre-defined value. For example, s = 1, 2, 3, or any positive integer. In one sub-embodiment, s is fixed at the pre-defined value in the standard. In another sub-embodiment, s is adaptive according to the coding information, block width, block height, and / or block area of the current block and / or the coding information, block width, block height, and / or block area of the neighbouring block. For example, if the block width height, or area is larger than a pre-defined threshold, s is a larger number; otherwise, s is a smaller number.
[0259] In another embodiment, when using the regression method to derive the model parameters on the reference region of the current block, the to-be-minimized distortion is between the combining resulting, including (1) combining predictors generated from the pattern tap 0 to s-1 on the reference region of the current block, (2) bias and (3) weighting setting, and the reconstructed samples on the reference region of the current block.
[0260] In another embodiment, sourceTermSet0 can be used in the expression. That is, the corresponding luma information can be used to generate the target chroma samples.
[0261] In another embodiment, the wording “TIMD-CCM” can be replaced with any cross-component tools, which use multiple hypotheses of predictions from multiple CCM models to form the final prediction, to apply the proposed mechanism when the current block uses a certain coding tool.
[0262] In another embodiment, when generating the target predictors of the current block and / or generating the template predictors on the reference region of the current block, a long-tap post-filter is applied. The filtering shape can be any pattern proposed in the above invention.
[0263] II. Chroma Prediction by Cross-component Information and / or Fusion
[0264] The cross-component information is used to improve prediction accuracy of an inter block. To improve the prediction accuracy of the chroma component of the inter block, the luma information from the corresponding luma component and / or the chroma information from the previous coded chroma component are used.
[0265] - The first scheme is that for a coding unit (under single tree splitting) including luma (Y) and chroma (Cb and / or Cr) components, the prediction for Cb and / or Cr is improved by using the information from Y.
[0266] - The second scheme is that for a coding unit (under single tree splitting) including luma (Y) and chroma (Cb and / or Cr) components or for a coding unit (under chroma dual tree splitting) including chroma (Cb and / or Cr) components, the prediction for Cr is improved by using the information from Cb. For example, deriving model parameters by using neighbouring reconstructed samples of Cb and Cr as the inputs X, which is used to predict Cr when deriving the model for cross-component prediction, and Y, which is used as the target when deriving the model for cross-component prediction, of model derivation. Then generating Cr prediction by the derived model parameters and Cb reconstructed samples.
[0267] In the following, several embodiments related to the first scheme are proposed to (1) determine how to get one or more model information which can be from an inherited method in the Section II. 1, determine how to get one or more model information which can be from any derivation method (e.g., the regression based method in the Section I and / or Section II. 2) , and / or build a candidate set (as the Section II. 1, for example, the set referring to the list) for the current block where the candidate set or list includes cross-component models, (2) derive one or more model information or select one or more model information in the set (for example, the set referring to the list) as the Section II. 3, and / or (3) as the Section II. 4, use the model information (similar to and / or unified with intra chroma cross-component mode or model) to generate one or more hypotheses of predictions for the current chroma component (Cb or Cr) by applying and / or modifying the selected model information to the reconstructed or predicted samples for the corresponding luma component. When the selected model information refers to traditional cross-component linear model (s) , the proposed method is called as inter cross-component linear model (inter CCLM) mode. When the selected model information refers to convolutional cross-component model (s) derived by a regression-based method (as CCCM and / or any proposed methods in the Section I and / or Section II. 2 for example) , the proposed method is called as inter cross-component convolution model (inter CCCM) mode. Details can be found in the Section II. 5.
[0268] The proposed embodiments can also be used for the second scheme by using the previous coded chroma component (Cb) as the luma component in the first scheme.
[0269] II. 1 Build a Candidate Set or List Including Cross-Component Models
[0270] In one embodiment, a candidate set comprising multiple candidates or referring to a candidate list is built. When building the merge-like candidate model set or list (where the set or list is represented as modelList) , one or more of the following candidate model information, for example, inherited candidates, are included.
[0271] - Spatial model information from spatial neighbour blocks (corresponding to “Spatial MVP from spatial neighbour CUs” for inter)
[0272] - Temporal model information from collocated blocks (corresponding to “Temporal MVP from collocated CUs” for inter)
[0273] - History-based model information from a FIFO table (corresponding to “History-based MVP from a FIFO table” for inter)
[0274] - Pairwise average model information (corresponding to “Pairwise average MVP” for inter)
[0275] - Default model information (corresponding to “Zero MVs” for inter)
[0276] In one sub-embodiment of the candidate type being “Spatial model information from spatial neighbour blocks” , a valid spatial neighbouring block (s) can be from one of spatial adjacent and / or non-adjacent neighbours (or any subset of the blocks in a neighbouring search region for the current block) which satisfies a pre-defined condition. For example, the pre-defined condition corresponds to the case that the neighbour is coded by a cross-component mode (such as CCLM, MMLM, CCCM, GLM, the mode with mode or model information inherited from a merge-like candidate list, multiple hypotheses (MH) CCLM which combines multiple hypotheses of cross-component predictions to derive the final prediction for a MH CCLM coded block, and / or any cross-component mode with syntax not belonging to tradition intra prediction modes) or combining with cross-component mode (such as chroma fusion (or named LM assisted Angular / Planar Mode) , inter CCLM or any variations specified in the section II. 5 (e.g., inter CCCM) , and / or any traditional mode with syntax not belonging to cross-component modes but using the cross-component information to generate the prediction) . When scanning the spatial neighbouring blocks, a candidate is added into the list if the candidate is valid. The following show some scanning orders when adding the spatial model information from spatial neighbour blocks (as shown in Fig. 6A) into the list.
[0277] - For example, the scanning order follows B0 (above) → A0 (left) → B1 (right-above) →A1 (left-bottom) → B2 (left-above) or any pre-defined order. For example, the scanning order follows B1 → A1 → B0 → A0 → B2.
[0278] - For example, the scanning order follows adjacent candidates are prior to (after) the non-adjacent candidates.
[0279] In another sub-embodiment of Temporal model information from collocated blocks, the collocated block is from the block in the reference or collocated picture as inter mode. For example, when the current block is coded by inter prediction mode, the collocated block is referred by the motion information (including the motion vectors and / or the reference picture) of the current block. If the current block is a subblock motion mode (e.g., affine mode) , each subblock in the current block has its own collocated temporal model information and / or all or any subset of collocated temporal model information referred by the different subblock motions are added into the list. For another example, the temporal model information can be from the collocated block referred by the motion information of the neighbouring blocks for the current block. If the proposed methods are applied to an IBC block or any mode using block vectors, block vector information is used as motion vector where the block vector information is determined by signalling and / or template matching in a pre-defined searching range and / or any implicit or explicit pre-defined rules.
[0280] In another sub-embodiment of history-based model information, a history-based table (the FIFO table) is built and stores the model information from the previous coded blocks. The table can be reset as the beginning and / or end of a CTU, CTU row, slice, picture, tile, and / or sequence. One or more than one history-based candidates can be added into the candidate list by the order from the head to tail of the table or from the tail to head of the table.
[0281] In another sub-embodiment of pairwise average model information, the model information of this candidate is derived based on the model information from more than one of the previous candidates in the list. For example, it could average and / or modify the model parameters of more than one candidates as the to-be-applied model parameters. For another example, it could combine more than one predictions as the final prediction, where each of more than one predictions are generated by applying one of models in the candidate list.
[0282] In another sub-embodiment, the default model information is added if the list is not full after inserting all pre-defined candidates. Some examples of the default CCLM model information show below.
[0283] - For example, the default alpha (or named as α, a, or scaling parameters) are {0, 1 / 8, -1 / 8, 2 / 8, -2 / 8, 3 / 8, -3 / 8, …} , and the beta (or named as β, b, or offset parameter) is based on the selected default alpha, average neighbouring reconstructed luma sample value, and / or average neighbouring reconstructed chroma (Cb / Cr) sample value.
[0284] In another sub-embodiment, when selecting one candidate from the list and using the model information from the candidate for the current block or when inheriting the model information from a previous coded block (when putting one candidate into the list) , only a subset of the model information is inherited. For example, only the alpha is inherited. The beta is obtained for the current block through the inherited alpha, average neighbouring reconstructed luma sample value, and / or average neighbouring reconstructed chroma (Cb / Cr) sample value. For example, when inheriting MMLM model information, the scaling parameters and / or the classification threshold are inherited. The offset parameter in each class is derived according to the inherited classification threshold and / or the average neighbouring reconstructed luma sample value, and / or average neighbouring reconstructed chroma (Cb / Cr) sample value in each class. If no neighbouring reconstructed samples are available in a class, the offset parameter is directly inherited from the candidate. For example, when inheriting CCCM model information, all convolution parameters, offsets, and / or the classification threshold are inherited. For example, when inheriting GLM model information, if the GLM candidate is 3-parameter GLM mode, all the gradient pattern indices and model parameters are inherited; otherwise, if the GLM candidate is the 2-parameter GLM mode, the offset parameter is derived by using the inherited scaling parameter, average neighbouring reconstructed luma sample value, and / or average neighbouring reconstructed chroma (Cb / Cr) sample value. For example, when inheriting chroma fusion model information, the derived MMLM parameters are inherited and used as when inheriting a MMLM candidate for the current block.
[0285] In another sub-embodiment, when selecting one candidate from the list and using the model information from the candidate for the current block, all model information is inherited. For example, both the alpha and beta are inherited.
[0286] In another embodiment, for the current block being a larger block with block width, height, or area larger than a pre-defined threshold, the current block is split into multiple subblocks. For example, the splitting rule is that a minimum block size is pre-defined and the current block is split until the subblock width or height meets the minimum block size. For another example, the splitting rule follows quad tree (4 subblocks) or binary tree (2 subblocks) splitting. In one sub- embodiment, each subblock derives its own candidate set or uses its own reference data to obtain the model for generating prediction. For example, each subblock will have its own list. For another example, the model is derived using current prediction samples, such as compensated prediction, template samples, or both. In another embodiment, an implicit rule is defined to select the model (from the list or set) for each subblocks. For example, the implicit rule is to use the spatial model information for the subblocks near the top boundary or left boundary of the current block and / or use the temporal model information for the subblock (e.g., the subblock at the right-bottom portion of the current block) far away from the top boundary or left boundary of the current block. If the current block is split into 4 subblocks by quadtree, the subblock at the top-left uses the spatial candidate model from B2, the subblock at the right-top uses the spatial candidate model from B1 or B0, the subblock at the left-bottom uses the spatial candidate model from A1 or A0, and / or the subblock at the right-bottom uses the temporal candidate model. Subblocks without any significant luma residual and / or cbf are skipped.
[0287] In another embodiment, when building modelList, one or more self-derived cross-component candidates, which may correspond to the one or more models derived using the methods proposed in the Section I and / or Section II. 2, are included. The model parameters can be viewed as the weighting setting in the regression technique. In one sub-embodiment, the self-derived cross-component candidates are added only when the set or list contains not enough inherited candidates or any inherited candidates are found. The self-derived cross-component candidate refers to one or more models and the models are used to generate the cross-component prediction of the current block as follows. The cross-component prediction (containing target predicted samples) of the current bock is formed by combining one or more proposed source terms and the models (referring to a proposed weighting setting) .
[0288] II. 2 Cross-Component Prediction Derivation Using Regression Technique
[0289] The regression based technique can be applied to the case of cross-component prediction. The expression (6) described previously can be applied to this case by properly setting the content of sourceTermSet0 (i, j) , content of sourceTermSet1 (i, j) and biasTermSet as disclosed in Section I. 1, Section I. 2 and Section I. 3 as well as Predictor derivation for sample (i, j) in Section I.4.
[0290] The reference region (i.e., the template) shown in Fig. 14 can be applied to the current case. In another embodiment, the reference region of the current block is the vector-collocated region of the current (chroma) block and the reference region of the corresponding luma block is the vector-collocated region of the corresponding luma block. For example, when deriving the model using the reference data, the reference data of the corresponding luma component is reconstruction of the corresponding luma component for the reference region to be the source terms and the reference data of the chroma component is reconstruction of the chroma component for the reference region to be the estimation target. The vector-collocated region is a region indicated using a vector in a pre-defined picture which can be a reference picture, the current picture, or a collocated picture. In one embodiment, for inter coding unit containing luma and chroma blocks, the vector-collocated region of the current block refers to or provides the motion compensated results for the current chroma block by using the motion information (motion vectors and / or reference pictures) of the current block, and the vector-collocated region of the corresponding luma block refers to or provides the motion compensated results for the corresponding luma block by using the motion information (motion vectors and / or reference pictures) of the corresponding luma block. In one embodiment, for IBC or intraTMP (or named as TMP) , the vector-collocated region of the current block refers to or provides the motion compensated results (specifically, block compensated results) for the current chroma block by using the motion information (specifically, the block information as block vectors and / or current picture) of the current block, and the vector-collocated region of the corresponding luma block refers to or provides the motion compensated results (specifically, block compensated results) for the corresponding luma block by using the motion information (specifically, the block information as block vectors and / or current picture) of the corresponding luma block.
[0291] In another embodiment, the above-proposed two kinds of the reference region (e.g., the reference region includes the one or more templates and a pre-defined region indicated using a vector) of the current block can be used together. For example, generally, samples in the vector-collocated region of the current block are used as input samples when deriving model parameters; however, for a smaller block, samples in the spatial neighbouring reference region (e.g., a template) are used as additional input samples when deriving model parameters.
[0292] Additional expression for this case is shown as follows.
[0293] II. 2.1 predC (i, j) =α0·L0+α1·L1+α2·L2+α3·L3+α4·L4+α5·L5+α6·P (i, j) +α7·bias
[0294] In this expression of the target sample being chroma, sourceTermSet0 includes six taps as L0 to L5 and one tap P as a nonlinear term, sourceTermSet1 is not used, and biasTerm refers to another one tap as midValue. L0 to L5 refer to the corresponding not-downsampled luma reconstructed samples referred by the to-be-predicted chroma (i, j) (denoted as the circle in Fig. 15) . P is generated by any one or multiple corresponding not-downsampled luma reconstructed samples. For example, (average of the two pre-defined corresponding luma samples +1) >> 1) is used and / or P is obtained following the non-linear term in CCCM method, for example, CCCM method in the intra process. The two pre-defined corresponding luma samples refer to the two above and bottom samples nearing to the circle in Fig. 15.
[0295] The model parameters a0 to a7 are derived by using a regression method and / or not using division operations. Before deriving the parameters, the proposed offsets are used to adjust the input samples.
[0296] In another embodiment, sourceTermSet1 is also used. For example, one or more additional taps for sourceTermSet1 refer to the initial predicted sample (i, j) for the current block and / or a pattern around (i, j) generated by using the prediction mode for the current block. For inter coding unit containing luma and chroma blocks, the initial predicted sample (i, j) refers to the motion compensated results by using the motion information (motion vectors and / or reference pictures) of the current block. For IBC or intraTMP, the initial predicted sample (i, j) refers to the motion compensated results (specifically, block compensated results) by using the motion information (specifically, the block information as block vectors and / or current picture) of the current block. The additional taps are derived by using the spatial-neighbouring reference region of the current block.
[0297] In another embodiment, sourceTermSet0 or sourceTermSet1 may include gradient terms in other examples. In another embodiment, cross-component prediction derivation can follow an unified methods in the intra process. In another embodiment, more variations of the expression can reference the section I. For example, the tap number and / or the source terms of the expression can be different or unified with any pre-defined intra cross-component mode.
[0298] II. 3 Signalling of Model Information
[0299] When not applying the proposed methods in the section II. 5 (e.g., inter CCLM) or inter CCCM, the prediction of current block is from the original prediction (e.g., original inter prediction) .
[0300] In another embodiment, the choice between applying the proposed methods in the section II. 5 or not depends on signalling. For example, applying inter CCLM or not applying inter CCLM depends on signalling. For another example, applying inter CCCM or not applying inter CCCM depends on signalling.
[0301] In one sub-embodiment, the signalling refers to a coded TU, TB, CU, and / or CB level flag. The flag may or may not depend on the context to code. Take the TU / TB flag as an example, the flag is signalled only if the TU / TB’s luma Cbf is non-zero (e.g., coded block flag for luma TU / TB being equal to true, and / or the enabling flag for the inter mode being true) . Take the CU / CB flag as an example, the flag is signalled only if the CU / CB’s luma Cbf is non-zero, for example, coded block flag for luma CU / CB is equal to true, and / or the enabling flag for the inter mode is true. The enabling flag for the inter mode means the CU’s predMode is MODE_INTER when the proposed inter CCLM (or inter CCCM) is supported for all inter modes. When the proposed inter CCLM (or inter CCCM) is supported for IBC. The enabling flag for IBC is checked first and the signalling for inter CCLM (or inter CCCM) is coded / decoded in response of the CU’s predMode being MODE_IBC.
[0302] In another sub-embodiment, a flag is signalled in the bitstream to indicate whether to apply inter CCLM (or inter CCCM) or not. For example, the flag is context coded. For another example, only one context is used when coding the flag. For another example, multiple contexts are used to code the flag and / or the selection of the contexts depends on block width, block height, block area, or neighbouring mode information.
[0303] In another sub-embodiment, when the signalling indicates to apply the proposed methods in the section II. 5, (e.g., inter CCLM) or inter CCCM, additional signalling is used to determine how to obtain the cross-component model for the current block. In one case, select one or more models from total candidates (e.g., CCLM_LT, CCLM_L, CCLM_T, MMLM_L, MMLM_T, MMLM_L, or any subset / extension from the above mentioned modes) . For example, if one LM mode is selected, the LM prediction is generated by the selected one LM. For another example, if more than one LM modes is selected, the LM prediction is generated by blending hypotheses of predictions from multiple LM modes. For another example, the additional signalling refers to an index in the bitstream, which can be truncated unary coding with and / or without contexts.
[0304] In another sub-embodiment, when the signalling indicates to apply the proposed methods in the section II. 5, (e.g., inter CCLM) or inter CCCM, one or more than one models from total candidates (e.g., CCLM_LT, CCLM_L, CCLM_T, MMLM_L, MMLM_T, MMLM_L, or any subset / extension from the above mentioned modes) is (are) implicitly selected (or predefined) to be used in generating cross-component prediction (e.g., prediction for inter CCLM or inter CCCM) .
[0305] - For example, CCLM_LT is used to generate LM prediction for inter CCLM. For example, MMLM_LT is used to generate LM prediction for inter CCLM. Similar rules can be applied to inter CCCM with using convolutional models instead.
[0306] - For another example of inter CCLM, the predefined rule depends on block width, block height, or block area. Similar rules can be applied to inter CCCM with using convolutional models instead.
[0307] ● Boundary matching setting (used as the predefined rule) can be applied only when the block width, block height, or block area is larger than a threshold.
[0308] ● Boundary matching setting (used as the predefined rule) can be applied only when the block width, block height, or block area is smaller than a threshold.
[0309] ● When the block width, block height, or block area is smaller than a threshold, the selected LM mode (s) is (are) inferred as any one (more than one) LM mode (s) from total candidate LM modes.
[0310] ■ The selected LM mode is fixed as CCLM_LT.
[0311] ■ The selected LM mode is fixed as MMLM_LT.
[0312] - For another example, the predefined rule depends on boundary matching setting. (Details of boundary matching setting can be found in the Section entitled “Boundary-Matching Setting” . The candidate mode used in the section of Boundary-Matching Setting refers to each candidate LM mode for inter CCLM. The prediction from a candidate mode used in the section of Boundary-Matching Setting refers to the prediction generated by each candidate LM mode or refers to the blended prediction from each candidate LM mode and original inter. ) Similar rules can be applied to inter CCCM with using convolutional models instead.
[0313] In another embodiment, the proposed methods in the section II. 5, for example, inter CCLM (or inter CCCM) , can be supported only when the size conditions of the current block are satisfied.
[0314] In one sub-embodiment, the size condition is that the block width, block height, or block area is larger than a pre-defined threshold. The predefine threshold can be a positive integer, such as 8, 16, 32, 64, 128, 256, etc.
[0315] In another sub-embodiment, the size condition is that the block width, block height, or block area is smaller than a pre-defined threshold. The predefine threshold can a positive integer, such as 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, etc.
[0316] In another embodiment, the inter mode used in the inter block depends on an enabling flag. For example, if the inter mode is regular merge, the enabling flag is referred as regular merge flag. For another example, if the inter mode is CIIP, the enabling flag is referred as CIIP flag. For another example, if the inter mode is CIIP PDPC, the enabling flag is referred as CIIP PDPC Flag. For another example, the enabling flag indicated as enabled (equal to 1) means the corresponding inter mode is applied to the current block. For another example, the enabling flag indicated as disabled (equal to 0) means the corresponding inter mode is not applied to the current block. For another example, the enabling flag is signalled in the bitstream and / or inferred in some cases. For another example, the signalling of the enabling flag depends on block width, block height, or block area.
[0317] In another embodiment, the prediction from inter can be adjusted by the neighbouring reconstructed samples and a pre-defined weighting scheme. For example, when the current block is merge, the prediction from merge is blended with the neighbouring reconstructed samples. For another example, the proposed scheme is enabled depending on CIIP PDPC flag. (The CIIP PDPC flag may be signalled when the CIIP flag is indicated as enabled. ) For another example, the pre-defined weighting scheme follows PDPC weighting.
[0318] ● Inter-predictor of regular merge mode is refined using the above Rx, -1 and left R-1, yreconstructed samples
[0319] ● Derivation of nScale and wT &wL are the same as in intra planar mode
[0320] – wT = 32 >> ( (y<<1) >> nScale)
[0321] – wL = 32 >> ( (x<<1) >> nScale)
[0322] – nScale = (floorLog2 (width) + floorLog2 (height) -2) >> 2;
[0323] ● CIIP PDPC:
[0324] – If LMCS is enabled, inter-predictor is computed in mapped domain Pred (x, y) = ( ( ( (wT×Rx, -1+wL×R-1, y+32)>>6) <<6) + (64-wT-wL) ×Fwd (predInter (x, y) ) +32) >>6
[0325] – Otherwise, inter-predictor is computed in original domain
[0326] - Pred (x, y) = ( ( ( (wT×Rx, -1+wL×R-1, y+32) >>6) <<6) + (64-wT-wL) ×predInter (x, y) +32) >>6
[0327] ● When CIIP flag is true, CIIP PDPC flag is further signalled to indicate whether to use CIIP PDPC
[0328] In another embodiment, original inter prediction (generated by motion compensation) is used for luma, and the predictions of chroma components are generated by CCLM and / or any other LM modes and / or any other cross-component modes or models, for example, the modes or models using in the Section I, Section II. 2, and / or Note A.
[0329] In one sub-embodiment, the current CU is viewed as an inter CU, intra CU, or a new type of prediction mode (neither intra nor inter) .
[0330] In another embodiment, an LM or cross-component mode derivation is disclosed as described as follows (referred as Note A) :
[0331] The one or more LM mode (s) (or cross-component mode (s) ) , which may or will be used to generate the one or more hypotheses of predictions for LM assisted Angular / Planar Mode and / or proposed methods in the section II. 5 (e.g., inter CCLM) and / or MH CCLM, are selected from a pre-defined set or list, for example, a merging candidate set or list (where the set or list is called modelList) . One modelIdx is signalled to select a candidate from the candidate set or list (modelList) and the selected candidate is used for the current block. The modelList contains one or more candidates where each candidate refers to a model (or cross-component mode) information. If only one candidate is in the set or list (the size of the set or list is only 1) , the modelIdx is not signalled and / or can be inferred as 0 or a default value which means to be implicitly selected.
[0332] In one embodiment, when building modelList, one or more predefined candidates are added. The pre-defined candidates can include any subset / extension of the following candidates. In one case, all candidates in modelList are self-derived. For example, all or any subset of CCLM family, MMLM family, CCCM family, any cross-component modes in Section I, self-derived candidates in Section II. 1, and / or Section II. 2. In another case, some candidates in modelList are self-derived and some candidates in modelList are inherited, for example, inherited candidates in Section II. 1.
[0333] - CCLM family: CCLM_LT, CCLM_L, CCLM_T
[0334] - MMLM family: MMLM_LT, MMLM_L, MMLM_T
[0335] - CCCM family: CCCM_LT, CCCM_L, CCCM_T
[0336] - Any cross-component modes mentioned in Section I, Section II. 1, and / or Section II. 2
[0337] The above proposed methods can be also applied to IBC blocks or the blocks with any IBC sub-modes (e.g., IBC merge or IBC AMVP or any IBC mode under IBC syntax) . ( “inter” in this invention can be changed to IBC. ) That is, for chroma components, the block vector prediction can be combined or replaced with cross-component prediction.
[0338] II. 4 Using Model Information to Generate Hypotheses of Predictions
[0339] In one embodiment, prediction or reconstruction-based model is used to generate one hypothesis of prediction for the current chroma component.
[0340] In one embodiment of a prediction based linear model, the derived model parameters are applied to the predicted samples for the first component (Y) to get the predicted samples for the second or third component. Take LM model parameters, including a and b, as an example. P (i, j) =a·pred′L (i, j) +b.
[0341] The predicted samples for the first component are down-sampling with the downsampling filters (which may be fixed at one-predefined filter or selected among some candidate filters) . For example, the downsampling filters follow the original LM design. For another example, the downsampling filters will not access neighbouring predicted / reconstructed samples. At the boundary of the current block, if the neighbouring samples are required to be the input samples of downsampling filters, padded predicted values from the boundary of current block is used instead.
[0342] In another sub-embodiment of a reconstruction based linear model, the derived model parameters are applied to the reconstructed samples for the first component (Y) to get the predicted samples for the second or third component. Take LM model parameters, including a and b, as an example.
[0343] P (i, j) =a·reco′L (i, j) +b.
[0344] The reconstructed samples for the first component are down-sampling with the downsampling filters (which may be fixed at one-predefined filter or selected among some candidate filters) . For example, the downsampling filters follow the original LM design. For another example, the downsampling filters will not access neighbouring predicted / reconstructed samples. At the boundary of the current block, if the neighbouring samples are required to be the input samples of downsampling filters, padded predicted values from the boundary of the current block is used instead.
[0345] Prediction or reconstruction based convolution model is similar to the proposed methods for the prediction or reconstruction based linear model. The main different is that the model coefficient pattern follows CCCM (not CCLM) and the luma samples may or may not be down-sampled first. If not applying down-sampling to the luma samples, more taps (model coefficients) may be used to access the non-down-sampled luma samples.
[0346] In another embodiment, multiple-hypotheses (MH) of cross-component predictions are blended or multiple models are used to generate a hypothesis of prediction for the current block. Each cross-component method, for example, a CCLM method, is suitable for different scenarios. For some complex feature, the combined prediction may result in better performance. Therefore, multiple-hypothesis cross-component predictions, for example, including CCLM prediction (asingle-hypothesis CCLM example to predict Cb or Cr samples based on Y samples) , are proposed to blend the predictions from multiple cross-component methods, for example, CCLM methods. The to-be-blended CCLM methods can be from (but are not limited to) the above mentioned CCLM methods and / or the methods disclosed in Section I, Section II. 1, Section II. 2, and / or Note A. A weighting scheme is used for blending.
[0347] In one embodiment, the weights for different CCLM methods are pre-defined at the encoder and decoder.
[0348] In another embodiment, the weights vary based on the distance between the sample (or region) positions and the reference sample positions.
[0349] In another embodiment, the weights depend on the neighbouring coding information.
[0350] In another embodiment, a weight index is signalled / parsed. The codewords can be fixed or vary adaptively. For example, the code words vary with template-based methods.
[0351] Similar rules can be applied to CCCM with using convolutional models instead or the MH methods can be applied cross CCLM and CCCM. For example, one hypothesis is from CCLM and another hypothesis is from CCCM.
[0352] In another sub-embodiment, the one or more hypotheses of cross-component predictions may be further combined with the one or more hypotheses of predictions from inter prediction modes to form the final prediction of the current block.
[0353] The following shows a flow of prediction-based inter CCLM.
[0354] ● Improve inter chroma prediction by linearly predicting chroma samples from luma samples
[0355] ● The linear predicting method can be one of:
[0356] – CCLM_LT, CCLM_L, CCLM_T
[0357] – MMLM_LT, MMLM_L, MMLM_T
[0358] ● Steps:
[0359] – Step 1: Derive the linear model by neighbouring luma and chroma reconstructed samples
[0360] – Step 2: Apply the derived linear model to current luma predicted samples to get current chroma predicted samples:
[0361] - predCCLM (i, j) =α·predL′ (i, j) +β
[0362] - predL′ (i, j) : down-sampled current luma predicted samples
[0363] · At the boundary inside the current block, padding is used.
[0364] II. 5 CCLM for Inter Block
[0365] CCLM for inter block can also be named as inter CCLM and “CCLM” can be extended to any LM mode (or any cross-component mode) or replaced with any LM mode (or any cross-component mode, for example, CCCM, or any proposed model or weighting in the Section I and / or Section II. 1 and / or Section II. 2 and / or Section II. 3, for example, Note A) .
[0366] In the overview section, CCLM is used for intra blocks to improve chroma intra prediction. For an inter block, chroma prediction may be not as accurate as luma. Possible reasons are listed below:
[0367] - Motion vectors for chroma components are inherited from luma, (e.g., chroma doesn't have its own motion vectors. )
[0368] - Less coding tools are designed to improve inter chroma prediction.
[0369] Therefore, an alternative way to apply CCLM to inter blocks is proposed. With this proposed method, chroma prediction for inter block can be improved according to luma.
[0370] In one embodiment, for chroma components, in addition to original inter prediction (generated by motion compensation which can be uni-prediction and / or bi-prediction, or which can be only uni-prediction) , one or more hypotheses of predictions (generated by CCLM and / or any other LM modes and / or any cross-component mode, such as, CCCM, or any proposed model or weighting in the Section I and / or Section II. 1 and / or Section II. 2 and / or Section II. 3, such as, Note A) are used to output the current prediction.
[0371] In one sub-embodiment, the current prediction is the weighted sum of inter prediction and CCLM prediction. Weights are designed according to neighbouring coding information, sample position, block width, height, or area.
[0372] - For example, for a small block (e.g., area < threshold) , weights for CCLM prediction are higher than weights for inter prediction.
[0373] - For another example, when most neighbouring coded blocks are intra blocks or a cross-component coded block, for example, CCLM coded blocks, weights for CCLM prediction are higher than weights for inter prediction.
[0374] - For another example, when most neighbouring coded blocks are inter blocks, weights for inter prediction are higher than weights for CCLM prediction.
[0375] - For another example, weights are fixed values for the whole block.
[0376] In another embodiment, the inter prediction can be generated by any inter mode mentioned in the above introduction / documents. For example, the inter mode can be regular merge mode. For another example, the inter mode can be CIIP mode. For another example, the inter mode can be CIIP PDPC. For another example, the inter mode can be GPM or any GPM variations (e.g., GPM intra which forms the final prediction by combining intra prediction and inter prediction with a weighting according to the geometrical partition) .
[0377] In one sub-embodiment, regular merge mode is a merge candidate selected from the merge candidate list with a signalled merge index. In another sub-embodiment, regular merge mode can be MMVD.
[0378] In another sub-embodiment, the LM mode used in inter CCLM is prediction-based LM.
[0379] In another embodiment, inter CCLM is supported only when any one (or more than one) of the pre-defined inter mode is used for the current block, or inter CCLM is supported when any one (or more than one) of the enabling flag (s) of the pre-defined inter mode is (are) indicated as enabled. The meaning of supporting inter CCLM is that the prediction of the current block can be chosen between applying inter CCLM or not applying inter CCLM. “CCLM” can be extended to any LM mode (or any cross-component mode) or replaced with any LM mode (or any cross-component mode, for example, CCCM, or any proposed model or weighting in the Section I and / or Section II. 1 and / or Section II. 2 and / or Section II. 3, for example, Note A) .
[0380] When applying inter CCLM, the prediction of current block is generated by
[0381] - In one sub-embodiment: blending one or more hypotheses of predictions (generated by CCLM and / or any other LM modes and / or any cross-component mode) with original inter prediction:
[0382] ● Blending the chroma prediction for existing inter mode and the prediction from LM
[0383] ● Blending: Predfinal = (wInter *PredInter + wLM *PredLM + 2 ) >> 2
[0384] ● Weighting rule: wInter and wLM, for example
[0385] ■ If both top and left are intra (or any cross-component mode) , (wInter, wLM) = (1, 3)
[0386] ■ Otherwise, if one of top and left is intra, (wInter, wLM) = (2, 2)
[0387] ■ Otherwise, (wInter, wLM) = (3, 1)
[0388] ■ For another example, the weighting follows CIIP weighting rules.
[0389] ● For example, predInter = inter prediction after OBMC (if OBMC is used)
[0390] ● For another example, predInter = inter prediction before OBMC (OBMC can be applied after blending)
[0391] In another sub-embodiment, the original inter prediction is replaced with one or more hypotheses of predictions (generated by CCLM and / or any other cross-component modes) .
[0392] In another sub-embodiment, the CCLM mode can be inherited or modified from the neighbouring blocks or any coded blocks. For example, the luma prediction is from inter coding tools, the chroma prediction is derived using luma prediction or reconstruction with CCLM model, and the CCLM model is inherit or modified from the neighbouring blocks. To inherit or modified the CCLM models from the neighbouring blocks or any coded blocks, a candidate list or a historical list is created to include the CCLM models used at the neighbouring adjacent, non-adjacent blocks or positions. It could also include the CCLM models used at previous coded pictures or slices. Then, an index is used to indicate which model in the list is inherited or modified to generate the current chroma prediction.
[0393] For another example, if CCLM mode is used for generating the chroma prediction samples and luma prediction is from an inter coding tool, a flag is used to indicate if the CCLM model used for the chroma prediction is inherited from the CCLM models used in the previous coded blocks or the CCLM model is from a predetermined CCLM mode. If the CCLM model is inherited from the CCLM models used in the previous coded blocks, an index is used to indicate which model in the list is inherited or modified. Otherwise, a predetermined CCLM mode is used to implicitly derive the CCLM model for the current chroma prediction. “CCLM” can be extended to any LM mode (or any cross-component mode) or replaced with any LM mode (or any cross-component mode, for example, CCCM, or any proposed model or weighting in the Section I and / or Section II. 1 and / or Section II. 2 and / or Section II. 3 such as Note A) . For example, the cross-component model is selected between using an inherited model or using a self-derived model.
[0394] III LM assisted Angular / Planar Mode
[0395] For traditional intra prediction modes (e.g., angular intra prediction modes, DC, and planar) , the reference samples are from top and left neighbouring reconstructed samples. Therefore, the accuracy of intra prediction decreases for right-bottom samples within the current block. In this section, LM or any cross-component mode is used to improve the prediction from traditional intra prediction modes.
[0396] In one embodiment, the prediction for the current block is formed by a weighted sum of one or more hypotheses of predictions from traditional intra prediction mode (s) and one or more hypotheses of predictions from LM mode (s) (or cross-component mode (s) ) .
[0397] - In one sub-embodiment, equal weights are applied to both.
[0398] - In another sub-embodiment, weights vary with neighbouring coding information, sample position, block width, height, mode or area.
[0399] ● For example, when the sample position is far away from the top-left region, the weight for the prediction from traditional intra prediction modes decays. The following shows some examples.
[0400] - One possible rule related to sample position is described as follows.
[0401] ● When the sample position is further away from the reference samples, the weight for the prediction from other intra prediction modes, for example, traditional intra prediction modes, decreases.
[0402] - Another possible rule related to neighbouring coding information is described as follows.
[0403] ● When more neighbouring blocks (left, above, left-above, right-above, and / or left-bottom) are coded with a particular mode (e.g., Mode A) , the weight for the prediction from Mode A gets higher. For example, Mode A refers to a specific cross-component mode such as CCCM_LT or a specific cross-component family such as CCCM family (including CCCM_LT, CCCM_L, and / or CCCM_T) and / or CCLM family (including CCLM_LT, CCLM_L, and / or CCLM_T) and / or MMLM family (including MMLM_LT, MMLM_L, and / or MMLM_T) . A weighting set is pre-defined to include multiple weighting candidates such as {1, 3} , {3, 1} , and / or equal weighting {2, 2} for one prediction from a traditional intra prediction mode and the other prediction from a cross-component mode. When all or most of the neighbouring blocks are coded by Mode A, the weighting candidate with a higher weight for the prediction from a cross-component mode is used. When only partial or one of the neighbouring blocks are coded by Mode A, the weighting candidate with an equal weighting is used. When few or none of the neighbouring blocks are coded by Mode A, the weighting candidate with a smaller weight for the prediction from a cross-component mode is used. For example, the neighbouring blocks include any subset of the coded blocks which are spatially adjacent to the top boundary or left boundary of the current block. In this case, the neighbouring blocks may refer to the top neighbouring block (located on the top of the top-right corner of the current block) and the left neighbouring block (located on the left of the bottom-left corner of the current block) . For another example, the neighbouring blocks include any subset of the coded blocks located in a pre-defined range spatially nearing the top boundary or left boundary of the current block. In this case, the neighbouring blocks can be adjacent or non-adjacent to the current block.
[0404] - Another possible rule related to sample position is described as follows.
[0405] ● The current block is partitioned into several regions. The sample positions in the same region share the same weighting. If the current region is close to the reference L neighbour, the weight for prediction from other intra prediction modes, for example, traditional intra prediction modes, is higher than the weight for prediction from cross-component modes, for example, CCLM. The following shows some possible ways to partition the current block.
[0406] ■ (ratio of width and height close to or exactly 1: 1) : The distance between the current region and the left and top reference L neighbour is considered.
[0407] ■ (width > n*height, where n can be any positive integer) : The distance between the current region and the top reference L neighbour is considered.
[0408] ■ (height > n*width, where n can be any positive integer) : The distance between the current region and the left reference L neighbour is considered.
[0409] The following show more embodiments for the invention. In another sub-embodiment, the to-be-propagated mode for the current block (using chroma fusion or named as LM assisted Angular / Planar Mode, proposed methods in the section II. 5 (e.g., inter CCLM) or MH CCLM is set / stored. For example, setting or storing as the inherited mode such as CCLM, MMLM, CCCM, or GLM.
[0410] In another sub-embodiment, the candidate types are aligned with the candidate types for the merge mode. For example, the candidate types in modelList are aligned with the candidate types for the merge mode.
[0411] In another sub-embodiment, when building the set or list, pruning operations are applied to avoiding duplicated candidates in the list.
[0412] In another sub-embodiment, the signalling of the modelIdx depends on context coding, block width, block height, block area, and / or explicit syntax such as SPS, PPS, slice, CTU, picture, sequence, and / or tile level signalling.
[0413] In another sub-embodiment, the candidate selection (from the set or list, for example, modelList) for the current block depends on a pre-defined process. For example, the pre-defined process is a method of template-based mode derivation, for example, a TIMD or DIMD-like method. For example, the pre-defined process depends on the neighbouring template of the current block. For example, the pre-defined process depends on the mode information of the neighbouring blocks. If most of the pre-defined neighbouring blocks use a specific mode, the first candidate (in the list) referring to the specific mode is selected. The signalling of the modelIdx is bypass (not required for signalling) . The proposed methods here can be applied to Note A.
[0414] In one embodiment, chroma refers to Cb and / or Cr component (s) . In another sub-embodiment, only one of Cb’s and Cr’s information is used. In another sub-embodiment, the chroma information is from both Cb and Cr. For example, the neighbouring reconstructed Cb and Cr samples are weighted and then used as the inputs of deriving model parameters. In another example, the reconstructed Cb and Cr samples in the chroma block (collocated with the current luma block) are weighted and then used to derive the predictors in the current luma block.
[0415] In another embodiment, for the current luma block, the prediction (generated by the proposed inverse LM) can be combined with one or more hypotheses of predictions (generated by one or more other intra prediction modes, for example, traditional intra prediction modes) . The proposed inverse LM is described as follows. For the CCLM mode as disclosed earlier in the background section, luma reconstructed samples are used to derive the predictors in the chroma block. In this disclosure, inverse LM is proposed to use chroma information to derive the predictors in the luma block. When supporting inverse LM, chroma components are encoded / decoded (signalled / parsed) before the luma component. In one embodiment, the chroma information refers to the chroma reconstructed samples. When deriving model parameters for inverse LM, reconstructed neighbouring chroma samples are used as X, which is used to predict luma when deriving the linear model, and reconstructed neighbouring luma samples are used as Y, which is used as the target when deriving the linear model to predict luma. Moreover, the reconstructed samples in the chroma block (collocated to the current luma block) and the derived parameters are used to generate the predictors in the current luma block. An alternative way is that “information” in this embodiment can refer to predicted samples.
[0416] In one sub-embodiment, “other intra prediction modes” can refer to angular intra prediction modes, DC, planar, MIP, ISP, MRL, any other existing intra modes (supported in HEVC / VVC) and / or any other intra prediction modes.
[0417] In another sub-embodiment, when combining multiple hypotheses of predictions, weighting for each hypothesis can be fixed or adaptively changed. For example, equal weights are applied to each hypothesis. In another example, weights vary with neighbouring coding information, sample position, block width, height, prediction mode or area. Some examples of neighbouring coding information usage are shown as follows:
[0418] - One possible rule related to sample position is described as follows.
[0419] ● When the sample position is further away from the reference samples, the weight for the prediction from other intra prediction modes, for example, traditional intra prediction modes, decreases.
[0420] - Another possible rule related to neighbouring coding information is described as follows.
[0421] ● When more neighbouring blocks (left, above, left-above, right-above, and / or left-bottom) are coded with a particular mode (e.g., Mode A) , the weight for the prediction from Mode A gets higher.
[0422] - Another possible rule related to sample position is described as follows.
[0423] ● The current block is partitioned into several regions. The sample positions in the same region share the same weighting. If the current region is close to the reference L neighbour, the weight for prediction from other intra prediction modes, for example, traditional intra prediction modes, is higher than the weight for prediction from CCLM. The following shows some possible ways to partition the current block.
[0424] ■ (ratio of width and height close to or exactly 1: 1) : The distance between the current region and the left and top reference L neighbour is considered.
[0425] ■ (width > n*height, where n can be any positive integer) : The distance between the current region and the top reference L neighbour is considered.
[0426] ■ (height > n*width, where n can be any positive integer) : The distance between the current region and the left reference L neighbour is considered.
[0427] IV Boundary-Matching Setting
[0428] When boundary-matching setting is used, a boundary matching cost for a candidate mode refers to the discontinuity measurement (including top boundary matching and / or left boundary matching) between the current prediction (i.e., the predicted samples within the current block) generated from the candidate mode, and the neighbouring reconstruction (i.e., the reconstructed samples within one or more neighbouring blocks) as shown in Fig. 16, where predi, j refers to a predicted block, recoi, j refers to a neighbouring reconstructed block and block 1610 (as shown in a thick-line box) corresponds to the current block. Top boundary matching means the comparison between the current top predicted samples and the neighbouring top reconstructed samples, and left boundary matching means the comparison between the current left predicted samples and the neighbouring left reconstructed samples.
[0429] In one embodiment, the candidate mode with the smallest boundary matching cost is applied to the current block.
[0430] In another embodiment, the boundary matching cost for Cb and Cr can be added to be the boundary matching cost for chroma, so the selected candidate mode for Cb and Cr will be shared. That is the selected candidate mode for Cb and Cr will be the same.
[0431] In another embodiment, the selected candidate modes for Cb and Cr depend on the boundary matching costs for Cb and Cr, respectively, so the selected candidate modes for Cb and Cr can be the same or different.
[0432] In one embodiment, a pre-defined subset of the current prediction is used to calculate the boundary matching cost. n line (s) of top boundary within the current block and / or m line (s) of left boundary within the current block are used. (Moreover, n2 line (s) of top neighbouring reconstruction and / or m2 line (s) of left neighbouring reconstruction are used. )
[0433] In an example of calculating a boundary matching cost, n = 2, m = 2, n2 = 2, and m2 = 2:
[0434] In the above equation, the weights (a, b, c, d, e, f, g, h, i, j, k, l) can be any positive integers such as a = 2, b = 1, c = 1, d = 2, e = 1, f = 1, g = 2, h = 1, i = 1, j = 2, k = 1, and l = 1.
[0435] In another example of calculating a boundary matching cost, n = 2, m = 2, n2 = 1 and m2 = 1:
[0436] In the above equation, the weights (a, b, c, g, h, and i) can be any positive integers such as a = 2, b = 1, c = 1, g = 2, h = 1, and i = 1.
[0437] In yet another example of calculating a boundary matching cost, n = 1, m = 1, n2 =2, and m2 = 2:
[0438] In the above equation, the weights (d, e, f, j, k, and l) can be any positive integers such as d = 2, e = 1, f = 1, j = 2, k = 1, and l = 1.
[0439] In yet another example of calculating a boundary matching cost, n = 1, m = 1, n2 =1, and m2 = 1:
[0440] In the above equation, the weights (a, c, g, and i) can be any positive integers such as a = 1, c = 1, g = 1, and i = 1.
[0441] In yet another example of calculating a boundary matching cost, n = 2, m = 1, n2 =2, and m2 = 1:
[0442] In the above equation, the weights (a, b, c, d, e, f, g, and i) can be any positive integers such as a = 2, b = 1, c = 1, d = 2, e = 1, f = 1, g = 1, and i = 1.
[0443] In yet another example of calculating a boundary matching cost, n = 1, m = 2, n2 =1, and m2 = 2:
[0444] In the above equation, the weights (a, c, g, h, i, j, k, and l) can be any positive integers such as a = 1, c = 1, g = 2, h = 1, i = 1, j = 2, k = 1, and l = 1. The following examples for n and m can also be applied to n2 and m2.
[0445] For another example, n can be any positive integer such as 1, 2, 3, 4, etc.
[0446] For another example, m can be any positive integer such as 1, 2, 3, 4, etc.
[0447] For another example, n and / or m vary with block width, height, or area. In one embodiment, m gets larger for a larger block (e.g., area > threshold2) . For example,
[0448] ○ Threshold2 = 64, 128, or 256.
[0449] ○ When area > threshold2, m is increased to 2. (Originally, m is 1. )
[0450] ○ When area > threshold2, m is increased to 4. (Originally, m is 1 or 2. )
[0451] In another example, m gets larger and / or n gets smaller for a taller block (e.g., height > thrershold2 *width) . For example,
[0452] ○ Threshold2 = 1, 2, or 4.
[0453] ○ When height > thrershold2 *width, m is increased to 2. (Originally, m is 1. )
[0454] ○ When height > thrershold2 *width, m is increased to 4. (Originally, m is 1 or 2. )
[0455] In another embodiment, n gets larger for a larger block (area > threshold2) .
[0456] ○ Threshold2 = 64, 128, or 256.
[0457] ○ When area > threshold2, n is increased to 2. (Originally, n is 1. )
[0458] ○ When area > threshold2, n is increased to 4. (Originally, n is 1 or 2. )
[0459] In another embodiment, n gets larger and / or m gets smaller for a wider block (width > thrershold2 *height) . For example,
[0460] ○ Threshold2 = 1, 2, or 4.
[0461] ○ When width > thrershold2 *height, n is increased to 2. (Originally, n is 1. )
[0462] ○ When width > thrershold2 *height, n is increased to 4. (Originally, n is 1 or 2. )
[0463] The proposed methods in this invention can be enabled and / or disabled according to implicit rules (e.g., block width, height, or area) or according to explicit rules (e.g., syntax on block, slice, picture, SPS, or PPS level) .
[0464] The term “block” in this invention can refer to TU / TB, CU / CB, PU / PB, or CTU / CTB.
[0465] The term “LM” in this invention can be viewed as one kind of CCLM / MMLM modes or any other extension / variation of CCLM (e.g., the proposed CCLM extension / variation in this invention) . One variation is MMLM which uses thresholds to decide different models for different samples in the current chroma component. Another variation is that for Cb (or Cr) , deriving model parameters from multiple collocated luma blocks. The following show more possible variations. The variations of CCLM here mean that some optional modes can be selected when the block indication refers to using one of cross-component modes (e.g., CCLM_LT, MMLM_LT, CCLM_L, CCLM_T, MMLM_L, MMLM_T, and / or an intra prediction mode, which is not one of traditional DC, planar, and angular modes) for the current block. The following shows an example of being convolutional cross-component mode (CCCM) as an optional mode. When this optional mode is applied to the current block, cross-component information with a model, including non-linear term, is used to generate the chroma prediction. The optional mode may follow the template selection of CCLM, so CCCM family includes CCCM_LT CCCM_L, and / or CCCM_T.
[0466] The proposed methods (for CCLM) in this invention can be used for any other cross-component modes. For example, any other cross-component modes or model using in the Section I, Section II. 2, Section II. 1, and / or Note A
[0467] Any of the methods of deriving the cross-component prediction using reference data of corresponding luma and chroma components can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in an inter / intra / IBC / prediction / transform / merge candidate derivation module of an encoder, and / or an inter / intra / IBC / prediction / transform / merge candidate derivation module of a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the inter / intra / IBC / prediction / transform / merge candidate derivation module of the encoder and / or the inter / intra / IBC / prediction / transform / merge candidate derivation module of the decoder, so as to provide the information needed by the inter / intra / IBC / prediction / transform / merge candidate derivation module. For example, any of the proposed methods can be implemented in an inter / intra / prediction module (e.g., Intra Pred. 110 in Fig. 1A) of an encoder, and / or an inter / intra / prediction module (e.g., Intra Pred. 150 in Fig. 1B) 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
[0468] Fig. 17 illustrates a flowchart of an exemplary video coding system that derives the cross-component prediction using reference data, for example, compensated prediction or template reconstruction, of corresponding luma and chroma components according to an embodiment of the present invention. The steps shown in the flowchart may be implemented as program codes executable on one or more processors (e.g., one or more CPUs) at the encoder side and / or decoder side. The steps shown in the flowchart may also be implemented based hardware such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to this method, input data associated with a current block in a current picture comprising a first-colour component and a second-colour component are received in step 1710, 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 comprises a first colour block and a second-colour block. Whether a target mode is applied to the current block is determined in step 1720. If the target mode is applied to the current block (i.e., the “Yes” path from step 1720) , steps 1730-1750 are performed. Otherwise (i.e., the “No” path from step 1720) , 1730-1750 are skipped. In step 1730, a target candidate cross-component predictor for the second-colour block is derived, wherein a target candidate cross-component model associated with the target candidate cross-component predictor is derived using reference data of corresponding first-colour component and corresponding second-colour component for the current block, wherein the reference data is associated with a reference region comprising template of the current block or a pre-defined region indicated using a vector. In step 1740, a final prediction is derived using the target candidate cross-component predictor. In step 1750, the second-colour block is encoded or decoded using the final prediction.
[0469] 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.
[0470] 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.
[0471] 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.
[0472] 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 video coding, the method comprising:receiving input data associated with a current block in a current picture comprising a first-colour component and a second-colour component, 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 comprises a first colour block and a second-colour block;determining whether a target mode is applied to the current block;in response to applying the target mode to the current block:deriving a target candidate cross-component predictor for the second-colour block, wherein a target candidate cross-component model associated with the target candidate cross-component predictor is derived using reference data of corresponding first-colour component and corresponding second-colour component for the current block, wherein the reference data is associated with a reference region comprising template of the current block or a pre-defined region indicated using a vector; andderiving a final prediction using the target candidate cross-component predictor; andencoding or decoding the second-colour block using the final prediction.2.The method of Claim 1, wherein the reference data comprises compensated prediction of the corresponding first-colour component and the corresponding second-colour component for the current block.3.The method of Claim 2, wherein when the vector is a block vector or the current block is coded using the block vector, the compensated prediction of the corresponding first-colour component and the corresponding second-colour component for the current block is derived using block compensation according to the block vector.4.The method of Claim 2, wherein when the vector is a motion vector or the current block is coded using the motion vector, the compensated prediction of the corresponding first-colour component and the corresponding second-colour component for the current block is derived using motion compensation according to the motion vector.5.The method of Claim 1, wherein the reference data is derived using reconstruction of the corresponding first-colour component and the corresponding second-colour component for the reference region.6.The method of Claim 1, wherein the target candidate cross-component model is derived using current prediction samples, template samples, or both.7.The method of Claim 1, wherein after the target candidate cross-component model is derived, the target candidate cross-component predictor for the second-colour block is derived by applying the target candidate cross-component model to reconstructed first-colour block.8.The method of Claim 1, wherein the target candidate cross-component model corresponds to CCLM (Cross Component Linear Model) , MMLM (Multiple Model CCLM) , or CCCM (Convolutional Cross-Component Model) .9.The method of Claim 1, wherein the target candidate cross-component model is selected from a candidate set comprising multiple candidates or referring to a candidate list.10.The method of Claim 9, wherein the candidate set comprises one or more inherited cross-component model candidates.11.The method of Claim 10, wherein said one or more inherited cross-component model candidates comprise one or more spatial candidates associated with one or more corresponding cross-component models from one or more neighbouring blocks.12.The method of Claim 11, wherein said one or more neighbouring blocks correspond to one or more adjacent blocks or one or more non-adjacent blocks.13.The method of Claim 10, wherein said one or more inherited cross-component model candidates comprise one or more temporal candidates associated with one or more corresponding cross-component models from one or more temporal collated positions.14.The method of Claim 10, wherein said one or more inherited cross-component model candidates comprise one or more history candidates associated with one or more corresponding cross-component models from a history table including one or more corresponding cross-component models from previously coded blocks.15.The method of Claim 1, wherein (a) a candidate model associated with the target candidate cross-component model is selected from a self-derived candidate set consisting of self-derived candidate cross-component models or (b) the candidate model associated with the target candidate cross-component model is selected between using an inherited model or using a self-derived model.16.The method of Claim 15, wherein an index is signalled or parsed explicitly to select the candidate model in case (a) , case (b) , or a combination thereof.17.The method of Claim 15, wherein the candidate model in case (a) , case (b) , or a combination thereof is selected implicitly.18.The method of Claim 17, wherein the candidate model is selected implicitly using template-based mode derivation.19.The method of Claim 1, wherein a first syntax is signalled or parsed at a TU (Transform Unit) level, TB (Transform Block) level, CU (Coding Unit) level, CB (Coding Block) level, or a combination thereof to indicate how to obtain the target candidate cross-component model for the current block or whether to apply the target mode to the current block.20.The method of Claim 19, wherein the first syntax is signalled or parsed only when satisfying that a corresponding TU or TB has non-zero Cbf (coded block flag equal to true) , the current block is coded using a supported mode, or a size condition is met.21.The method of Claim 1, wherein when an IBC (Intra Block Copy) related mode or an inter prediction mode is used, block-vector based prediction for the second-colour block or inter prediction for the second-colour block is combined with or replaced by the target candidate cross-component predictor.22.The method of Claim 21, wherein the block-vector based prediction or the inter prediction is combined with the target candidate cross-component predictor using a weighting.23.The method of Claim 1, wherein when an inter prediction mode is used for the second-colour block, one or more hypotheses from one or more candidate cross-component models are combined with one or more hypotheses from the inter prediction mode.24.The method of Claim 1, wherein if a cross-component related mode is used for generating prediction samples for the second-colour block and the current block is coded using an inter or IBC related coding tool, a flag is signalled or parsed to indicate whether the cross-component related mode used is inherited from a previously coded block or derived using a predetermined cross-component mode.25.The method of Claim 1, wherein the current block is partitioned into multiple subblocks.26.The method of Claim 25, wherein each subblock derives its own candidate set or uses its own reference data.27.An apparatus for video coding, the apparatus comprising one or more electronics or processors arranged to:receive input data associated with a current block in a current picture comprising a first-colour component and a second-colour component, 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 comprises a first colour block and a second-colour block;determine whether a target mode is applied to the current block;in response to applying the target mode to the current block:derive a target candidate cross-component predictor for the second-colour block, wherein a target candidate cross-component model associated with the target candidate cross-component predictor is derived using reference data of corresponding first-colour component and corresponding second-colour component for the current block, wherein the reference data is associated with a reference region comprising template of the current block or a pre-defined region indicated using a vector; andderive a final prediction using the target candidate cross-component predictor; andencode or decode the second-colour block using the final prediction.