Method and device for improving video coding and decoding through model derivation
By using a self-derived and inherited candidate method across component models, the encoding and decoding process of color images is optimized, solving the problems of redundancy and complexity in cross-component prediction and improving encoding and decoding efficiency and quality.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-07-05
- Publication Date
- 2026-04-10
AI Technical Summary
Existing video encoding and decoding technologies suffer from cross-component prediction redundancy and complexity when processing color images, making it difficult to improve encoding and decoding performance.
A cross-component model is adopted, including methods between self-derived and inherited candidates. By establishing a candidate list, target cross-component candidates are selected, and target predictions are generated using self-derived or inherited cross-component candidates. Techniques such as cross-component residual models, local illumination compensation, and convolutional models are applied to optimize the encoding and decoding process of chroma blocks.
It improves the encoding and decoding performance of color images, reduces complexity, and enhances encoding and decoding efficiency and quality.
Smart Images

Figure CN121844560A_ABST
Abstract
Description
[0001] Cross-referencing This invention is a non-provisional application and claims priority from U.S. Provisional Patent Application No. 63 / 511,921, filed July 5, 2023. This U.S. Provisional Patent Application is incorporated herein by reference in its entirety. [Technical Field] This invention relates to video encoding and decoding systems. In particular, this invention relates to encoding and decoding chroma components using a derived or inherited model. [Background Technology] Versatile Video Coding (VVC) is the latest international video coding standard developed by the Joint Video Experts Group (JVET) of the International Telecommunication Union-Telecommunication Standardization Sector (ITU-T) Video Codec Engineering Group (VCEG) and the Moving Picture Experts Group (MPEG) of the International Organization for Standardization / International Electrotechnical Commission (ISO / IEC). This standard has been published as an ISO standard: ISO / IEC 23090-3:2021, Information technology—Encoding representation of immersive media—Part 3: Versatile Video Coding, published in February 2021. VVC is developed based on its predecessor, HEVC (High Efficiency Video Coding), improving coding efficiency by adding more coding and decoding tools and handling various types of video sources, including 3D video signals.
[0004] Figure 1A An exemplary adaptive inter-frame / intra-frame movie coding system incorporating loop processing is illustrated. For intra-frame prediction 110, prediction data is derived based on previously encoded movie data in the current frame. For inter-frame prediction 112, motion estimation (ME) is performed at the encoder, and motion compensation (MC) is performed based on the ME results to provide prediction data derived from other frames and motion data. Switch 114 selects either intra-frame prediction 110 or inter-frame prediction 112 and provides the selected prediction data to adder 116 to form a prediction error, also known as a residual. The prediction error is then processed by transform (T) 118, followed by quantization (Q) 120. The transformed and quantized residuals are then encoded by entropy encoder 122 to be included in the movie bitstream corresponding to the compressed movie data. The bitstream associated with the transform coefficients is then packaged together with other information such as motion and encoding / decoding modes associated with intra-frame and inter-frame prediction, as well as parameters associated with loop filters applied to the underlying image regions. Figure 1AAs shown, side information related to intra-frame prediction 110, inter-frame prediction 112, and loop filter 130 is provided to entropy encoder 122. When using inter-frame prediction mode, the reference picture or image must also be reconstructed at the encoder. Therefore, the transformed and quantized residuals are processed by inverse quantization (IQ) 124 and inverse transform (IT) 126 to recover the residuals. The residuals are then added back to the prediction data 136 to reconstruct the video data at reconstruction (REC) 128. The reconstructed video data may be stored in the reference picture buffer 134 and used for prediction of other frames.
[0005] like Figure 1A As shown, the incoming video data undergoes a series of processes in the encoding system. The reconstructed video data from REC 128 may be subject to various degradations due to these processes. Therefore, an in-loop filter (ILPF) 130 is typically applied to the reconstructed video data before storing it in the reference picture buffer 134 to improve video quality. For example, a deblocking filter (DF), sample adaptive offset (SAO), and adaptive loop filter (ALF) may be used. It may be necessary to incorporate ILPF information into the bitstream so that the decoder can correctly recover the required information. Therefore, ILPF information is also provided to the entropy encoder 122 for inclusion in the bitstream. Figure 1A In the process, a loop filter 130 is applied to the reconstructed video, and then the reconstructed samples are stored in a reference image buffer 134. Figure 1A The system described herein is intended to illustrate an exemplary architecture of a typical video encoder. It may correspond to a High Performance Video Codec (HEVC) system, VP8, VP9, H.264, or VVC.
[0006] like Figure 1B The decoder shown can use the same or partially the same function blocks as the encoder, except for Transform (T) 118 and Quantization (Q) 120, because the decoder only needs Inverse Quantization 124 and Inverse Transform 126. The decoder uses an Entropy Decoder 140 instead of the Entropy Encoder 122 to decode the movie bitstream into quantized transform coefficients and the required encoding / decoding information (e.g., ILPF information, intra-frame prediction information, and inter-frame prediction information). Intra-frame prediction 150 at the decoder end does not require mode search. Instead, the decoder only needs to generate intra-frame predictions based on the intra-frame prediction information received from the Entropy Decoder 140. Furthermore, for inter-frame prediction, the decoder only needs to perform motion compensation (MC 152) based on the inter-frame prediction information received from the Entropy Decoder 140, without motion estimation.
[0007] To improve the encoding and decoding performance and / or reduce the complexity of systems using cross-component models, methods and apparatus for selecting self-derived and inherited candidates for chroma blocks are disclosed. [Summary of the Invention] This invention discloses a method and apparatus for encoding and decoding color images or videos using an encoding / decoding tool that includes one or more modes associated with cross-component models. According to the method, input data associated with a current block is received, the current block including a first color block and a second color block, wherein the input data includes pixel data to be encoded at the encoder end or data associated with the current block to be decoded at the decoder end, and wherein the current block is encoded and decoded in a non-intra-frame mode. A target cross-component candidate is determined, the candidate being selected from at least one self-derived cross-component candidate and one or more inherited candidates. If the one or more self-derived cross-component candidates are determined as the target cross-component candidate, one or more models are derived based on the determined one or more self-derived cross-component candidates. If the one or more inherited candidates are determined as the target cross-component candidate, one or more models are determined based on the determined one or more inherited candidates. The second color block is encoded or decoded using a target prediction generated based on the target cross-component candidate.
[0009] In one embodiment, the one or more self-derived cross-component candidates include a cross-component residual model (CCRM).
[0010] In one embodiment, the one or more self-derived cross-component candidates, the one or more inherited candidates, or both are added to a candidate list and selected from that candidate list. In one embodiment, the one or more self-derived cross-component candidates are added to the candidate list only if the candidate list does not contain enough inherited candidates. In another embodiment, the one or more self-derived cross-component candidates are added to the candidate list before any preset candidates.
[0011] In one embodiment, the one or more self-derived cross-component candidates are considered as one or more preset candidates in the candidate list. In another embodiment, the one or more self-derived cross-component candidates are added to one or more predetermined positions in the candidate list.
[0012] In one embodiment, a flag is sent or parsed to indicate enabling or disabling the generation or exclusion of one or more self-derived cross-component candidates in the candidate list. In another embodiment, enabling or disabling the generation or exclusion of one or more self-derived cross-component candidates in the candidate list is based on one or more implicit rules.
[0013] In one embodiment, the member candidates in the candidate list are reordered. In another embodiment, the member candidates in the candidate list are reordered based on the model error associated with each member candidate evaluated on one or more neighboring templates. In yet another embodiment, each model error is derived based on predicted samples from the model associated with each member candidate and reconstructed samples from the one or more neighboring templates.
[0014] In one embodiment, a flag is sent or parsed to indicate or select the target cross-component candidate from the one or more self-derived cross-component candidates or from the one or more inherited candidates. In one embodiment, the target cross-component candidate selected from the one or more self-derived cross-component candidates or from the one or more inherited candidates is based on one or more implicit rules. [Attached Image Description] Figure 1A An exemplary adaptive Inter / Intra video codec system incorporating loop processing is demonstrated.
[0016] Figure 1B Showing the corresponding Figure 1A The decoder of the encoder.
[0017] Figure 2 The 16 gradient modes of GLM are shown.
[0018] Figure 3 An exemplary system block diagram of the cross-component residual model (CCRM) is shown.
[0019] Figure 4 An example of a template used in TIMD and its reference sample is shown.
[0020] Figure 5 Five neighboring blocks are shown for deriving VVC space merge candidates.
[0021] Figure 6 An exemplary pattern of spatial merging candidates is shown.
[0022] Figure 7 An example of time candidate derivation is shown, in which a scaled motion vector is derived based on the POC (Picture Order Count) distance.
[0023] Figure 8 It shows the position of the time candidate selected between candidate C0 and C1.
[0024] Figure 9A This example demonstrates that sourceTermSet0(i,j) contains a luminance sample located at (iL,jL).
[0025] Figure 9B This example demonstrates how sourceTermSet0(i,j) contains a 5x5 cross pattern centered at (iL,jL).
[0026] Figure 9C This example demonstrates how sourceTermSet0(i,j) contains a 5x5 diamond pattern centered at (iL,jL).
[0027] Figure 10 This example demonstrates the gradient information of a target sample, which belongs to chromaticity and is located at the same position (as the center circle), and is computed by any four Sobel filters.
[0028] Figure 11A This example demonstrates that sourceTermSet1(i,j) contains a target chromaticity sample located at (iC,jC).
[0029] Figure 11B This demonstrates an example where sourceTermSet1(i,j) contains a 5x5 cross pattern centered at (iC,jC).
[0030] Figure 11C This example demonstrates how sourceTermSet1(i,j) contains a 5x5 diamond pattern centered at (iC,jC).
[0031] Figure 12 An example of a weight setting proposed according to an embodiment of the present invention is shown.
[0032] Figure 13 An example is shown of the corresponding unsampling luminance reconstructed sample at the co-position (represented by a circle) referenced by the chromaticity (i, j) to be predicted.
[0033] Figure 14 An example of inheritance time proximity model parameters is shown.
[0034] Figure 15A -B demonstrates two search modes for inheriting the proximity model of non-adjacent spaces.
[0035] Figure 16 A flowchart illustrating an exemplary video codec system that selects between inherited and self-derived cross-component models according to an embodiment of the present invention is shown.
Detailed Implementation Methods
[0037] Furthermore, the described features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. However, those skilled in the art will recognize that the invention can be practiced without using one or more specific details, or using other methods, components, etc. In other cases, well-known structures or operations are not shown or described in detail to avoid obscuring aspects of the invention. Embodiments of the invention can be best understood by referring to the drawings, in which identical parts are designated by the same numbers throughout. The following description is illustrative only and simply illustrates embodiments of certain selected apparatuses and methods consistent with the invention claimed herein.
[0038] Cross-Component Linear Model (CCLM) Prediction To reduce redundancy across components, VVC uses a cross-component linear model (CCLM) prediction mode, where chroma samples are predicted based on reconstructed luminance samples from the same coding unit (CU) using a linear model, as shown below: (1) in Represents the predicted chromaticity samples in CU. This represents the downsampled reconstructed brightness sample from the same CU.
[0039] CCLM parameters ( and The value is derived from at most four neighboring chroma samples and their corresponding downsampled luminance samples. Assuming the current chroma block size is W×H, then W' and H' are set to... W' = W, H' = H, when applying LM_LA mode; W' = W + H, when applying LM_A mode; H' = H + W, when applying LM_L mode.
[0040] Multiple Model CCLM (MMLM) In JEM (J. Chen, E. Alshina, GJ Sullivan, J.-R. Ohm, and J. Boyce, Algorithm Description of Joint Exploration Test Model 7, document JVET-G1001, ITU-T / ISO / IEC Joint Film Exploration Team (JVET), Jul. 2017), a multi-model CCLM (MMLM) mode was proposed to predict chromaticity samples of the entire CU from luminance samples using two models. In MMLM, neighboring luminance samples and neighboring chromaticity samples of the current block are divided into two groups, each used as a training set to derive a linear model (i.e., derive specific α and β for a specific group). Furthermore, samples of the current luminance block are also classified according to the classification rules for neighboring luminance samples.
[0041] The threshold is calculated as the average of the neighboring reconstructed brightness samples. Samples with Rec′L [x,y] <= the threshold are classified into group 1; while samples with Rec′L [x,y] > the threshold are classified into group 2.
[0042] (2) Local Illumination Compensation (LIC) Local Illumination Compensation (LIC) is a method for inter-frame prediction using neighboring samples of the current block and a reference block. It is based on a linear model using a scaling factor a and an offset b. The scaling factor a and offset b are derived by referencing neighboring samples of the current block and the reference block. Furthermore, it is adaptively enabled or disabled for each CU.
[0043] For more details on LIC, please refer to document JVET-C1001 (Jianle Chen et al., “Algorithm description of JointExploration Test Model 3”, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG11, 3rd Meeting: Geneva, CH, 26 May to 1 June 2016, document: JVET-C1001).
[0044] Convolutional Cross-Component Model (CCCM) In CCCM, a convolutional model is applied to improve chromaticity prediction performance. The convolutional model has a 7-tap filter, consisting of a 5-tap plus shapespace component, a nonlinear term, and a bias term.
[0045] The filter output is calculated as the convolution between the filter coefficients and the input values, and then clipped to the range of valid chromaticity samples.
[0046] The filter coefficients are calculated by minimizing the MSE between the predicted and reconstructed chromaticity samples in the reference region.
[0047] MSE minimization is performed by calculating the autocorrelation matrix of the luminance input and the cross-correlation vector between the luminance input and the chrominance output. The autocorrelation matrix is decomposed using LDL, and the final filter coefficients are calculated using back-substitution. This process roughly follows the calculation of ALF filter coefficients in the Enhanced Compression Model (ECM), but LDL decomposition is chosen instead of Cholesky decomposition to avoid the use of square root operations.
[0048] Gradient Linear Model (GLM) Compared to CCLM, GLM does not use downsampled luminance values, but instead uses the gradient of luminance samples to derive a linear model. Specifically, when applying GLM, the input to the CCLM process is the downsampled luminance samples... The gradient of the brightness sample Replacement. Other parts of CCLM (e.g., parameter derivation, linear transformation of predicted samples) remain unchanged: .
[0049] For signals, when the current CU enables CCLM mode, two flags are set for the Cb and Cr component signals to indicate whether GLM is enabled for each component; if GLM is enabled for a component, a syntax element is added to the signal to select one of 16 gradient filters (2^10-2^40) for gradient calculation, such as... Figure 2 As shown. GLM can be combined with an existing CCLM by adding an additional flag to the signal in the bitstream. When this combination is applied, the filter coefficients of the input luminance samples used to derive the linear model are calculated as a combination of the gradient filter selected by the GLM and the downsampling filter of the CCLM.
[0050] Intra Block Copy (IBC) Intra-block copy (IBC) is a tool used in HEVC extensions of screen content coding (SCC). It is well known to significantly improve the coding and decoding efficiency of screen content materials. Since IBC mode is implemented as a block-level coding mode, block matching (BM) is performed in the encoder to find the optimal block vector (or motion vector) for each CU. Here, the block vector indicates the displacement from the current block to a reference block that has been reconstructed within the current image. The luma block vector of an IBC-encoded CU is integer precision. The chroma block vector is also rounded to integer precision. When combined with AMVR, IBC mode can switch between 1-pel and 4-pel motion vector precision. IBC-encoded CUs are considered a third prediction mode in addition to intra-frame or inter-frame prediction modes. IBC mode is suitable for CUs with a width and height less than or equal to 64 luma samples.
[0051] Cross-Component Residual Model (CCRM) As described in JVET-AD0108 (Pekka Astola et al., “AHG12: Cross-Component Residual Model (CCRM) for Inter-Frame Prediction,” Joint Video Experts Team (JVET) at ITU-T SG 16 WP3 and ISO / IEC JTC 1 / SC 29, 30th Meeting, Antalya, TR, 21-28 April 2023, document: JVET-AD0108), when blocks use inter-frame prediction or intra-block copying (IBC), the cross-component residual model (CCRM) is applied to predict chroma samples from reconstructed luminance samples. Figure 3 The decoder side of the method is described. Cross-component filters are derived using the predicted signals for both luma and chroma. The derived filters are applied to the reconstructed luma signal to produce the final chroma prediction. In step 320, filter coefficients are derived for each chroma component using the predicted signals (i.e., predY 310, and predCb 312 or predCr 314), and as follows... Figure 3As shown, in step 330, a filter is applied to the reconstructed luminance signal. The reconstructed luminance signal is formed by combining the luminance prediction (PredY) 310 and the residual luminance signal (resY) using adder 322. After applying the filter, step 330 generates the filtered predicted Cb 340 and the filtered predicted Cr 350. The reconstructed Cb signal is formed by combining the filtered predicted Cb 340 and the residual Cb signal (i.e., resCb) using adder 342. Similarly, the reconstructed Cr signal is formed by combining the filtered predicted Cr 350 and the residual Cr signal (i.e., resCr) using adder 352.
[0052] Chromaticity DM mode For chroma DM mode, the intra-prediction mode of the corresponding collocated luma block that covers the center position of the current chroma block is directly inherited.
[0053] Decoder-Side Intra Mode Derivation (DIMD) To implicitly derive the intra-prediction mode of the block, texture gradient analysis is performed at both the encoder and decoder. This process begins with an empty Histogram of Gradients (HoG), corresponding to 65 angular modes. The amplitudes of these entries are determined during texture gradient analysis.
[0054] Template-based Intra Mode Derivation (TIMD) Template-based intra-mode derivation (TIMD) implicitly derives the intra-predictive mode of the CU by using neighboring templates in the encoder and decoder, instead of sending the exact intra-predictive mode bits to the decoder. For example... Figure 4 As shown, reference samples of the template are used to generate predicted samples for each candidate mode. The calculated cost is the SATD between the predicted and reconstructed samples of the template. The intra-prediction mode with the lowest cost is selected as the TIMD mode (similar to a derivative method of the DIMD mode) and used for intra-prediction of the CU. The candidate modes may be the 67 intra-prediction modes in the VVC, or extended to 131 intra-prediction modes. In general, the MPM can provide clues to indicate the orientation information of the CU. Therefore, in order to reduce the intra-mode search space and utilize the characteristics of the CU, the intra-prediction mode is implicitly derived from the MPM list. Figure 4As shown, the template's reference samples (420 and 422) are used to generate predicted samples (412 and 414) for each candidate pattern of the current block 410.
[0055] Intra-frame template matching Intra-template matching prediction (IntraTMP) is a special intra-frame prediction mode that copies the best prediction block from the reconstructed portion of the current frame, whose L-shaped template matches the current template. For a predetermined search range, the encoder searches for the template in the reconstructed portion of the current frame that is most similar to the current template and uses the corresponding block as the prediction block. The encoder then sends a signal using this mode, and the decoder performs the same prediction operation.
[0056] Inter-frame prediction overview For each inter-frame predicted CU, motion parameters consist of motion vectors, reference picture indices, reference picture list usage indices, and additional information used for new encoding / decoding features in VVC for inter-frame prediction sample generation. Motion parameters can be sent explicitly or implicitly. When a CU is encoded in skip mode, the CU is associated with a PU, with no significant residual coefficients, no encoded motion vector difference, and no reference picture index. A merging mode is specified where the motion parameters of the current CU are obtained from neighboring CUs, including spatial and temporal candidates, and additional timelines introduced in VVC. The merging mode can be applied to any inter-frame predicted CU, not just skip mode. Another option for motion parameters is explicit transmission, where each CU explicitly sends motion vectors, corresponding reference picture indices, each reference picture list and reference picture list usage flags, and other necessary information.
[0057] In addition to the inter-frame encoding and decoding capabilities in HEVC, VVC includes many new and improved inter-frame predictive encoding and decoding tools, listed below: Extended merge forecast Merge mode with MVD (MMVD for short) Symmetric MVD (SMVD) signal Affine Motion Compensation Prediction Subblock-based temporal motion vector prediction (SbTMVP) Adaptive motion vector resolution (AMVR) Motion field storage: 1 / 16th luminance sample MV storage and 8x8 motion field compression. Bi-prediction with CU-level weight (BCW) Bidirectional optical flow (BDOF) Decoder-side motion vector refinement (DMVR) Geometric partitioning mode (GPM) Combined inter and intra prediction (CIIP) The following text provides details or improvements to some inter-frame prediction methods.
[0058] Extended merge forecast In VVC, the merge candidate list is constructed by including the following five types of candidates in sequence: Space MVP from Space Neighbor CU Time MVP from collocated CU Historical MVP from FIFO table Pair average MVP Zero MV.
[0059] Space candidate derivatives In VVC, the derivation of spatial merge candidates is the same as in HEVC, except that the positions of the first two merge candidates are swapped. For the current codec unit (CU) 510, from... Figure 5A maximum of four merged candidates (B0, A0, B1, and A1) are selected from the candidates at the indicated positions. The derived order is B0, A0, B1, A1, and B2. Position B2 is considered only if the adjacent CU positions B0, A0, B1, and A1 are unavailable (e.g., belonging to another slice or tile) or if it is intra-frame coding. After the candidate at position A1 is added, the addition of the remaining candidates is subject to redundancy checks to ensure that candidates with the same motion information are not included in the list, thereby improving encoding / decoding efficiency.
[0060] In addition to the aforementioned spatial candidates, non-adjacent spatial merger candidates are inserted after the TMVP in the regular merger candidate list, as described in JVET-L0399 (Yu Han et al., “CE4.4.6: Improvement of Merge / Skip Pattern,” ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11 of the Joint Film Exploration Group (JVET), 12th Meeting: Macau, China, 3-12 October 2018, Document: JVET-L0399). An example of a spatial merger candidate pattern is shown below. Figure 6 In the current code block, the distance between non-nearest spatial candidates and the current code block is based on the width and height of the current code block. Line buffer constraints do not apply.
[0061] Time candidate derivative In this step, only one candidate is added to the list. Specifically, when deriving this temporal merging candidate for the current CU 710, a scaled motion vector is derived based on the co-located CU 720 associated with the co-located reference image, such as... Figure 7 As shown. The list of reference images and reference indices used to derive co-located CUs are explicitly indicated in the slice header. The scaled motion vectors of the temporal merge candidates are shown in Figure 730. Figure 7 As shown by the dashed line, the motion vector 740 of the co-located CU is scaled using the POC (Picture Order Count) distances tb and td, where tb is defined as the POC difference between the reference image and the current image, and td is defined as the POC difference between the reference image of the co-located image and the co-located image. The reference image index of the temporal merge candidate is set to zero.
[0062] The position of the time candidate is Figure 8 Choose between candidates C0 and C1. If the CU at position C0 is unavailable, is intra-coded, or is outside the current CTU line, then position C1 is used. Otherwise, position C0 is used when merging candidates at derived time.
[0063] Derivation of historical merger candidates Historically based MVP (HMVP) merge candidates are added to the merge list after the spatial MVP and TMVP. In this approach, motion information from previously coded blocks is stored in a table and used as the MVP for the current CU. A table containing multiple HMVP candidates is maintained during encoding / decoding. The table is reset (cleared) when a new CTU row is encountered. Whenever a CU that is not coded between sub-blocks is encountered, the associated motion information is added to the last entry of the table as a new HMVP candidate.
[0064] Pair average merge candidate derivation Paired average candidates are generated by averaging the predefined 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 is defined as p1Cand. Average motion vectors are calculated for each reference list based on the availability of motion vectors for p0Cand and p1Cand. If two motion vectors are available in a list, even if they point to different reference images, these two motion vectors are averaged, and the reference image is set to the image of p0Cand; if only one motion vector is available, that motion vector is used directly; if no motion vector is available, the list remains invalid. Furthermore, if the half-pixel interpolation filter indices of p0Cand and p1Cand are different, they are set to 0.
[0065] If the merge list is still not full after adding the average number of merge candidates in pairs, insert the zero MVP at the end until the maximum number of merge candidates is encountered.
[0066] Merge Estimation Region (MER) The Merge Estimation Region (MER) allows for the independent generation of merge candidate lists for Cues (CUs) within the same MER. Candidate blocks located within the same MER as the current CU are not included in the generation of the merge candidate list for the current CU. Furthermore, the update process for predicting the candidate list based on historical motion vectors is only updated when (xCb + cbWidth) >> Log2ParMrgLevel is greater than xCb >> Log2ParMrgLevel and (yCb + cbHeight) >> Log2ParMrgLevel is greater than (yCb >> Log2ParMrgLevel), where (xCb, yCb) is the top-left luminance sample position of the current CU in the image, and (cbWidth, cbHeight) is the CU size. The MER size is selected at the encoder and indicated in the sequence parameter set as log2_parallel_merge_level_minus2.
[0067] Various solutions have been revealed to improve encoding / decoding performance or reduce the complexity of cross-component prediction.
[0068] Cross-component information is used to improve prediction accuracy for non-intra-frame blocks, such as inter-frame blocks. In one example of improving the prediction accuracy of the chroma component in inter-frame blocks, luma information from the corresponding luma component and / or chroma information from the previously encoded chroma component are used.
[0069] The first approach is to improve the prediction of Cb and / or Cr by using information from Y for the codec unit (under single-tree segmentation) that contains luminance (Y) and chrominance (Cb and / or Cr) components.
[0070] The second approach involves improving the prediction of Cr by using information from Cb, either for codec units containing both luminance (Y) and chrominance (Cb and / or Cr) components (in single-tree segmentation) or for codec units containing only chrominance (Cb and / or Cr) components (in chrominance dual-tree segmentation). For example, model parameters are derived by using neighboring reconstructed samples of Cb and Cr as input X, the source term for model derivation, and Y, the target. The derived model parameters and the Cb reconstructed samples are then used to generate Cr predictions.
[0071] The following presents several embodiments related to the first approach for processing the current chroma block using inherited cross-component patterns (e.g., model information of the inherited cross-component pattern), comprising: a) establishing a candidate list containing cross-component models for the current block; b) selecting one or more model information from the list, meaning that one or more model information is determined; and / or c) using the model information (similar to intra-chroma cross-component patterns) to generate one or more prediction hypotheses for the current chroma component (Cb or Cr) by applying the selected model information to and / or modifying the reconstructed or predicted samples of the corresponding luma component. When the selected model information refers to a conventional cross-component linear model, the proposed method is called the inter-cross-component linear model (inter CCLM) pattern. When the selected model information refers to a convolutional cross-component model derived through a regression-based method (e.g., CCCM), the proposed method is called the inter-cross-component convolutional model (inter CCCM) pattern. Furthermore, in some embodiments, a self-derived (re-derived) cross-component pattern is proposed and can be added to the candidate list in Section I. In some embodiments, the selection (which means determination) of using the proposed inheritance pattern, such as a model inherited from a previous block, and / or the use of the proposed self-derived pattern, such as a model derived from the current block, is determined according to explicit rules, implicit rules, or both. Further details are described in Section IV.
[0072] In one embodiment, the proposed embodiment can also be used in a second scheme by using the previously encoded chroma component (Cb) as the luminance component in the first scheme.
[0073] Model storage for the current block In another embodiment, when the current non-intra-block (e.g., inter-block) uses model parameters from a self-derived cross-component mode, the model parameters used can be stored and / or referenced by subsequent codec blocks. In another embodiment, when the current non-intra-block, such as an inter-block, uses an inherited cross-component mode, the model parameters used can be stored and / or referenced by subsequent codec blocks.
[0074] I. Create a candidate list that includes cross-component models. In one embodiment, when creating a merged candidate model list (modelList), it includes one or more candidate model information.
[0075] Spatial model information from spatially neighboring blocks (corresponding to "spatial MVP from spatially neighboring CUs" between frames) Temporal model information from the same block (corresponding to the "temporal MVP from the same CU" between frames) Historical model information from the FIFO table (corresponding to "historical MVP from the FIFO table" between frames) Pairwise average model information (corresponding to the "pairwise average MVP" between frames) Default model information (corresponding to "zero MV" between frames) In the sub-example where the candidate type is "spatial model information from spatially neighboring blocks," a valid spatially neighboring block can come from one of spatially adjacent and non-adjacent neighbors (or any subset of blocks in the current block's neighbor search region) and satisfy predetermined conditions. For example, the predetermined conditions are that the neighbor is encoded by a cross-component mode (e.g., CCLM, MMLM, CCCM, GLM, modes with mode information inherited from a similar merged candidate list, MH CCLM (referring to a predictor that uses multiple cross-component models or multiple cross-component prediction hypotheses to generate MH CCLM blocks), and / or any cross-component mode with a syntax that does not belong to a traditional (non-cross-component) intra-prediction mode) or a combination of cross-component modes (e.g., chroma fusion (or LM-assisted Angular / Planar mode, referring to a predictor that fuses existing prediction hypotheses with additional cross-component prediction hypotheses to generate chroma fusion blocks), inter-frame CCLM, and / or any traditional mode whose syntax does not belong to a cross-component mode but uses cross-component information to generate predictions). When scanning spatially neighboring blocks, if a candidate is valid, it is added to the list.
[0076] In another sub-implementation, temporal model information comes from co-op blocks, which are derived from reference images or co-op images as inter-frame patterns. For example, when the current block is encoded by an inter-frame prediction pattern, the co-op block is derived using or referencing the motion information of the current block (including motion vectors and / or reference images). If the current block is a sub-block motion pattern (e.g., an affine pattern), each sub-block in the current block has its own co-op temporal model information, and / or all or any subset of the co-op temporal model information derived using or referencing different sub-block motions is added to a list. Another example is that the temporal model information may come from co-op blocks derived using or referencing the motion information of neighboring blocks of the current block. If the proposed method is applied to IBC blocks or any pattern that uses block vectors, the block vector information is used as motion vectors, wherein the block vector information is determined by signals and / or template matching within a predetermined search range and / or any implicit or explicit predetermined rules.
[0077] In another sub-implementation, a history-based table (FIFO table) is built based on historical model information to store model information from previous encoded blocks. This table can be reset at the beginning and / or end of CTUs (e.g., each CTU or CTU row), slices, pictures, tiles, and / or sequences. One or more history-based candidates can be added to the candidate list in either head-to-tail or tail-to-head order.
[0078] In another sub-implementation, model information is averaged pairwise, where the candidate's model information is derived from the model information of previous candidates in the list. For example, it can average and / or modify the model parameters of more than one candidate as the model parameters to be applied. Another example is that it can combine more than one prediction as the final prediction, where each of the more than one prediction is generated by applying a model from the list.
[0079] In another sub-implementation, if the list is not full after inserting all predetermined candidates, default model information is added. The following shows some examples of default CCLM model information: For example, the preset alpha (or called The scaling parameter (a, or scaling parameter) is {0, 1 / 8, -1 / 8, 2 / 8, -2 / 8, 3 / 8, -3 / 8, …}, while beta (or beta...) is... (b, or offset parameter) is based on the selected default alpha, the average neighboring reconstructed luminance sample value, and / or the average neighboring reconstructed chromaticity (Cb / Cr) sample value.
[0080] In another sub-implementation, details of the candidate list can be found in Section V.
[0081] In another embodiment, when the modelList is built, one or more self-derived cross-component candidates are included. In one sub-embodiment, an example of a self-derived cross-component pattern is CCRM. In another sub-embodiment, self-derived cross-component candidates are added only if the list does not contain enough inherited candidates. For example, a self-derived candidate precedes or is considered a preset candidate. In another sub-embodiment, self-derived cross-component candidates are added to any predetermined position in the modelList. For example, the position is after spatially adjacent candidates. Another example is the position after spatially non-adjacent candidates. Another example is the position after temporal candidates. Another example is that a flag is sent or parsed to indicate enabling or disabling the generation or exclusion of the one or more self-derived cross-component candidates in the candidate list. Another example is that enabling or disabling the generation or exclusion of the one or more self-derived cross-component candidates in the candidate list is based on one or more implicit rules. Self-derived cross-component candidates refer to one or more models, and these models are used to generate cross-component predictions for the current block as follows.
[0082] The current block of cross-component prediction (containing the target prediction sample) is formed by combining one or more proposed source terms and the model (referring to the proposed weight settings). As shown in Equation (3), pred(i, j) is the target (predicted) sample in the current block, which can be obtained after our proposed mechanism. sourceTermSet0 includes one or more source terms from the luma component, sourceTermSet1 includes one or more source terms from the chroma component, and biasTermSet includes one or more bias terms.
[0083] Equation (3) is merely an example; our proposed mechanism can use any subset or extension of sourceTermSet0, sourceTermSet1, and biasTermSet. Each sample in the current block, or any subset thereof, obtains its target (predicted) sample according to Equation (3): pred(i, j) = (sourceTermSet0(i, j) + sourceTermSet1(i, j) + … +biasTermSet) (3) Together with the proposed weight setting, where (i, j) is the sample position in the current block.
[0084] Next, the contents of sourceTermSet0 are described in Section I.1, the contents of sourceTermSet1 in Section I.2, the contents of biasTermSet in Section I.3, and predictor derivation using the proposed source terms and weight settings is described in Section I.4. Several examples using our proposed mechanism are shown in Section I.4.
[0085] I.1. Contents of sourceTermSet0(i, j) SourceTermSet0(i, j) includes one or more luminance source terms denoted as sourceTerm00, sourceTerm01, ..., and / or sourceTerm0n-1. The value of n represents the number of points in the source terms set. In one embodiment, a source term can be a linear term and / or a non-linear term, a linear term only, and / or a non-linear term only. In another embodiment, n is a predetermined value, such as 1, 2, ..., or any positive integer. For example, the predetermined value is fixed in the standard. Another example is that the predetermined value is less than or equal to the maximum threshold indicated by the syntax in the bitstream, where the syntax is at the block, CTU, CTB, slice, tile, picture, SPS, PPS, picture, and / or sequence level. In another embodiment, n is determined by the encoding / decoding information of the current block and / or the sample position (i, j). For example, when the current block is encoded and decoded by a specific codec tool, n is (1) fixed at a predetermined value, (2) determined based on the block width, block height, block area, codec information, and / or sample information of the current block, (3) determined based on the codec information and / or sample information as a neighboring / non-neighboring spatial reference region of the current block, and / or (4) determined based on the codec information and / or sample information as a temporal reference region of the current block. In another embodiment, the pattern of point n refers to the pattern defined as any subset of the M x N window region surrounding / containing position (iL, jL). If the target sample is chroma (e.g., Cb or Cr), (iL, jL) is the co-positional luminance position from (i, j).
[0086] For example, only the center (iL, jL) of the window... Figure 9A As shown, it is being used.
[0087] Another example is a pattern corresponding to a 5x5 cross, which may or may not include (iL, jL). Figure 9B The diagram includes (iL, jL).
[0088] Another example is a pattern corresponding to a 5x5 rhombus, which may or may not include (iL, jL). Figure 9C The diagram includes (iL, jL).
[0089] In another embodiment, different points refer to source items from different prediction modes or different mode types. In one sub-embodiment, one or more points come from mode type intra-frame, another or more points come from mode type inter-frame, and / or another or more points come from mode type IBC. In another sub-embodiment, one or more points come from MIP intra-frame prediction modes, and another or more points come from non-MIP intra-frame prediction modes.
[0090] For a source item in the source item set, the following example is used to determine the generation of source content.
[0091] In one embodiment, the source content is based on a prediction sample generated by a prediction model and / or a reconstruction sample generated based on the prediction model and reconstruction residuals.
[0092] In one sub-implementation, the prediction mode belongs to a mode type intra-frame, mode type inter-frame, or a third mode type (e.g., mode type IBC). An example of a prediction mode belonging to a mode type intra-frame is a planar, DC, horizontal, vertical, other angular (directional) prediction mode, any intra-frame prediction mode specified in the 67 / 131 intra-frame prediction mode domain, a wide-angle intra-prediction (WAIP) mode, a TIMD derived mode, a DIMD derived mode, intraTMP, and / or any intra-frame prediction mode specified in the standard. Another example of a prediction mode belonging to a mode type inter-frame is a skip mode, a regular merge mode, an MMVD mode, an affine mode, sbTMVP, AMVR, any merge mode specified in the standard, any AMVP mode specified in the standard, or any inter-frame mode specified in the standard. Another example of a prediction mode belonging to a mode type IBC is an IBC merge, IBC AMVP, or any IBC mode specified in the standard. Note that this invention supports any possible combination between prediction modes and mode types. In other words, any prediction mode mentioned can be defined under any mode type according to the standard. For example, according to the standard definition, if the IBC mode belongs to the mode type inter-frame, then the prediction mode belonging to the mode type inter-frame in the embodiment can refer to an IBC mode.
[0093] In another sub-implementation, the source content is a filtered source or a source that has undergone any preprocessing. For example, the source content is a predicted / reconstructed sample filtered by a predetermined model or filter.
[0094] In another sub-implementation, the source content is gradient information from the predicted and / or reconstructed samples. If the target sample (i, j) belongs to chroma, and the gradient information of the co-location (as the center circle) of the luminance sample is obtained using... Figure 10 The values are calculated using any of the Sobel filters (1010-1040) shown or any predefined filters. Each value around the central circle is multiplied by the corresponding predicted / reconstructed sample in the same brightness block, and then summed to form the gradient information of the source term for the target sample (i,j).
[0095] In another sub-implementation, since the target sample is a chroma sample (e.g., Cb or Cr), the predicted and / or reconstructed samples are located within the co-located (luminance) block of the current (chroma) block. The predicted and / or reconstructed samples are treated as initial samples and used as source content for generating the target sample.
[0096] In another embodiment, the value of the source item is further adjusted (e.g., added to or subtracted from) by a predefined offset. If the target sample refers to chroma, several embodiments are used to generate the offset of the source item. In one sub-embodiment, the offset is determined as the average of each (or any subset of) predicted or reconstructed samples in the co-positional luma block of the current (chroma) block, or in a reference region of the co-positional luma block. In another sub-embodiment, the offset is determined as a sample value of a predefined predicted or reconstructed sample in the co-positional luma block or in a reference region of the co-positional luma block. For example, the sample value comes from the top-left position of the co-positional luma block (just outside the top-left corner of the co-positional luma block).
[0097] In another embodiment, the source term may further include location information. For example, if the target sample refers to luminance, then the horizontal position (i) of (i, j) is used for the source term, and the vertical position (j) of (i, j) is used for the source term; otherwise, the horizontal position of the luminance block in the same position as sample (i, j) is used for the source term, and the vertical position of the luminance block in the same position as sample (i, j) is used for the source term.
[0098] In another embodiment, the source term may further include location information. For example, if the target sample refers to chromaticity, the horizontal position of the isotopic luminance of sample (i, j) is used for the source term, while the vertical position of the isotopic luminance of sample (i, j) is used for the source term.
[0099] I.2. Contents of sourceTermSet1(i, j) `sourceTermSet1(i, j)` includes one or more chroma (Cb or Cr) source terms, denoted as `sourceTerm00`, `sourceTerm01`, ..., and / or `sourceTerm0m-1`. The value of `m` represents the number of taps in the source terms set. In one embodiment, a source term can be a linear term and / or a non-linear term, a linear term only, and / or a non-linear term only. In another embodiment, `m` is a predefined value, such as 1, 2, ..., or any positive integer. For example, the predefined value is fixed in a standard. Another example is that the predefined value is less than or equal to the maximum threshold in the bitstream indicated by the syntax, where the syntax is located at the block, CTU, CTB, slice, tile, picture, SPS, PPS, picture, and / or sequence level. In another embodiment, `m` is determined by the encoding / decoding information of the current block and / or the sample position (i, j). For example, when the current block is encoded by a specific codec tool, m is (1) fixed at a predefined value, (2) determined based on the block width, block height, block area, codec information, and / or sample information of the current block, (3) determined based on the codec information and / or sample information of the adjacent / non-adjacent spatial neighboring reference regions of the current block, and / or (4) determined based on the codec information and / or sample information of the temporal reference region of the current block. In another embodiment, the pattern of the m tap refers to a pattern defined as any subset of the window region M2 x N2 surrounding / containing the position (iC, jC). If the target sample is chroma (Cb or Cr), (iC, jC) is (i, j). If the target sample is luma, (iC, jC) is the co-position of the chroma from (i, j).
[0100] For example, only the window center (iC, jC) is used, such as Figure 11A As shown.
[0101] Another example is a pattern corresponding to a 5x5 cross, which may or may not include (iC, jC), such as... Figure 11B As shown.
[0102] Another example is a pattern corresponding to a 5x5 rhombus, which may or may not include (iC, jC), such as Figure 11C As shown.
[0103] In another embodiment, different taps refer to source items from different prediction modes or different mode types. In one sub-embodiment, one or more taps come from mode type intra-frame, another or more taps come from mode type inter-frame, and / or another or more taps come from mode type IBC. In another sub-embodiment, one or more taps come from MIP intra-frame prediction modes, and another or more taps come from non-MIP intra-frame prediction modes.
[0104] For source items in the source item set, the following examples are used to determine the generation of source content.
[0105] In one embodiment, the source content is based on a prediction sample generated by a prediction model and / or a reconstruction sample generated by the prediction model and reconstruction residual based on the prediction sample.
[0106] In one sub-implementation, the prediction mode belongs to mode type intra, mode type inter, or a third mode type (e.g., mode type IBC). As an example of a prediction mode belonging to mode type intra, the prediction mode refers to planar, DC, horizontal, vertical, other angular (directional) prediction modes, any intra prediction mode specified in the 67 / 131 intra prediction mode domain, wide-angle intra prediction (WAIP) mode, TIMD derived mode, DIMD derived mode, intra TMP, direct block vector (DBV), any cross-component mode (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 variant / extension of the above modes), and / or any intra prediction mode specified in the standard. As another example of a prediction mode belonging to the inter-frame mode type, the prediction mode refers to skip mode, regular merge mode, MMVD mode, affine mode, sbTMVP, AMVR, any merge mode specified in the standard, any AMVP mode specified in the standard, or any inter-frame mode specified in the standard. As another example of a prediction mode belonging to the IBC mode type, the prediction mode refers to IBC merge, IBC AMVP, or any IBC mode specified in the standard. Note that this invention supports any possible combination between prediction modes and mode types. That is, any mentioned prediction mode can belong to any mode type according to the standard definition. For example, according to the standard definition, if the IBC mode belongs to the inter-frame mode type, then in this embodiment, the prediction mode belonging to the inter-frame mode type can refer to the IBC mode. In one embodiment, DBV can be considered as generating chroma prediction samples using IBC. In another sub-embodiment, the source content is a filtered source or a source that has undergone any preprocessing. For example, the source content is a prediction / reconstruction sample filtered using a predefined model or filter.
[0107] In another sub-implementation, the source content is gradient information from the predicted and / or reconstructed samples. If the target sample (i, j) belongs to luminance, the gradient information of the corresponding chrominance sample is calculated using any Sobel filter or any predefined filter.
[0108] In another sub-implementation, if the target sample is a chroma sample, the predicted and / or reconstructed samples are located within the current block. The predicted and / or reconstructed samples are treated as initial samples and used as source content for generating the target sample.
[0109] In another embodiment, the value of the source item is further adjusted (increased or decreased) by a predefined offset. If the target sample refers to chroma, several embodiments are used to generate the offset of the source item. In one sub-embodiment, the offset is determined as the average of each (or any subset of) predicted or reconstructed samples in the current block or a reference region of the current block. In another sub-embodiment, the offset is determined as a sample value of a predefined predicted or reconstructed sample in the current block or a reference region of the current block. For example, the sample value comes from the top-left position of the current block (just outside the top-left corner of the current block).
[0110] In another embodiment, the source term may also include location information. For example, if the target sample refers to chromaticity, then the horizontal position (i) of (i, j) is used for the source term, and the vertical position (j) of (i, j) is used for the source term.
[0111] I.3. Contents of the Bias Term Set The bias term is a predefined value. In one embodiment, the bias term is the median of the bit depth specified in a standard. For example, the bias term is set to (1 << (bit depth - 1)). In another embodiment, the bias term is the same for every sample in the current block. That is, the bias term is independent of position (i, j).
[0112] I.4. Predictor Derivation for Sample (i, j) I.4.1. Suggested Weighting The proposed weighting is achieved by estimating the relationship (minimizing distortion) between "predicted and / or reconstructed samples on the reference region of the current (chroma) block" and "predicted and / or reconstructed samples on the reference region of the corresponding luma block" using a predefined regression method to generate weights (referring to model parameters) based on the regression method. The weights derived from the source terms are then applied to obtain the target (predicted) samples in the current block. In one embodiment, the predefined regression method can be the Linear Minimum Mean Square Error (LMMSE) method of CCLM, or any unified method with the regression method used by CCLM. In another embodiment, the predefined regression method can be the LDL decomposition method of CCCM, or any unified method with the regression method used by CCCM. In yet another embodiment, the predefined regression method can be Gaussian elimination.
[0113] In one embodiment, the reference region of the current block is the spatial proximity region of the current block. The spatial proximity region of the current block (CurrentCU) 1210 includes the upper reference region 1212, the left reference region 1214, the upper left reference region 1216, and / or any subset thereof, such as... Figure 12 As shown.
[0114] The size of the upper reference region is Aw x AH, the size of the left reference region is Lw x LH, and the size of the upper left reference region is ALW x ALH. Aw = current block width (W), k*W, W + current block height (H), any predefined value, or any adaptive value based on the current block's block position, block width, block height, and / or block area.
[0115] AH or ALH = H, any predefined value (1, 2, 4, ...), or any adaptive value based on the current block's position, width, height, and / or area.
[0116] LW or ALW = W, any predefined value (1, 2, 4, ...), or any adaptive value based on the current block's position, width, height, and / or area.
[0117] LH = H, k*H, H + W, any predefined value, or any adaptive value based on the current block's position, width, height, and / or area.
[0118] The reference area for a corresponding luminance block is the spatially adjacent area of that luminance block.
[0119] In another embodiment, the reference region of the current (chroma) block is the vector co-location region of the current block and the reference region of the corresponding luma block. The luma block can be a co-location luma block of the current chroma block and a vector co-location region of the corresponding luma block. For an interactive codec unit containing luma and chroma blocks, the vector co-location region of the current block refers to the motion compensation result using the motion information (motion vector and / or reference image) of the current block, while the vector co-location region of the corresponding luma block refers to the motion compensation result using the motion information (motion vector and / or reference image) of the corresponding luma block. For IBC or intraTMP, the vector co-location region of the current block refers to the motion compensation result using the motion information (block vector and / or current image) of the current block, while the vector co-location region of the corresponding luma block refers to the motion compensation result using the motion information (block vector and / or current image) of the corresponding luma block.
[0120] In another embodiment, the two types of reference regions for the current block described above can be used together. For example, typically, when deriving model parameters, samples in the vector colocation region of the current block are used as input samples; however, for smaller blocks, when deriving model parameters, samples in the spatially neighboring reference region are used as additional input samples.
[0121] I.4.2. Different Examples of Expression I.4.2.1. , In this expression, the target sample is chroma, sourceTermSet0 includes two taps as G(i, j) and rec'L(i, j), sourceTermSet1 is unused, and biasTerm refers to another tap as midValue. It is the gradient information generated from the selected gradient filter. These are downsampled and reconstructed brightness samples. The model parameters (a0, a1, and a2) for the weights are based on: Use the six adjacent rows and six columns of samples from the current block as the reference area. LDL decomposition method was used as the regression method. I.4.2.2. , In this expression (similar to JVET-AC0054), the target sample is chroma, sourceTermSet0 includes six taps as C (common bit / corresponding luminance reconstruction sample), Gy(i, j), Gx(i, j), Y, X, and P (e.g., as a non-linear term of CCCM), sourceTermSet1 is unused, and biasTerm refers to another tap as midValue.
[0122] It is gradient information generated from the vertical gradient filter.
[0123] It is gradient information generated from the horizontal gradient filter.
[0124] Y and X are the vertical and horizontal positions of the co-position brightness sample.
[0125] Use the six adjacent rows and six columns of samples from the current block as the reference area. LDL decomposition method was used as the regression method. I.4.2.3. , In this expression, the target sample is chroma, sourceTermSet0 includes six taps as L0 to L5 and one tap P as a nonlinear term, sourceTermSet1 is unused, and biasTerm refers to another tap as midValue. L0 to L5 refer to the corresponding unsampled luminance reconstructed samples from co-located references, which are the predicted chroma(i, j) (in Figure 13(Represented by a circle) as a reference. P is generated from any one or more corresponding unsampled luminance reconstructed samples. For example, P is obtained using (the average of two predetermined corresponding luminance samples + 1) >> 1) and according to the nonlinear term in the CCCM method. The two predetermined corresponding luminance samples refer to... Figure 13 Samples above and below the middle circle.
[0126] The model parameters a0 to a7 are derived using a regression method without division. The input samples are adjusted using the proposed offsets before the parameters are derived.
[0127] In one embodiment, a long-tap post-filter is applied when generating the target predictor for the current block and / or when generating the template predictor over the reference region of the current block. The filter shape can be any of the patterns proposed in the above invention.
[0128] In another embodiment, sourceTermSet1 is also used. For example, one or more additional taps of sourceTermSet1 refer to the initial prediction sample (i, j) of the current block and / or the pattern surrounding (i, j) generated using the prediction mode of the current block. For an interactive codec unit containing luma and chroma blocks, the initial prediction sample (i, j) refers to the motion compensation result using the motion information (motion vector and / or reference image) of the current block. For IBC or intraTMP, the initial prediction sample (i, j) refers to the motion compensation result using the motion information (block vector and / or current image) of the current block. The additional taps are derived by using the spatially neighboring reference region of the current block.
[0129] In another embodiment, sourceTermSet0 or sourceTermSet1 may include gradient terms from other examples.
[0130] In another embodiment, more construction details of modelList can be found in Section VI.
[0131] II. Signals for Model Information Control When the proposed inter-frame CCLM (or inter-frame CCCM) is not applied, the prediction for the current block comes from the original inter-frame prediction.
[0132] In another embodiment, whether inter-frame CCLM is applied depends on the signal.
[0133] In one sub-implementation, the signal refers to a flag at the encoded TU and / or TB and / or CU and / or CB levels.
[0134] In another embodiment, inter-frame CCLM (or inter-frame CCCM) is supported only if the size condition of the current block is met.
[0135] In one sub-implementation, the size condition is that the block width, block height, or block area is greater than a predefined threshold. The predefined threshold can be a positive integer, such as 8, 16, 32, 64, 128, 256, ...
[0136] In another sub-implementation, the size condition is that the block width, block height, or block area is less than a predefined threshold. The predefined threshold can be a positive integer, such as 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, etc.
[0137] In another embodiment, the original inter-frame prediction (generated by motion compensation) is used for luma, while the prediction for the chroma component is generated by CCLM and / or any other cross-component model, such as a model from another LM mode.
[0138] In one sub-implementation, the current CU is considered as an inter-frame CU, an intra-frame CU, or a novel prediction mode (neither intra-frame nor inter-frame).
[0139] In another embodiment, as a further proposed method related to Section V, one or more LM modes (or cross-component modes) used to generate prediction hypotheses for LM auxiliary angular / planar modes and / or inter-frame CCLM and / or MH CCLM are selected from a predefined merge candidate list (called modelList). A modelIdx is sent to select a candidate from the candidate list (modelList), and the selected candidate is used for the current block. modelList contains one or more candidates, each referring to a model (or cross-component mode) information. If there is only one candidate in the list (the list size is only 1), modelIdx is not sent, and / or modelIdx can be implied to be 0 or a default value.
[0140] In one embodiment, when building the modelList, one or more predefined candidates are added. The predefined candidates can include any subset / extension of the following candidates: CCLM series: CCLM_LT, CCLM_L, CCLM_T MMLM series: MMLM_LT, MMLM_L, MMLM_T CCCM series: CCCM_LT, CCCM_L, CCCM_T The method proposed above can also be applied to IBC blocks or blocks of any IBC submode (e.g., IBC merging or IBC AMVP (or IBC Advanced MVP or IBC Inter-Frame) or any IBC mode under the IBC syntax). (In this invention, "inter-frame" can be replaced with IBC.) That is, for chroma components, block vector prediction can be combined with or replaced by cross-component prediction.
[0141] III. Generating Predictive Hypotheses III.1. Concept In one embodiment, a predictive hypothesis for the current chromaticity component is generated using a prediction- or reconstruction-based model.
[0142] In a sub-implementation of a prediction-based linear model, the derived model parameters are applied to the predicted samples of the first component (Y) to obtain the predicted samples of the second or third component: .
[0143] The predicted samples of the first component are downsampled by a downsampling filter (which may be fixed to a predefined filter or selected from some candidate filters).
[0144] In a sub-implementation of a reconstruction-based linear model, the derived model parameters are applied to reconstructed samples of the first component (Y) to obtain predicted samples of the second or third component: .
[0145] The reconstructed samples of the first component are downsampled using a downsampling filter (which may be fixed to a predefined filter or selected from some candidate filters).
[0146] The convolutional model based on prediction or reconstruction is similar to the proposed method based on linear model based on prediction or reconstruction. The main difference is that the model coefficient pattern follows CCCM (instead of CCLM), and the luminance samples may or may not be downsampled first. If the luminance samples are not downsampled, more points (model coefficients) may be used to access the undownsampled luminance samples.
[0147] III.2 CCLM for Inter-Frame Blocks The CCLM of an inter-frame block can also be called an inter-frame CCLM. "CCLM" can be extended to any LM mode (or any cross-component mode) or replaced by any LM mode (or any cross-component mode). In one embodiment, for the chroma component, in addition to the original inter-frame prediction (generated by motion compensation, which can be a uni-prediction and / or a bi-prediction, multiple prediction hypotheses from multiple motion candidates, which may refer to one or more merge candidates and / or one or more AMVP candidates, and / or any combination thereof, or may be just a single prediction), one or more prediction hypotheses generated by CCLM and / or any other LM mode are used to output the current prediction.
[0148] In one sub-implementation, the current prediction is a weighted sum of inter-frame prediction and CCLM prediction.
[0149] In another embodiment, inter-frame prediction can be generated by any of the inter-frame modes described above. For example, the inter-frame mode can be a regular merging mode. Another example is the CIIP mode. Yet another example is GPM or any GPM variant (e.g., GPM intra-frame refers to a prediction unit using intra-frame prediction).
[0150] In another embodiment, inter-frame CCLM is supported only when any one (or more) of the predefined inter-frame modes used for the current block is used, or when the enable flag of any one (or more) of the predefined inter-frame modes is indicated as enabled. Supporting inter-frame CCLM means that the prediction of the current block can be selected between applying inter-frame CCLM or not applying inter-frame CCLM.
[0151] For example, if a CCLM model is used to generate chroma prediction samples, while luma prediction comes from inter-frame encoding / decoding tools, a flag is used to indicate whether the CCLM model used for chroma prediction is inherited from a CCLM model used in a previous coding block or from a predefined CCLM model. If the CCLM model is inherited from a CCLM model used in a previous coding block, an index is used to indicate which model in the list was inherited or modified. Otherwise, a predefined CCLM model is used to implicitly derive the CCLM model for the current chroma prediction.
[0152] IV. Choose to use the proposed inheritance pattern and / or self-derivative pattern. In one embodiment, a flag may be sent to indicate / select whether a re-derived model is used. If the flag is 0, the cross-component model used for encoding / decoding neighbor merge candidates is inherited. If the flag is 1, the re-derived approach is used. For example, a flag is sent or parsed to indicate or select the target cross-component candidate from the one or more self-derived cross-component candidates or from the one or more inherited candidates.
[0153] In another embodiment, a flag is sent to indicate whether the proposed cross-component prediction is used to generate a prediction or mixed with existing predictions for an inter-frame block (or an IBC block, an intra-frame TMP block, or any mode type block). Several implementations are proposed if the flag indicates the use of the proposed cross-component prediction. In one sub-implementation, it selects one or more candidates from an established modelList to generate the proposed cross-component prediction. In another sub-implementation, an additional flag is sent to indicate / select whether to use a re-derived model. If the additional flag is 0, the cross-component model used for encoding / decoding neighbor merging candidates is inherited. If the additional flag is 1, the re-derived approach is used. In another sub-implementation, an implicit rule (without using the additional flag) is used to determine whether to use the re-derived model. For example, the implicit rule depends on the block's width, height, and / or area. In one case, for small blocks (e.g., the block's width / height is less than or equal to a threshold, or the block's area is less than or equal to a threshold), the re-derived cross-component model is not allowed and / or the proposed inheritance approach is used instead.
[0154] In another embodiment, an implicit rule (without using additional flags) is used to determine whether to use the re-derived model. For example, the target cross-component candidate selected from the one or more self-derived cross-component candidates or from the one or more inherited candidates is based on one or more implicit rules. For example, the implicit rules depend on the block's width, height, and / or area. In one case, for small blocks (e.g., the block's width / height is less than or equal to a threshold, or the block's area is less than or equal to a threshold), deriving a cross-component model is not allowed, and / or the proposed inheritance method is used instead.
[0155] In another embodiment, candidates with the lowest cost or model error (e.g., the first candidate in modelList) are implicitly selected to generate cross-component predictions using the proposed method, such as inheritance or self-derivation. In another example, an index is sent to select one or more candidates from modelList. More details can be found in Section 2.
[0156] In another embodiment, the transmitted flag refers to an encoded flag at the TU and / or TB and / or CU and / or CB levels. This flag may or may not be context-dependent in its encoding. For example, the TU / TB flag is transmitted only if the TU / TB's luminance Cbf is non-zero and the inter-frame mode enable flag is true. Similarly, the CU / CB flag is transmitted only if the CU / CB's luminance Cbf is non-zero.
[0157] In another embodiment, the activation conditions for sending a flag depend on the supported mode settings and / or block attribute settings. When all activation conditions are met, the proposed flag is sent. When any one activation condition is not met, the proposed flag is ignored (i.e., not sent). Supported mode settings refer to which codec modes are available for cross-component prediction. If only inter-frame codec modes are available for cross-component prediction, the activation conditions include the current block's mode type being inter-frame. If only IBC codec modes are available for cross-component prediction, the activation conditions include the current block's mode type being IBC. If both IBC and inter-frame codec modes are available for cross-component prediction, the activation conditions include the current block's mode type being either inter-frame or IBC. If only a subset of inter-frame codec modes are available for cross-component prediction, the activation conditions include the current block's mode type being a subset of inter-frame codec modes. Block attribute settings may specify that cross-component prediction is only allowed under certain block size conditions. For example, a block size condition is that the current block size is a subset or all of the width / height / area of the luma and / or chroma blocks, greater than a predetermined threshold. Another example is the block size condition, which is that the width / height / area (a subset or all of the width / height / area) of the current block size (lure and / or chroma blocks) is less than a predetermined threshold. In one case, the predetermined threshold is a fixed number, such as 16, 32, 64, 128, the maximum lure / chroma TB size, the VPDU size, or any predetermined number specified in the standard. Block attribute settings can indicate that the current CU contains only one TU (the width / height / area of the TU is equal to the width / height / area of the CU). For example, the enable condition is not met when a Subblock Transform (SBT) is applied to the current block (meaning a CU contains multiple TUs).
[0158] The method proposed in this invention can be enabled and / or disabled based on implicit rules (e.g., block width, height, or area) or explicit rules (e.g., block, slice, picture, SPS, or PPS level syntax). In one sub-implementation, the signal refers to an encoded TU / TB / CU / CB level flag. This flag may or may not be context-dependent in its encoding. For example, with the TU / TB flag, the flag is sent only if the TU / TB's luminance Cbf is non-zero and the inter-frame mode enable flag is true. Similarly, with the CU / CB flag, the flag is sent only if the CU / CB's luminance Cbf is non-zero and the inter-frame mode enable flag is true. The inter-frame mode enable flag means that when the proposed inter-frame CCLM (or inter-frame CCCM) supports all inter-frame modes, the CU's predMode is MODE_INTER. When the proposed inter-frame CCLM (or inter-frame CCCM) supports IBC, the IBC enable flag is checked first, and the inter-frame CCLM (or inter-frame CCCM) is encoded / decoded when the CU's predMode is MODE_IBC.
[0159] V. Details of cross-component model information in the candidate list V.1. Inheriting CCM Information In one embodiment, inherited cross-component model (CCM) information can be stored along with inherited model parameters. CCM information can be inherited along with the inherited model parameters. Predictions for the current block can be generated based on the inherited CCM information and the inherited model parameters. CCM information may include, but is not limited to, prediction patterns (e.g., CCLM, MMLM, CCCM, 2-parameter GLM, 3-parameter GLM), model indices indicating which model shape to use in the convolutional model, classification thresholds for multiple models, information indicating the use of non-downsampled samples in the convolutional model, downsampled filter flags, downsampled filter indices when using multiple downsampled filters, the number of neighboring lines for the derived model, the template type for the derived model, post-filter flags, and model parameters.
[0160] In one embodiment, a mixed CCCM model, composed of various terms (e.g., spatial, gradient, positional, nonlinear, and bias terms), can be inherited. In addition to storing model parameters, a prediction pattern can be stored in the CCM information to indicate that the inherited model is a mixed CCCM model composed of various terms. If multiple types of mixed CCCM models exist, a model index can also be stored in the CCM information to indicate which type of mixed CCCM model is inherited. For example, gradient and location-based convolutional cross-component model (GL-CCCM), proposed in JVET-AB0119 (Ramin G. Youvalari et al., “Non-EE2: Gradient and location based convolutional cross-component model (GL-CCCM) for intra-frame prediction,” Joint Film Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11, 28th Meeting, Mainz, DE, 20–28 October 2022, Document: JVET-AB0119), is a hybrid CCCM model consisting of a spatial term for the center location, two gradient terms for the horizontal and vertical directions, two location terms X and Y for the relative horizontal and vertical locations, a nonlinear term, and a bias term. A prediction pattern can be stored in the CCM information to indicate that the inherited model is a GL-CCCM model.
[0161] V.2. Inheritance Spatial Proximity Model Parameters In one embodiment, the inherited model parameters may come from an immediately neighboring block. Models from blocks at predetermined locations are added to the candidate list in a predetermined order.
[0162] In one embodiment, the predetermined position and predetermined order can be the same as the spatial candidates for the inter-frame merging mode.
[0163] In one embodiment, assuming the current block's position, width, and height are (x, y), W, and H, respectively, the predetermined position can include the position directly above the current block, such as (x + W>>1, y-1) or (x + (W+1)>>1, y-1), if W is greater than or equal to a threshold TH. The predetermined position can also include the position to the left of the current block, such as (x-1, y+H>>1) or (x-1, y+(H+1)>>1), if H is greater than or equal to the threshold TH. TH can be 2, 4, 8, 16, 32, or 64.
[0164] In one embodiment, the maximum number of models inherited from spatial neighbors can be added to the candidate list, and this maximum number is less than the number of predetermined locations.
[0165] V.3. Inheritance Time Proximity Model Parameters In one embodiment, if the current slice / movie is a non-intra-frame slice / movie, the inherited model parameters can come from blocks in the previously encoded slice / movie.
[0166] In one embodiment, the current block is located at (x, y), and the block size is... The inherited model parameters can come from some predetermined blocks in the previously encoded slice / movie.
[0167] In one sub-implementation, the predetermined position may be or ,in Two value sets and Defined as: , .
[0168] and All values in the range are positive.
[0169] For example, It can be .
[0170] Another example, It can be ,in and They are two fixed positive numbers.
[0171] Here is another example. ,For example .
[0172] Here is another example. ,For example and .
[0173] In one sub-implementation, the predetermined position Located within the corresponding region of the current encoding / decoding block, i.e. and Reservations can be made at designated locations. .
[0174] In one sub-implementation, the predetermined position Located outside the corresponding region of the current encoding / decoding block, i.e. and Reservations can be made at designated locations. .
[0175] In one embodiment, from closer The model at the location is first added to the final merge candidate list.
[0176] The previously encoded image, from which the inherited parametric model is obtained, is hereafter called a parsing image.
[0177] In one embodiment, the inherited parameter model comes from a previously encoded image, i.e., a parigraph, which is one of the images in the reference list.
[0178] In one embodiment, the corresponding image is marked in the image / slice header. A reference list and reference index are also marked in the image / slice header. For example, the corresponding image is selected as L0[0]. In another example, the corresponding image is selected as L1[0].
[0179] In one embodiment, such as Figure 14 As shown, the current block position is (x, y), and the block size is The inherited model parameters can come from blocks at positions (x', y'), (x', y' + h / 2), (x' + w / 2, y'), (x' + w / 2, y' + h / 2), (x' + w, y'), (x', y' + h), or (x' + w, y' + h) in previously encoded slices / images, where x' = x + Δx and y' = y + Δy.
[0180] In one sub-implementation, if the prediction mode for the current block is inter, Δx and Δy are set as the horizontal and vertical motion vectors for the current block.
[0181] In another sub-implementation, if the current block is an inter-double prediction, Δx and Δy are set to the horizontal and vertical motion vectors in the reference image list 0.
[0182] In another sub-implementation, if the current block is an inter-double prediction, Δx and Δy are set to the horizontal and vertical motion vectors in the reference image list 1.
[0183] V.4. Inheriting the proximity model of non-proximity spaces In one embodiment, the inherited model parameters can come from neighboring blocks in a non-neighboring space. Models from predetermined locations are added to the candidate list in a predetermined order.
[0184] In one sub-implementation, the predetermined location and predetermined order are the same as those of the non-nearest spatial neighbor candidates in the inter-merging mode.
[0185] In one sub-implementation, the predetermined position and predetermined order are as follows: Figure 15A and Figure 15B As shown. The positions of the numbered squares are predetermined positions. The numbers within each square indicate a predetermined order. Positions in Pattern 1 (1510) are added to the list before those in Pattern 2 (1520). The distance between each predetermined position is proportional to the width and height of the current block.
[0186] In one embodiment, the maximum number of inherited models from non-nearby spatial neighbors that can be added to the candidate list is less than the number of predetermined locations.
[0187] V.5 Inheriting Model Parameters from History Tables In one embodiment, inherited model parameters can come from a cross-component model history table. The history table stores CCM information for valid previously coded blocks. A valid previously coded block refers to any block containing valid CCM information. Cross-component models in the history table can be added to a candidate list in a predetermined order. In one embodiment, the order in which historical candidates are added can be from the beginning to the end of the table. In another embodiment, the order in which historical candidates are added can be from the end to the beginning of the table.
[0188] In one embodiment, a cross-component model history table can be maintained to store previous cross-component models (i.e., CCM information), and the cross-component model history table can be reset at the beginning of the current image, current tile, current tile, every M CTU row, or every N CTU, where N and M can be any value greater than 0. In another embodiment, the cross-component model history table can be reset at the end of the current image, current tile, current tile, current CTU row, or current CTU.
[0189] In another embodiment, multiple history tables are used to store different types of cross-component models. For example, the first history table stores a single model, and the second history table stores multiple models. Another example is that the first history table stores gradient models, and the second history table stores non-gradient models. Yet another example is that the first history table stores simple linear models (e.g., y = ax + b), and the second history table stores complex models (e.g., CCCM).
[0190] In one embodiment, when adding historical candidates to a candidate list from multiple historical tables, the addition order can be from the beginning to the end of a table, and then the next historical table can be added in the same or reverse order.
[0191] V.6 Inherited from Fusion Mode Fusion mode refers to the mode of fusing two predictions to generate a final prediction. In chroma intra-frame fusion mode, a chroma intra-frame prediction generated without using cross-component prediction (CCP) codecs (e.g., CCLM, MMLM, CCCM) is fused with another chroma intra-frame prediction generated using a cross-component prediction codec. For example, a non-CCLM-coded intra-frame prediction and a CCLM-coded intra-frame prediction are fused together to obtain the final intra-frame prediction.
[0192] In one embodiment, when inheriting cross-component model parameters from blocks / positions encoded by chroma intra-fraction mode, the model parameters used to obtain intra-prediction of CCP encoding are inherited and / or further refined.
[0193] In one embodiment, in addition to inheriting and / or refining the CCP model parameters, the fusion weights and / or encoding / decoding modes of non-CCP-coded intra-frame predictions are also inherited. That is, the chroma intra-frame fusion mode is inherited.
[0194] VI. Constructing the Candidate List In one embodiment, a candidate list is constructed by adding candidates in a predetermined order until a maximum number of candidates is reached. The added candidates may include, but are not limited to, all of the aforementioned candidates. For example, the predetermined order may be spatially proximate candidates, temporally proximate candidates, spatially non-proximate candidates, historical candidates, and then preset candidates.
[0195] In another embodiment, if all predetermined neighboring and historical candidates have been added but the maximum number of candidates has not been reached, some preset candidates are added to the candidate list until the maximum number of candidates is reached.
[0196] In one embodiment, the preset candidate can be a CCLM model. Scaling parameters From the set {0, 1 / 8, -1 / 8, +2 / 8, -2 / 8, +3 / 8, -3 / 8, +4 / 8, -4 / 8, ..., +N / 8, -N / 8}, where N is a positive integer. For example, the set could be {0, 1 / 8, -1 / 8, +2 / 8, -2 / 8, +3 / 8, -3 / 8, +4 / 8, -4 / 8}. Offset parameter. It can be Alternatively, it can be derived based on neighboring luminance and chrominance samples. For example, if the average values of neighboring luminance and chrominance samples are lumaAvg and chromaAvg, In one sub-implementation, the order in which default candidates are included can depend on the scaling parameter. The absolute value and sign. For example, default candidates are added to the list in the following order: 0, 1 / 8, -1 / 8, +2 / 8, -2 / 8, +3 / 8, -3 / 8, +4 / 8,-4 / 8,…, +N / 8, -N / 8.
[0197] In another embodiment, a preset candidate can be an earlier candidate refined with a delta scaling parameter. The earlier candidate is a CCLM model. If the scaling parameter of an earlier candidate is... Then the scaling parameter of a preset candidate is .For example, It can be 0, 1 / 8, -1 / 8, +2 / 8, -2 / 8, +3 / 8, -3 / 8, +4 / 8, -4 / 8, ..., +N / 8, -N / 8, where N is a positive integer. For example, It can be 0, 1 / 8, -1 / 8, +2 / 8, -2 / 8, +3 / 8, -3 / 8, +4 / 8, -4 / 8. Offset parameter. Based on This is derived from the average of the luminance and chrominance samples of the current block's neighbors. In one sub-implementation, the earlier candidate is the first CCLM candidate added to the list. In one sub-implementation, the inclusion order of the default candidates can depend on refinement. The absolute value and sign. For example, default candidates are added to the list in the following order: 0, 1 / 8, -1 / 8, +2 / 8, -2 / 8,+3 / 8, -3 / 8, +4 / 8, -4 / 8,…, +N / 8, -N / 8.
[0198] VII. Remove or modify similar neighboring model parameters When inheriting cross-component model parameters from other blocks, the similarity between the inherited model and existing models in the candidate list or model candidates derived from neighboring reconstructed samples of the current block (e.g., models derived from CCLM, MMLM, or CCCM using neighboring reconstructed samples of the current block) can be further examined. If a candidate's parameter model is similar to an existing model, that model will not be included in the candidate list.
[0199] VIII. Reorder the candidates in the list Candidates in a list, such as modelList, can be reordered to reduce syntactic overhead when indexing candidates for signal selection.
[0200] In one embodiment, the reordering rule may rely on the encoding / decoding information or model errors of neighboring blocks. For example, if the neighboring block above or to the left is encoded by MMLM, an MMLM candidate in the list can be moved to the head of the current list.
[0201] In one embodiment, the reordering rule is based on model error (template cost) by applying a candidate model to neighboring templates of the current block and then comparing the error with reconstructed samples from those neighboring templates. For example, member candidates in the candidate list are reordered based on the model error associated with each member candidate evaluated on one or more neighboring templates. Each model error is derived from predicted samples using the model associated with each member candidate on the one or more neighboring templates and reconstructed samples on those templates.
[0202] In this invention, the term "block" may refer to TU / TB, CU / CB, PU / PB, or CTU / CTB.
[0203] The term "LM" in this invention can be considered as a CCLM / MMLM mode or any extension / variation of CCLM (e.g., the CCLM extension / variation proposed in this invention). One variant is MMLM, which uses a threshold to determine different models for different samples in the current chroma component. Another variant is, for Cb (or Cr), deriving model parameters from multiple co-located luma blocks. More possible variants are shown below. CCLM variants here mean that when the block indication reference uses one of the cross-component modes (e.g., CCLM_LT, MMLM_LT, CCLM_L, CCLM_T, MMLM_L, MMLM_T and / or an intra-prediction mode that is not one of the traditional DC, planar, and angular modes), some optional modes can be selected for the current block. An example of a convolutional cross-component mode (CCCM) as an optional mode is shown below. When this optional mode is applied to the current block, cross-component information of the model containing nonlinear terms is used to generate chroma predictions. Optional modes may follow the template selection of CCLM, so the CCCM family includes CCCM_LT, CCCM_L, and / or CCCM_T.
[0204] The method proposed in this invention (for CCLM) can be used for any other cross-component pattern.
[0205] Any combination of methods proposed in this invention can be applied.
[0206] Any of the aforementioned proposed methods for selecting inheritance and self-derived cross-component models from the candidate list can be implemented in the encoder and / or decoder. For example, any proposed method can be implemented in the inter-frame / intra-frame / prediction / IBC / quantization module of the encoder, and / or in the inter-frame / intra-frame / prediction / IBC / quantization module of the decoder. Alternatively, any proposed method can be implemented as circuitry connected to the inter-frame / intra-frame / prediction / IBC / quantization module of the encoder and / or the inter-frame / intra-frame / prediction / IBC / quantization module of the decoder to provide the information required by the inter-frame / intra-frame / prediction / IBC / quantization module.
[0207] As mentioned above, cross-component prediction for selecting inherited and self-derived cross-component models from the candidate list can be implemented at the encoder or decoder end. For example, any proposed method can be implemented in the intra-frame / inter-frame encoding / decoding module of the decoder (e.g. Figure 1B Intra Pred. 150 / MC 152), or implemented in the encoder's intra / inter-frame codec module (e.g. Figure 1A Intra Pred. 110 / Inter Pred. 112). Any proposed candidate derivation method can also be implemented as circuitry connected to the intra / inter-frame codec modules of the decoder or encoder. However, the decoder or encoder can also use additional processing units to implement the required cross-component prediction processing. Although the Intra Pred. / MC unit (e.g. Figure 1A and Figure 1B Units 110 / 112 and 150 / 152 are shown as separate processing units, which may correspond to executable software or firmware code stored on media such as hard disks or flash memory for CPUs (central processing units) or programmable devices such as DSPs (digital signal processors) or FPGAs (field programmable gate arrays).
[0208] Figure 16A flowchart of a video encoding / decoding system for selecting inherited and self-derived cross-component models according to an embodiment of the present invention is shown. The steps shown in the flowchart can be program code executable on one or more processors (e.g., one or more CPUs) at the encoder or decoder end. The steps shown in the flowchart can also be implemented in hardware, such as one or more electronic devices or processors arranged to execute the steps in the flowchart. According to this method, in step 1610, input data associated with the current block is received, including a first color block and a second color block, wherein the input data includes pixel data to be encoded at the encoder end or data associated with the current block to be decoded at the decoder end, and wherein the current block is encoded / decoded in a non-intra-frame mode. In step 1620, a target cross-component candidate is determined, selected from at least one self-derived cross-component candidate and one or more inherited candidates, wherein if the one or more self-derived cross-component candidates are determined as the target cross-component candidate, one or more models are derived based on the determined one or more self-derived cross-component candidates; or if the one or more inherited candidates are determined as the target cross-component candidate, one or more models are determined based on the determined one or more inherited candidates. In step 1630, the second color block is encoded or decoded using the target prediction generated based on the target cross-component candidates.
[0209] The flowchart shown is intended to illustrate an example of video encoding / decoding according to the present invention. Those skilled in the art can modify each step, rearrange the steps, split the steps, or combine the steps to practice the invention without departing from its spirit. Specific syntax and semantics are used in the disclosure to illustrate examples of embodiments of the invention. Those skilled in the art can practice the invention by substituting equivalent syntax and semantics without departing from its spirit.
[0210] The above description is intended to enable those skilled in the art to practice the invention in the context of a particular application and its requirements. Various modifications to the described embodiments will be apparent to those skilled in the art, and the general principles defined herein can be applied to other embodiments. Therefore, the invention is not intended to be limited to the specific embodiments shown and described, but rather to be given the broadest scope consistent with the principles and novel features disclosed herein. In the above detailed description, various specific details have been shown to provide a thorough understanding of the invention. However, the invention can be practiced by those skilled in the art.
[0211] The embodiments of the present invention described above can be implemented in various hardware, software code, or a combination of both. For example, one embodiment of the invention may be one or more circuits integrated into a video compression chip, or program code integrated into video compression software to perform the processes described herein. Another embodiment of the invention may be program code to be executed on a digital signal processor (DSP) to perform the processes described herein. The invention may also relate to multiple functions performed by a computer processor, digital signal processor, microprocessor, or field-programmable gate array (FPGA). These processors can be configured to perform specific tasks according to the invention, defining the specific methods embodied in the invention by executing machine-readable software code or firmware code. The software code or firmware code can be developed in different programming languages and different formats or styles. The software code can also be compiled for different target platforms. However, different code formats, styles, and software code languages, as well as other means of configuring code to conform to the tasks of the invention, do not depart from the spirit and scope of the invention.
[0212] This invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The examples described should be considered illustrative in all respects, not limiting. Therefore, the scope of the invention should be indicated by the appended claims rather than the foregoing description. All variations within the meaning and equivalence of the claims should be included within its scope.
Claims
1. A method for encoding and decoding color images or videos using an encoding / decoding tool, the encoding / decoding tool comprising one or more patterns related to a cross-component model, the method comprising: Receive input data associated with a current block, the current block including a first color block and a second color block, wherein the input data includes pixel data to be encoded at the encoder end or data associated with the current block to be decoded at the decoder end, and wherein the current block is encoded and decoded in a non-intra-frame mode. Determine the target cross-component candidate, which is selected from at least one self-derived cross-component candidate and one or more inherited candidates, wherein: If the one or more self-derived cross-component candidates are identified as the target cross-component candidate, then one or more models are derived based on the identified one or more self-derived cross-component candidates; or If the one or more successor candidates are identified as the target cross-component candidate, then one or more models are determined based on the identified one or more successor candidates; and The second color block is encoded or decoded using target predictions generated based on the target cross-component candidates.
2. The method of claim 1, wherein the one or more self-derived cross-component candidates include cross-component residual models (CCRM).
3. The method of claim 1, wherein the one or more self-derived cross-component candidates, the one or more inherited candidates, or both are added to a candidate list and selected from the candidate list.
4. The method of claim 3, wherein the one or more self-derived cross-component candidates are added to the candidate list only if the candidate list does not contain enough inherited candidates.
5. The method of claim 3, wherein the one or more self-derived cross-component candidates are added to the candidate list before any preset candidates.
6. The method of claim 3, wherein the one or more self-derived cross-component candidates are regarded as one or more preset candidates in the candidate list.
7. The method of claim 3, wherein the one or more self-derived cross-component candidates are added to one or more predetermined positions in the candidate list.
8. The method of claim 3, wherein one of the flags is sent or parsed to indicate enabling or disabling the generation or exclusion of the one or more self-derived cross-component candidates in the candidate list.
9. The method of claim 3, wherein enabling or disabling the generation or exclusion of one or more self-derived cross-component candidates in the candidate list is based on one or more implicit rules.
10. The method of claim 3, wherein the member candidates in the candidate list are reordered.
11. The method of claim 10, wherein the member candidates in the candidate list are reordered based on the model error associated with the member candidates on one or more neighboring templates.
12. The method of claim 11, wherein each model error is derived based on predicted samples of the model associated with each member candidate and reconstructed samples on the one or more neighboring templates.
13. The method of claim 1, wherein a flag is sent or parsed to indicate or select the target cross-component candidate from the one or more self-derived cross-component candidates or from the one or more inherited candidates.
14. The method of claim 1, wherein the target cross-component candidate selected from the one or more self-derived cross-component candidates or from the one or more inherited candidates is based on one or more implicit rules.
15. An apparatus for encoding or decoding color images or videos using an encoding / decoding tool, the encoding / decoding tool comprising one or more patterns associated with a cross-component model, the apparatus comprising one or more electronic circuits or processors configured to: Receive input data associated with a current block, the current block including a first color block and a second color block, wherein the input data includes pixel data to be encoded at the encoder end or data associated with the current block to be decoded at the decoder end, and wherein the current block is encoded in a non-intra-frame mode. Determine the target cross-component candidate, which is selected from at least one self-derived cross-component candidate and one or more inherited candidates, wherein: If the one or more self-derived cross-component candidates are identified as the target cross-component candidate, then one or more models are derived based on the identified one or more self-derived cross-component candidates; or If the one or more successor candidates are identified as cross-component candidates for the target, then one or more models based on the identified one or more successor candidates are determined; and The second color block is encoded or decoded using target predictions generated based on the target cross-component candidates.