Intra prediction fusion with inherited cross-component model

By employing cross-component prediction modes and combined prediction methods in video encoding and decoding, and utilizing neighboring reconstruction samples and multiple prediction modes, the problems of redundancy and low efficiency in cross-component prediction in existing technologies are solved, achieving more efficient encoding and decoding performance.

CN121816746APending Publication Date: 2026-04-07MEDIATEK INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-07-17
Publication Date
2026-04-07

AI Technical Summary

Technical Problem

Existing video coding and decoding technologies suffer from redundancy and inefficiency when dealing with cross-component prediction, especially in high-efficiency video coding and decoding standards, where it is difficult to effectively utilize cross-component information for coding and decoding.

Method used

A cross-component prediction mode is adopted. By identifying a candidate list of cross-component models and selecting a suitable cross-component model for combined prediction, the current cross-component model is derived using neighboring reconstructed samples and a specified mode. By combining different prediction modes such as CCCM, CCLM, and GLM, weighted average or residual model processing is performed to reduce redundancy and improve encoding and decoding efficiency.

Benefits of technology

It improves the efficiency and quality of video encoding and decoding, reduces redundancy in cross-component prediction, and enhances encoding and decoding performance, especially in making better use of cross-component information in high-efficiency video encoding and decoding standards.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121816746A_ABST
    Figure CN121816746A_ABST
Patent Text Reader

Abstract

A video codec specifies a cross-component prediction mode for a current block of a current picture of a video. The video codec derives a current cross-component model according to the specified cross-component mode of the current block. The video codec identifies a list of cross-component model candidates for the current block. The video codec selects a cross-component model candidate from a list of candidate cross-component models. The video codec generates a combined prediction based on the derived cross-component model and the selected cross-component model. The video codec encodes or decodes the current block by using the generated combined prediction. A video codec may signal a first syntax element indicating the specified cross-component prediction mode and a second syntax element indicating whether to encode the current block using the combined prediction, wherein the first syntax element is signaled prior to the second syntax element.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-referencing This disclosure is part of a non-provisional application that claims priority to U.S. Provisional Patent Application No. 63 / 513,904, filed July 17, 2023. The contents of the foregoing application are incorporated herein by reference. [Technical Field] This disclosure generally relates to video encoding and decoding. In particular, this disclosure relates to methods for encoding and decoding pixel blocks using intra-frame prediction and cross-component prediction. [Background Technology] Unless otherwise stated herein, the methods described in this section are not prior art to the claims and are not acknowledged as prior art by virtue of their inclusion in this section.

[0004] High-Efficiency Video Coding (HEVC) is an international video coding standard developed by the Joint Collaborative Team on Video Coding (JCT-VC). HEVC is based on a hybrid block-based motion-compensated discrete cosine transform (DCT-like) coding architecture. The basic unit of compression is called a coding unit (CU), which is a 2N×2N pixel block. Each CU can be recursively divided into four smaller CUs until a predefined minimum size is reached. Each CU contains one or more prediction units (PUs).

[0005] Versatile Video Coding (VVC) is the latest international video coding standard developed by the Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO / IEC JTC1 / SC29 / WG11. The input video signal is predicted based on a reconstructed signal, which is derived from coded image regions. The prediction residual signal is processed through block transform. The transform coefficients, along with other additional information, are quantized and entropy-coded in the bitstream. The reconstructed signal is generated from the prediction signal and the inverse-transformed reconstructed residual signal of the inverse-quantized transform coefficients. The reconstructed signal is further processed by loop filtering to remove coding artifacts. The decoded image is stored in a frame buffer and used to predict future images in the input video signal.

[0006] In VVC, the encoded image is divided into non-overlapping block regions represented by relevant coding tree units (CTUs). The leaf nodes of the coding tree correspond to coding units (CUs). The encoded image can be represented by a set of slices, each containing an integer number of CTUs. The individual CTUs within a slice are processed in raster scan order. Bidirectional prediction (B) slices can be decoded using either intra-frame or inter-frame prediction, using at most two motion vectors (MVs) and a reference index to predict the sample value for each block. Predictive (P) slices are decoded using either intra-frame or inter-frame prediction, using at most one motion vector and a reference index to predict the sample value for each block. Intra-frame (I) slices are decoded using only intra-frame prediction.

[0007] The Code Unit (CTU) can be divided into one or more non-overlapping Codec Units (CUs) using quadtree (QT) and nested multi-type-tree (MTT) structures to accommodate various local motion and texture characteristics. CUs can be further subdivided into smaller CUs using one of five segmentation types: quadtree segmentation, vertical binary tree segmentation, horizontal binary tree segmentation, vertical center-side ternary tree segmentation, and horizontal center-side ternary tree segmentation.

[0008] Each CU contains one or more prediction units (PUs). The prediction unit, along with the associated CU syntax, serves as the basic unit for conveying prediction sub-information. The specified prediction process is used to predict the values ​​of associated pixel samples within the PU. Each CU may contain one or more transform units (TUs) to represent prediction residual blocks. A transform unit (TU) consists of a transform block (TB) for one luma sample and two corresponding chroma sample transform blocks, each TB corresponding to a residual block sample from one color component. Integer transforms are applied to the transform blocks. The level values ​​of the quantization coefficients, along with other additional information, are entropy-encoded in the bitstream. The terms coding tree block (CTB), coding block (CB), prediction block (PB), and transform block (TB) are used to specify two-dimensional sample arrays of monochromatic components associated with the CTU, CU, PU, ​​and TU, respectively. Therefore, a CTU consists of one luma CTB, two chroma CTBs, and associated syntax elements. CUs, PUs, and TUs have similar relationships.

[0009] For each inter-frame predicted CU, motion parameters include motion vectors, reference image indices, and reference image list usage indices, as well as additional information for inter-frame predicted sample generation. Motion parameters can be passed explicitly or implicitly. When a CU is encoded / decoded in skip mode, the CU is associated with a PU and has no significant residual coefficients, no encoded motion vector increments, and no reference image indices. A merging mode is specified where the motion parameters of the current CU are obtained from neighboring CUs, including spatial and temporal candidates, as well as additional plans introduced in the VVC. The merging mode can be applied to any inter-frame predicted CU. An alternative to the merging mode is to explicitly transmit motion parameters, where the motion vectors, the corresponding reference image indices for each reference image list, the reference image list usage flags, and other necessary information are explicitly passed in each CU. [Summary of the Invention] The following summary is for illustrative purposes only and is not intended to be limiting in any way. That is, the summary aims to introduce the concepts, highlights, benefits, and advantages of the novel and obvious techniques described herein. Alternative embodiments will be further described in the detailed description. Therefore, the following summary is not intended to identify the essential features of the claimed subject matter, nor is it intended to determine the scope of the claimed subject matter.

[0011] Some embodiments of this disclosure provide a method for encoding or decoding pixel blocks using combined cross-component prediction. A video codec specifies a cross-component prediction mode for a current block of a current image of a video. The video codec derives a current cross-component model based on the specified cross-component mode for the current block. The video codec identifies a list of cross-component model candidates for the current block. The video codec selects a cross-component model candidate from the list of candidate cross-component models. The video codec generates a combined prediction based on the derived cross-component model and the selected cross-component model. The video codec encodes or decodes the current block using the generated combined prediction.

[0012] The current cross-component model can be derived based on neighboring reconstructed samples of the current block or predicted samples of the current block identified by a specified cross-component prediction mode. In some embodiments, the current cross-component model is set to the same cross-component prediction mode as the selected cross-component model.

[0013] In some embodiments, the video codec specifies a cross-component prediction mode for the current block. The cross-component prediction mode can be CCCM, CCLM, GLM, MMLM, or any other cross-component prediction mode. The video codec derives the current cross-component model based on the specified cross-component prediction mode for the current block. The video codec identifies a list of cross-component model candidates for the current block and then selects a cross-component model candidate from the list.

[0014] A video codec can determine the specified cross-component prediction mode and whether to use combined predictive encoding or decoding for the current block. In some embodiments, this determination is explicitly indicated by a first syntax element indicating the specified cross-component prediction mode and a second syntax element indicating whether to use combined predictive encoding or decoding for the current block, wherein the first syntax element is indicated or parsed before the second syntax element. In some embodiments, the video codec can determine whether to use combined predictive encoding or decoding for the current block based on the size constraint of the current block.

[0015] In some embodiments, when the combined prediction is used to encode or decode the current block, the first candidate in the candidate list is the selected cross-component model candidate. In some embodiments, the specified cross-component prediction mode is implicitly derived.

[0016] In some embodiments, the video codec may determine whether to use the cross-component model candidate and whether to generate the combined prediction. In some embodiments, a first syntax element indicating whether to use the selected cross-component model candidate and a second syntax element indicating whether to use the combined prediction to encode or decode the current block are explicitly indicated, wherein the first syntax element is indicated before the second syntax element.

[0017] In some embodiments, when the selected cross-component model candidate and the current cross-component model have the same cross-component prediction mode, the combined prediction is generated by calculating the weighted average of the model parameters of the selected cross-component model candidate and the current cross-component model.

[0018] The combined prediction can be a weighted sum of the first prediction and the second prediction. The weights assigned to the first prediction and the second prediction are predefined, determined by the nearest prediction pattern, or implicitly derived from the nearest template cost. [Attached Image Description] The accompanying drawings are included to provide a further understanding of this disclosure and form part of this disclosure. The drawings illustrate embodiments of this disclosure and, together with the description, serve to explain the principles of this disclosure. It will be understood that the drawings are not necessarily to scale, as some components may be shown out of proportion to their actual dimensions in order to clearly illustrate the concepts of this disclosure.

[0020] Figure 1 This demonstrates the reconstruction of component samples using a cross-component residual model (CCRM).

[0021] Figure 2 This conceptually demonstrates the parameters of the inheritance time proximity model.

[0022] Figure 3 This conceptually demonstrates the neighboring templates of the current block.

[0023] Figure 4 It conceptually presents a candidate list of the current block and its neighboring blocks.

[0024] Figure 5 An example video encoder that can perform cross-component prediction is shown.

[0025] Figure 6 This demonstrates a portion of the video encoder that implements combined cross-component prediction.

[0026] Figure 7 This conceptually demonstrates the process of combined cross-component prediction.

[0027] Figure 8 An example video decoder that can perform cross-component prediction is shown.

[0028] Figure 9 This demonstrates a portion of the video decoder that implements combined cross-component prediction.

[0029] Figure 10 This conceptually demonstrates the process of combined cross-component prediction.

[0030] Figure 11 This invention provides a conceptual illustration of an electronic system that implements some embodiments of the present disclosure.

Detailed Implementation Methods

[0032] I. Intra-frame prediction mode a. Directional In-Frame Mode Intra-prediction methods utilize one or more reference tiers adjacent to the current prediction unit (PU) and an intra-prediction mode to generate predictors for the current PU. Intra-prediction directions can be selected from a mode set containing multiple prediction directions, DC modes, and planar modes. Intra-prediction modes can also refer to any intra-prediction mode that uses spatial reconstruction samples to determine the predictors for the current block. The number of directional intra-prediction modes can be 33 or extended to 65 directional modes. By including DC and planar modes, the number of intra-prediction modes is 35 (or 67). Some intra-prediction modes (e.g., 3 or 5) are identified as the set of most probable modes (MPMs) for intra-prediction of the current prediction block, and one of these MPMs can be selected via signaling.

[0033] Traditional angular intra-prediction directions are defined clockwise as ranging from 45 degrees to -135 degrees. In VVC, several traditional angular intra-prediction modes are adaptively replaced with wide-angle intra-prediction modes that are not square blocks. The replaced modes use the original mode index signaling, which is parsed and remapped to the wide-angle mode index.

[0034] b. Decoder-side intra-mode derivation (DIMD) To implicitly derive the intra-prediction mode of the block, texture gradient analysis is performed on both the encoder and decoder. This process begins with an empty gradient histogram (HoG) with 65 entries, corresponding to 65 angular modes. The magnitudes of these entries are determined during texture gradient analysis.

[0035] c. Template-based intra-frame mode export (TIMD) Template-based intra-prediction mode (TIMD) implicitly derives the intra-prediction mode of the CU from neighboring templates on both sides of the encoder and decoder, rather than signaling precise intra-prediction mode bits to the decoder. Predicted samples for the templates are generated using template reference samples for each candidate mode. The cost is calculated as the SATD value between the template predicted samples and the reconstructed samples. The intra-prediction mode with the lowest cost is selected as the TIMD mode and used for intra-prediction of the CU. Candidate modes can be one of the 67 intra-prediction modes in the VVC, or extended to 131. Typically, the MPM can provide clues indicating CU orientation information. Therefore, to narrow the search space for intra-prediction modes and utilize CU features, intra-prediction modes are implicitly derived from the MPM list.

[0036] II. Cross-component prediction a. Cross-component linear model (CCLM) To reduce cross-component redundancy, the VVC uses a cross-component linear model (CCLM) prediction mode, where chroma samples are predicted based on reconstructed luminance samples from the same CU using the following linear model: (1) in This represents the predicted chromaticity samples in the CU. This represents the downsampled reconstructed brightness samples from the same CU. CCLM parameters ( and The chroma block 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 as follows: When the LM_LA mode is applied, W' = W, H' = H When the LM_A mode is applied, W' = W + H When the LM_L mode is applied, H' = H + W; The aforementioned nearest neighbors are denoted as S[0, -1]…S[W' - 1, -1], and the left nearest neighbors are denoted as S[-1,0]…S[-1, H' - 1]. Then, four samples are selected as follows: When the LM_LA mode is applied and the samples above and to the left are available, S[W' / 4, -1], S[3 * W' / 4, -1], S[-1, H' / 4], S[-1, 3 * H' / 4]; When applying LM_A mode or when only the upper neighbor sample is available, S[W' / 8, -1], S[3 * W' / 8, -1], S[5 * W' / 8, -1], S[7 * W' / 8, -1]; When applying LM_L mode or when only left neighbor samples are available, S[-1, H' / 8], S[-1, 3 * H' / 8], S[-1, 5 * H' / 8], S[-1, 7 * H' / 8]; Four neighboring brightness samples at the selected location were downsampled and compared four times to find the two larger values: x 0 A and x 1 A and two smaller values: x 0 B and x 1 B Its corresponding chromaticity sample value is represented as y. 0 A y 1A y 0 B and y 1 B Then x A x B y A and y B Exported as: X a =(x 0 A + x 1 A +1)>>1; X b =(x 0 B + x 1 B +1)>>1; Y a =(y 0 A + y 1 A +1)>>1; Y b =(y 0 B + y 1 B +1)>>1, (2) Finally, the linear model parameters and It is obtained from the following equation.

[0037] (3) (4) Calculation parameters The division operation is implemented using a lookup table. To reduce the memory required to store this table, the diff value (the difference between the maximum and minimum values) and parameters are used. All values ​​are expressed in exponential form. For example, diff is approximately four significant digits plus an exponent. Therefore, the lookup table for 1 / diff simplifies to 16 elements, corresponding to 16 significant digit values, as shown below: DivTable [ ] = { 0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0} , (5) This will help reduce computational complexity and the memory size of the tables required for storage. Besides the top and left templates being used together to calculate linear model coefficients, they can also be used alternately in two other LM modes, known as LM_A and LM_L modes.

[0038] In LM_A mode, only the upper template is used to calculate the linear model coefficients. To obtain more samples, the upper template is expanded to (W+H) samples. In LM_L mode, only the left template is used to calculate the linear model coefficients. To obtain more samples, the left template is expanded to (H+W) samples.

[0039] In LM_LA mode, the left and top templates are used to calculate the linear model coefficients. To match the chroma sample positions of a 4:2:0 video sequence, two types of downsampling filters are applied to the luminance samples to achieve a 2:1 downsampling ratio in both the horizontal and vertical directions. The selection of the downsampling filter is specified by the SPS level flag. The two downsampling filters are as follows, corresponding to "type-0" and "type-2" respectively.

[0040] (6) , (7) Note that when the upper reference line is located at the CTU boundary, only one luminance line (the universal line buffer in intra-frame prediction) is used to generate downsampled luminance samples. This parameter calculation is performed as part of the decoding process, not just the encoder search operation. Therefore, there is no need to use any syntax to... and The value is passed to the decoder.

[0041] For chroma intra-mode encoding and decoding, a total of 8 intra-modes are allowed. These modes include 5 traditional intra-modes and 3 cross-component linear model modes (LM_LA, LM_A, and LM_L). The signaling and derivation process of the chroma modes are shown in Table 1. Chroma mode encoding and decoding directly depends on the intra-prediction mode of the corresponding luma block. Since the independent block partitioning structure of luma and chroma components is enabled in the I slice, one chroma block may correspond to multiple luma blocks. Therefore, for chroma DM mode, the intra-prediction mode of the corresponding luma block covering the center position of the current chroma block is directly inherited.

[0042] Table 1: Deriving Chroma Prediction Mode from Luminance Mode when CCLM is enabled Regardless of the value of sps_cclm_enabled_flag, a single binary table is used, as shown in Table 2.

[0043] Table 2: Unified Binarization Table for Colorimetric Prediction Mode In Table 2, the first bit (bin) indicates whether it is normal mode (0) or CCLM mode (1). If it is CCLM mode, the next bit indicates whether it is LM_LA (0). If it is not LM_LA, the next 1 bit indicates whether it is LM_L (0) or LM_A (1). In this case, when sps_cclm_enabled_flag is 0, the first bit of the corresponding intra_chroma_pred_mode in the binarization table can be discarded before entropy encoding. In other words, the first bit is inferred to be 0 and therefore not encoded or decoded. This single binarization table is used for the cases where sps_cclm_enabled_flag is equal to 0 and 1. The first two bits in Table 2 are used for context encoding and decoding using their own context model, and the remaining bits are used for bypass encoding and decoding.

[0044] Furthermore, to reduce luma-chroma latency in dual-tree systems, when the 64x64 luma codec tree node is not segmented (and ISP is not used for the 64x64 CU) or QT segmented, the chroma CUs in the 32x32 / 32x16 chroma codec tree node can use CCLM in the following ways: If a 32x32 chroma node is not segmented or is segmented into QT segments, then all chroma CUs in the 32x32 node can be used with CCLM. If a 32x32 chroma node is split into horizontal BTs, and the 32x16 child nodes are not split or are split using vertical BTs, then all chroma CUs in the 32x16 chroma node can use CCLMs.

[0045] Under all other luma and chroma codec tree splitting conditions, chroma CU is not allowed to use CCLM.

[0046] b. Multi-model CCLM (MMLM) The Multi-Model CCLM (MMLM) mode uses two models to predict the chromaticity samples of the entire CU from the luminance samples. Similar to CCLM, three Multi-Model CCLM modes (MMLM_LA, MMLM_A, and MMLM_L) are used to indicate whether the top and left neighbor samples, only the top neighbor samples, or only the left neighbor samples were used in the model parameter export.

[0047] In MMLM, the neighboring luminance samples and neighboring chrominance samples of the current block are divided into two groups, each used as a training set to derive a linear model (i.e., derive a specific model for a specific group). and Furthermore, samples of the current luminance block are also classified according to the same rules used to classify neighboring luminance samples.

[0048] The threshold (classification threshold) is calculated as the average of the neighboring reconstructed brightness samples. For neighboring samples located in [x,y], if Rec′... L If [x,y]<= Threshold, it is classified as group 1; while if it is a neighboring sample in [x,y], Rec′ L If [x,y]>Threshold, then it is classified as group 2. Therefore, the multi-model CCLM prediction for the chromaticity samples is: c. Convolutional Cross-Component Model (CCCM) In some embodiments, a convolutional cross-component model (CCCM) is applied to improve cross-component prediction performance. In some embodiments, the convolutional model has a 7-tap filter with a 5-tap plus shape spatial component, a nonlinear term, and a bias term. The input to the spatial five-tap component of the filter consists of a center luminance sample (C) and the chrominance sample to be predicted, along with its neighboring samples above / north (N), below / south (S), left / west (W), and right / east (E). The nonlinear term (denoted as P) is expressed as a power of 2 of the center luminance sample C, scaled according to the range of content sample values: P = ( C*C + midVal ) >> bitDepth , That is, for 10 bits of content, the calculation is as follows: P = (C*C + 512)>>10.

[0049] The bias term (denoted as B) represents the scalar offset between the input and output (similar to the offset term in CCLM) and is set to an intermediate chroma value (512 for 10-bit content).

[0050] The filter output is obtained through the filter coefficients c. iThe values ​​are calculated by convolving with the input values ​​and then cropped to the range of valid chroma samples. Filter coefficients are calculated by minimizing the mean squared error (MSE) between the predicted and reconstructed chroma samples in the reference region. MSE minimization is achieved by calculating the autocorrelation matrix of the luminance input and the cross-correlation vector between the luminance input and chroma output. The autocorrelation matrix is ​​decomposed using LDL, and the final filter coefficients are calculated using a back-substitution method. This process largely follows the calculation method for the ALF filter coefficients in ECM, but LDL decomposition is chosen instead of Cholesky decomposition to avoid using square root operations.

[0051] Non-downsampled luminance samples can be processed using the CCCM mode with a 3x2 filter. This filter has a spatial term with six taps, four nonlinear terms, and one bias term, as shown below: , These six tap space terms correspond to six neighboring luminance samples (i.e., L0, L1, …, L5) surrounding a chrominance sample (i.e., C) to be predicted, and four nonlinear terms are derived from samples L0, L1, L2, and L3.

[0052] d. Gradient Linear Model (GLM) Compared to CCLM, GLM does not use downsampled luminance values, but instead uses luminance sample gradients to build a linear model. Specifically, when applying GLM, the input to the CCLM process (i.e., the downsampled luminance sample L) is replaced by the luminance sample gradient G. Other parts of CCLM (such as parameter derivation and linear transformation of predicted samples) remain unchanged.

[0053] For signaling, when CCLM mode is enabled in the current codec unit (CU), two flags are signaled separately for the Cb and Cr components to indicate whether GLM is enabled for each component; if GLM is enabled for a component, a further syntax element is signaled to select one of 16 gradient filters for gradient calculation. GLM can be combined with existing CCLM by adding an additional flag to the bitstream. When this combination is performed, the filter coefficients used to derive the linear model input luminance samples are calculated as a combination of the selected gradient filter from GLM and the downsampling filter from CCLM.

[0054] e. Cross-Component Residual Model (CCRM) When blocks use inter-frame prediction or intra-block copying (IBC), a cross-component residual model (CCRM) can be applied to predict chroma samples from the reconstructed luma samples. Figure 1 illustrates the process of reconstructing component samples using the cross-component residual model (CCRM). This figure shows the decoder side of the method. The cross-component filter is derived using the predicted luma and chroma signals. The derived filter is applied to the reconstructed luma signal to generate the final chroma prediction result.

[0055] The term "LM" in this disclosure can be understood as a CCLM / MMLM mode, or any other 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. Variants of CCLM here mean that when the block indication refers to processing the current block using one of the cross component modes (e.g., CCLM_LT, MMLM_LT, CCLM_L, CCLM_T, MMLM_L, MMLM_T and / or intra-prediction modes, rather than traditional DC, planar, and angular modes), some optional modes can be selected. The following example shows the case where the Convolutional Cross Component Mode (CCCM) is an optional mode. When this optional mode is applied to the current block, chroma predictions are generated using model cross component information that includes nonlinear terms. The optional modes can follow the template selection of CCLM, therefore the CCCM family includes CCCM_LT, CCCM_L, and / or CCCM_T. The method presented in this disclosure (for CCLM) can be used for any other cross-component mode.

[0056] III. Refine the cross-component model a. Refine using the Guided Parameter Set The bootstrap parameter set is used to refine the derived model parameters through a specified CCLM mode. In some embodiments, the bootstrap parameter set is explicitly signaled in the bitstream and added to the derived model parameters as the final model parameters after they have been derived. The bootstrap parameter set contains at least one difference scaling parameter (dA), one difference offset parameter (dB), and one difference shift parameter (dS). For example, the bootstrap parameter set rewrites equation (1) as follows: If dA is signaled, the final prediction is Similarly, if dB is signaled, the final prediction is... If dS is signaled, the final prediction is... If dB and dA are signaled, the final prediction is... .

[0057] The guiding parameter set can be signaled for each color component. For example, one guiding parameter set can be used for the Cb component, and another for the Cr component. Alternatively, a guiding parameter set can be signaled and shared among the color components. The signaling values ​​dA and dB can be positive or negative. When signaling dA, a bit is signaled to indicate the sign of dA. Similarly, when signaling dB, a bit is signaled to indicate the sign of dB.

[0058] b. Refine using inherited neighbor model parameters In some embodiments, the final scaling parameters of the current block are inherited from neighboring blocks and further refined using dA (e.g., the derivation or signaling of dA may be similar to or identical to the refinement performed using the set of guiding parameters described in Section III.a). Once the final scaling parameters are determined, offset parameters are derived based on the inherited scaling parameters and the average values ​​of the luma and chroma samples from the current block (e.g., in CCLM). For example, if the final scaling parameter is inherited from the selected neighboring block, and the inherited scaling parameter is... So the final scaling parameter is ( + dA).

[0059] In some embodiments, the final scaling parameter is inherited from a history list and further refined using dA. For example, the history list records the j most recent final scaling parameter entries for previous CCLM codec blocks. The final scaling parameter is then selected from an entry in the history list. Inherited, the final scaling parameter is ( + dA). In some embodiments, the final scaling parameter is inherited from the history list or neighboring blocks, but only the MSB portion of the inherited scaling parameter is used, and the LSB of the final scaling parameter comes from dA. In some embodiments, the final scaling parameter is inherited from the history list or neighboring blocks and is not further refined through dA.

[0060] In some embodiments, the offset may be further refined by dB after inheriting the model parameters. For example, if the final offset parameters are inherited from selected neighboring blocks, and the inherited offset parameters are... So the final scaling parameter is ( + dB). In another embodiment, the final offset parameter is inherited from the history list and further refined by dB. For example, the history list records the j most recent final scaling parameter entries for previous CCLM codec blocks. The final scaling parameter is then selected from an entry in the history list. Inherited, the final scaling parameter is ( +dB).

[0061] V. Inheritance across component models a. Inherited model information In some embodiments, if the inherited neighboring block is encoded or decoded using CCCM, then the filter coefficients ( Offset parameters (e.g., in CCCM) are inherited. or The filter coefficients can be re-derived based on the inherited parameters and the average values ​​of the luminance and chrominance samples from the corresponding neighboring locations of the current block. In some embodiments, only a subset of the filter coefficients are inherited (e.g., only n out of 6 filter coefficients are inherited, where...). The remaining filter coefficients are further re-derived using neighboring luminance and chrominance samples from the current block.

[0062] In some embodiments, if the inherited candidate applies the GLM gradient pattern to its brightness reconstruction sample, the current block should also inherit the candidate's GLM gradient pattern and apply it to the current brightness reconstruction sample.

[0063] In some embodiments, if the inherited neighboring blocks are encoded and decoded using multiple cross-component models (e.g., MMLM, or CCCM with multiple models), a classification threshold is also inherited to classify the neighboring samples of the current block into multiple groups, and the inherited multiple cross-component model parameters are further assigned to each group. In some embodiments, the classification threshold is the average of the neighboring reconstructed luminance samples, and the inherited multiple cross-component model parameters are further assigned to each group. Similarly, once the final scaling parameters for each group are determined, the offset parameters for each group are re-derived based on the inherited scaling parameters and the neighboring luminance and chrominance samples of each group in the current block. For example, if using CCCM with multiple models, once the final coefficient parameters for each group are determined (e.g., in CCCM), the offset parameters for each group are re-derived. arrive ,Apart from Based on the inherited coefficient parameters and the neighboring luminance and chrominance samples of each group in the current block, the offset parameters of each group are re-derived (e.g., in CCCM). or ).

[0064] In some embodiments, inherited model parameters may depend on the color components. For example, the Cb and Cr components may inherit model parameters or model derivation methods from the same candidate or different candidates. In another example, only one color component inherits model parameters, while the other color components derive their model parameters using an inheritance-based model derivation method (e.g., if the inherited candidate is encoded using MMLM or CCCM, the current block also derives its model parameters based on MMLM or CCCM using the current neighbor reconstructed samples). In yet another example, only one color component inherits model parameters, while the other color component derives its model parameters using the current neighbor reconstructed samples.

[0065] In some embodiments, after decoding a block, the cross-component model of the current block is exported and stored for subsequent reconstruction processes using neighboring blocks that inherit model parameters.

[0066] In some embodiments, even if the current block is encoded and decoded via inter-frame prediction, the cross-component model parameters of the current block can be derived using the current luma and chroma reconstruction or prediction samples. Subsequently, if another block is predicted using inherited neighboring model parameters, it can inherit these model parameters from the (inter-frame predicted) current block.

[0067] In some embodiments, even if the current block is encoded and decoded via cross-component prediction, the cross-component model parameters of the current block can be re-derived using the current luma and chroma reconstruction or prediction samples.

[0068] In some embodiments, the stored cross-component model can be CCCM, LM_LA (a single-model LM that derives the model using the upper and left neighboring samples), or MMLM_LT (a multi-model LM that derives the model using the upper and left neighboring samples).

[0069] b. Inheritance temporal proximity model parameters In some embodiments, if the current slice / image is a non-intra-frame slice / image, the inherited model parameters may come from blocks in previously encoded / decoded slices / images. Figure 2 This conceptually illustrates the parameters of the inheritance temporal proximity model. As shown in the figure, the current block position is (x, y), and the block size is... The inherited model parameters can come from blocks in previously encoded / decoded slices / images 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), where x' = x + Δx and y' = y + Δy. In some embodiments, if the prediction mode of the current block is intra-frame, Δx and Δy are set to 0. If the prediction mode of the current block is inter-frame, Δx and Δy are set to the horizontal and vertical motion vectors of the current block. In some embodiments, if the current block is inter-frame bidirectional prediction, Δx and Δy are set to the horizontal and vertical motion vectors in reference image list 0. In another embodiment, if the current block is inter-frame bidirectional prediction, Δx and Δy are set to the horizontal and vertical motion vectors in reference image list 1.

[0070] c. Remove or modify similar neighboring model parameters In some embodiments, when inheriting cross-component model parameters from other blocks, the video codec may further examine the similarity between the inherited model and existing models in the candidate list or those model candidates derived from neighboring reconstructed samples of the current block (e.g., CCLM, MMLM, or CCCM models derived using neighboring reconstructed samples of the current block). If the model of a candidate parameter is similar to an existing model, that model will not be included in the candidate list. In some embodiments, the video codec may compare existing candidates... or The similarity is used to determine whether to include candidate models.

[0071] For example, if the candidate or If a candidate is identical to one of the existing candidates, then the model is not included. Another example is if a candidate is similar to one of the existing candidates... or If the difference is less than a threshold, the candidate model is not included. Furthermore, the threshold can be adaptive based on codec information (e.g., current block size or region). For example, when comparing two CCCM models (e.g., a candidate model and a pre-existing model), the video codec can calculate their similarity by examining the values ​​of (c0C + c1N + c2S + c3E + c4W + c5P + c6B) to decide whether to include a candidate model.

[0072] In some embodiments, if a candidate location points to the same CU as one of the existing candidates, a model without candidate parameters is not included. In some embodiments, if a candidate model is similar to one of the existing candidate models, it can adjust the inherited model parameters to make the inherited model different from the existing candidate models. For example, if the inherited scaling parameters are similar to one of the existing candidate models, the inherited scaling parameters can be added with a predefined offset (e.g., ...). or , where S is the shift parameter), so that the inherited parameters are different from the existing candidate models.

[0073] d. Reorder the candidates in the list In some embodiments, candidates in the list can be reordered to reduce the syntax overhead when selecting candidate indices in signaling. The reordering rules can rely on encoding / decoding information or model errors of neighboring blocks. For example, if the neighboring upper or left block is encoded / decoded using MMLM, MMLM candidates in the list can be moved to the beginning of the current list. Similarly, if the neighboring upper or left block is encoded / decoded using Single Model LM or CCCM, Single Model LM or CCCM candidates in the list can be moved to the beginning of the current list. Likewise, if the neighboring upper or left block uses GLM, GLM-related candidates in the list can be moved to the beginning of the current list.

[0074] In some embodiments, the reordering rule is based on calculating model error by applying a candidate model to a neighboring template of the current block, and then comparing the error with reconstructed samples from the neighboring templates. Figure 3 This conceptually illustrates the neighbor template of the current block. As shown in the figure, the size of the upper neighbor template 320 of the current block 310 is... The size of the template 330 adjacent to the left of the current block 310 is Suppose there are K models in the current candidate list. and These are the final scaling and offset parameters after inheriting from candidate k. The model error of the upper neighboring template of candidate k is: , in, and These are the luminance reconstruction sample (e.g., after a downsampling process or the application of a GLM pattern) and the chrominance reconstruction sample at position (i, j) in the template above. and Similarly, the model error of the left neighbor template of candidate k is: , in and These are the luminance reconstruction sample (e.g., after a downsampling process or the application of a GLM pattern) and the chromaticity reconstruction sample at position (m, n) in the left template. and Then the model error for candidate k is: , After calculating the errors of all candidate models, a list of model errors can be obtained. Then, the candidate indices in the inheritance candidate list can be rearranged by sorting the model error list in ascending order.

[0075] In some embodiments, if candidate k is predicted using CCCM, then and Defined as , , in and These are the final filter coefficients after inheriting candidate k. P and B are the nonlinear term and bias term, respectively.

[0076] In some embodiments, if the adjacent template above is unavailable, then Similarly, if the adjacent template on the left is unavailable, then If neither template is available, the candidate index reordering method using model error should not be applied.

[0077] In some embodiments, not all positions in the upper and left adjacent templates are used to calculate the model error. The video codec can select a subset of positions in the upper and left adjacent templates to calculate the model error. For example, it can define a first starting position and a first subsampling interval, which depends on the width of the current block, to partially select positions in the upper adjacent template. Similarly, it can define a second starting position and a second subsampling interval, which depends on the height of the current block, to partially select positions in the left adjacent template. Another example... or It can be a constant value (e.g., or It can be 1, 2, 3, 4, 5, or 6). For example, or This can depend on the block size. If the current block size is greater than or equal to a threshold, or It equals the first value. Otherwise, or It equals the second value.

[0078] e. Inherit candidates from the candidate list of neighboring blocks. In some embodiments, the current block may inherit the top k candidates from the inheritance candidate list of neighboring blocks. Figure 4 The concept illustrates the candidate lists for the current block and its neighboring blocks. As shown in the figure, the current block 410 has an upper neighboring block 420 and a left neighboring block 430. The upper neighboring block 420 has a candidate list 425, which includes various models (such as Model...). A 1 Model A 2 Model A 3 Model A 4 The left neighboring block 430 has its own candidate list 425, which includes various models (such as Model 425). L 1 Model L 2 Model L 3 Model L 4 The current block 410 can inherit the first two candidates (Model) from its neighboring blocks above it. A 1 Model A 2 ), and inherit the first two candidates (Model) from the left neighboring block. L 1 Model L 2 ), as part of its own candidate list 415.

[0079] In some embodiments, after adding neighboring space candidates and non-neighboring space candidates, if the current inherited candidate list is not full, candidates from the candidate lists of neighboring blocks are included in the current inherited candidate list. In other embodiments, when adding candidates to the candidate list of a neighboring block, candidates from the left neighboring block are included first, followed by candidates from the upper neighboring block. In some embodiments, when adding candidates to the candidate list of a neighboring block, candidates from the upper neighboring block are included first, followed by candidates from the left neighboring block.

[0080] f. Signaling inheritance candidate index In some embodiments, a signaling on / off flag is used to indicate whether the current block inherits cross-component model parameters from neighboring blocks. This flag can be signaled by CU / CB, PU, ​​TU / TB, color component, or chroma color component. Signaling high-level syntax can be used in SPS, PPS, PH, or SH to indicate whether the current sequence, image, or slice is allowed to inherit cross-component model parameters from neighboring blocks. If the current block inherits cross-component model parameters from neighboring blocks, an index corresponding to the inheritance candidate is signaled. This index can be signaled (e.g., using truncated unary codes, Exp-Golomb codes, or fixed-length code signaling) and shared between the current Cb and Cr blocks. Another example is that the index can be signaled by color component. For example, one inheritance index is signaled for the Cb component and another for the Cr component. As another example, the inheritance index can be stored using chroma intra-prediction syntax (e.g., IntraPredModeC[xCb][yCb]).

[0081] In some embodiments, if the current block inherits cross-component model parameters from neighboring blocks, the current chroma intra-prediction mode (e.g., IntraPredModeC[xCb][yCb], as defined in the VVC standard) is temporarily set to a cross-component mode (e.g., CCLM_LT) during the bitstream parsing phase. Subsequently, during the prediction or reconstruction phase, a candidate list is derived, and inherited candidate models are identified from the candidate list via inherited candidate indices. After obtaining the inherited model, the codec information of the current block is updated based on the inherited candidate model. The codec information of the current block includes, but is not limited to, the prediction mode (e.g., CCLM_LT or MMLM_LT), the associated submode flag (e.g., CCCM mode flag), the prediction pattern (e.g., GLM pattern index), and the current model parameters. Then, the prediction for the current block is generated based on the updated codec information.

[0082] VI. Fusion of multiple cross-component models In some embodiments, the final prediction of the current block may be a combination of multiple cross-component models, or a fusion of multiple selected cross-component models with predictions from non-cross-component coding / decoding tools (e.g., intra-angle prediction mode, intra-plane / DC mode, or inter-frame prediction mode).

[0083] a. Merge multiple models from the candidate model list In some embodiments, if the current candidate list is N in size, the video codec can select k candidates from a total of N candidates (where k ≤ N). Then, by applying the cross-component model of the selected k candidates using the corresponding luminance reconstruction samples, k predictions are generated respectively. The final prediction for the current block is a combination of these k predictions. For example, if two candidate predictions (denoted as...) and If the blocks are combined, the final prediction for the current block at position (x, y) is: ,in It is a weighting factor. Weighting factor It can be predefined or implicitly derived from the cost of neighboring templates. For example, in some embodiments, the costs of the two candidate templates are respectively... and ,and for Template cost is defined according to Section Vd, “Candidates in the Reorder List”.

[0084] In some embodiments, the video codec can combine multiple cross-component models into a single final cross-component model. For example, the video codec can select two models from two candidates in a list and use the selected two models to implement a multi-model cross-component prediction mode. The selected candidates can be CCLM / MMLM / GLM / CCCM codec candidates. The multi-model classification threshold (as described in Section II.b above) can be the offset parameters between the two selected models (e.g., offset / ... in CCLM). or in CCCM or The average value of ). In some embodiments, two candidate models are combined, and the selected model is the top two candidates in the list.

[0085] More generally, if the current candidate list is N in size, the video codec can select k candidates (where k ≤ N) from a total of N candidates and combine them into a final cross-component model. In some embodiments, this combination is achieved by weighted averaging of the corresponding model parameters of the k candidates. For example, if a cross-component model has M parameters, the j-th parameter of the final cross-component model is a weighted average of the j-th parameters of the selected k candidates, where j is 1 … M. The final prediction is then generated by applying the final cross-component model to the corresponding brightness reconstruction samples.

[0086] For example, if the two candidate models are and The final cross-component model is ,in It is a weighting factor, which can be predefined or implicitly derived from the cost of neighboring templates. This is the x-th model parameter of the y-th candidate. The determination of the neighbor template cost is described in Section Vd above, "Candidates in the Reordering List," where the corresponding template costs of two candidates are respectively... and ,but for .

[0087] Another example is that a video codec can combine two candidate models, one from spatially adjacent neighboring candidates and the other from non-adjacent spatial candidates or historical candidates. In some embodiments, if a candidate model from a spatially adjacent neighboring candidate is unavailable, the video codec can use two candidate models from non-adjacent spatial candidates or historical candidates. In some embodiments, if two candidate models are to be combined, the first two candidate models in the list are selected and combined. In some embodiments, if i candidate models are to be combined, the first i candidate models in the list are selected and combined.

[0088] In some embodiments, two cross-component models are merged into a single final model by weighted averaging of their respective model parameters. One cross-component model is derived from upper spatial neighbor candidates, and the other from left spatial neighbor candidates. Upper spatial neighbor candidates are those whose vertical position is less than or equal to the top boundary of the current block. Left spatial neighbor candidates are those whose horizontal position is less than or equal to the left boundary of the current block. Weighting factors are used to further refine the model. Determined based on the horizontal and vertical spatial positions within the current block. For example, if two candidate predictions (represented as...) and If the current block is merged, then the final prediction for the current block at position (x, y) is: ,in In some embodiments, the upper spatial neighbor candidate is the first candidate in the list with a vertical position less than or equal to the top boundary position of the current block, while the left spatial neighbor candidate is the first candidate in the list with a horizontal position less than or equal to the left boundary position of the current block.

[0089] b. Fusion of cross-component prediction and non-cross-component prediction In some embodiments, the video codec can combine predictions from cross-component model candidates with predictions from non-cross-component codec tools. For example, selecting a cross-component model candidate from a list, its prediction is represented as... Another prediction might come from chroma DM (an intra-prediction mode that inherits the luma block), chroma DIMD, or an intra-angle mode, and is represented as... The final prediction for the current block at position (x, y) is: ,in It is a weighting factor, which can be predefined or implicitly derived from the cost of neighboring templates.

[0090] In some embodiments, when predictions are fused between cross-component and non-cross-component codecs, the predictions of the non-cross-component codecs (e.g., chroma DM, chroma DIMD) can be predefined or explicitly signaled. In some embodiments, the predictions of the non-cross-component codecs are explicitly signaled, but the index of the cross-component model candidate is predefined or determined by the codec mode of neighboring blocks. For example, in some embodiments, if at least one neighboring spatial block uses CCCM mode coding, the first candidate with CCCM model parameters is selected. Another example is that if at least one neighboring spatial block uses GLM mode coding, the first candidate with GLM pattern parameters is selected. Yet another example is that if at least one neighboring spatial block uses MMLM mode coding, the first candidate with MMLM parameters is selected.

[0091] c. Fusion of cross-component model candidates and current cross-component model predictions In this document, "candidate cross-component model," "cross-component model candidate," or "inherited cross-component model" refers to a cross-component model inherited from a previous codec block and / or a cross-component model selected from a list of candidate models. On the other hand, "current cross-component model" refers to a cross-component model that is not inherited from a previous codec block and is not selected from a list of candidates, but is derived based on the current block. For example, the current cross-component model may be derived based on a predicted sample of the current block, or a predicted or reconstructed sample of one of the components of the current block (e.g., a luma or a chroma component), or a reconstructed sample of a neighboring sample of the current block (e.g., in the upper and / or left stencil region), or a sample of a reference block of the current block (identified by MV or BV).

[0092] In some embodiments, the video codec can combine the predictions of the cross-component model candidates with the predictions of the current cross-component model. For example, let Let the predictions from the cross-component models in the list be represented by... This indicates that the cross-component prediction derived using the neighboring reconstructed samples of the current block is used. Therefore, the final prediction for the current block at position (x, y) is... ,in This is a weighting factor, which can be predefined or implicitly derived from the cost of neighboring templates. In some embodiments, the video codec selects the first candidate in the list as a cross-component model candidate.

[0093] In some embodiments, the prediction mode or type of the current cross-component model can be predefined or explicitly signaled. Examples of prediction modes or types for cross-component encoding / decoding tools (whether current or candidate) include CCCM_LT, LM_LT (a single-model LM that derives the model using the top and left adjacent samples), or MMLM_LT (a multi-model LM that derives the model using the top and left adjacent samples).

[0094] In some embodiments, when a candidate cross-component model is combined with the predictions of the current cross-component model, the prediction mode of the current cross-component model (e.g., CCLM / MMLM / GLM / CCCM or a variant thereof) is indicated first, followed by an indication of the syntax for combining it with the candidate cross-component model. The indication of the prediction mode of the current cross-component model can be explicit signaling or implicitly derived. For example, the cross-component model candidate can be the first candidate in a candidate list. Another example is that the cross-component model candidate can be the first candidate after reordering the candidate list. In some embodiments, the combination weights can be predefined, determined by neighboring prediction modes, or implicitly derived from neighboring template costs (e.g., candidates in the reordered list in section Vd).

[0095] In some embodiments, when combining the predictions of a selected cross-component model candidate with the predictions of the current cross-component model, a syntax for determining whether to use the cross-component model candidate is first indicated, followed by a syntax for determining whether to combine the predictions of the current cross-component model with the predictions of the selected cross-component model candidate.

[0096] In some embodiments, when combining the prediction of the current cross-component model with the prediction of a selected candidate cross-component model, the current cross-component model is set to have the same cross-component prediction mode or type as the selected candidate cross-component model (e.g., both are CCLM, both are CCCM, etc.). In some embodiments, when the current cross-component model and the candidate cross-component model have the same prediction type / mode, the video encoder can compute the combined prediction by combining their respective model parameters. For example, the parameters of the current cross-component model can be expressed as follows: The parameters for selecting candidates can be expressed as: Then the final cross-component model used to calculate the combined prediction is: , in It is a weighting factor, which can be predefined, determined by the nearest prediction model, or implicitly derived from the nearest template cost. These are model parameters.

[0097] In some embodiments, whether to apply a method of combining cross-component model candidates with the predictions of the current cross-component model may depend on block size constraints. Block size constraints can be that the block size is less than or equal to a threshold, or that the block size is greater than or equal to a threshold. Block size can refer to block width, block height, block width multiplied by block height, block width plus block height, block size aspect ratio, or variations thereof.

[0098] Any of the proposed methods described above can be implemented in the encoder and / or decoder. For example, any proposed method can be implemented in the inter-frame / intra-frame prediction module of the encoder, and / or in the inter-frame / intra-frame prediction module of the decoder. Alternatively, any proposed method can be implemented as circuitry coupled to the inter-frame / intra-frame prediction module of the encoder and / or the inter-frame / intra-frame prediction module of the decoder to provide the information required by the inter-frame / intra-frame prediction module.

[0099] VII. Example Video Encoder Figure 5 An example video encoder 500 is illustrated, which can perform cross-component prediction. As shown, the video encoder 500 receives an input video signal from a video source 505 and encodes the signal into a bitstream 595. The video encoder 500 has multiple components or modules for encoding the signal from the video source 505, including at least some of the following components: a transform module 510, a quantization module 511, an inverse quantization module 514, an inverse transform module 515, an intra-frame image estimation module 520, an intra-frame prediction module 525, a motion compensation module 530, a motion estimation module 535, a loop filter 545, a reconstructed image buffer 550, an MV buffer 565, an MV prediction module 575, and an entropy encoder 590. The motion compensation module 530 and the motion estimation module 535 are part of an inter-frame prediction module 540.

[0100] In some embodiments, modules 510–590 are software instruction modules executed by one or more processing units (e.g., processors) of a computing device or electronic device. In some embodiments, modules 510–590 are hardware circuit modules implemented by one or more integrated circuits (ICs) of an electronic device. Although modules 510–590 are shown as separate modules, some modules may be combined into a single module.

[0101] Video source 505 provides an uncompressed raw video signal, which represents the pixel data for each video frame. Subtractor 508 calculates the difference between the raw video pixel data from video source 505 and the predicted pixel data 513 from motion compensation module 530 or intra-frame prediction module 525, as a prediction residual 509. Transform module 510 converts the difference (or residual pixel data or residual signal 508) into transform coefficients (e.g., by performing a discrete cosine transform (DCT)). Quantization module 511 quantizes the transform coefficients into quantized data (or quantization coefficients) 512, which is encoded into a bitstream 595 by entropy encoder 590.

[0102] The inverse quantization module 514 inverse-quantizes the quantized data (or quantization coefficients) 512 to obtain transform coefficients, and the inverse transform module 515 performs an inverse transform on the transform coefficients to generate a reconstruction residual 519. The reconstruction residual 519 is added to the predicted pixel data 513 to generate reconstructed pixel data 517. In some embodiments, the reconstructed pixel data 517 is temporarily stored in the line buffer 527 (or intra-frame prediction buffer) for intra-frame image prediction and spatial MV prediction. The reconstructed pixels are filtered by the loop filter 545 and stored in the reconstructed image buffer 550. In some embodiments, the reconstructed image buffer 550 is external memory to the video encoder 500. In some embodiments, the reconstructed image buffer 550 is internal memory to the video encoder 500.

[0103] Intra-frame image estimation module 520 performs intra-frame prediction based on reconstructed pixel data 517 to generate intra-frame prediction data. The intra-frame prediction data is provided to entropy encoder 590 for encoding into a bitstream 595. The intra-frame prediction data is also used by intra-frame prediction module 525 to generate predicted pixel data 513.

[0104] The motion estimation module 535 performs inter-frame prediction on reference pixel data of previously decoded frames stored in the reconstructed image buffer 550 by generating MVs. These MVs are provided to the motion compensation module 530 to generate predicted pixel data.

[0105] Instead of encoding the complete actual motion vectors into the bitstream, the video encoder 500 uses motion vector prediction to generate predicted motion vectors and encodes the difference between the motion vectors used for motion compensation and the predicted motion vectors as residual motion data, which is stored in the bitstream 595.

[0106] The MV prediction module 575 generates a predicted MV based on a reference MV generated for encoding the previous video frame, i.e., a motion-compensated MV used to perform motion compensation. The MV prediction module 575 retrieves the reference MV of the previous video frame from the MV buffer 565. The video encoder 500 stores the MV generated for the current video frame in the MV buffer 565 as a reference MV for generating the predicted MV.

[0107] The MV prediction module 575 creates a predicted MV using a reference MV. The predicted MV can be calculated through spatial MV prediction or temporal MV prediction. The difference (residual motion data) between the predicted MV and the motion-compensated MV (MC MV) of the current frame is encoded into a bitstream 595 by the entropy encoder 590.

[0108] The entropy encoder 590 uses entropy coding techniques (such as context-adaptive binary arithmetic coding, or CABAC, or Huffman coding) to encode various parameters and data into a bitstream 595. The entropy encoder 590 encodes various header elements, flags, quantization transform coefficients 512, and residual motion data as syntax elements into a bitstream 595. The bitstream 595 is then stored in a storage device or transmitted to the decoder via a communication medium such as a network.

[0109] Loop filter 545 performs filtering or smoothing operations on the reconstructed pixel data 517 to reduce coded artifacts, particularly at pixel block boundaries. In some embodiments, the filtering or smoothing operations performed by loop filter 545 include deblocking filter (DBF), sample adaptive offset (SAO), and / or adaptive loop filter (ALF). In some embodiments, luma mapping chroma scaling (LMCS) is performed before the loop filter.

[0110] Figure 6 A portion of a video encoder 500 implementing combined cross-component prediction is shown. The current block can be initially encoded via inter-frame prediction, intra-frame prediction, or IBC prediction (motion compensation module 530 or intra-frame prediction module 525), which generate an initial predictor 615. The initial predictor 615 can be one of the luma or chroma components (e.g., Cb) of the predicted or reconstructed current block.

[0111] Two cross-component models are applied to the initial predictor 615: the current cross-component model 610 is applied to the initial predictor 615 to generate the first cross-component predictor 625; the candidate cross-component model 612 is applied to the initial predictor 615 to generate the second cross-component predictor 627. The predictor combiner 640 combines the first and second cross-component predictors 625 and 627 to generate a combined cross-component prediction 650 for the (remaining) chromaticity component (e.g., Cr). Samples from the initial predictor 615 and the combined cross-component prediction 650 can then be used as predicted pixel data 513.

[0112] The current cross-component model 610 can be generated by the model builder 605 based on samples stored in the intra-frame prediction buffer 527, which stores samples of the reconstructed pixel data 517 acquired prior to the loop filter 545. Section II above describes several cross-component model patterns that can be used as the cross-component model 610. Once generated, the parameters of the current cross-component model 610 can be stored in the candidate model memory 635 for inheritance by subsequent coding blocks.

[0113] Candidate cross-component model 612 is selected from the candidate model list 645 of the current block. List 645 is provided by candidate list builder 630, which identifies candidate models from various neighboring blocks to add to the candidate list 645 of the current block. Candidate selector 648 selects a candidate from candidate list 645 as candidate cross-component model 612 and retrieves the model from candidate model memory 635.

[0114] In some embodiments, the candidate selector 648 selects according to an instruction from the entropy encoder 590, which may signal the syntax elements of the bitstream 595 to determine whether to use the combined prediction 650, whether to use the prediction of the current cross-component model 610 or the candidate cross-component model 612, and which candidate model in the candidate model list 645 to use.

[0115] Prediction combiner 640 can generate combined prediction 650 as a weighted average of two predictors 625 and 627, with the weighting factor provided by entropy encoder 590. In some embodiments, if the two models have the same cross-component prediction mode / type, combined prediction 650 can be generated by combining models, where the parameter is the weighted average of the two models. Entropy encoder 590 can also control prediction combiner 640 as a multiplexer between the two predictors 625 and 627, thereby disabling combined cross-component prediction.

[0116] Figure 7 A process 700 for combining cross-component predictions is conceptually illustrated. In some embodiments, one or more processing units (e.g., processors) of a computing device implementing encoder 500 execute process 700 by executing instructions stored in a computer-readable medium. In some embodiments, an electronic device implementing encoder 500 executes process 700.

[0117] The encoder (in block 710) receives data to be encoded into the current pixel block in the current image of the video.

[0118] The encoder (in block 720) generates a first prediction using the current cross-component model for the current block. The current cross-component model can be derived based on neighboring reconstructed samples of the current block or prediction samples of the current block identified by a specified cross-component prediction mode. In some embodiments, the current cross-component model is set to the same cross-component prediction mode as the selected cross-component model.

[0119] The encoder (in block 730) generates a second prediction using cross-component model candidates selected from the cross-component model candidate list of the current block.

[0120] In some embodiments, the encoder specifies the cross-component prediction mode for the current block. The cross-component prediction mode can be CCCM, CCLM, GLM, MMLM, or any other cross-component prediction mode described in Section 2 above. The encoder derives the current cross-component model based on the specified cross-component prediction mode for the current block. The encoder identifies a list of cross-component model candidates for the current block and then selects a cross-component model candidate from the list of candidate cross-component models.

[0121] The encoder can determine a specified cross-component prediction mode and whether to use combined predictive coding for the current block. In some embodiments, this determination is explicitly signaled by a first syntax element indicating the specified cross-component prediction mode and a second syntax element indicating whether to use combined predictive coding for the current block, wherein the first syntax element is signaled or parsed before the second syntax element. In some embodiments, the encoder can determine whether to use combined predictive coding for the current block based on the size constraint of the current block.

[0122] In some embodiments, when using combined prediction to encode the current block, the first candidate in the candidate list is the selected cross-component model candidate. In some embodiments, the specified cross-component prediction mode is implicitly derived.

[0123] In some embodiments, the encoder may determine whether to use a cross-component model candidate and whether to generate a combined prediction. In some embodiments, a first syntax element indicating whether to use a selected cross-component model candidate and a second syntax element indicating whether to use a combined prediction to encode the current block are explicitly signaled, wherein the first syntax element is signaled before the second syntax element.

[0124] In some embodiments, when the selected cross-component model candidate and the current cross-component model have the same cross-component prediction mode, a combined prediction is generated by calculating the weighted average of the model parameters of the selected cross-component model candidate and the current cross-component model.

[0125] The encoder (in block 740) generates a combined prediction based on the first and second predictions. The combined prediction can be a weighted sum of the first and second predictions. The weights assigned to the first and second predictions are predefined, determined by the neighbor prediction patterns, or implicitly derived from the neighbor template costs.

[0126] The encoder (in block 750) encodes the current block by generating prediction residuals using the generated combined predictions.

[0127] VIII. Example Video Decoder In some embodiments, the encoder may signal (or generate) one or more syntax elements in the bitstream so that the decoder may parse the one or more syntax elements from the bitstream.

[0128] Figure 8 An example video decoder 800 capable of cross-component prediction is shown. As illustrated, the video decoder 800 is an image or video decoding circuit that receives a bitstream 895 and decodes its contents into pixel data for video frames used for display. The video decoder 800 has several components or modules for decoding the bitstream 895, including some selected from inverse quantization module 811, inverse transform module 810, intra-frame prediction module 825, motion compensation module 830, loop filter 845, decoded image buffer 850, MV buffer 865, MV prediction module 875, and resolver 890. Motion compensation module 830 is part of inter-frame prediction module 840.

[0129] In some embodiments, modules 810-890 are software instruction modules executed by one or more processing units (e.g., processors) of a computing device. In some embodiments, modules 810-890 are hardware circuit modules implemented by one or more ICs of an electronic device. Although modules 810-890 are shown as independent modules, some modules may be combined into a single module.

[0130] Parser 890 (or entropy decoder) receives bitstream 895 and performs initial parsing according to the syntax defined by the video coding or image codec standard. The parsed syntax elements include various header elements, flags, and quantization data (or quantization coefficients) 812. Parser 890 parses the various syntax elements using entropy coding techniques such as context-adaptive binary arithmetic coding (CABAC) or Huffman coding.

[0131] The inverse quantization module 811 performs inverse quantization on the quantized data (or quantization coefficients) 812 to obtain transform coefficients, and the inverse transform module 810 performs inverse transform on the transform coefficients 816 to generate the reconstructed residual signal 819. The reconstructed residual signal 819 is added to the predicted pixel data 813 from the intra-frame prediction module 825 or the motion compensation module 830 to generate the decoded pixel data 817. The decoded pixel data is filtered by the loop filter 845 and stored in the decoded image buffer 850. In some embodiments, the decoded image buffer 850 is an external memory of the video decoder 800. In some embodiments, the decoded image buffer 850 is an internal memory of the video decoder 800.

[0132] Intra-prediction module 825 receives intra-prediction data from bitstream 895 and generates predicted pixel data 813 from decoded pixel data 817 stored in decoded image buffer 850 accordingly. In some embodiments, decoded pixel data 817 is also stored in line buffer 827 (or intra-prediction buffer) for intra-image prediction and spatial MV prediction.

[0133] In some embodiments, the contents of the decoded image buffer 850 are used for display. The display device 805 can directly retrieve the contents of the decoded image buffer 850 for display, or retrieve the contents of the decoded image buffer into a display buffer. In some embodiments, the display device receives pixel values ​​from the decoded image buffer 850 via pixel transfer.

[0134] The motion compensation module 830 generates predicted pixel data 813 from the decoded pixel data 817 stored in the decoded image buffer 850 based on the motion compensation MV (MC MV). These motion compensation MVs are decoded by adding the residual motion data parsed from the bitstream 895 to the predicted MV received from the MV prediction module 875.

[0135] The MV prediction module 875 generates a predicted MV based on a reference MV generated for decoding a previous video frame, such as a motion-compensated MV used to perform motion compensation. The MV prediction module 875 retrieves the reference MV of the previous video frame from the MV buffer 865. The video decoder 800 stores the motion-compensated MV generated for decoding the current video frame in the MV buffer 865 as a reference MV for generating the predicted MV.

[0136] The loop filter 845 performs filtering or smoothing operations on the decoded pixel data 817 to reduce coding artifacts, particularly at the boundaries of pixel blocks. In some embodiments, the filtering or smoothing operations performed by the loop filter 845 include a deblocking filter (DBF), a sample adaptive offset (SAO), and / or an adaptive loop filter (ALF). In some embodiments, luminance-mapped chrominance scaling (LMCS) is performed before the loop filter.

[0137] Figure 9 A portion of the video decoder 800 that implements combined cross-component prediction is shown. The current block can be initially encoded or decoded via inter-frame prediction, intra-frame prediction, or IBC prediction (motion compensation module 830 or intra-frame prediction module 825), which generate an initial predictor 915. The initial predictor 915 can be the predicted or reconstructed luma component or a chroma component (e.g., Cb) of the current block.

[0138] Two cross-component models are applied to the initial predictor 915: the current cross-component model 910 is applied to the initial predictor 915 to generate the first cross-component predictor 925; the candidate cross-component model 912 is applied to the initial predictor 915 to generate the second cross-component predictor 927. The predictor combiner 940 combines the first and second cross-component predictors 925 and 927 to generate a combined cross-component prediction 950 for the (remaining) chromaticity component (e.g., Cr). Samples from the initial predictor 915 and the combined cross-component prediction 950 can then be used as predicted pixel data 813.

[0139] The current cross-component model 910 can be generated by the model builder 905 based on samples stored in the intra-prediction buffer 827, which stores samples of the reconstructed pixel data 817 acquired prior to the loop filter 945. Section II above describes several cross-component model patterns that can be used as the cross-component model 910. Once generated, the parameters of the current cross-component model 910 can be stored in the candidate model memory 935 for inheritance by subsequent coding blocks.

[0140] Candidate cross-component model 912 is selected from the candidate model list 945 of the current block. List 945 is provided by candidate list construction module 930, which identifies candidate models from various neighboring blocks to add to the candidate list 945 of the current block. Candidate selector 948 selects a candidate from candidate list 945 as candidate cross-component model 912 and retrieves the model from candidate model memory 935.

[0141] In some embodiments, the candidate selector 948 selects according to an instruction from the entropy encoder 890, which may signal the bitstream 595 syntax elements to determine whether to use the combined prediction 950, whether to use the prediction of the current cross-component model 910 or the candidate cross-component model 912, and which candidate model in the candidate model list 945 to use.

[0142] In one embodiment, when combining the predictions generated by the current cross-component model 910 and the candidate cross-component model 912, the candidate selector 948 selects the first candidate model in the candidate list 945.

[0143] The predictor combiner 940 can generate a combined prediction 950 as a weighted average of the two predictors 925 and 927, with the weighting factor provided by the entropy decoder 890. In some embodiments, if the two models have the same cross-component prediction mode / type, the combined prediction 950 can be generated by combining models, where the parameter is the weighted average of the two models. The entropy decoder 890 can also control the predictor combiner 940 as a multiplexer between the two predictors 925 and 927, thereby disabling combined cross-component prediction.

[0144] Figure 10 A process 1000 for combining cross-component predictions is conceptually illustrated. In some embodiments, one or more processing units (e.g., processors) of a computing device implementing decoder 800 execute process 1000 by executing instructions stored in a computer-readable medium. In some embodiments, an electronic device implementing decoder 800 executes process 1000.

[0145] The decoder (in block 1010) receives data to be decoded into the current pixel block in the current image of the video. The decoder (in block 1020) generates a first prediction using the current cross-component model of the current block. The current cross-component model may be derived based on neighboring reconstructed samples of the current block or prediction samples of the current block identified by a specified cross-component prediction mode. In some embodiments, the current cross-component model is set to the same cross-component prediction mode as the selected cross-component model.

[0146] The decoder (in block 1030) generates a second prediction using cross-component model candidates selected from the cross-component model candidate list of the current block.

[0147] In some embodiments, the decoder assigns a cross-component prediction mode to the current block. The cross-component prediction mode can be CCCM, CCLM, GLM, MMLM, or any other cross-component prediction mode described in Section II above. The decoder derives the current cross-component model based on the assigned cross-component prediction mode for the current block. The decoder identifies a list of cross-component model candidates for the current block and then selects a cross-component model candidate from that list.

[0148] The decoder can determine the specified cross-component prediction mode and whether to use combined prediction to decode the current block. In some embodiments, this determination is explicitly signaled by a first syntax element indicating the specified cross-component prediction mode and a second syntax element indicating whether to use combined prediction to decode the current block, wherein the first syntax element is signaled or parsed before the second syntax element. In some embodiments, the decoder can determine whether to use combined prediction to decode the current block based on the size constraint of the current block.

[0149] In some embodiments, when decoding the current block using the combined prediction, the first candidate in the candidate list is the selected cross-component model candidate. In some embodiments, the specified cross-component prediction mode is implicitly derived.

[0150] In some embodiments, the decoder may determine whether to use the cross-component model candidate and whether to generate the combined prediction. In some embodiments, a first syntax element indicating whether to use the selected cross-component model candidate and a second syntax element indicating whether to use the combined prediction to decode the current block are explicitly signaled, wherein the first syntax element is signaled before the second syntax element.

[0151] In some embodiments, when the selected cross-component model candidate and the current cross-component model have the same cross-component prediction mode, the combined prediction is generated by calculating the weighted average of the model parameters of the selected cross-component model candidate and the current cross-component model.

[0152] The decoder (in block 1040) generates a combined prediction based on the first prediction and the second prediction. This combined prediction can be a weighted sum of the first and second predictions. The weights assigned to the first and second predictions are predefined, determined by the nearest prediction pattern, or implicitly derived from the nearest template cost.

[0153] The decoder (in block 1050) reconstructs the current block using the generated combined prediction and the received prediction residual. The decoder can then provide the reconstructed current block for display as part of the reconstructed current image.

[0154] IX. Example Electronic Systems Many of the features and applications described above are implemented as software processes, which are specified as a set of instructions recorded on a computer-readable storage medium (also known as a computer-readable medium). When these instructions are executed by one or more computing or processing units (e.g., one or more processors, processor cores, or other processing units), they cause the processing unit to perform the operations indicated in the instructions. Examples of computer-readable media include, but are not limited to, CD-ROMs, flash drives, random access memory (RAM) chips, hard disks, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc. Computer-readable media do not include carrier waves and electronic signals transmitted via wireless or wired connections.

[0155] In this specification, the term "software" means firmware residing in read-only memory or an application stored in magnetic memory and readable into memory for processor processing. Furthermore, in some embodiments, multiple software inventions may be implemented as sub-parts of a larger program while remaining independent software inventions. In some embodiments, multiple software inventions may also be implemented as independent programs. Finally, any combination of independent programs implementing the software inventions described herein is within the scope of this disclosure. In some embodiments, when the software program is installed and run on one or more electronic systems, one or more specific machine implementations are defined that execute and perform the operations of the software program.

[0156] Figure 11 An electronic system 1100 is conceptually illustrated, in which certain embodiments of this disclosure are implemented. The electronic system 1100 may be a computer (e.g., a desktop computer, personal computer, tablet computer, etc.), a telephone, a PDA, or any other type of electronic device. Such an electronic system includes various types of computer-readable media and interfaces for various other types of computer-readable media. The electronic system 1100 includes a bus 1105, a processing unit 1110, a graphics processing unit (GPU) 1115, system memory 1120, a network 1125, read-only memory 1130, permanent storage device 1135, input device 1140, and output device 1145.

[0157] Bus 1105 collectively represents all system, peripheral, and chipset buses that communicate with the numerous internal devices of electronic system 1100. For example, bus 1105 communicates with processing unit 1110, GPU 1115, read-only memory 1130, system memory 1120, and permanent storage device 1135.

[0158] From these different storage units, processing unit 1110 retrieves instructions to execute and process data in order to perform the processes of this disclosure. In different embodiments, the processing unit may be a single processor or a multi-core processor. Some instructions are passed to GPU 1115 and executed thereon. GPU 1115 may offload various computing or supplemental image processing provided by processing unit 1110.

[0159] Read-only memory (ROM) 1130 stores static data and instructions used by processing unit 1110 and other modules of the electronic system. On the other hand, permanent storage device 1135 is a read-write storage device. Even when the electronic system 1100 is off, this device is a non-volatile storage unit storing instructions and data. Some embodiments of this disclosure use mass storage devices (e.g., magnetic disks or optical disks and their corresponding disk drives) as permanent storage device 1135.

[0160] Other embodiments use removable storage devices (e.g., floppy disks, flash memory devices, etc., and their corresponding disk drives) as permanent storage devices. Similar to permanent storage device 1135, system memory 1120 is a read-write storage device. However, unlike storage device 1135, system memory 1120 is a volatile read-write memory, such as random access memory. System memory 1120 stores some instructions and data used by the processor during runtime. In some embodiments, processes according to this disclosure are stored in system memory 1120, permanent storage device 1135, and / or read-only memory 1130. For example, various storage units include instructions for processing multimedia clips according to some embodiments. From these different storage units, processing unit 1110 retrieves instructions to execute and process data in order to perform the processes of some embodiments.

[0161] Bus 1105 is also connected to input and output devices 1140 and 1145. Input device 1140 enables a user to pass information and select commands to the electronic system. Input device 1140 includes an alphanumeric keypad and pointing device (also known as a "cursor control device"), a camera (e.g., a webcam), a microphone, or similar devices for receiving voice commands. Output device 1145 displays images generated by the electronic system or otherwise outputs data. Output device 1145 includes printers and display devices, such as cathode ray tube (CRT) or liquid crystal display (LCD), and speakers or similar audio output devices. Some embodiments include devices such as touchscreens that can function as both input and output devices.

[0162] Finally, as Figure 11 As shown, bus 1105 also connects electronic system 1100 to network 1125 via a network adapter (not shown). In this way, the computer can become part of a computer network (such as a local area network (“LAN”), wide area network (“WAN”), or intranet, or a network of networks, such as the Internet). Any or all components of electronic system 1100 can be used in conjunction with this disclosure.

[0163] Some embodiments include electronic components, such as microprocessors, storage, and memory, that store computer program instructions in a machine-readable or computer-readable medium (also referred to as a computer-readable storage medium, machine-readable medium, or machine-readable storage medium). Examples of such computer-readable media include RAM, ROM, read-only optical disc (CD-ROM), recordable optical disc (CD-R), rewritable optical disc (CD-RW), read-only digital versatile optical disc (e.g., DVD-ROM, dual-layer DVD-ROM), various recordable / rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD card, mini-SD card, micro-SD card, etc.), magnetic and / or solid-state drives, read-only and recordable Blu-ray discs, ultra-density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable medium may store a computer program executed by at least one processing unit and includes a set of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as code generated by a compiler, and files that include high-level code executed by a computer, electronic components, or microprocessor using an interpreter.

[0164] While the above discussion primarily concerns microprocessors or multi-core processors that execute software, many of the aforementioned features and applications are implemented by one or more integrated circuits, such as application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions stored on the circuit itself. Furthermore, some embodiments execute software stored in programmable logic devices (PLDs), ROM, or RAM devices.

[0165] As used in this specification and any claim of this application, the terms "computer," "server," "processor," and "memory" refer to electronic or other technical devices. These terms do not include individuals or groups. For the purposes of this specification, the term "display" or "show" means display on an electronic device. As used in this specification and any claim of this application, the terms "computer-readable medium," "machine-readable medium," and "computer-readable medium" are strictly limited to tangible physical objects that store information in a computer-readable form. These terms do not include any wireless signals, wired download signals, or any other transient signals.

[0166] Although this disclosure has been described with reference to numerous specific details, those skilled in the art will recognize that this disclosure may be embodied in other specific forms without departing from its spirit. Furthermore, many figures (including...) Figure 7 and Figure 10The process is conceptually described. The specific operations of these processes may not be performed in the exact order shown and described. Specific operations may not be performed in a continuous series of operations, and different specific operations may be performed in different embodiments. Furthermore, the process may be implemented using several sub-processes or as part of a larger macro-process. Therefore, those skilled in the art will understand that this disclosure should not be limited to the foregoing illustrative details but should be defined by the appended claims.

[0167] Additional Notes The topics described herein sometimes demonstrate different components contained within or connected to different other components. It should be understood that the architectures depicted are merely examples, and many other architectures can actually be implemented to achieve the same functionality. Conceptually, any arrangement of components to achieve the same functionality is effectively “associated” to achieve the desired function. Therefore, any two components combined in this document to achieve a specific function can be considered “associated” together to achieve the desired function, regardless of the architecture or intermediate components. Similarly, any two such associated components can also be considered “operably connected” or “operably coupled” together to achieve the desired function, and any two components that can be suchly associated can also be considered “operably coupled” together to achieve the desired function. Specific examples of operational coupling include, but are not limited to, physically connectable and / or physically interactive components and / or wirelessly interactive components and / or logically interactive and / or logically interactive components.

[0168] Furthermore, regarding the use of virtually any plural and / or singular terms in this document, a skilled person may appropriately translate from plural to singular and / or from singular to plural depending on the context and / or application. For clarity, various singular / plural permutations may be explicitly listed in this document.

[0169] Furthermore, those skilled in the art will understand that terms generally used herein, particularly in appended claims, such as the body of an appended claim, are generally considered "open" terms; for example, the word "comprising" should be interpreted as "including but not limited to," the word "having" should be interpreted as "at least having," and so on. Those skilled in the art will also understand that if a specific number of claim statements is intentional, such intention will be explicitly stated in the claims, and without such a statement, such intention does not exist. For example, to aid understanding, the following appended claims may contain the use of introductory phrases "at least one" and "one or more" to introduce claim statements. However, the use of these phrases should not be construed as implying that introducing claim statements with the indefinite article "a" or "an" limits any particular claim containing such an introductory claim statement to containing only one such statement, even if the same claim includes the introductory phrase "one or more" or "at least one" and indefinite articles such as "a" or "an," for example, "a" and / or "an" should be interpreted as "at least one" or "one or more"; the same applies to definite articles used to introduce claim statements. Furthermore, even when the specific number of claims is explicitly stated, those skilled in the art will recognize that such a statement should be interpreted as at least the number stated. For example, the simple statement "two statements" without any other modifiers means at least two statements, or two or more statements. Additionally, in cases where conventions such as "at least one A, B, and C, etc." are used, this structure is generally understood by those skilled in the art to mean the convention. For example, "a system having at least one A, B, and C" will include, but is not limited to, systems having a single A, a single B, a single C, A and B together, A and C together, B and C together, and / or A, B, and C together, etc. Similarly, in cases where conventions such as "at least one A, B, or C, etc." are used, this structure is generally understood by those skilled in the art to mean the convention. For example, "a system having at least one A, B, or C" will include, but is not limited to, systems having a single A, a single B, a single C, A and B together, A and C together, B and C together, and / or A, B, and C together, etc. Those skilled in the art will further understand that virtually any separating word and / or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to include one term, either term, or both terms. For example, the phrase “A or B” would be understood to include the possibility of “A” or “B” or “A and B”.

[0170] As can be understood from the foregoing, various embodiments of this disclosure have been described herein for illustrative purposes, and various modifications may be made without departing from the scope and spirit of this disclosure. Therefore, the various embodiments disclosed herein are not intended to be limiting, and the true scope and spirit are indicated by the following claims.

Claims

1. A video encoding / decoding method, comprising: Receive data for the current pixel block to be encoded or decoded into the current video image; The first prediction is generated using the current cross-component model of the current block; A second prediction is generated using cross-component model candidates selected from the cross-component model candidate list of the current block; A combined prediction is generated based on the first prediction and the second prediction; as well as Use the generated combination to predict whether to encode or decode the current block.

2. The video encoding / decoding method as claimed in claim 1, wherein the combined prediction is a weighted sum of the first prediction and the second prediction.

3. The video encoding / decoding method of claim 2, wherein the weights assigned to the first prediction and the second prediction are predefined, determined by the nearest prediction mode, or implicitly derived from the nearest template cost.

4. The video encoding / decoding method as described in claim 1, further comprising: Specify the cross-component prediction mode for the current block; The current cross-component model is derived based on the specified cross-component prediction mode of the current block; Identify a cross-component model candidate list for the current block; as well as Select the cross-component model candidate from the list of candidate cross-component models.

5. The video encoding / decoding method of claim 4, wherein the current cross-component model is derived based on the neighboring reconstructed samples of the current block or the predicted samples of the current block, which are identified by the specified cross-component prediction mode.

6. The video encoding / decoding method as described in claim 4, further comprising: Determine the specified cross-component prediction mode and whether to use the combined prediction to encode or decode the current block.

7. The video encoding / decoding method of claim 6, wherein the determination is explicitly indicated by a first syntax element that indicates the specified cross-component prediction mode and a second syntax element that indicates whether to use combined prediction to encode or decode the current block, wherein the first syntax element is indicated or parsed before the second syntax element.

8. The video encoding / decoding method of claim 6, wherein when using the combined predictive coding method to encode the current block, the first candidate in the candidate list is the selected cross-component model candidate.

9. The video encoding / decoding method of claim 4, wherein the specified cross-component prediction mode is implicitly derived.

10. The video encoding / decoding method as described in claim 1, further comprising: Determine whether to use the cross-component model candidate; as well as Determine whether to generate the combined prediction.

11. The video encoding / decoding method of claim 10, wherein a first syntax element indicating whether to use the selected cross-component model candidate is explicitly signaled, and a second syntax element indicating whether to use the combined predictive coding of the current block is explicitly signaled, wherein the first syntax element is signaled before the second syntax element.

12. The video encoding / decoding method of claim 1, wherein the current cross-component model is set to the same cross-component prediction mode as the selected cross-component model.

13. The video encoding and decoding method of claim 1, wherein when the selected cross-component model candidate and the current cross-component model have the same cross-component prediction mode, the combined prediction is generated by calculating the weighted average of the model parameters of the selected cross-component model candidate and the current cross-component model.

14. The video encoding / decoding method of claim 1, further comprising determining whether to use combined predictive encoding or decoding of the current block based on the size constraint of the current block.

15. An electronic device comprising: The video encoding / decoding circuit is configured to perform the following operations: Receive data for the current pixel block to be encoded or decoded into the current video image; The first prediction is generated using the current cross-component model of the current block; A second prediction is generated using cross-component model candidates selected from the cross-component model candidate list of the current block; A combined prediction is generated based on the first prediction and the second prediction; as well as Use the generated combination to predict whether to encode or decode the current block.

16. A video decoding method, comprising: Receive the data of the current pixel block to be decoded into the current image of the video; The first prediction is generated using the current cross-component model of the current block; A second prediction is generated using cross-component model candidates selected from the cross-component model candidate list of the current block; A combined prediction is generated based on the first prediction and the second prediction; as well as Use the generated combination of predictions to reconstruct the current block.

17. A video coding method, comprising: Receive data for the current pixel block to be encoded into the current image of the video; The first prediction is generated using the current cross-component model of the current block; A second prediction is generated using cross-component model candidates selected from the cross-component model candidate list of the current block; A combined prediction is generated based on the first prediction and the second prediction; as well as Use the generated combination to predict and encode the current block.