Method and apparatus for hiding bias terms in cross-component prediction model in video coding
By employing cross-component prediction modes that adjust bias term parameters and partially inherit in video encoding and decoding, especially convolutional cross-component models using gradient and position information, the problem of low efficiency in chroma sample prediction in existing technologies is solved, achieving more efficient video coding and lower computational complexity.
Patent Information
- Application Number
- CN202480020634.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-03-20
- Filing Date
- 2024-03-20
- Publication Date
- 2025-11-18
AI Technical Summary
Existing video encoding and decoding technologies suffer from low coding efficiency and high computational complexity in cross-component prediction, especially when processing chroma samples of video signals, where existing models struggle to effectively utilize the correlation between luminance and chroma samples.
By employing a cross-component prediction mode that adjusts bias term parameters and partially inherits, and by using a convolutional cross-component model (GL-CCCM) with gradient and positional information and multiple model variants, the prediction process for chroma samples is optimized, reducing computational complexity and improving coding efficiency.
By optimizing the cross-component prediction model, video coding efficiency was improved, computational complexity was reduced, and the prediction accuracy and coding performance of chroma samples were enhanced.
Smart Images

Figure CN120982099A_ABST
Abstract
Description
[0001] Cross-referencing
[0002] This invention is a non-provisional application of U.S. Provisional Patent Application No. 63 / 491,088, filed on March 20, 2023, and claims priority thereto. The entire U.S. Provisional Patent Application is incorporated herein by reference. [Technical Field]
[0003] This invention relates to video encoding and decoding systems that use cross-component prediction modes. In particular, this invention relates to cross-component prediction modes that use cross-component prediction candidates with adjusted bias term parameters or partial inheritance. [Background Technology]
[0004] Versatile Video Coding (VVC) is the latest international video coding standard developed by the ITU-T Video Coding Experts Group (VCEG) and the Joint Video Experts Team (JVET) of the International Organization for Standardization / International Electrotechnical Commission (ISO / IEC) Moving Picture Experts Group (MPEG). This standard has been published as an ISO standard: ISO / IEC 23090-3:2021, Information technology—Coding representation of immersive media—Part 3: Versatile video coding, published in February 2021. VVC was developed based on its predecessor, High Efficiency Video Coding (HEVC), which improved coding efficiency by adding more coding and decoding tools, while also being able to handle various types of video sources, including 3D video signals.
[0005] Figure 1AAn exemplary adaptive inter-frame / intra-frame video coding system incorporating loop processing is illustrated. For intra-frame prediction 110, the prediction data is derived from previously encoded video data in the current image. For inter-frame prediction 112, motion estimation (ME) is performed at the encoder, and motion compensation (MC) is performed based on the result of ME to provide prediction data derived from other images and motion data. Switch 114 selects either intra-frame prediction 110 or inter-frame prediction 112, and the selected prediction data is provided to adder 116 to form a prediction error, also known as a residual. The prediction error is then processed by transform (T) 118, followed by quantization (Q) 120. The transformed and quantized residual is then encoded by entropy encoder 122 and included in the video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packaged with additional information, such as motion and encoding / decoding modes associated with intra-frame and inter-frame prediction, and other information such as parameters associated with loop filters applied to the underlying image regions. Additional information related to intra-frame prediction 110, inter-frame prediction 112, and loop filter 130 is provided to entropy encoder 122, such as... Figure 1A As shown. When using inter-frame prediction mode, the reference image or image must also be reconstructed at the encoder end. Therefore, the transformed and quantized residuals are processed by inverse quantization (IQ) 124 and inverse transformation (IT) 126 to recover the residuals. The residuals are then added back to the prediction data 136 in the reconstruction module (REC) 128 to reconstruct the video data. The reconstructed video data can be stored in the reference picture buffer 134 for prediction of other frames.
[0006] like Figure 1AAs shown, the input video data undergoes a series of processes in the encoding system. The reconstructed video data from REC 128 may be subject to various impairments due to these processes. Therefore, a loop filter 130 is typically applied to the reconstructed video data, and then the reconstructed samples are stored in the reference image buffer 134 to improve video quality. For example, a deblocking filter (DF), a sample adaptive offset (SAO), and an adaptive loop filter (ALF) can be used. Loop filter information may need to be integrated into the bitstream so that the decoder can correctly recover the required information. Therefore, loop filter information is also provided to the entropy encoder 122 for integration into the bitstream. Figure 1A In the process, the loop filter 130 is applied to reconstruct the video, and then the reconstructed samples are stored in the reference image buffer 134. Figure 1A The system described herein is intended to demonstrate an exemplary structure of a typical video encoder. Figure 1A The system in the text may correspond to (HEVC) system, VP8, VP9, H.264 or VVC.
[0007] like Figure 1B As shown, the decoder can use the same or partially the same functional modules as the encoder, except for transform 118 and quantization 120, because the decoder only needs inverse quantization 124 and inverse transform 126. The decoder uses an entropy decoder 140 to decode the video bitstream into quantized transform coefficients and the required encoding / decoding information (e.g., ILPF information, intra-frame prediction information, and inter-frame prediction information). Intra-frame prediction 150 at the decoder end does not require mode search. Instead, the decoder only needs to generate intra-frame predictions based on the intra-frame prediction information received from the entropy decoder 140. Furthermore, for inter-frame prediction, the decoder only needs to perform (MC 152) based on the inter-frame prediction information received from the entropy decoder 140, without needing to perform motion estimation.
[0008] According to VVC, the input image is divided into non-overlapping square block regions called Coding Tree Units (CTUs), similar to HEVC. Each CTU can be further divided into one or more smaller Coding Units (CUs). The resulting CU partitions can be square or rectangular in shape. Furthermore, VVC divides the CTUs into Prediction Units (PUs), which serve as units for performing prediction processes such as inter-frame prediction and intra-frame prediction.
[0009] Compared to the HEVC standard, the VVC standard incorporates various new encoding and decoding tools to further improve encoding and decoding efficiency. The following is a review of some of the new tools related to this invention.
[0010] Cross-Component Linear Model (CCLM) Prediction
[0011] To reduce cross-component redundancy, VVC uses a (CCLM) prediction mode, which predicts chromaticity samples using a linear model based on reconstructed luminance samples from the same CU, as shown below:
[0012] pred C (i,j)=α·rec L ′(i,j)+ β (1)
[0013] Among them, pred C (i,j) represents the predicted chromaticity sample in CU, rec L ′(i,j) represents the down-sampling reconstructed luminance sample of the same CU.
[0014] The CCLM parameters (α and β) are derived from at most four neighboring chroma samples and the corresponding downsampled luminance samples. Assuming the current chroma block size is W×H, then W' and H' are set as follows:
[0015] When the CCLM_LT mode is applied, W' = W, H' = H;
[0016] When the CCLM_T mode is applied, W' = W + H;
[0017] When the CCLM_L mode is applied, H' = H + W.
[0018] The upper nearest neighbor positions are denoted as S[0,-1]…S[W'-1,-1], and the left nearest neighbor positions are denoted as S[-1,0]…S[-1,H'-1]. Then, the four selected samples are:
[0019] When CCLM_LT mode is applied and both the upper neighbor sample and the left neighbor sample are available, S[W' / 4,-1],S[3*W' / 4,-1],S[-1,H' / 4],S[-1,3*H' / 4];
[0020] When applying CCLM_T 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];
[0021] When CCLM_L mode is applied or 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].
[0022] Downsample four neighboring brightness samples at a selected location, and compare these four neighboring brightness samples 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 Their corresponding chromaticity sample values are represented as y. 0 A y 1 A y 0 B and y 1 B Then, x A x B y A and y B The derivation is as follows:
[0023] x A =(x 0 A +x 1 A +1)>>1;
[0024] x B =(x 0 B +x 1 B +1)>>1;
[0025] y A =(y 0 A +y 1 A +1)>>1;
[0026] y B =(y 0 B +y 1 B +1)>>1(2)
[0027] Finally, the linear model parameters α and β are obtained according to the following equations:
[0028]
[0029] β=Yb -α·X b (4)
[0030] Figure 2 This shows an example of the positions of the left and top samples, as well as the current block sample, included in the CCLM_LT mode. Figure 2 The relative sample positions of the N×N chromaticity block 210, the corresponding 2N×2N luminance block 220, and the neighboring samples (displayed as solid circles) of the N×N chromaticity block 210 and the 2N×2N luminance block 220 are shown.
[0031] The division operation for calculating the parameter α is implemented using a lookup table. To reduce the memory required to store the table, the diff values (the difference between the maximum and minimum values) and the parameter α are represented by an exponent. For example, diff is approximated as a 4-bit significant part and an exponent. Therefore, the table for 1 / diff is reduced to 16 elements, with 16 significant values as shown below:
[0032] DivTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}(5)
[0033] This will help reduce the complexity of the calculations and the memory size required to store the tables.
[0034] In addition to the upper and left templates being used together to calculate linear model coefficients, they can also be used alternately in two other LM modes, known as CCLM_T and CCLM_L modes.
[0035] In CCLM_T 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 CCLM_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.
[0036] In CCLM_LT mode, the left and top templates are used to calculate the linear model coefficients.
[0037] To match the chroma sample positions in 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 corresponding to "type-0" content and "type-2" content are as follows:
[0038] Rec L ′(i,j)=[rec L (2i-1,2j-1)+2·rec L (2i,2j-1)+recL (2i+1,2j-1)+rec L (2i-1,2j)+2·rec L (2i,2j)+rec L (2i+1,2j)+4]>>3(6)
[0039] Rec L ′(i,j)=rec L (2i,2j-1)+rec L (2i-1,2j)+4·rec L (2i,2j)+rec L (2i+1,2j)+rec L (2i,2j+1)+4]》3 (7)
[0041] Note that when the upper reference line is located at the CTU boundary, only one luminance line (the general line buffer in intra-frame prediction) is used to generate downsampled luminance samples.
[0042] This parameter calculation is performed as part of the decoding process, not just as part of the encoder's search operation. Therefore, no syntax is used to pass the α and β values to the decoder.
[0043] For chroma intra-mode encoding and decoding, a total of eight chroma intra-mode encoding and decoding are allowed. These modes include five traditional intra-modes and three cross-component linear model modes (CCLM_LT, CCLM_T, and CCLM_L). The chroma mode signaling and derivation process are shown in Table 1. Chroma mode encoding and decoding directly depend on the intra-prediction mode of the corresponding luma block. Since the independent block partitioning structure of luma and chroma components is used in Table 1, 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.
[0044] Table 1. Deriving Chroma Prediction Mode from Luminance Mode when CCLM is Enabled
[0045]
[0046] Regardless of the value of sps_cclm_enabled_flag, a single binary table is used, as shown in Table 2.
[0047] Table 2. Unified Binarization Table for Colorimetric Prediction Models
[0048]
[0049]
[0050] In Table 2, the first binary bit indicates whether it is normal mode (0) or CCLM mode (1). If it is CCLM mode, the next binary bit indicates whether it is CCLM_LT (0). If it is not CCLM_LT, the next binary bit indicates whether it is CCLM_L (0) or CCLM_T (1). In this case, when sps_cclm_enabled_flag is 0, the first binary bit of the binarized table corresponding to intra_chroma_pred_mode can be discarded before entropy encoding and decoding. In other words, the first binary bit is inferred to be 0 and therefore not encoded. This single binarized table is used for cases where sps_cclm_enabled_flag equals 0 and 1. The first two binary bits in Table 2 are content-encoded using their own context model, and the remaining binary bits are side-encoded.
[0051] Furthermore, to reduce luma-chroma latency in dual trees, when the 64x64 luma codec tree node is not split (and ISP or QT splitting is not used for the 64x64 CU), CCLM is allowed in the chroma CU of the 32x32 / 32x16 chroma codec tree node, as follows:
[0052] If a 32x32 chroma node is not segmented or is segmented into a QT segment, then all chroma CUs in the 32x32 node can use CCLM;
[0053] 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.
[0054] Under the condition of splitting all other luma and chroma codec trees, the chroma CU is not allowed to use CCLM.
[0055] Multi-model CCLM (MMLM)
[0056] In JEM (J. Chen, E. Alshina, G. S. Jullivan, J.-R. Ohm, and J. Boyce, Algorithm Description for Joint Exploration Test Model 7, Document JVET-G1001, ITU-T / ISO / IEC Joint Video Exploration Team (JVET), July 2017), a multiple model CCLM mode (MMLM) was proposed to predict chroma samples of the entire CU from luminance samples using two models. In MMLM, neighboring luminance and chroma samples of the current block are classified into two groups, each used as a training set to derive a linear model (i.e., derive specific α and β for a specific group). Furthermore, samples of the current luminance block are also classified based on the same rules to classify neighboring luminance samples. Three MMLM model modes (MMLM_LT, MMLM_T, and MMLM_L) are allowed to select neighboring samples from the left and top, top only, and left only, respectively.
[0057] Figure 3 This shows an example of classifying neighboring samples into two groups. The threshold is calculated as the average of the neighboring reconstructed brightness samples. Neighboring sample Rec′ L [x,y]≤threshold is classified as group 1; while neighboring sample Rec′ L The threshold [x,y] is classified as group 2.
[0058] If Rec′ L ≤threshold, Pred c [x,y]=α1×Rec′ L +β1;
[0059] If Rec′ L Threshold, Pred c [x,y]=α2×Rec′ L +β2 (8)
[0060] Therefore, MMLM uses two models based on the sample level of neighboring samples.
[0061] Slope adjustment of CCLM
[0062] CCLM uses a two-parameter model to map luminance values to chrominance values, such as... Figure 4A As shown. The slope parameter "a" and the bias parameter "b" define the following mapping:
[0063] chromaVal = a * lumaVal + b
[0064] like Figure 4B As shown, the adjustment of the slope parameter "u" is signaled to update the model in the following form:
[0065] chromaVal = a'*lumaVal+b'
[0066] in:
[0067] a'=a+u,
[0068] b'=bu*y r
[0069] Through this selection, the mapping function revolves around a value with brightness y. r The point is tilted or rotated. The average value of the reference brightness sample used for model creation is y. r This is so that meaningful modifications can be made to the model. Figure 4A and Figure 4B The process is explained.
[0070] Implementation of CCLM slope adjustment
[0071] The slope adjustment parameter is provided as an integer between -4 and 4 (inclusive) and is signaled in the bitstream. The unit of the slope adjustment parameter is 1 / 8 of the chroma sample value per luminance sample value (for 10-bit content).
[0072] The adjustment applies to CCLM models that use reference samples above and to the left of the block (e.g., "LM_CHROMA_IDX" and "MMLM_CHROMA_IDX"), but not to "one-sided" modes. This choice is based on a trade-off between encoding / decoding efficiency and complexity. "LM_CHROMA_IDX" and "MMLM_CHROMA_IDX" refer to CCLM_LT and MMLM_LT in this invention. "One-sided" modes refer to CCLM_L, CCLM_T, MMLM_L, and MMLM_T in this invention.
[0073] When slope adjustment is applied to a multi-mode CCLM model, two models can be adjusted, so for a single chroma block, at most two slope update values can be signaled.
[0074] CCLM slope adjustment encoder method
[0075] The proposed encoder method performs an absolute transform sum of differences (SATD) search to find the optimal slope update value for Cr, and a similar SATD search for Cb. If either result is a non-zero slope adjustment parameter, the combined slope adjustment pair (SATD-based update value for Cr, SATD-based update value for Cb) is included in the rate-distortion (RD) checklist of the TU.
[0076] Convolutional Cross-Component Model (CCCM)
[0077] In this method, CCCM is applied to predict chromaticity samples from reconstructed luminance samples, with a similar aim to the current CCLM model. As with CCLM, when using chromaticity subsampling, the reconstructed luminance samples are downsampled to match a lower-resolution chromaticity grid. Similar to CCLM, top, left, or top and left reference samples are used as templates for model derivation.
[0078] Similarly, like CCLM, CCCM can be configured to use either a single model or a multi-model variant. The multi-model variant uses two models: one for samples above the average luminance reference value and the other for the remaining samples (following the design principles of CCLM). The multi-model CCCM mode can be selected for PUs with at least 128 available reference samples.
[0079] The convolutional model has a 7-tap filter, consisting of a 5-tap plus sign spatial component, a nonlinear term, and a bias term. The input to the 5-tap spatial component of the filter consists of a center (C) luminance sample co-located with the chrominance sample to be predicted, and its upper / north (N), lower / south (S), left / west (W), and right / east (E) adjacent samples, as shown below. Figure 5 As shown.
[0080] The nonlinear term (denoted as P) is represented as the square of the center brightness sample C, scaled according to the range of sample values for the content:
[0081] P = (C * C + midVal) >> bitDepth
[0082] For example, for 10-bit content, the nonlinear term is calculated as follows:
[0083] P = (C * C + 512) >> 10
[0084] The offset 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).
[0085] The output of the filter is calculated as the filter coefficients c. i Convolve the input values and crop them to the range of valid chromaticity samples:
[0086] predChromaVal=c0C+c1N+c2S+c3E+c4W+c5P+c6B
[0087] Filter coefficients c iIt is calculated by minimizing the MSE between the predicted and reconstructed chromaticity samples in the reference region. Figure 6 An example of a reference area is shown, consisting of six rows of chroma samples above and to the left of the PU. The reference area extends to the right by one PU width and downwards by one PU height. The area is adjusted to contain only the available samples. This expansion of the area (labeled "padding") is to support... Figure 5 The "side samples" of the cross-shaped spatial filter are filled in the unavailable areas.
[0088] MSE minimization is performed by calculating the autocorrelation matrix of the luminance input and the cross-correlation vector between the luminance input and chrominance output. Several known methods exist for solving the MSE minimization problem. For example, the autocorrelation matrix can be decomposed using LDL and the final filter coefficients can be calculated using back-substitution. This process roughly follows the calculation of ALF filter coefficients in the Enhanced Compression Model (ECM), used in the development of emerging video codec standards, but LDL decomposition is chosen instead of Cholesky decomposition to avoid the use of square root operations. The MSE minimization problem can also be solved using Gaussian elimination.
[0089] Gradient Linear Model (GLM)
[0090] For the YUV 4:2:0 color format, the GLM method can be used to predict chromaticity samples from luminance sample gradients. This method supports two modes: two-parameter GLM mode and three-parameter GLM mode.
[0091] Compared to CCLM, GLM uses the gradient of luminance samples to derive a linear model, rather than downsampling luminance values. 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 (e.g., parameter derivation, linear transformation of predicted samples) remain unchanged.
[0092] C = α·G + β
[0093] In a three-parameter GLM, chromaticity samples can be predicted using different parameters based on the luminance sample gradient and downsampled luminance values. The model parameters of the three-parameter GLM are derived from neighboring samples in 6 rows and columns using the MSE minimization method of LDL decomposition, as used in CCCM.
[0094] C = α0·G + α1·L + α2·β
[0095] For signaling, when the current CU has CCLM mode enabled, a flag is issued to indicate whether GLM is enabled for the Cb and Cr components; if GLM is enabled, another flag is issued to indicate which GLM mode has been selected, and a syntax element is further issued to select one of the four gradient filters used for gradient calculation. Figure 7 (Gradient filters 710-740 in the text).
[0096] Bitstream signaling
[0097] The use of the mode is signaled via a CABAC-encoded PU-level flag. A new CABAC content is included to support this. During signaling, CCCM is considered a sub-mode of CCLM. That is, the CCCM flag is only emitted when the intra-prediction mode is LM_CHROMA.
[0098] Spatial candidate derivation
[0099] The spatial merge candidate derivation in VVC is the same as that in HEVC, except that the positions of the first two merge candidates are swapped. Currently, CU 810 has a maximum of four merge candidates (B... 0, A 0, B1 and A1) from Figure 8 Choose from the candidates depicted in the diagram. The derivation order is B. 0, A 0, B 1, A1 and B2. Position B2 is considered only if one or more adjacent CUs of positions B0, A0, B1, and A1 are unavailable (e.g., belonging to another slice or tile) or if it is intra-frame coding. After a candidate for position A1 is added, the addition of the remaining candidates requires a redundancy check to ensure that candidates with the same motion information are excluded from the list, thereby improving encoding and decoding efficiency. To reduce computational complexity, not all possible candidate pairs are considered in the above redundancy check. Instead, only... Figure 9 The pairs are linked by arrows, and a candidate is added to the list only if the corresponding candidate used for redundancy checking does not have the same motion information.
[0100] Time Candidate Derivation
[0101] In this step, only one candidate is added to the list. Specifically, in the temporal merging candidate derivation of the current CU 1010, a scaling motion vector is derived based on the co-located CU 1020 belonging to the co-located reference image, such as... Figure 10 As shown. The list of reference images and reference indices used for co-location CU derivation are explicitly signaled in the slice header. The scaled motion vectors of the time-merging candidates are shown in Figure 1030. Figure 10As shown by the dashed lines, the distances tb and td are obtained by scaling the motion vector 1040 of the co-located CU using the Picture Order Count (POC) distances tb and td, where tb is defined as the POC difference between the current image and the reference image, and td is defined as the POC difference between the co-located image and the reference image. The reference image index of the temporal merging candidate is set to zero.
[0102] The position of the time candidate is selected between candidate C0 and C1, such as... Figure 11 As shown. If the CU at position C0 is unavailable, is intra-coded, or is outside the current CTU line, then position C1 is used. Otherwise, position C0 is used in the derivation of the time-merging candidate.
[0103] Non-adjacent spatial candidates
[0104] During the development of the VVC standard, a codec tool called Non-Adjacent Motion Vector Prediction (NAMVP) was proposed in JVET-L0399 (Yu Han et al., “CE4.4.6: Improvement on Merge / Skip mode”, Joint Video Exploration Team (JVET) Meeting 12, ITU-T SG 16WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11: Macau, China, October 3-12, 2018, Document: JVET-L0399). According to NAMVP technology, non-adjacent spatial merge candidates are inserted after the TMVP (Temporal MVP) in the regular merge candidate list. The spatial merge candidate pattern is as follows... Figure 12 As shown. The distance between a non-adjacent spatial candidate and the current codec block is based on the width and height of the current codec block. Figure 12 In this model, each small square corresponds to a NAMVP candidate, and the candidates are sorted by distance (as shown by the numbers within the square). Row buffering constraints do not apply. In other words, NAMVP candidates far from the current block may need to be stored, which could require a large buffer.
[0105] This invention discloses a method and apparatus for improving the encoding and decoding performance of cross-component prediction by using adjusted bias term parameters or by using a partially inherited cross-component prediction mode. [Summary of the Invention]
[0106] A method and apparatus for video encoding and decoding using an encoding / decoding tool comprising one or more patterns associated with a cross-component model are disclosed. According to one method, input data associated with a current block, including a first color block and a second color block, wherein the input data includes encoding / decoding data associated with the current block, the encoding / decoding data being decoded at a decoder. Stored adjustment bias parameters are retrieved. One or more offset values of one or more of n input items associated with a cross-component prediction (CCP) model are determined, wherein each of the one or more offset values is determined for one or more of the n input items. A derived adjustment bias is derived, corresponding to a combination of a weighted bias and one or more weighted offset values associated with one or more of the n input items, wherein the weighted bias corresponds to a bias weighted by the stored adjustment bias parameters, and the one or more weighted offset values correspond to the one or more offset values weighted by one or more model parameters respectively. Determine the derivation adjustment bias term parameters associated with the derivation adjustment bias term, wherein the derivation adjustment bias term corresponds to the bias term weighted by the derivation adjustment bias term parameters. Decode the second color patch using prediction candidates, wherein such prediction candidates include a cross-component predictor generated by applying the CCP model to the first color patch, wherein the CCP model includes the derivation adjustment bias term parameters.
[0107] In one embodiment, the CCP model corresponds to a gradient and location based convolutional cross-component model (GL-CCCM). In one embodiment, the one or more offset values include horizontal and vertical offset values, which correspond to the offset of the top-left corner position of the current block relative to the top-left corner positions of neighboring reference regions, and wherein such neighboring reference regions are used to derive at least some information related to the CCP model.
[0108] In one embodiment, all or part of the one or more offset values are determined based on information including proximity information. For example, such proximity information may include the values of one or more neighboring samples, the availability of the one or more neighboring samples, the total number of available reference lines, or a combination thereof. In one embodiment, if the target offset value is derived solely based on such proximity information, then the target offset value is included in the derivation adjustment bias term. In one embodiment, if the target offset value is not derived solely based on such proximity information, then the target offset value is explicitly stored. In one embodiment, the one or more offset values correspond to one or more reference samples outside the top-left corner of the current block.
[0109] The corresponding method at the encoder end is also disclosed. At the encoder end, input data related to the current block, including a first color block and a second color block, is received, wherein such input data includes pixel data related to the current block, which will be encoded at the encoder end. Model parameters are derived for a CCP model, wherein the CCP model corresponds to a weighted sum of n input items, includes a bias term, and n is an integer greater than 1. One or more offset values are determined for one or more of the n input items, wherein each of the one or more offset values is determined for one or more of the n input items. An adjusted weighted bias term is determined by combining the weighted bias term and the one or more offset values, which are respectively weighted by one or more model parameters. An adjusted bias term parameter is determined, wherein the adjusted weighted bias term corresponds to the bias term scaled by the adjusted bias term parameter. The adjusted bias term parameter is stored for processing subsequent blocks. The second color block is encoded using prediction candidates, wherein such prediction candidates include a cross-component predictor generated by applying the CCP model to the first color block.
[0110] A method and apparatus for generating CCP candidates using partially inherited CCP candidates. According to the method, a candidate list is derived, comprising at least one partially inherited CCP candidate, wherein some parameters of the at least one partially inherited CCP candidate are inherited, and the remaining parameters of the at least one partially inherited CCP candidate are derived using neighboring first color samples and neighboring second color samples. The second color patch is encoded or decoded using information including a predictor, wherein the predictor generates the first color patch by applying a CCP model corresponding to the at least one partially inherited CCP candidate. [Attached Image Description]
[0111] Figure 1A An exemplary adaptive inter-frame / intra-frame video encoding and decoding system is demonstrated, which includes loop processing.
[0112] Figure 1B Showing Figure 1A The corresponding decoder for the encoder.
[0113] Figure 2 This shows examples of the left and top samples contained in the CCLM_LT mode, as well as sample positions in the current block.
[0114] Figure 3 An example is shown where neighboring samples are classified into two groups.
[0115] Figure 4A An example of the CCLM model is shown.
[0116] Figure 4BThis demonstrates an example of the effect of the slope adjustment parameter "u" used for model updates.
[0117] Figure 5 An example of the spatial portion of a convolutional filter is shown.
[0118] Figure 6 An example of a reference region containing padding is shown for deriving filter coefficients.
[0119] Figure 7 Four gradient modes of GLM are shown.
[0120] Figure 8 Neighboring blocks used to derive VVC space merge candidates are shown.
[0121] Figure 9 This demonstrates possible candidate pairs for considering redundancy checks in VVC.
[0122] Figure 10 An example of time candidate derivation is shown, in which a scaled motion vector is derived from the POC distance.
[0123] Figure 11 It shows the position of the time candidate selected between candidate C0 and C1.
[0124] Figure 12 An exemplary pattern of non-adjacent spatial merging candidates is shown.
[0125] Figure 13 An example of hiding the horizontal and vertical offsets of the GL-CCCM according to an embodiment of the present invention is shown.
[0126] Figure 14 A flowchart illustrating an exemplary video decoding system using adjusted bias term parameters according to an embodiment of the present invention is shown.
[0127] Figure 15 A flowchart illustrating an exemplary video coding system using adjusted bias term parameters according to an embodiment of the present invention is shown.
[0128] Figure 16 A flowchart illustrating an exemplary video codec system using partially inherited CCP candidates according to an embodiment of the present invention is provided.
Detailed Implementation Methods
[0129] It will be readily understood that the components of the present invention, as generally described and illustrated in the figures, can be arranged and designed in various different configurations. Therefore, the following more detailed description of embodiments of the systems and methods of the present invention, as illustrated in the figures, is not intended to limit the scope of the invention as defined in the claims, but is merely representative of selected embodiments of the invention. References throughout this specification to “an embodiment,” “one embodiment,” or similar language mean that a particular feature, structure, or characteristic may be included in at least one embodiment of the invention in the description relating to that embodiment. Therefore, the phrases “in one embodiment” or “in one embodiment” appearing in various places in this specification do not necessarily refer to the same embodiment.
[0130] Furthermore, the described features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. However, those skilled in the art will recognize that the invention can be practiced without one or more specific details, or using other methods, components, etc. In other instances, well-known structures or operations have not been shown or described in detail to avoid obscuring aspects of the invention. Embodiments of the invention will be best understood by referring to the accompanying drawings, in which similar parts are designated with similar numerals throughout. The following description is merely illustrative and simply illustrates certain selected apparatus and method embodiments consistent with the invention claimed herein.
[0131] The following methods aim to improve the performance of video codec systems that use Cross-Component Prediction (CCP) models.
[0132] Remove fixed offsets from luminance and chrominance samples
[0133] The autocorrelation matrix is calculated using reconstructed values from luma and chromaticity samples. These samples are full-range (e.g., between 0 and 1023 for 10-bit content), resulting in relatively large values in the autocorrelation matrix. This necessitates high bit depth operations during model parameter calculation. A method is disclosed in JVET-AB0174 (Alireza Aminlou et al., “AHG12: Division-free operation and dynamic range reduction for convolutional cross-component model (CCCM)”, ITU-TSG 16WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11 Joint Video Exploration Team (JVET), 28th Meeting, Mainz, Germany, October 20-28, 2022, document: JVET-AB0174) to remove a fixed offset from the luma and chromaticity samples in each PU of each model. This is to reduce the size of the values used for model creation and allow for a reduction in the precision required for fixed-point arithmetic. The result is the use of 16-bit fractional precision, instead of the 22-bit precision of the original CCCM implementation.
[0134] Reference sample values outside the top left corner of the PU are used as offsets (offsetLuma, offsetCb, and offsetCr) to simplify processing. These fixed values reduce the sample values used in model creation and final prediction (i.e., luminance and chrominance in the reference region, and luminance in the current PU), as follows:
[0135] C' = C – offsetLuma;
[0136] N' = N – offsetLuma;
[0137] S' = S – offsetLuma;
[0138] E' = E – offsetLuma;
[0139] W' = W – offsetLuma;
[0140] P' = nonLinear(C');
[0141] B=midValue=1<<(bitDepth-1).
[0142] Chromaticity values are predicted using the following equations, where offsetChroma is equal to the offsetCr and offsetCb of the Cr and Cb components, respectively:
[0143] predChromaVal=c0C'+c1N'+c2S'+c3E'+c4W'+c5P'+c6B+offsetChroma
[0144] To avoid any additional sample-level operations, the luminance offset is removed during luminance reference sample interpolation. This is achieved by replacing the rounding term used in the luminance reference sample interpolation with an updated offset that includes the rounding term and offsetLuma. The chrominance offset can be removed by directly subtracting the chrominance offset from the reference chrominance sample. Alternatively, the effect of the chrominance offset can be removed from the cross-component vector, yielding the same result. To add the chrominance offset back to the output of the convolutional prediction operation, the chrominance offset is added to the bias term of the convolutional model.
[0145] The calculation of CCCM model parameters requires division operations. Division operations are not always considered easy to implement. Therefore, division operations are replaced with multiplication (with a scaling factor) and shift operations, where the scaling factor and the number of shifts are calculated based on the denominator, similar to the method used in CCLM parameter calculations.
[0146] Gradient and Location Based Convolutional Cross-Component Model (GL-CCCM)
[0147] A GL-CCCM method is disclosed in JVET-AC0054 (Ramin G. Youvalari et al., “EE2-1.12: Gradient and location-based convolutional cross-component model (GL-CCCM) for intra-frame prediction,” ITU-TSG 16WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11 Joint Video Exploration Team (JVET), 29th meeting, via teleconference, January 11-20, 2023, document: JVET-AC0054), which uses gradient and location information instead of the four spatially neighboring samples in the CCCM filter. The GL-CCCM filter used for prediction is:
[0148] predChromaVal=c0C+c1G y +c2G x +c3Y+c4X+c5P+c6B,
[0149] Among them G y and G x These are the vertical and horizontal gradients, calculated as follows:
[0150] G y =(2N+NW+NE)–(2S+SW+SE)
[0151] G x = (2W+NW+SW)–(2E+NE+SE)
[0152] In addition, the Y and X parameters are the vertical and horizontal positions of the center brightness sample.
[0153] The remaining parameters are the same as those in the CCCM tool. The reference area for parameter calculation is the same as that in the CCCM method.
[0154] The mode is used for signaling via CABAC-encoded PU-level flags. To support this functionality, a new CABAC content has been added. In terms of signaling, GL-CCCM is considered a sub-mode of CCCM. That is, the GL-CCCM flag is only transmitted if the original CCCM flag is true.
[0155] Cross-component model (CCM) parameter reduction methods
[0156] CCM-related information (e.g., model parameters, model type, template region, etc.) is stored in a buffer for use in Cross-Component Prediction (CCP) merging mode or other similar encoding / decoding tools. CCP merging mode refers to a tool that inherits CCP models from neighboring blocks. In CCP merging mode, a candidate list is constructed by including various types of candidates, a candidate is selected from the list, and a prediction is generated based on the selected candidate. These candidate types include, but are not limited to, spatial candidates, temporal candidates, non-adjacent spatial candidates, and history-based candidates. Spatial candidates correspond to CCM-related information inherited from directly neighboring blocks at predefined locations. For example, the predefined location is the same as the spatial merging candidate location in the inter-frame merging mode described in the "Spatial Candidate Derivation" section. Temporal candidates are CCM-related information inherited from predefined locations in previously encoded images / segments. For example, the predefined location and the previously encoded image are the same as the temporal merging candidate in the inter-frame merging mode described in the "Temporal Candidate Derivation" section. Non-adjacent spatial candidates are CCM-related information inherited from predefined locations that are not directly adjacent to the current block. For example, the predefined location and the previously encoded image are the same as the non-adjacent spatial candidate in the inter-frame merging mode described in the "Non-Adjacent Spatial Candidates" section. Historical candidates are candidates retrieved from a historical list that stores CCM-related information for previously encoded blocks.
[0157] CCM-related information may include, but is not limited to: prediction mode (e.g., CCLM, MMLM, CCCM, 2-parameter GLM, 3-parameter GLM), model index indicating which model shape is used in the convolutional model, classification threshold for multiple models, information indicating whether non-downsampled samples are used in the convolutional model, downsampling filter flag, downsampling filter index when using multiple downsampling filters, neighboring row number used to derive the model, template type used to derive the model, post-processing filter flag and / or model parameters.
[0158] However, in the worst case, each 4x4 block needs to store a set of CCP information, which can lead to significant implementation costs, especially in the part storing CCP model parameters. For example, in the ECM implementation, the CCCM parameters are data types of 64-bit integers. Therefore, this disclosure proposes some methods for bit depth reduction for CCP parameters.
[0159] The bit depth reduction method can be applied to the integer or fractional part of the CCP parameter.
[0160] In one embodiment, a pruning operation can be applied to the integer portion of the CCP parameter as a bit depth reduction method, and there can be one or more pruning thresholds. In one embodiment, the pruning threshold can be a predefined value, one of several predefined values in a lookup table, or an implicitly deduced value.
[0161] In one embodiment, the pruning threshold for all CCP parameters can be the same. In another embodiment, the pruning threshold for each CCP parameter can be completely different or partially different. In yet another embodiment, the pruning threshold for each parameter type (e.g., spatial term, gradient term, nonlinear term, position term, or bias term, etc.) can be completely different or partially different.
[0162] In one embodiment, rounding can be used on the fractional part of the CCP parameter as a bit depth reduction method. In another embodiment, rounding up or rounding down can be used on the fractional part of the CCP parameter as a bit depth reduction method.
[0163] In one embodiment, all CCP parameters may have the same rounding precision. In another embodiment, the rounding precision of each CCP parameter may be completely different or partially different. In yet another embodiment, the rounding precision of each parameter type (e.g., spatial term, gradient term, nonlinear term, position term, or bias term, etc.) may be completely different or partially different.
[0164] In one embodiment, a pruning operation can be used in bit depth reduction. If the CCP parameter is less than a pruning threshold, the parameter will be set to zero. In one embodiment, there may be one or more pruning thresholds, and the pruning threshold may be a predefined value, one of several predefined values in a lookup table, or an implicitly deduced value.
[0165] In one embodiment, the pruning threshold for all CCP parameters can be the same. In another embodiment, the pruning threshold for each CCP parameter can be completely different or partially different. In yet another embodiment, the pruning threshold for each parameter type (e.g., spatial term, gradient term, nonlinear term, position term, or bias term, etc.) can be completely different or partially different.
[0166] In one embodiment, a quantization method can be used to reduce the precision of the CCP parameter.
[0167] In one embodiment, the original fixed-point CCP parameter can be converted to a floating-point data type, and then its precision can be further reduced in the floating-point data type.
[0168] In one embodiment, after precision reduction, all CCP parameters in a CCP model can have the same bit depth. In another embodiment, after precision reduction, all CCP parameters in a CCP model can have completely different or partially different bit depths.
[0169] In one embodiment, the reduced bit depth can depend on the block size. If the block size is large, the reduced CCP parameter can have a larger bit depth. Otherwise, if the block size is small, the reduced CCP parameter can have a smaller bit depth.
[0170] CCP information and reduced-precision CCP parameters stored in a buffer can be used in CCP-related codecs. In one embodiment, spatial candidates for CCP merging patterns can inherit reduced-precision CCP parameters stored in a buffer. In another embodiment, non-adjacent candidates for CCP merging patterns can inherit reduced-precision CCP parameters stored in a buffer. In yet another embodiment, temporal candidates for CCP merging patterns can inherit reduced-precision CCP parameters stored in a buffer. In yet another embodiment, CCP information with reduced-precision CCP parameters can be stored in a CCP history list.
[0171] Improve the accuracy of CCP parameters that have been reduced in precision.
[0172] This study reveals some methods to improve the accuracy of CCP parameters that have been reduced in precision after inheritance or selection by CCP-related codec tools.
[0173] Proximity information can be used to improve the accuracy of CCP parameters that have suffered from reduced precision. In one embodiment, the improvement in accuracy can be determined by comparing the template matching (TM) costs of neighboring template regions, using methods such as SAD or SATD. In another embodiment, the improvement in accuracy can be determined by using a boundary matching method.
[0174] In one embodiment, the adjacent template region used for the accuracy improvement method can be related to the template type in the CCP information. For example, if the CCP mode is CCLM_LT, both the top and left templates can be used simultaneously.
[0175] In one embodiment, the accuracy enhancement method can be applied to all CCP parameters. In another embodiment, the accuracy enhancement method can be applied to only some CCP parameters. For example, only the accuracy of the bias term parameter can be improved.
[0176] Hides the offset based on proximity information in the bias term
[0177] CCM can also include information about the surrounding environment. This environment information may include the values of neighboring samples, and / or the availability of neighboring samples, and / or the number of available reference lines. Proximity information can be used to derive offsets applied to all or some items in the CCM. For example, as described in the "GL-CCCM" section, the position items X and Y are the horizontal and vertical distances from the top-left corner of the reference area. Figure 13 As shown, assuming the origin of the local coordinates (i.e., (0,0)) is located at the top-left corner of the current block, if the number of available left reference lines and available top reference lines are m1 and n1 respectively, then the local x and y coordinates are offset by m1 and n1 respectively to derive the X and Y values. That is, the X and Y values at the current block position (0,0) are 0+m1 and 0+n1. For another example, the reference sample value is located outside the top-left corner of the PU, as offsets (offsetLuma, offsetCb, and offsetCr). The sample value is then offset by these fixed values:
[0178] C'=C-offsetLuma,N'=N-offsetLuma,S'=S-offsetLuma,E'=E-offsetLuma,W'=W-offsetLuma,P'=nonLinear(C'),B=midValue=1<<(bitDepth-1)
[0179] When inheriting a model, the neighbor information of the current block will differ from that of the inherited block, requiring the neighbor information to be stored. This information can be explicitly stored as part of the CCM. For example, the number of available reference lines, m1 and n1, and / or the values of offsetLuma, offsetCb, and offsetCr can be stored directly. However, this increases the buffer required for storing the CCM. This disclosure proposes a method to hide the offset information within the CCM bias term parameters, thus eliminating the need for additional buffer space to store offsets based on neighbor information. First, the model parameters are adjusted when storing the CCP model. Second, the model parameters are adjusted again when the CCP model is inherited. Third, when generating predictions based on the inherited model, the inherited model is now used in the same way as the CCP model derived from neighbor samples of the current block.
[0180] Suppose that the general representation of a cross-component model with n input items is as follows:
[0181] predChromaVal=c0L0+c1L1+c2L2+…+c n-2 L n-2 +c n-1 B
[0182] Where c i These are model parameters, L i B is a value derived from a luminance sample or other type of input value (e.g., a position term), and B is an offset term. For example, for a typical CCCM:
[0183] predChromaVal=c0C+c1N+c2S+c3E+c4W+c5P+c6B
[0184] Where L0 = C, L1 = N, L2 = S, ..., L5 = P.
[0185] For another example, for GL-CCCM (as described in the "GL-CCCM" section):
[0186] predChromaVal=c0C+c1G y +c2G x +c3Y+c4X+c5P+c6B
[0187] Where L0 = C, L1 = G y L2=G x ,…,L5=P.
[0188] Let the offset of the i-th term be O. i L i =L' i +O i., Among them L' iThis is a local value of the current block or an input value before the offset is applied. A local value is a value derived based on local sample values (brightness values, gradient values, ...) and / or local coordinates. For example, consider GL-CCCM (as described in the "GL-CCCM" section):
[0189] X = X' + m1, Y = Y' + n1
[0190] Where X' and Y' are the local coordinates of the current block, L'3 = Y', O3 = n1, L'4 = X', and O4 = m1.
[0191] When storing CCM parameters, it is not necessary to explicitly store O. i It can be done through c i O i / B Adjust the bias term parameter c n-1 , value c m-1_stored =c n-1 +∑c i O i / B is stored as a bias parameter, not c. n-1 When CCM parameters are inherited, it is assumed that the offset of the i-th item in the current block is O'. i O' i Not necessarily equal to O i This is because the offset is derived based on proximity information. Then the bias term parameter is re-derived as c. n-1_derived =c n-1_stored -∑c i O′ i / B.
[0192] Take GL-CCCM (as described in the "GL-CCCM" section) as an example:
[0193] predChromaVal=c0C+c1G y +c2G x +c3(Y'+n1)+c4(X'+m1)+c5P+c6B
[0194] =c0C+c1G y +c2G x +c3Y'+c4X'+c5P+c6B+c3n1+c4m1
[0195] =c0C+c1G y +c2G x +c3Y'+c4X'+c5P+(c6+c3n1 / B+c4m1 / B)B
[0196] =c0C+c1G y +c2G x +c3Y'+c4X'+c5P+c 6_storedB,
[0197] Then, c 6_stored =(c6+c3n1 / B+c4m1 / B) is stored in the position of the bias term parameter, not c6. When inheriting the CCM model, assuming the number of available left and top reference lines of the current block are u and v respectively, the derivation of the bias term parameter of the inherited model is as follows:
[0198] predChromaVal=c0C+c1G y +c2G x +c3Y'+c4X'+c5P+c 6_stored B
[0199] =c0C+c1G y +c2G x +c3(Y'+v)+c4(X'+u)+c5P+c 6_stored B-c3v-c4u
[0200] =c0C+c1G y +c2G x +c3Y+c4X+c5P+(c 6_stored -c3v / B-c4u / B)B
[0201] =c0C+c1G y +c2G x +c3Y+c4X+c5P+c5P+c 6_derived B
[0202] c 6_derived= c6+c3v / B+c4u / B are the newly derived bias term parameters. The GL-CCCM model applied to the inheritance of the current block is c0C+c1G. y +c2G x +c3Y+c4X+c5P+c5P+c 6_derived B.
[0203] In one embodiment, all or part of the offset terms (e.g., Oi and O'i described in the preceding paragraphs) are determined based on information including proximity information. Proximity information may include, but is not limited to, the values of neighboring samples, and / or the availability of neighboring samples, and / or the number of available reference lines.
[0204] In one sub-implementation, offsets determined solely based on proximity information are included in the bias term parameters. Offsets not determined solely based on proximity information are explicitly stored as part of the CCM information. When the inherited CCM information is applied, the bias term parameters are adjusted only based on the model parameters and offset values associated with the offsets determined solely based on proximity information. Inputs associated with offsets determined solely based on proximity information will have their offsets derived in the current block applied, while inputs associated with offsets not determined solely based on proximity information will have their inherited offsets applied. For example, consider a 7-tap cross-component model:
[0205] predChromaVal=c0L0+c1L1+c2L2+…+c5L5+c6B
[0206] Assume that O0, O1, O2, and O3 are determined solely based on proximity information, while O4 and O5 are not (i.e., O'0, O'1, O'2, and O'3 are determined solely based on proximity information, while O'4 and O'5 are not). When storing CCM information, the stored bias term parameter is c. 6_stored =c6+∑ i<4 c i O i / B, and O4 and O5 are explicitly stored along with the CCM information. When inheriting CCM information, the bias parameter is adjusted to c. 6_derived =c 6_stored -∑ i<4 c i O′ i / B, and O4 and O5 are inherited. The prediction for the current block is generated using the following formula:
[0207] predChromaVal=c0(L'0+O'0)+c1(L'1+O'1)+c2(L'2+O'2)+c3(L'3+O'3)+c4(L'4+O4)+c5(L'5+O5)+c 6_derived B.
[0208] In one sub-implementation, the offset term can be a reference sample value outside the top-left corner of the PU (e.g., offsetLuma, offsetCb, and offsetCr).
[0209] Inherited model parameters
[0210] In one embodiment, when inheriting CCM, only some parameters are inherited (e.g., only n of the 7 filter coefficients of the general CCCM model are inherited, where 1≤n<7), and the remaining model parameters are further re-derived using the neighboring luminance and chrominance samples of the current block.
[0211] In another embodiment, when inheriting the CCM, the parameters of the offset terms related to proximity information are not inherited. These parameters are derived using neighboring brightness and chromaticity reconstruction samples of the current block. For example, when inheriting the GL-CCCM model, only some model parameters are inherited. For instance, model parameters other than those for position terms X and Y are inherited because position terms X and Y are calculated based on proximity information: the number of available left and top reference lines. The model parameters for position terms X and Y are then derived using neighboring brightness and chromaticity reconstruction samples of the current block. Another example is that the proximity-related offset terms include offsetLuma, offsetCb, and offsetCr.
[0212] In another embodiment, when inheriting the CCM, the bias term parameters and the parameters of the offset terms related to proximity information are not inherited. These parameters are derived using neighboring brightness and chromaticity reconstruction samples of the current block. For example, when inheriting the GL-CCCM model, only some model parameters are inherited. The model parameters for position terms X and Y are not inherited because position terms X and Y are calculated based on proximity information: the number of available left and top reference lines. The bias term parameters are also not inherited. The model parameters for position terms X and Y and the bias term parameters are then derived using neighboring brightness and chromaticity reconstruction samples of the current block. Another example is that the proximity-related offset terms include offsetLuma, offsetCb, and offsetCr.
[0213] 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 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. The CCM information inheritance described above can be implemented at the encoder end or the decoder end. For example, any proposed CCP method that uses adjusted bias parameters or partially inherited CCP candidates can be implemented in the intra-frame / inter-frame encoding / decoding module of the decoder (e.g., Figure 1B Intra-frame prediction 150 / MC 152 in the encoder or intra-frame / inter-frame codec module in the encoder (e.g., Figure 1A Intra-frame prediction 110 / inter-frame prediction 112 is implemented in the code. Any proposed CCM information inheritance can also be implemented as a circuit coupled to the intra-frame / inter-frame codec module of the decoder or encoder. However, the decoder or encoder can also use additional processing units to implement the required cross-component prediction processing. Although the intra-frame prediction unit (e.g., Figure 1A Units 110 / 112 and Figure 1BUnits 150 / 152 in the diagram are shown as separate processing units, which may correspond to executable software or firmware code stored on media, such as hard disks or flash memory, for a central processing unit (CPU) or a programmable device (e.g., a digital signal processor (DSP) or a field programmable gate array (FPGA)).
[0214] Figure 14 A flowchart illustrating an exemplary video decoding system using adjusted bias term parameters according to an embodiment of the present invention is provided. The steps shown in the flowchart can be implemented at the encoder end as program code executable on one or more processors (e.g., one or more central processing units). The steps shown in the flowchart can also be implemented in hardware, such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to a method, in step 1410, input data associated with the current block is received, including a first color block and a second color block, wherein the input data includes encoded data associated with the current block that will be decoded at the decoder end. In step 1420, stored adjusted bias term parameters are retrieved. In step 1430, one or more offset values of one or more of n input items associated with a CCP model are determined, wherein each of the one or more offset values is determined for one or more of the n input items. In step 1440, a derived adjustment bias term is derived, which corresponds to a combination of a weighted bias term and one or more weighted offset values associated with one or more of the n input terms. The weighted bias term corresponds to a bias term weighted by the stored adjustment bias term parameters, and the one or more weighted offset values correspond to the one or more offset values weighted by one or more model parameters, respectively. In step 1450, a derived adjustment bias term parameter associated with the derived adjustment bias term is determined, where the derived adjustment bias term corresponds to the bias term weighted by the derived adjustment bias term parameter. In step 1460, the second color patch is decoded using prediction candidates, where these prediction candidates include a cross-component predictor generated by applying the CCP model to the first color patch, where the CCP model includes the derived adjustment bias term parameters.
[0215] Figure 15A flowchart illustrating an exemplary video coding system using adjusted bias term parameters according to an embodiment of the present invention is provided. According to the method, in step 1510, input data associated with the current block is received, including a first color block and a second color block, wherein the input data includes pixel data associated with the current block to be encoded at the encoder. In step 1520, model parameters are derived for a CCP model, wherein the CCP model corresponds to a weighted sum of n input items, includes a bias term, and n is an integer greater than 1. In step 1530, one or more offset values are determined for one or more of the n input items, wherein each of the one or more offset values is determined for one or more of the n input items. In step 1540, an adjusted weighted bias term is determined by combining the weighted bias term and the one or more offset values, each weighted by one or more model parameters. In step 1550, an adjusted bias term parameter is determined, wherein the adjusted weighted bias term corresponds to the bias term scaled by the adjusted bias term parameter. In step 1560, the adjusted bias term parameter is stored for processing subsequent blocks. In step 1570, the second color patch is encoded using prediction candidates, including cross-component predictors generated by applying the CCP model to the first color patch.
[0216] Figure 16 A flowchart illustrating an exemplary video encoding / decoding system using partially inherited CCP candidates according to an embodiment of the present invention is provided. According to the method, in step 1610, input data associated with the current block is received, including a first color block and a second color block, wherein such input data includes pixel data encoded at the encoder end or data associated with the current block decoded at the decoder end. In step 1620, a candidate list is derived, comprising at least one partially inherited CCP candidate, wherein some parameters of the at least one partially inherited CCP candidate are inherited, and the remaining parameters of the at least one partially inherited CCP candidate are derived using neighboring first and second color samples. In step 1630, the second color block is encoded or decoded using information including a predictor generated by applying a CCP model corresponding to the at least one partially inherited CCP candidate to the first color block.
[0217] The flowchart shown is intended to illustrate an example of video encoding and decoding according to the present invention. Those skilled in the art can modify each step, rearrange the steps, split the steps, or combine the steps to practice the invention without departing from its spirit. Specific syntax and semantics are used in this disclosure to illustrate examples of implementing embodiments of the invention. Those skilled in the art can practice the invention without departing from its spirit by using equivalent syntactic and semantic substitutions.
[0218] The foregoing description is intended to enable those skilled in the art to practice the invention in the context of specific applications and their requirements. Various modifications to the described embodiments will be apparent to those skilled in the art, and the general principles defined herein can be applied to other embodiments. Therefore, the invention is not intended to be limited to the specific embodiments shown and described, but should be given the broadest scope in accordance with the principles and novel features disclosed herein. Various specific details have been shown in the foregoing detailed description to provide a thorough understanding of the invention. However, those skilled in the art will understand that the invention can be practiced without these specific details.
[0219] Embodiments of the present invention, as described above, can be implemented in various hardware, software code, or combinations thereof. For example, one embodiment of the invention may be one or more circuits integrated into a video compression chip, or program code integrated into video compression software to perform the processing described herein. Another embodiment of the invention may be program code executed on a DSP to perform the processing described herein. The invention may also relate to multiple functions performed by a computer processor, digital signal processor, microprocessor, or FPGA. These processors can be configured to perform specific tasks according to the invention by executing machine-readable software code or firmware code that defines the specific methods embodied in the invention. The software code or firmware code can be developed in different programming languages and different formats or styles. The software code can also be compiled for different target platforms. However, different code formats, styles, and languages of the software code, as well as other configuration codes for performing the tasks according to the invention, do not depart from the spirit and scope of the invention.
[0220] This invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The examples described are for illustrative purposes only and not for limitation. Therefore, the scope of the invention is indicated by the appended claims rather than the foregoing description. All variations within the meaning and equivalence of the claims should be included within its scope.
Claims
1. A method for decoding a color image, wherein the encoding / decoding tools used include one or more patterns associated with a cross-component model, the method comprising: Receive input data related to the current block, including a first color block and a second color block, wherein the input data includes encoding and decoding data related to the current block, and the encoding and decoding data is decoded at the decoder end; Retrieve the stored adjustment bias parameters; Determine one or more offset values for one or more of n input items associated with a cross-component prediction model, wherein each of the one or more offset values is a specific one for one or more of the n input items; The derived adjusted bias term is derived, which corresponds to a combination of a weighted bias term and one or more weighted offset values associated with one or more of the n input terms, wherein the weighted bias term corresponds to a bias term weighted by the stored adjusted bias term parameters, and the one or more weighted offset values correspond to one or more offset values weighted by one or more model parameters respectively. Determine the derivation adjustment bias term parameters associated with the derivation adjustment bias term, wherein the derivation adjustment bias term corresponds to the bias term weighted by the derivation adjustment bias term parameters; as well as The second color patch is decoded using prediction candidates, wherein the prediction candidates include a cross-component predictor generated by applying the cross-component prediction model to the first color patch, wherein the cross-component prediction model includes the derived adjusted bias term parameters.
2. The method of claim 1, wherein the cross-component prediction model corresponds to a gradient- and position-based convolutional cross-component model.
3. The method of claim 2, wherein the one or more offset values include horizontal offset values and vertical offset values, the horizontal offset values and the vertical offset values corresponding to the offset values of the upper left corner position of the current block relative to the upper left corner position of the neighboring reference regions, and the neighboring reference regions are used to derive at least some information related to the cross-component prediction model.
4. The method of claim 1, wherein all or part of the one or more offset values are determined based on information including proximity information.
5. The method of claim 4, wherein the proximity information includes the values of one or more neighboring samples, the availability of the one or more neighboring samples, the total number of available reference lines, or a combination thereof.
6. The method of claim 4, wherein if the target offset value is derived solely based on the proximity information, the target offset value is included in the derivation adjustment bias term.
7. The method of claim 4, wherein if the target offset value is not derived solely based on such proximity information, the target offset value is explicitly stored.
8. The method of claim 4, wherein the one or more offset values correspond to one or more reference samples outside the top left corner of the current block.
9. An apparatus for video decoding, the apparatus comprising one or more electronic devices or processors configured to: Receive input data related to the current block, including a first color block and a second color block, wherein the input data includes encoding and decoding data related to the current block, and the encoding and decoding data is decoded at the decoder end; Retrieve the stored adjustment bias parameters; Determine one or more offset values for one or more of n input items associated with a cross-component prediction model, wherein each of the one or more offset values is a specific one for one or more of the n input items; A derived adjusted bias term is derived, which corresponds to a combination of a weighted bias term and one or more weighted offset values associated with one or more of the n input terms, wherein the weighted bias term corresponds to a bias term weighted by the stored adjusted bias term parameters, and the one or more weighted offset values correspond to the one or more offset values weighted by one or more model parameters respectively. Determine the derivation adjustment bias term parameters associated with the derivation adjustment bias term, wherein the derivation adjustment bias term corresponds to the bias term weighted by the derivation adjustment bias term parameters; as well as The second color patch is decoded using prediction candidates, wherein the prediction candidates include a cross-component predictor generated by applying the cross-component prediction model to the first color patch, wherein the cross-component prediction model includes the derived adjusted bias term parameters.
10. A method for encoding a color image, wherein the encoding / decoding tools used include one or more patterns associated with a cross-component model, the method comprising: Receive input data related to the current block, including a first color block and a second color block, wherein the input data includes pixel data related to the current block, and the pixel data will be encoded at the encoder end; Derive model parameters for a cross-component prediction model, where the cross-component prediction model corresponds to a weighted sum of n input terms, includes a bias term, and n is an integer greater than 1; Determine one or more offset values for one or more of the n input items, wherein each of the one or more offset values is determined for one or more of the n input items; The adjusted weighted bias term is determined by combining the weighted bias term with one or more offset values weighted by one or more model parameters. Determine the adjusted bias term parameter, wherein the adjusted weighted bias term corresponds to the bias term scaled by the adjusted bias term parameter; Store the adjusted bias parameters for processing subsequent blocks; as well as The second color patch is encoded using prediction candidates, wherein such prediction candidates include a cross-component predictor generated by applying a cross-component prediction model to the first color patch.
11. The method of claim 10, wherein the cross-component prediction model corresponds to a gradient- and position-based convolutional cross-component model.
12. The method of claim 10, wherein the one or more offset values include horizontal offset values and vertical offset values, the horizontal offset values and the vertical offset values corresponding to the offset values of the upper left position of the current block relative to the upper left position of the neighboring reference regions, and the neighboring reference regions are used to derive at least some information related to the cross-component prediction model.
13. An apparatus for video encoding, the apparatus comprising one or more electronic devices or processors, the one or more electronic devices or processors being configured to: Receive input data related to the current block, including a first color block and a second color block, wherein the input data includes pixel data related to the current block, and the pixel data is encoded at the encoder end; Derive model parameters for a cross-component prediction model, where the cross-component prediction model corresponds to a weighted sum of n input terms, includes a bias term, and n is an integer greater than 1; Determine one or more offset values for one or more of the n input items, wherein each of the one or more offset values is determined for one or more of the n input items; The adjusted weighted bias term is determined by combining the weighted bias term with one or more offset values weighted by one or more model parameters. Determine the adjusted bias term parameter, wherein the adjusted weighted bias term corresponds to the bias term scaled by the adjusted bias term parameter; Store the adjusted bias parameters for processing subsequent blocks; as well as The second color patch is encoded using prediction candidates, which include cross-component predictors generated by applying a cross-component prediction model to the first color patch.
14. A method for encoding and decoding a color image, wherein the encoding and decoding tools used include one or more patterns associated with a cross-component model, the method comprising: Receive input data related to the current block, including a first color block and a second color block, wherein such input data includes pixel data encoded at the encoder end or data decoded at the decoder end related to the current block; A candidate list is derived, which includes at least one partially inherited cross-component prediction candidate, wherein some parameters of the at least one partially inherited cross-component prediction candidate are inherited, and the remaining parameters of the at least one partially inherited cross-component prediction candidate are derived by using a neighboring first color sample and a neighboring second color sample. as well as The second color patch is generated by encoding or decoding information including a predictor, wherein the predictor is generated by applying a cross-component prediction model corresponding to the cross-component prediction candidate inherited from the at least one part to the first color patch.
15. The method of claim 14, wherein the cross-component prediction model corresponds to a gradient- and position-based convolutional cross-component model.
16. The method of claim 15, wherein the one or more offset values include horizontal offset values and vertical offset values, the horizontal offset values and the vertical offset values corresponding to the offset values of the upper left position of the current block relative to the upper left position of the neighboring reference regions, and the neighboring reference regions are used to derive at least some information related to the cross-component prediction model.
17. An apparatus for video encoding and decoding, the apparatus comprising one or more electronic devices or processors configured to: Receive input data related to the current block, including a first color block and a second color block, wherein such input data includes pixel data encoded at the encoder end or data decoded at the decoder end related to the current block; Export a candidate list that includes at least one partially inherited cross-component prediction candidate, wherein some parameters of the at least one partially inherited cross-component prediction candidate are inherited, and the remaining parameters of the at least one partially inherited cross-component prediction candidate are derived by using a neighboring first color sample and a neighboring second color sample. as well as The second color patch is generated by encoding or decoding information including a predictor, wherein the predictor is generated by applying a cross-component prediction model corresponding to the cross-component prediction candidate inherited from the at least one part to the first color patch.