Reducing complexity in parameter derivation for intra-prediction.

A simplified linear model derivation for cross-component prediction in video encoding optimizes chroma-to-luma predictions, addressing complexity and compression efficiency challenges, enhancing encoding efficiency in HEVC and VVC standards.

JP7886308B2Inactive Publication Date: 2026-07-07DOUYIN VISION CO LTD +1

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
DOUYIN VISION CO LTD
Filing Date
2023-10-20
Publication Date
2026-07-07
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

Existing video encoding technologies face challenges in balancing complexity and compression efficiency, particularly in cross-component prediction methods, leading to increased computational demands and memory requirements.

Method used

The implementation of a simplified linear model derivation for cross-component linear models (CCLM) in video encoding, which reduces complexity by using a two-point method to derive parameters and employs adaptive local illumination compensation, thereby optimizing chroma-to-luma predictions.

Benefits of technology

This approach enhances video encoding efficiency by reducing computational complexity and memory usage while maintaining high compression efficiency, applicable to existing standards like HEVC and future standards like VVC.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007886308000017
    Figure 0007886308000017
  • Figure 0007886308000018
    Figure 0007886308000018
  • Figure 0007886308000019
    Figure 0007886308000019
Patent Text Reader

Abstract

To provide a video processing method for reducing complexity in parameter derivation for intra prediction.SOLUTION: The method comprises: determining, for a conversion between a current video block of a video that is a chroma block and a coded representation of the video, parameters of a cross-component linear model by using a parameter table, in which the entry of the parameter table is retrieved according to two chroma sample values and two luma sample values; and performing the conversion based on the determining.SELECTED DRAWING: Figure 18
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application is a divisional application of Japanese Patent Application No. 2021-523511, which is a national phase application of International Application PCT / CN2019 / 115999 filed on November 6, 2019. The international application claims priority and the benefit of the following international patent applications: International Patent Application No. PCT / CN2018 / 114158 filed on November 6, 2018; International Patent Application No. PCT / CN2018 / 118799 filed on December 1, 2018; International Patent Application No. PCT / CN2018 / 119709 filed on December 7, 2018; International Patent Application No. PCT / CN2018 / 125412 filed on December 29, 2018; International Patent Application No. PCT / CN2019 / 070002 filed on January 1, 2019; International Patent Application No. PCT / CN2019 / 075874 filed on February 22, 2019; International Patent Application No. PCT / CN2019 / 075993 filed on February 24, 2019; International Patent Application No. PCT / CN2019 / 076195 filed on February 26, 2019; International Patent Application No. PCT / CN2019 / 079396 filed on March 24, 2019; International Patent Application No. PCT / CN2019 / 079431 filed on March 25, 2019; and International Patent Application No. PCT / CN2019 / 079769 filed on March 26, 2019. The entire disclosure of the above applications is incorporated herein by reference as part of the disclosure of this application.

[0002] This patent document relates to video processing technologies, devices, and systems.

Background Art

[0003] Despite the progress of video compression, digital video still occupies the largest bandwidth usage in the Internet and other digital communication networks. As the number of connected user devices capable of receiving and displaying video increases, the bandwidth demand for digital video use is expected to continue to grow.

Summary of the Invention

[0004] Apparatuses, systems, and methods related to digital video processing are described, and, for example, a simplified linear model derivation related to a cross-component linear model (CCLM) prediction mode in video encoding is described. The described methods can be applied to both existing video encoding standards (e.g., HEVC (High Efficiency Video Coding)) and future video encoding standards (e.g., VVC (Versatile Video Coding)) or codecs.

[0005] In a representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes determining parameters of a cross-component linear model based on two chroma samples from a group of adjacent chroma samples for conversion between a current video block of a video that is a chroma block and an encoded representation of the video, wherein the two chroma samples are selected from the group based on a position rule, and executing the conversion based on the determination.

[0006] In a representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes determining parameters of a cross-component linear model based on a chroma sample selected based on the position of chroma samples for conversion between a current video block of a video that is a chroma block and an encoded representation of the video, wherein the selected chroma sample is selected from a group of adjacent chroma samples, and executing the conversion based on the determination.

[0007] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining a group of adjacent chroma samples to be used to derive a set of values ​​relating to parameters of a linear model for a current image block, wherein the width and height of the current image block are W and H, respectively, and the group of adjacent chroma samples includes at least one sample located beyond 2 × W adjacent chroma samples above or 2 × H adjacent chroma samples to the left; and performing a transformation between the current image block and an encoded representation of an image containing the current image block, based on the linear model.

[0008] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method for image processing includes the steps of: determining a plurality of sets of parameters for a transformation between a current image block of an image which is a chroma block and an encoded representation of the image, each set of parameters defining a cross-component linear model (CCLM) and derived from a group of corresponding chroma samples at corresponding chroma sample locations; determining parameters for a final CCLM based on the plurality of sets of parameters; and performing the transformation based on the final CCLM.

[0009] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining the parameters of a cross-component linear model (CCLM) for a transformation between a current image block of image and an encoded representation of the image, based on the minimum and maximum chroma and luma samples from N groups of chroma and luma samples selected from adjacent chroma and luma samples of the current image block; and performing the transformation using the CCLM.

[0010] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining the parameters of a cross-component linear model fully determinable by two chroma samples and two corresponding chroma samples for a transformation between a current image block of an image which is a chroma block and an encoded representation of the image; and performing the transformation based on the determination.

[0011] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining parameters of a cross-component linear model using a parameter table for a transformation between a current image block of an image which is a chroma block and an encoded representation of the image, wherein entries in the parameter table are retrieved according to two chroma sample values ​​and two luma sample values; and performing the transformation based on the determination.

[0012] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining a final prediction P(x,y) of a chroma sample at position (x,y) in the current image block for a transformation between the current image block of the image, which is a chroma block, as a combination of prediction results of a plurality of cross-component linear models (MCCLMs), the MCCLMs being selected based on the position (x,y) of the chroma sample; and performing the transformation based on the final prediction.

[0013] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: making a first determination of whether a first cross-component linear model (CCLM) using only left-neighbor samples is used to predict the samples of the current image block for a conversion between a current image block of image which is a chroma block and an encoded representation of the image; and / or making a second determination of whether a second cross-component linear model (CCLM) using only upper-neighbor samples is used to predict the samples of the current image block; and performing the conversion based on the first determination and / or the second determination.

[0014] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining a context used to encode a flag using arithmetic coding of the current image block to the encoded representation for a transformation between a current image block of image and an encoded representation of the image, wherein the context is based on whether the upper-left adjacent block of the current image block is encoded using a cross-component linear model (CCLM) predictive mode; and performing the transformation based on the determination.

[0015] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining an encoding order for one or more indications of direct intra-predictive mode (DM mode) and linear intra-predictive mode (LM mode) based on the encoding modes of one or more adjacent blocks of the current image block for a conversion between a current image block of the image and an encoded representation of the image; and performing the conversion based on the determination.

[0016] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining parameters for linear model prediction or cross-color component prediction based on refined chroma and luma samples of the current image block for a transformation between a current image block of the image and an encoded representation of the image; and performing the transformation based on the determination.

[0017] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining parameters for linear model prediction or cross-color component prediction by selecting adjacent samples based on the location of the maximum adjacent sample or minimum adjacent sample for a transformation between a current image block of an image which is a chroma block and an encoded representation of the image; and performing the transformation based on the determination.

[0018] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining parameters for a linear model prediction or a cross-color component prediction based on a primary color component and a secondary color component for a conversion between a current image block of image and an encoded representation of the image, wherein the primary color component is selected as one of a luminacolor component and a chromacolor component, and the secondary color component is selected as the other of the luminacolor component and the chromacolor component; and performing the conversion based on the determination.

[0019] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: performing downsampling on chroma and luma samples of adjacent blocks of a current image block; determining parameters of a cross-component linear model (CCLM) based on the downsampled chroma and luma samples obtained from the downsampling for a transformation between the current image block and the encoded representation of the image, which is a chroma block; and performing the transformation based on the determination.

[0020] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining parameters of a cross-component linear model (CCLM) based on two or more chroma samples from a group of adjacent chroma samples for a transformation between a current image block of an image which is a chroma block and an encoded representation of the image, wherein the two or more chroma samples are selected based on the encoding mode of the current image block; and performing the transformation based on the determination.

[0021] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining the parameters of a cross-component linear model (CCLM) based on chroma samples selected based on W available adjacent samples for a transformation between a current image block of an image which is a chroma block and an encoded representation of the image, where W is an integer; and performing the transformation based on the determination.

[0022] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining parameters of a cross-component linear model (CCLM) for a transformation between a current image block of an image which is a chroma block and an encoded representation of the image, based on H available chroma samples selected based on the left neighboring samples of the current image block; and performing the transformation based on the determination.

[0023] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining parameters of a cross-component linear model (CCLM) based on two or four chroma samples and / or corresponding chroma samples for a transformation between a current image block of an image which is a chroma block and an encoded representation of the image; and performing the transformation based on the determination.

[0024] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method comprises the steps of: selecting a chroma sample based on a position rule for a transformation between a current image block of an image, which is a chroma block, and an encoded representation of the image, wherein the chroma sample is used to derive parameters for a cross-component linear model (CCLM); and performing the transformation based on the determination, wherein the position rule specifies selecting a chroma sample located in the top row and / or left column of the current image block.

[0025] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining the position at which a luma sample is downsampled for a transformation between a current image block of an image which is a chroma block and an encoded representation of the image, the downsampled luma sample being used to determine the parameters of a cross-component linear model (CCLM) based on the chroma sample and the downsampled luma sample, wherein the downsampled luma sample is located at a position corresponding to the position of the chroma sample used to derive the parameters of the CCLM; and performing the transformation based on the determination.

[0026] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining a method for deriving parameters of a cross-component linear model (CCLM) using chroma samples and luma samples based on encoding conditions associated with the current image block for a transformation between a current image block of image which is a chroma block and an encoded representation of the image; and performing the transformation based on the determination.

[0027] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining whether to derive maximum and / or minimum values ​​of lumens and chromens used to derive parameters of a cross-component linear model (CCLM) based on the availability of adjacent blocks to the left and above the current image block for a transformation between a current image block of image which is a chroma block and an encoded representation of the image; and performing the transformation based on the determination.

[0028] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method includes the steps of: determining parameters of an encoding tool using a linear model based on selected adjacent samples of the current image block and corresponding adjacent samples of a reference block for a transformation between a current image block of the image and an encoded representation of the image; and performing the transformation based on the determination.

[0029] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method comprises the steps of: determining parameters for a local illumination compensation (LIC) tool for a transformation between a current image block of an image and an encoded representation of the image, wherein the N adjacent samples of the current image block are selected based on the positions of the N adjacent samples; and performing the transformation based on the determination, wherein the LIC tool uses a linear model of illumination changes in the current image block during the transformation.

[0030] In another representative embodiment, the disclosed technology may be used to provide a method for image processing. The method comprises the steps of: determining parameters of a cross-component linear model (CCLM) based on chroma samples and corresponding luma samples for a transformation between a current image block of an image which is a chroma block and an encoded representation of the image; and performing the transformation based on the determination, wherein a portion of the chroma samples is obtained by a padding operation, and the chroma samples and the corresponding luma samples are grouped into two sequences G0 and G1, each sequence containing two chroma samples and corresponding luma samples.

[0031] In yet another representative embodiment, the method described above is embodied in the form of processor-executable code and stored in a computer-readable program medium.

[0032] In another representative embodiment, a device configured or operable to perform the method described above is disclosed. Such device may include a processor programmed to implement this method.

[0033] In yet another representative embodiment, a video decoder device may implement the method described herein.

[0034] The above-mentioned and other aspects and features of the disclosed technology are described in more detail in the drawings, specification and claims. [Brief explanation of the drawing]

[0035] [Figure 1] This shows an example of the sample locations used to derive the weights of the linear model used in cross-component prediction. [Figure 2] This shows an example of classifying adjacent samples into two groups. [Figure 3A] An example of a chroma sample and its corresponding luma sample is shown. [Figure 3B] This shows an example of downfiltering for cross-component linear models (CCLMs) in joint search models (JEMs). [Figure 4A] This illustrates an example where only the upper neighbor samples are used in predictions based on a linear model. [Figure 4B] This illustrates an example where only left-neighbor samples are used in predictions based on a linear model. [Figure 5] This shows an example of a straight line between the minimum and maximum luma values ​​as a function of the corresponding chroma samples. [Figure 6] Currently, an example of a chromablock and its adjacent samples is shown. [Figure 7] This shows examples of different parts of the chroma block predicted by a linear model using only left-neighbor samples (LM-L) and a linear model using only upper-neighbor samples (LM-A). [Figure 8] An example of the adjacent block in the upper left is shown. [Figure 9] This shows an example of a sample used to derive a linear model. [Figure 10] The following is an example of the left and bottom-left columns, and the right and top-right rows, for a given block. [Figure 11] This section shows an example of a block and its reference sample. [Figure 12] This shows an example of two adjacent reference samples when both the left and top adjacent reference samples are available. [Figure 13] The above example shows two adjacent reference samples when only the adjacent reference sample is available. [Figure 14] This shows an example of two adjacent samples when only the left adjacent reference sample is available. [Figure 15] This shows an example of four adjacent samples when both the left and top adjacent reference samples are available. [Figure 16] An example of a lookup table used in LM derivation is shown. [Figure 17] This shows an example of an LM parameter derivation process using 64 entries. [Figure 18] This shows a flowchart illustrating an example of a video processing method based on a partial implementation of the disclosed technology. [Figure 19A] Figures 19A and 19B show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 19B] Figures 19A and 19B show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 20A] Figures 20A and 20B show flowcharts illustrating other examples of image processing methods based on a partial implementation of the disclosed technology. [Figure 20B] Figures 20A and 20B show flowcharts illustrating other examples of image processing methods based on a partial implementation of the disclosed technology. [Figure 21] A flowchart illustrating another example of a video processing method based on a partial implementation of the disclosed technology is shown. [Figure 22] This shows a flowchart illustrating an example of a video processing method based on a partial implementation of the disclosed technology. [Figure 23A] Figures 23A and 23B show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 23B] Figures 23A and 23B show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 24A] Figures 24A-24E show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 24B] Figures 24A-24E show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 24C] Figures 24A-24E show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 24D] Figures 24A-24E show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 24E] Figures 24A-24E show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 25A] Figures 25A and 25B show flowcharts of example video processing methods based on a partial implementation of the disclosed technology. [Figure 25B] Figures 25A and 25B show flowcharts of example video processing methods based on a partial implementation of the disclosed technology. [Figure 26A] Figures 26A and 26B show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 26B] Figures 26A and 26B show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 27A]Figures 27A and 27B show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 27B] Figures 27A and 27B show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 28A] Figures 28A-28C show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 28B] Figures 28A-28C show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 28C] Figures 28A-28C show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 29A] Figures 29A-29C show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 29B] Figures 29A-29C show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 29C] Figures 29A-29C show flowcharts illustrating example video processing methods based on a partial implementation of the disclosed technology. [Figure 30A] Figures 30A and 30B are block diagrams of example hardware platforms for implementing the visual media decoding or visual media encoding technologies described in this document. [Figure 30B] Figures 30A and 30B are block diagrams of example hardware platforms for implementing the visual media decoding or visual media encoding technologies described in this document. [Figure 31A] Figures 31A and 31B show examples of LM parameter derivation processes using four entries, with Figure 31A showing an example where both the upper and left adjacent samples are available. [Figure 31B]Figures 31A and 31B show examples of LM parameter derivation processes using four entries, with Figure 31B showing an example where only the upper adjacent samples are available and the upper right is unavailable. [Figure 32] An example of adjacent samples for deriving LIC parameters is shown. [Modes for carrying out the invention]

[0036] The increasing demand for higher resolution video has made video encoding methods and techniques ubiquitous in modern technology. Video codecs typically involve electronic circuits or software that compress or decompress digital video and are constantly being improved to provide greater encoding efficiency. Video codecs convert uncompressed video to a compressed format and vice versa. There is a complex relationship between video quality, the amount of data used to represent the video (determined by the bitrate), the complexity of the encoding and decoding algorithms, sensitivity to data loss and errors, ease of editing, random access, and end-to-end latency. Compression formats typically conform to standard video compression specifications, such as the HEVC (High Efficiency Video Coding) standard (also known as H.265 or MPEG-H Part 2), the future VVC (Versatile Video Coding) standard, or other current and / or future video encoding standards.

[0037] Embodiments of the disclosed technology may be applied to existing video encoding standards (e.g., HEVC, H.265) and future standards to improve runtime performance. Section headings are used in this document to improve readability of the description, but these section headings do not limit the description or embodiments (and / or implementations) to the respective sections only.

[0038] 1. Embodiment of Cross-Component Prediction Cross-component prediction is a form of chroma-to-luma prediction approach that strikes a good balance between complexity and improved compression efficiency.

[0039] 1.1 Example of a Cross-Component Linear Model (CCLM) In some embodiments, and to reduce cross-component redundancy, a cross-component linear model (CCLM) prediction mode (also referred to as LM) is used in JEM, where the chroma sample is as follows:

number

[0040] Here, pred C (i,j) represents the predicted chroma sample within the CU, recL'(i,j) represents the downsampled reconstructed chroma sample of the same CU when the color format is 4:2:0 or 4:2:2, and recL'(i,j) represents the reconstructed chroma sample of the same CU when the color format is 4:4:4. The CCLM parameters α and β are:

number

number

[0041] Here, L(n) represents the adjacent reconstructed chroma samples above and to the left of the downsampled (for color format 4:2:0 or 4:2:2) or original (for color format 4:4:4), C(n) represents the adjacent reconstructed chroma samples above and to the left, and the value of N is currently equal to twice the minimum width and height of the chroma-encoded block.

[0042] In some embodiments, the two equations above are directly applied to a square-shaped coding block. In other embodiments, for a non-square coding block, the adjacent samples on the longer boundary are first subsampled so that they have the same number of samples as those on the shorter boundary. Figure 1 shows the locations of the samples in the current block involved in the CCLM mode, as well as the reconstructed samples on the left and top.

[0043] In some embodiments, this regression error minimization calculation is performed not simply as an encoder search process, but as part of the decoding process, and therefore there is no syntax used to transmit the α and β values.

[0044] In some embodiments, the CCLM prediction mode also includes predictions between two chroma components, for example, the Cr (red difference) component being predicted from the Cb (blue difference) component. Instead of using the reconstructed sample signal, CCLM Cb-to-Cr prediction is applied in the residual domain. This adds the weighted reconstructed Cb residual to the original Cr intra-prediction to obtain the final Cr prediction.

number

[0045] Here, resi Cb '(i,j) represents the reconstructed Cb residual sample at position (i,j).

[0046] In some embodiments, the scaling coefficient α can be derived in a similar manner to that in CCLM luma-to-chroma prediction. The only difference is the addition of the regression cost to the default α value in the error function, resulting in the derived scaling coefficient being:

number

[0047] Here, Cb(n) represents an adjacent reconstituted Cb sample, Cr(n) represents an adjacent reconstituted Cr sample, and λ is equal to Σ(Cb(n)·Cb(n))>>9.

[0048] In some embodiments, the CCLM luma-to-chroma prediction mode is added as an additional chroma intra-prediction mode. On the encoder side, an additional RD cost check is added for the chroma component to select the chroma intra-prediction mode. If an intra-prediction mode other than the CCLM luma-to-chroma prediction mode is used for the chroma component of the CU, the CCLM Cb-to-Cr prediction is used for the Cr component prediction.

[0049] 1.2 Example of a multi-model CCLM In JEM, there are two CCLM modes: single-model CCLM mode and multi-model CCLM mode (MMLM). As the names suggest, single-model CCLM mode uses one linear model to predict chroma samples from luma samples for the entire CU, while MMLM allows for two models.

[0050] In MMLM, the adjacent luma samples and adjacent chroma samples of the current block are classified into two groups, and each group is used as a training set to derive a linear model (i.e., specific α and β are derived for a particular group). Furthermore, the samples of the current luma block are also classified based on the same rules as the classification of adjacent luma samples.

[0051] Figure 2 shows an example of classifying adjacent samples into two groups. The threshold is calculated as the mean of adjacent reconstructed Luma samples. Adjacent samples where Rec'L[x,y]≦Threshold are classified into Group 1, and adjacent samples where Rec'L[x,y]>Threshold are classified into Group 2.

number

[0052] 1.3 Example of a downsampling filter in CCLM In some embodiments, for a 4:2:0 chroma format where four luma samples correspond to one chroma sample, the reconstructed luma block needs to be downsampled to match the size of the chroma signal in order to perform chroma prediction. The default downsampling filter used in CCLM mode is as follows:

number

[0053] Here, downsampling assumes a “Type 0” phase relationship between the position of the chroma sample and the position of the luma sample, such as horizontal collated sampling and vertical interstitial sampling, as shown in Figure 3A.

[0054] The exemplary 6-tap downsampling filter specified in (6) is used as the default filter in both single-model CCLM mode and multi-model CCLM mode.

[0055] In some embodiments, in MMLM mode, the encoder can selectively select one of four additional luma downsampling filters to be applied to the prediction in CU and transmit a filter index indicating which one is used. The four selectable luma downsampling filters for MMLM mode, as shown in Figure 3B, are as follows:

number

[0056] 1.4 Multidirectional LM (MDLM) This existing implementation proposes a multi-directional LM (MDLM). In MDLM, two further CCLM modes are proposed: LM-A, where the linear model parameters are derived based only on the top or above neighboring samples, as shown in Figure 4A, and LM-L, where the linear model parameters are derived based only on the left neighboring samples, as shown in Figure 4B.

[0057] 1.5 Simplification of Cross-Component Linear Models This existing implementation proposes replacing the LMS algorithm for linear model parameters α and β with a linear equation, the so-called two-point method. The two points (a couple of Luma and Chroma) (A, B) are the minimum and maximum values ​​in the set of adjacent Luma samples, as shown in Figure 5.

[0058] Here, the linear model parameters α and β are given by the following equation: α=(y B -y A ) / (x B -x A ), and β=y A -αx A It is obtained according to the following.

[0059] In some embodiments, the division operation required to derive α is avoided and replaced by multiplication and shift as follows: a=0; Shift=16; intshift=(uiInternalBitDepth>8)?uiInternalBitDepth-9:0; intadd=shift?1<<(shift-1):0; intdiff=(MaxLuma-MinLuma+add)>>shift; if(diff>0) { intdiv=((MaxChroma-MinChroma)*g_aiLMDivTableLow[diff-1]+32768)>>16; a=(((MaxChroma-MinChroma)*g_aiLMDivTableHigh[diff-1]+div+add)>>shift); } b=MinLuma[1]-((a*MinLuma[0])>>iShift);

[0060] Here, S is set to be equal to iShift, α is set to be equal to a, and β is set to be equal to b. Also, g_aiLMDIVTableLow and g_ailLMDIVTableHigh are two tables, each with 512 entries, where each entry stores a 16-bit integer.

[0061] To derive the chroma predictor, regarding the current VTM implementation, multiplication is performed.

number

[0062] Since shift S always has the same value, this implementation is also simpler than the current VTM implementation.

[0063] 1.6 Example of CCLM in VVC The same CCLM as in JEM is used in VTM-2.0, but the MM-CCLM used in JEM is not used in VTM-2.0. VTM-3.0 uses MDLM and a simplified CCLM.

[0064] 1.7 Example of local illumination compensation in JEM Local illumination compensation (LIC) is based on a linear model of illumination variation using scaling coefficients a and offset b. It is also adaptively enabled or disabled for each intermode encoded coding unit (CU).

[0065] When LIC is applied to CU, the least squares error method is employed to derive parameters a and b by using adjacent samples of the current CU and their corresponding reference samples. More specifically, as illustrated in Figure 32, subsampled (2:1 subsampled) adjacent samples of the CU and corresponding pixels in the reference picture (identified by motion information of the current CU or current subCU) are used. IC parameters are derived and applied separately for each prediction direction.

[0066] If the CU is encoded in 2N×2N merge mode, the LIC flag is copied from the adjacent block in a similar manner to motion information copying in merge mode; otherwise, the LIC flag is signaled to indicate whether or not LIC applies to the CU.

[0067] When LIC is enabled for a picture, an additional CU-level RD check is required to determine whether LIC applies to the CU. When LIC is enabled for a CU, the mean-removed sum of absolute difference (MR-SAD) and the mean-removed sum of absolute Hadamard-transformed difference (MR-SATD) are used instead of SAD and SATD for integer pixel motion search and fractional pixel motion search, respectively.

[0068] To reduce encoding complexity, JEM employs an encoding scheme where LIC is disabled for the entire picture when there is no obvious illumination change between the current picture and its reference pictures. To determine this situation, the encoder calculates the histogram of the current picture and the histograms of all of the current picture's reference pictures. If the histogram difference between the current picture and all of its reference pictures is less than a given threshold, LIC is disabled for the current picture; otherwise, LIC is enabled for the current picture.

[0069] 2. Examples of shortcomings in existing implementations The current implementation introduces a two-point method to replace the LMS approach in LM mode in JEM. This new method reduces the number of additions and multiplications in CCLM, but introduces the following problems.

[0070] 1) Comparison is introduced to find the minimum and maximum luma values, which is not friendly to single-instruction multiple-data (SIMD) software design.

[0071] 2) Two lookup tables are introduced with a total of 1024 entries to store 16-bit numbers, requiring an undesirable 2K ROM memory in the hardware design.

[0072] Exemplary Method for Cross-Component Prediction in Video Sign Symbolization Embodiments of the technology disclosed herein overcome the drawbacks of existing implementations, thereby providing video sign symbolization with higher symbolization efficiency and lower computational complexity. The simplified linear model derivation for cross-component prediction based on the disclosed technology can strengthen both existing and future video sign symbolization standards, as will become apparent in the following examples described for various implementations. The examples of the disclosed technology provided below are illustrative of the general concepts and are not meant to be construed as limiting. In one example, various features described in these examples can be combined unless explicitly indicated otherwise.

[0073] In the following examples and methods, the term "LM method" includes, but is not limited to, the LM mode in JEM or VTM, the MMLM mode in JEM, the left LM mode that uses only the left adjacent sample to derive a linear model, the upper LM mode that uses only the upper adjacent sample to derive a linear model, or other types of methods that utilize luma reconstruction samples to derive a chroma prediction block. All LM modes that are neither LM-L nor LM-A are referred to as the normal LM mode.

[0074] In the following examples and methods, Shift(x, s) is defined as Shift(x, s) = (x + off) >> s, and SignShift(x, s) is

Equation

[0075] where off is an integer such as 0 or 2 s-1 and so on.

[0076] The height and width of the current chroma block are denoted as H and W, respectively.

[0077] Figure 6 shows an example of the adjacent sample group in the current chroma block. The coordinates of the top-left sample in the current chroma block are denoted as (x,y). Then, the adjacent chroma sample group (shown in Figure 6) is: A: Upper sample on the left: [x-1, y], B: Upper middle sample on the left side: [x-1, y+H / 2-1], C: Lower middle sample on the left: [x-1, y+H / 2], D: Lower sample on the left: [x-1, y+H-1], E: Lower extension sample on the left side: [x-1, y+H], F: Lower extension upper intermediate sample on the left side: [x-1, y+H+H / 2-1], G: Lower extended intermediate sample on the left side: [x-1, y+H+H / 2], I: Lower extension sample on the left side: [x-1, y+H+H-1], J: Upper left sample: [x, y-1], K: Upper left-center sample: [x+W / 2-1, y-1], L: Upper right-center sample: [x+W / 2, y-1], M: Upper right sample: [x+W-1, y-1], N: Upper upper extension left sample: [x+W, y-1], O: Upper upper extended left intermediate sample: [x+W+W / 2-1, y-1], P: Upper upper extended right intermediate sample: [x+W+W / 2, y-1], and Q: Upper right extended sample: [x+W+W-1, y-1] It is written as follows.

[0078] Example 1. In the LM method, the parameters α and β are derived from chromatic samples at two or more specific locations. a. The derivation also depends on the corresponding downsampled luma sample of the selected chroma sample. Alternatively, the derivation also depends on the corresponding luma sample of the selected chroma sample, for example, if it is a 4:4:4 color format. b. For example, the parameters α and β in CCLM are, for example, 2 S Derived from a chroma sample at position (e.g., S=2 or 3), for example: i. Position {A, D, J, M}; ii. Position {A,B,C,D,J,K,L,M}; iii.Position {A,I,J,Q}; iv. Position {A, B, D, I, J, K, M, Q}; v. Position {A, B, D, F, J, K, M, O}; vi.Positions{A,B,F,I,J,K,O,Q}; vii.Position {A,C,E,I,J,L,N,Q}; viii.Position {A,C,G,I,J,L,P,Q}; ix. Position {A, C, E, G, J, L, N, P}; x.Position {A,B,C,D}; xi.Position {A,B,D,I}; xii. Position {A, B, D, F}; xiii. Position {A, C, E, I}; xiv.Position {A,C,G,I}; xv.Position {A,C,E,G}; xvi.Position {J,K,L,M}; xvii.Position {J,K,M,Q}; xviii.Position {J,K,M,O}; xix.Position {J,K,O,Q}; xx.Position {J,L,N,Q}; xxi.Position {J,L,P,Q}; xxii.Position {J,L,N,P}; xxiii.Position {A,B,C,E,E,F,G,I}; xxiv.Position {J,K,L,M,N,O,P,Q}; It is derived from the above. c. For example, the parameters α and β in CCLM are derived from chromatographic samples at the following locations: i. Any combination between {A,B,C,D,E,F,G,I} and {J,K,L,M,N,O,P,Q}, such as the following: (a) Positions A and J; (b) Positions B and K; (c) Positions C and L; (d) Positions D and M; (e) Positions E and N; (f) Positions F and O; (g) Positions G and P; (h) Positions I and Q; ii. Any two different positions fetched from {A,B,C,D,E,F,G} (a) Positions A and B; (b) Positions A and C; (c) Positions A and D; (d) Positions A and E; (e) Positions A and F; (f) Positions A and G; (g) Positions A and I; (h) Positions D and B; (i) Positions D and C; (j) Positions E and B; (k) Positions E and C; (l) Positions I and B; (m) Positions I and C; (n) Positions I and D; (o) Positions I and E; (p) Positions I and F; (q) Positions I and G; iii. Any two different positions fetched from {J,K,L,M,N,O,P,Q} (a) Positions J and K; (b) Positions J and L; (c) Positions J and M; (d) Positions J and N; (e) Positions J and O; (f) Positions J and P; (g) Positions J and Q; (h) Positions M and K; (i) Positions M and L; (j) Positions N and K; (k) Positions N and L; (l) Positions Q and K; (m) Positions Q and L; (n) Positions Q and M; (o) Positions Q and N; (p) Positions Q and O; (q) Positions Q and P; (r) Positions Q and Q; iv. In one example, if two selected locations have the same luma value, more locations may be checked further. d. For example, in order to derive the parameters α and β in CCLM using the two-point method, not all available chromatic samples are searched to find the minimum and maximum chromatic values.

[0079] i. One chroma sample from K chroma samples (and their corresponding downsampled chroma samples) is included in the search set. K can be 2, 4, 6, or 8.

[0080] (a) For example, if Rec[x,y] is an adjacent sample above, it is included in the search set only if x%K==0. If Rec[x,y] is an adjacent sample to the left, it is included in the search set only if y%K==0.

[0081] ii. Only chroma samples located at specific positions, such as those defined in 1.ai-1.a.xxiv, are included in the search set. e. In mode LM-L, all selected samples must be the leftmost adjacent sample. f. In mode LM-A, all selected samples must be adjacent samples above. g. The selected position may be fixed or adaptive.

[0082] i. In one example, the position selected may depend on the current width and height of the chroma block; ii. In one example, the location to be selected may be indicated by a signal from the encoder to the decoder, for example, within the VPS / SPS / PPS / slice header / tile group header / tile / CTU / CU / PU. h. Selected chromatic samples are used to derive the parameters α and β using the least squares mean method shown in equations (2) and (3). In equations (2) and (3), N is set to the number of selected samples. i. A pair of selected chromatic samples are used to derive parameters α and β using the two-point method. j. In one example, how a sample is selected may depend on the availability of adjacent blocks.

[0083] i. For example, if both the left and top adjacent blocks are available, positions A, D, J, and M are selected; if only the left adjacent block is available, positions A and D are selected; and if only the top adjacent block is available, positions J and M are selected.

[0084] Example 2. The set of parameters in CCLM mode is first derived and then combined to form the final linear model parameters used to encode one block. α1 and β1 are derived from a group of chroma samples at a specific location, denoted as Group 1, and α2 and β2 are derived from a group of chroma samples at a specific location, denoted as Group 2. N and β N However, if we derive them from a group of chromatic samples at a specific position, denoted as group N, then the final α and β are (α1,β1), ..., (α N ,β N It can be derived from ). a. In one example, α is α1, ..., α N It is calculated as the average of β1, ..., β N It is calculated as the average.

[0085] i. In one example, α = SignShift(α1 + α2, 1) and β = SignShift(β1 + β2, 1).

[0086] ii. In one example, α = Shift(α1 + α2, 1) and β = Shift(β1 + β2, 1).

[0087] iii. If (α1,β1) and (α2,β2) have different accuracies, for example, to obtain the chroma prediction CP from its corresponding downsampled chroma sample LR, Using (α1,β1), CP = SignShift(α1 × LR + β1, SH1) It is calculated as follows, Using (α2,β2), CP is calculated as CP=SignShift(α2×LR+β2,SH2), and since Sh1 is not equal to Sh2, the parameters need to be shifted before joining. If Sh1 > Sh2, then before joining, the parameters are... (a) The shifts should be as follows: α1 = SignShift(α1, Sh1 - Sh2) and β1 = SignShift(β1, Sh1 - Sh2). Then the final accuracy will be (α2, β2).

[0088] (b) The shifts should be as follows: α1 = Shift(α1, Sh1 - Sh2) and β1 = Shift(β1, Sh1 - Sh2). Then the final accuracy will be (α2, β2).

[0089] (c) The values ​​should be shifted so that α2 = α2 << (Sh1 - Sh2) and β2 = β2 << (Sh1 - Sh2). Then the final precision will be (α1, β1). b. Some examples of the positions of Group 1 and Group 2: i. Group 1: Positions A and D, Group 2: Positions J and M ii. Group 1: Positions A and I, Group 2: Positions J and Q iii. Group 1: positions A and D, Group 2: positions E and I, and both groups are used in mode LM-L. iv. Group 1: positions J and M, Group 2: positions N and Q, and both groups are used in mode LM-A. v. Group 1: positions A and B, Group 2: positions C and D, and the two groups are used in mode LM-L vi. Group 1: positions J and K, Group 2: positions L and M, and the two groups are used in mode LM-A.

[0090] Example 3. Assume that the input consists of two chroma sample values denoted as C0 and C1, and their corresponding luma sample values denoted as L0 and L1 (L0 < L1). Using these inputs, the two-point method α = (C1 - C0) / (L1 - L0), and β = C0 - αL0 to derive α and β.

[0091] The bit depths of the luma samples and chroma samples are denoted as BL and BC. One or more simplifications for this implementation a. When L1 is equal to L0, α is output as 0. Alternatively, when L1 is equal to L0, instead of using the CCLM mode, a specific intra prediction mode (e.g., DM mode, DC or planar) is used to derive the prediction block.

[0092] b. The division operation is replaced by other operations that do not use a lookup table. The log2 operation can be performed by checking the position of the most significant digit.

[0093] i. α = Shift(C1 - C0, Floor(log2(L1 - L0))), or α = SignShift(C1 - C0, Floor(log2(L1 - L0))) ii. α = Shift(C1 - C0, Ceiling(log2(L1 - L0))), or α = SignShift(C1 - C0, Ceiling(log2(L1 - L0))) iii. Example i or example ii can be selected based on the value of L1 - L0.

[0094] (a) For example, when L1 - L0 < T, Example i is used; otherwise, Example ii is used. For example, T can be (Floor(log2(L1 - L0)) + Ceiling(log2(L1 - L0))) / 2 as it can be.

[0095] (b) For example, when 3×(L1 - L0) < 2 Floor(log2(L1-L0))+2 Example i is used; otherwise, Example ii is used.

[0096] (c) For example, when (L1 - L0) 2 < 2 2×Floor(log2(L1-L0))+1 Example i is used; otherwise, Example ii is used.

[0097] c. The division operation is replaced by one lookup table denoted as M[k].

[0098] i. The size of the lookup table denoted as V is less than 2 P where P is an integer such as 5, 6, or 7 for example.

[0099] ii. Each entry of the lookup table stores an F-bit integer, for example, F = 8 or 16.

[0100] (a) In one example, M[k - Z] = ((1 << S)+Off) / k, where S is an integer determining the precision, for example, S = F. Off is an offset, for example, Off=(k + Z) >> 1. Z determines the start value of the table, for example, Z = 1, or Z = 8, or Z = 32, etc. The valid key k for querying the table must satisfy k >= Z.

[0101] iii. k = Shift(L1 - L0, W) is used as the key for querying the lookup table.

[0102] (a) In one example, W depends on BL, V, and Z.

[0103] (b) In one example, W also depends on the value of L1-L0.

[0104] iv. If k is not a valid key for querying the lookup table (kZ<0, or kZ>=V), α is output as 0.

[0105] v. For example, α = Shift((C1-C0) × M[kZ], D), or α=SignShift((C1-C0)×M[kZ],D) vi. To obtain the chroma prediction CP from its corresponding luma sample LR (e.g., downsampled in the case of 4:2:0), it is calculated as follows: CP = SignShift(α × LR + β, Sh), or CP = Shift(α × LR + β, Sh) vii. Sh may be a fixed number, or it may depend on the values ​​of C0, C1, L0, and L1 used to calculate α and beta.

[0106] (a) Sh may depend on BL, BC, V, S, and D.

[0107] (b) D may depend on Sh

[0108] viii. The size of the lookup table, denoted as V, is 2 P This is equal to , where P is an integer such as 5, 6, 7, or 8. Alternatively, V is set to 2P-M (for example, M is equal to 0).

[0109] ix. Assume α = P / Q (for example, Q = L1 - L0, P = C1 - C0, or they are derived in other ways), then α is calculated as α = Shift(P × M[k - Z], D), or α = SignShift(P × M[k - Z], D) using a lookup table, where k is the key (index) for querying the entry in the lookup table.

[0110] (a) In one example, k is derived from Q using the function: k = f(Q).

[0111] (b) In one example, k is derived from Q and P using the function: k = f(Q, P).

[0112] (c) In one example, k is valid within a specific range [kMin, kMax]. For example, kMin = Z, kMax = V + Z.

[0113] (d) In one example, k = Shift(Q, W), a. W may depend on BL, V, and Z.

[0114] b. W may depend on the value of Q.

[0115] c. In one example, when k is calculated as Shift(Q, W), α is calculated using a lookup table as α = (Shift(P × M[k - Z], D)) << W, or α = (SignShift(P × M[k - Z], D)) << W as.

[0116] (e) In one example, k is derived in different ways for different values of Q.

[0117] a. For example, when Q <= kMax, k = Q, and when Q > kMax, k = Shift(Q, W). For example, W is selected as the smallest positive integer that makes Shift(Q, W) less than or equal to kMax.

[0118] b. For example, k = Min(kMax, Q).

[0119] c. For example, k = Max(kMin, Min(kMax, Q)).

[0120] (f) In one example, if Q < 0, -Q is used to replace Q in the calculation, and -α is output.

[0121] (g) In one example, if Q is equal to 0, α is set to a default value such as 0 or 1.

[0122] (h) In one example, Q is 2 E If E >= 0, then α = Shift(P, E) or α = SignShift(P, E).

[0123] d. All operations for deriving the LM parameters must be within K bits, where K can be 8, 10, 12, 16, 24, or 32.

[0124] i. If an intermediate variable may exceed the range represented by the constraint bits, it should be clipped or right-shifted so that it remains within the constraint bits.

[0125] Example 4. A single chroma block may use multiple linear models, and the choice of multiple linear models depends on the position of the chroma samples within the chroma block.

[0126] a. In one example, LM-L mode and LM-A mode can be combined within a single chroma block.

[0127] b. In one example, some samples are predicted in LM-L mode, while others are predicted in LM-A mode.

[0128] i. Figure 7 shows an example. Assume that the upper left sample is at position (0,0). Samples at positions (x,y) where x>y (or x>=y) are predicted by LM-A, and other samples are predicted by LM-L.

[0129] c. Let the predictions by LM-L and LM-A for the sample at position (x,y) be P1(x,y) and P2(x,y) respectively. Then the final prediction P(x,y) is calculated as a weighted sum of P1(x,y) and P2(x,y).

[0130] i. P(x,y)=w1*P1(x,y)+w2*P2(x,y) (a) w1+w2=1 ii. P(x,y)=(w1*P1(x,y)+w2*P2(x,y)+Offset)>>shift, where offset is 0 or 1<<(shift - 1), and shift is an integer such as 1, 2, 3, ….

[0131] (a) w1+w2=1<<shift iii. P(x,y)=(w1*P1(x,y)+((1<<shift)-w1)*P2(x,y)+Offset)>>shift, where offset is 0 or 1<<(shift - 1), and shift is an integer such as 1, 2, 3, ….

[0132] iv. w1 and w2 may depend on the position (x,y).

[0133] (a) For example, when x<y, w1>w2 (e.g., w1 = 3, w2 = 1), (b) For example, when x>y, w1<w2 (e.g., w1 = 1, w2 = 3), (c) For example, when x==y, w1=w2 (e.g., w1 = 2, w2 = 2), (d) For example, when y - x increases when x<y, w1 - w2 increases, (e) For example, when x - y increases when x>y, w2 - w1 increases.

[0134] Example 5. It is proposed to divide adjacent samples (including chroma samples and their corresponding luma samples, which may be downsampled) into N groups. The maximum luma value and minimum luma value of the k-th group (k=0,1,…,N-1) are MaxL k and MinL k These are written as follows, and their corresponding chroma values ​​are MaxC k and MinC k It is written as follows.

[0135] a. In one example, MaxL is MaxL = f1(MaxL S0 , MaxL S1 ,…, MaxL Sm ) is calculated as MaxC = f2(MaxC S0 MaxC S1 ,…, MaxC Sm It is calculated as ) and MinL is MinL = f3(MinL S0 MinL S1 ,…,MinL Sm It is calculated as follows: MinC = f4(MinC S0 MinC S1 ,…,MinC Sm It is calculated as follows: f1, f2, f3, and f4 are functions. The two-point method uses these inputs to calculate α and β as follows: α = (MaxC - MinC) / (MaxL - MinL) β = MinC - αMinL i. In one example, f1, f2, f3, and f4 all represent averaging functions.

[0136] ii. S0, S1, ..., Sm are indices of the selected group used to calculate α and β.

[0137] (1) For example, all groups are used, for example, S0=0, S1=1, ..., Sm=N-1.

[0138] (2) For example, two groups are used, for example, m=1, S0=0, S1=N-1.

[0139] (3) For example, not all groups are used; for example, m <N-1、S0=0、S1=2、S3=4、…などである。

[0140] b. In one example, the samples (or downsampled samples) located in the top row may be classified into one group, while the samples (or downsampled samples) located in the left column of the block may be classified into another group.

[0141] c. In one example, samples (or downsampled samples) are classified based on their location or coordinates.

[0142] i. For example, the samples may be classified into two groups.

[0143] (1) For each sample of coordinates (x,y) located in the row above, it is classified into group S0 if x%P=Q, where P and Q are integers, for example, P=2, Q=1, P=2, Q=0, or P=4, Q=0; otherwise, it is classified into group S1.

[0144] (2) For each sample of coordinates (x,y) located in the left column, it is classified into group S0 if y%P=Q, where P and Q are integers, for example, P=2, Q=1, P=2, Q=0, or P=4, Q=0; otherwise, it is classified into group S1.

[0145] (3) Only samples within one group, such as S0, are used to find MaxC and MaxL. For example, MaxL = MaxLS0 and MaxC = MaxCS0.

[0146] d. In one example, only a portion of adjacent samples (or downsampled samples) are used to divide the data into N groups.

[0147] e. The number of groups (e.g., N) and / or the index and / or function (f1 / f2 / f3 / f4) of the selected groups may be predetermined or may be signaled within the SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Header / LCU Group / LCU / CU.

[0148] f. In one example, how samples are selected for each group may depend on the availability of adjacent blocks.

[0149] i. For example, if both the left and top adjacent blocks are available, MaxL0 / MaxC0 and MinL0 / MinC0 are found from positions A and D, MaxL1 / MaxC1 and MinL1 / MinC1 are found from positions J and M, and MaxL=(MaxL0+MaxL1) / 2, MaxC=(MaxC0+MaxC1) / 2, MinL=(MinL0+MinL1) / 2, MinC=(MinC0+MinC1) / 2.

[0150] ii. For example, if only the left adjacent block is available, MaxL / MaxC and MinL / MinC can be found directly from positions A and D.

[0151] (1) Alternatively, if the adjacent block above is unavailable, α and β are set to some default values, for example, α=0 and β=1<<(bitDepth-1), where bitDepth is the bit depth of the chroma sample.

[0152] iii. For example, if only the adjacent blocks above are available, MaxL / MaxC and MinL / MinC can be found directly from positions J and M.

[0153] (1) Alternatively, if the left adjacent block is unavailable, α and β are set to some default values, for example, α=0 and β=1<<(bitDepth-1), where bitDepth is the bit depth of the chroma sample.

[0154] g. In one example, how the samples for each group are selected may depend on the width and height of the block.

[0155] h. In one example, how the samples for each group are selected may depend on the values ​​of the samples.

[0156] i. In one example, two samples with the highest and lowest luma values ​​are selected to be in the first group, and all other samples are placed in the second group.

[0157] Example 6. It is proposed that whether and how LM-L mode and LM-A mode are applied may now depend on the width (W) and height (H) of the block.

[0158] (a) For example, LM-L cannot be applied when W > K × H, for example, when K = 2.

[0159] (b) For example, LM-A cannot be applied when H > K × W, for example, when K = 2.

[0160] (c) If either LM-L or LM-A cannot be applied, a flag indicating whether LM-L or LM-A is used should not be signaled.

[0161] Example 7. A flag indicating whether CCLM mode is applied is signaled. The context used in arithmetic coding to encode the flag may depend on whether the upper-left adjacent block, shown in Figure 8, applies CCLM mode.

[0162] (a) In one example, when the upper-left adjacent block applies the CCLM mode, the first context is used; when the upper-left adjacent block does not apply the CCLM mode, the second context is used. (b) In one example, when the upper-left adjacent block is not available, this is regarded as not applying the CCLM mode. (c) In one example, when the upper-left adjacent block is not available, this is regarded as applying the CCLM mode. (d) In one example, when the upper-left adjacent block is not intra-coded, this is regarded as not applying the CCLM mode. (e) In one example, when the upper-left adjacent block is not intra-coded, this is regarded as applying the CCLM mode.

[0163] Example 8. Indications or codewords of the DM mode and the LM mode can be coded in different orders for each sequence / for each picture / for each tile / for each block.

[0164] (a) The coding order of the LM and DM indications (for example, first coding whether it is the LM mode, and if not, then coding whether it is the DM mode; or first coding whether it is the DM mode, and if not, then coding whether it is the LM mode) can depend on the mode information of one or more adjacent blocks.

[0165] (b) In one example, when the upper-left block of the current block is available and is coded in the LM mode, the indication of the LM mode is coded first.

[0166] (c) Alternatively, when the upper-left block of the current block is available and is coded in the DM mode, the indication of the DM mode is coded first.

[0167] (d) Alternatively, if the top-left block of the current block is available and encoded in a non-LM mode (e.g., DM mode, or any other intra-predictive mode other than LM), the DM mode indication is encoded first.

[0168] (e) In one example, this sequence of indications may be transmitted within the SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Header / LCU Group / LCU / CU.

[0169] Example 9. In the above example, the sample (or downsampled sample) may be located beyond the range of 2 × W upper neighbor samples or 2 × H left neighbor samples shown in Figure 6.

[0170] (a) In LM mode or LM-L mode, adjacent samples RecC[x-1, y+d] can be used, where d is within the range [T, S]. T may be less than 0 and S may be greater than 2H-1. For example, T=-4 and S=3H. In another example, T=0 and S=max(2H, W+H). In yet another example, T=0 and S=4H.

[0171] (b) In LM mode or LM-A mode, adjacent samples RecC[x+d,y] can be used, where d is within the range [T,S]. T may be less than 0 and S may be greater than 2W-1. For example, T=-4 and S=3W. In another example, T=0 and S=max(2W,W+H). In yet another example, T=0 and S=4W.

[0172] Example 10. In one example, chroma-adjacent samples and their corresponding luma samples (which may be downsampled) are downsampled before deriving the linear model parameters α and β, as disclosed in Examples 1-7. Let W and H be the width and height of the current chroma block.

[0173] (a) In one example, whether to perform downsampling and how to perform it may depend on W and H.

[0174] (b) In one example, the number of adjacent samples used to derive the parameters to the left of the current block and the number of adjacent samples used to derive the parameters above the current block should be the same after the downsampling process.

[0175] (c) In one example, when W is equal to H, the chroma adjacent samples and their corresponding luma samples (which can be downsampled) are not downsampled.

[0176] (d) In one example, when W < H, the chroma adjacent samples to the left of the current block and their corresponding luma samples (which can be downsampled) are downsampled.

[0177] (i) In one example, for every H / W chroma samples, one chroma sample is picked up to be used for deriving α and β. The other chroma samples are discarded. For example, if R[0,0] represents the top - left sample of the current block, for K from 0 to W - 1, R[-1,K*H / W] is picked up to be used for deriving α and β.

[0178] (e) In one example, when W > H, the chroma adjacent samples above the current block and their corresponding luma samples (which can be downsampled) are downsampled.

[0179] (i) In one example, for every W / H chroma samples, one chroma sample is picked up to be used for deriving α and β. The other chroma samples are discarded. For example, if R[0,0] represents the top - left sample of the current block, for K from 0 to H - 1, R[K*W / H,-1] is picked up to be used for deriving α and β.

[0180] (ii) Figure 9 shows an example of the samples picked up when positions D and M in Figure 6 are used to derive α and β, and the downsampling performed when W > H.

[0181] Example 11. Adjacent downsampled / original reconstructed samples, and / or downsampled / original reconstructed samples may be further refined before being used in a linear model prediction process or a cross-color component prediction process.

[0182] (a) “to be refined” may also refer to a filtering process.

[0183] (b) “to be refined” may refer to some kind of nonlinear processing.

[0184] (c) In order to derive α and β, such as α=(C1-C0) / (L1-L0) and β=C0-αL0, it is proposed to pick several adjacent samples (including chromatic samples and their corresponding lunar samples, which may be downsampled) and calculate C1, C0, L1, and L0.

[0185] (d) In one example, S adjacent chroma samples (which may be downsampled) denoted as Lx1, Lx2, ..., LxS and their corresponding chroma samples denoted as Cx1, Cx2, ..., CxS are used to derive C0 and L0 as follows, and T adjacent chroma samples (which may be downsampled) denoted as Ly1, Ly2, ..., LyT and their corresponding chroma samples denoted as Cy1, Cy2, ..., CyT are used to derive C1 and L1 as follows: (i) C0 = f0 (Cx1, Cx2, ..., CxS), L0 = f1 (Lx1, Lx2, ..., LxS), C1 = f2 (Cy1, Cy2, ..., CyT), L1 = f4 (Ly1, Ly2, ..., LyT). f0, f1, f2, and f3 are some functions.

[0186] (ii) In one example, f0 is the same as f1.

[0187] (iii) In one example, f2 is the same as f3.

[0188] (iv) In one example, f0, f1, f2, and f3 are the same.

[0189] 1. For example, they are all averaging functions.

[0190] (v) In one example, S is equal to T.

[0191] 1. In one example, the set {x1, x2, …, xS} is the same as the set {y1, y2, …, yT}.

[0192] (vi) In one example, Lx1, Lx2, …, LxS are selected as the smallest S luma samples among a group of luma samples.

[0193] 1. For example, the group of luma samples includes all adjacent samples used in VTM-3.0 to derive CCLM linear parameters.

[0194] 2. For example, the group of luma samples includes some adjacent samples used in VTM-3.0 to derive CCLM linear parameters.

[0195] a. For example, the group of luma samples includes the four samples shown in Figure 2-5.

[0196] (vii) In one example, Ly1, Ly2, …, LyS are selected as the largest S luma samples among a group of luma samples.

[0197] 1. For example, the group of luma samples includes all adjacent samples used in VTM-3.0 to derive CCLM linear parameters.

[0198] 2. For example, a group of Luma samples includes some of the adjacent samples used in VTM-3.0 to derive the CCLM linear parameters.

[0199] a. For example, the group of Luma samples includes the four samples shown in Figure 2-5.

[0200] Example 12. It is proposed to select other adjacent samples or downsampled adjacent samples based on the largest adjacent sample or downsampled adjacent sample within a given set of adjacent samples or downsampled adjacent samples.

[0201] (a) In one example, we denote that the largest adjacent sample or downsampled adjacent sample is at position (x0, y0). Then, other samples can be selected using samples in the regions (x0-d1, y0), (x0, y0-d2), (x0+d3, y0), and (x0, y0+d4). The integers {d1, d2, d3, d4} may depend on position (x0, y0). For example, if (x0, y0) is to the left of the current block, then d1=d3=1 and d2=d4=0. If (x0, y0) is above the current block, then d1=d3=0 and d2=d4=1.

[0202] (b) In one example, we denote that the smallest adjacent sample or downsampled adjacent sample is at position (x1, y1). Then, other samples can be selected using samples in the regions (x1-d1, y1), (x1, y1-d2), (x1+d3, y1), and (x1, y1+d4). The integers {d1, d2, d3, d4} may depend on position (x1, y1). For example, if (x1, y1) is to the left of the current block, then d1=d3=1 and d2=d4=0. If (x1, y1) is above the current block, then d1=d3=0 and d2=d4=1.

[0203] (c) In one example, the above sample represents a sample of one color component (e.g., a Lumacolor component). The sample used in the CCLM / Cross Color Component process may be derived by the corresponding coordinates of a second color component.

[0204] (d) The smallest sample can be derived using a similar method.

[0205] Example 13. In the example above, luma and chroma may be swapped. Alternatively, the luma color component may be replaced by a primary color component (e.g., G), and the chroma color component may be replaced by a secondary color component (e.g., B or R).

[0206] Example 14. The selection of the chroma sample (and / or corresponding luma sample) location may depend on the encoded mode information.

[0207] (a) Alternatively, it may depend on the availability of adjacent samples, such as whether the left column or the top row or the top-right row or the bottom-left column is available. Figure 10 illustrates the concepts of the left column / top row / top-right row / bottom-left column for a block.

[0208] (b) Alternatively, it may depend on the availability of samples at specific locations, such as whether the first upper-right sample and / or the first lower-left sample are available.

[0209] (c) Alternatively, it may depend on the block dimensions.

[0210] (i) Alternatively, it may depend on the ratio between the width and height of the current chroma (and / or luma) block.

[0211] (ii) Alternatively, it may also depend on whether the width and / or height are equal to K (for example, K=2).

[0212] (d) In one example, if the current mode is normal LM mode, the following methods may be applied to select chroma samples (and / or downsampled or undownsampled luma samples):

[0213] (i) If both the left column and the top row are available, two samples from the left column and two samples from the top row may be selected. They may be located below (with the coordinates of the top left of the current block being (x,y)).

[0214] 1. (x-1,y), (x,y-1), (x-1,y+H-1), and (x+W-1,y-1).

[0215] 2. (x-1,y), (x,y-1), (x-1,y+HH / W-1), and (x+W-1,y-1). For example, when H is greater than W.

[0216] 3. (x-1,y), (x,y-1), (x-1,y+H-1), and (x+WW / H-1,y-1). For example, when H is less than W.

[0217] 4. (x-1,y), (x,y-1), (x-1,y+H-max(1,H / W)), and (x+W-max(1,W / H),y-1).

[0218] (ii) If only the top row is available, the sample will be selected only from the top row.

[0219] 1. For example, the four samples in the row above could be selected.

[0220] 2. For example, two samples may be selected.

[0221] 3. How samples are selected may depend on the width / height. For example, if W > 2, 4 samples will be selected, and if W = 2, 2 samples will be selected.

[0222] 4. The sample to be selected may be located as follows (assuming the coordinates of the top-left corner of the current block are (x,y):

[0223] a. (x,y-1), (x+W / 4,y-1), (x+2*W / 4,y-1), (x+3*W / 4,y-1).

[0224] b. (x,y-1), (x+W / 4,y-1), (x+3*W / 4,y-1), (x+W-1,y-1).

[0225] c. (x,y-1), (x+(2W) / 4,y-1), (x+2*(2W) / 4,y-1), (x+3*(2W) / 4,y-1). For example, if the top right row is available, or if the first top right sample is available.

[0226] d. (x,y-1), (x+(2W) / 4,y-1), (x+3*(2W) / 4,y-1), (x+(2W)-1,y-1). For example, if the top right row is available, or if the first top right sample is available.

[0227] (iii) If only the left column is available, the sample will be selected from the left column only.

[0228] 1. For example, the four samples in the left column could be selected.

[0229] 2. For example, the two samples in the left column may be selected.

[0230] 3. How samples are selected may depend on the width / height. For example, if H > 2, 4 samples will be selected, and if H = 2, 2 samples will be selected.

[0231] 4. The selected sample may be located in the following:

[0232] a. (x-1,y), (x-1,y+H / 4), (x-1,y+2*H / 4), (x-1,y+3*H / 4).

[0233] b. (x-1,y), (x-1,y+2*H / 4), (x-1,y+3*H / 4), (x-1,y+H-1).

[0234] c. (x-1,y), (x-1,y+(2H) / 4), (x-1,y+2*(2H) / 4), (x-1,y+3*(2H) / 4). For example, if the bottom left column is available, or if the first bottom left sample is available.

[0235] d. (x-1,y), (x-1,y+2*(2H) / 4), (x-1,y+3*(2H) / 4), (x-1,y+(2H)-1). If the bottom left column is available, or if the first bottom left sample is available.

[0236] (iv) In the above example, only two of the four samples may be selected.

[0237] (e) In one example, if the current mode is LM-A mode, a sample may be selected according to Example 11(d)(ii).

[0238] (f) In one example, if the current mode is LM-L mode, a sample may be selected according to Example 11(d)(iii).

[0239] (g) The selected chroma samples (e.g., according to the positions of the selected chroma) may be grouped into two groups: one group having the maximum and minimum values ​​of all selected samples, and the other group having all the remaining samples.

[0240] (i) In order to derive the LM parameter, the two maximum values ​​of the two groups are averaged as the maximum values ​​in the two-point method, and the two minimum values ​​of the two groups are averaged as the minimum values ​​in the two-point method.

[0241] (ii) If only four samples are selected, the two larger sample values ​​are averaged, the two smaller sample values ​​are averaged, and the averaged values ​​are used as input to the two-point method for deriving the LM parameters.

[0242] Example 15. In the example above, luma and chroma may be swapped. Alternatively, the luma color component may be replaced by a primary color component (e.g., G), and the chroma color component may be replaced by a secondary color component (e.g., B or R).

[0243] Example 16. It is proposed to select the upper adjacent chroma samples (and / or their corresponding chroma samples that may be downsampled) based on a first positional offset value (denoted as F) and a step value (denoted as S). Let W be the width of the available upper adjacent samples that will be used.

[0244] a. In one example, W may be set to be equal to the current width of the block.

[0245] b. In one example, W may be set to (L times the current block width), where L is an integer value.

[0246] c. In one example, if both the top and left blocks are available, W may be set to the width of the current block.

[0247] i. Alternatively, if the left block is unavailable, W may be set to (L times the width of the current block), where L is an integer.

[0248] ii. In one example, L may depend on the availability of the upper right block. Alternatively, L may depend on the availability of one upper left sample.

[0249] d. In one example, W may depend on the coding mode.

[0250] i. In one example, if the current block is encoded as LM mode, W may be set to the width of the current block.

[0251] ii. If the current block is encoded in LM-A mode, W may be set to (L times the width of the current block), where L is an integer value.

[0252] (a) L may depend on the availability of the upper right block. Alternatively, L may depend on the availability of one upper left sample.

[0253] e. Assuming the coordinates of the top-left corner of the current block are (x0, y0), and setting K = 0, 1, 2, ..., kMax, the adjacent sample above at position (x0 + F + K × S, y0 - 1) is selected.

[0254] f. In one example, F = W / P, where P is an integer.

[0255] i. For example, P=2 i Here, i is an integer such as 1 or 2.

[0256] ii. Alternatively, F = W / P + offset.

[0257] g. In one example, S = W / Q, where Q is an integer.

[0258] i. For example, Q=2 j And j is an integer, such as 1 or 2.

[0259] h. In one example, F = S / R, where R is an integer.

[0260] i. For example, R=2 m And m is an integer, such as 1 or 2.

[0261] i. In one example, S = F / Z, where Z is an integer.

[0262] i. For example, Z=2 n Here, n is an integer such as 1 or 2.

[0263] j. kMax and / or F and / or S and / or offset may depend on the current block's prediction mode (e.g., LM, LM-A, or LM-L).

[0264] k. kMax and / or F and / or S and / or offset may currently depend on the width and / or height of the block.

[0265] l. kMax and / or F and / or S and / or offset may depend on the availability of adjacent samples.

[0266] m. kMax and / or F and / or S and / or offset may depend on W.

[0267] n. For example, kMax=1, F=W / 4, S=W / 2, offset=0. Alternatively, these settings are made when the block is currently LM coded, both left and top adjacent samples are available, and W>=4.

[0268] o. For example, kMax=3, F=W / 8, S=W / 4, offset=0. Alternatively, these settings are applied when the block is currently LM coded, only the adjacent samples above are available, and W>=4.

[0269] p. For example, kMax=3, F=W / 8, S=W / 4, offset=0. Alternatively, these settings are made if the block is currently LM-A encoded and W>=4.

[0270] q. For example, kMax=1, F=0, S=1, offset=0. Alternatively, these settings are made when W is equal to 2.

[0271] Example 17. It is proposed to select the left adjacent chromatic sample (and / or their corresponding chromatic samples that may be downsampled) based on a first positional offset value (denoted as F) and a step value (denoted as S). Let H be the height of the available left adjacent sample that will be used.

[0272] a. In one example, H may be set to be equal to the current height of the block.

[0273] b. In one example, H may be set to (L times the current block height), where L is an integer value.

[0274] c. In one example, if both the top and left blocks are available, H may be set to the current block height.

[0275] i. Alternatively, if the block above is unavailable, H may be set to (L times the current block height), where L is an integer.

[0276] ii. In one example, L may depend on the availability of the bottom-left block. Alternatively, L may depend on the availability of one bottom-left sample.

[0277] iii. Alternatively, if the necessary upper-right adjacent block is available, H may be set to (current block height + current block width).

[0278] (a) In one example, if the left neighboring sample is unavailable, the same H upper neighboring samples are selected for LM-A mode and LM mode.

[0279] d. In one example, H may depend on the coding mode.

[0280] i. In one example, if the current block is encoded as LM mode, H may be set to the height of the current block.

[0281] ii. If the current block is encoded as LM-L mode, H may be set to (L times the height of the current block).

[0282] (a) L may depend on the availability of the bottom-left block. Alternatively, L may depend on the availability of one top-left sample.

[0283] (b) Alternatively, if the necessary lower-left adjacent block is available, W may be set to (height of current block + width of current block).

[0284] (c) In one example, if the above adjacent samples are unavailable, the same W left adjacent samples are selected for LM-L mode and LM mode.

[0285] e. Assuming the coordinates of the top-left corner of the current block are (x0, y0), and K = 0, 1, 2, ..., kMax, the leftmost adjacent sample at position (x0-1, y0+F+K×S) is selected.

[0286] f. In one example, F = H / P, where P is an integer.

[0287] i. For example, P=2 i Here, i is an integer such as 1 or 2.

[0288] ii. Alternatively, F = H / P + offset.

[0289] g. In one example, S = H / Q, where Q is an integer.

[0290] i. For example, Q=2 j And j is an integer, such as 1 or 2.

[0291] h. In one example, F = S / R, where R is an integer.

[0292] i. For example, R=2 mAnd m is an integer, such as 1 or 2.

[0293] i. In one example, S = F / Z, where Z is an integer.

[0294] i. For example, Z=2 n Here, n is an integer such as 1 or 2.

[0295] j. kMax and / or F and / or S and / or offset may depend on the current block's prediction mode (e.g., LM, LM-A, or LM-L).

[0296] k. kMax and / or F and / or S and / or offset may depend on the current block height and / or height.

[0297] l. kMax and / or F and / or S and / or offset may depend on H.

[0298] m. kMax and / or F and / or S and / or offset may depend on the availability of adjacent samples.

[0299] n. For example, kMax=1, F=H / 4, S=H / 2, offset=0. Alternatively, these settings are made when the block is currently LM coded, both left and top neighboring samples are available, and H>=4.

[0300] o. For example, kMax=3, F=H / 8, S=H / 4, offset=0. Alternatively, these settings are applied when the block is currently LM coded, only the above adjacent samples are available, and H>=4.

[0301] p. For example, kMax=3, F=H / 8, S=H / 4, offset=0. Alternatively, these settings are made if the block is currently LM-L encoded and H>=4.

[0302] q. For example, if H is equal to 2, kMax=1, F=0, S=1, and offset=0.

[0303] Example 18. To derive linear model parameters, it is proposed to select two or four adjacent chromatic samples (and / or their corresponding chromatic samples which may be downsampled).

[0304] a. In one example, maxY / maxC and minY / minC are derived from two or four adjacent chromatic samples (and / or their corresponding chromatic samples that may be downsampled) and then used to derive linear model parameters using a two-point approach.

[0305] b. In one example, if two adjacent chroma samples (and / or their corresponding luma samples that may be downsampled) are selected to derive maxY / maxC and minY / minC, minY is set to the smaller luma sample value, minC is set to its corresponding chroma sample value, maxY is set to the larger luma sample value, and maxC is set to its corresponding chroma sample value.

[0306] c. In one example, if four adjacent chromatic samples (and / or their corresponding luma samples which may be downsampled) are selected to derive maxY / maxC and minY / minC, then those luma samples and their corresponding chromatic samples are divided into two sequences G0 and G1, each containing two chromatic samples and their corresponding luma samples.

[0307] i. If four luma samples and their corresponding chroma samples are denoted as S0, S1, S2, and S3, they can be divided into two groups in any order. For example: (a) G0 = {S0, S1}, G1 = {S2, S3}; (b) G0 = {S1, S0}, G1 = {S3, S2}; (c) G0 = {S0, S2}, G1 = {S1, S3}; (d) G0 = {S2, S0}, G1 = {S3, S1}; (e) G0 = {S1, S2}, G1 = {S0, S3}; (f) G0 = {S2, S1}, G1 = {S3, S0}; (g) G0 = {S0, S3}, G1 = {S1, S2}; (h) G0 = {S3, S0}, G1 = {S2, S1}; (i) G0 = {S1, S3}, G1 = {S0, S2}; (j) G0 = {S3, S1}, G1 = {S2, S0}; (k) G0 = {S3, S2}, G1 = {S0, S1}; (l) G0 = {S2, S3}, G1 = {S1, S0}; (m) G0 and G1 may be swapped.

[0308] ii. In one example, the luma sample values ​​of G0[0] and G0[1] are compared, and if the luma sample value of G0[0] is greater than the luma sample value of G0[1], the luma sample of G0[0] and its corresponding chromatic sample are exchanged for those of G0[1].

[0309] (a) Alternatively, if the luma sample value of G0[0] is greater than or equal to the luma sample value of G0[1], the luma sample of G0[0] and its corresponding chromatic sample are exchanged with those of G0[1].

[0310] (b) Alternatively, if the luma sample value of G0[0] is smaller than the luma sample value of G0[1], the luma sample of G0[0] and its corresponding chromatic sample are exchanged with those of G0[1].

[0311] (c) Alternatively, if the luma sample value of G0[0] is less than or equal to the luma sample value of G0[1], the luma sample of G0[0] and its corresponding chromatic sample are exchanged with those of G0[1].

[0312] iii. In one example, the luma sample values ​​of G1[0] and G1[1] are compared, and if the luma sample value of G1[0] is greater than the luma sample value of G1[1], the luma sample of G1[0] and its corresponding chromatic sample are exchanged for those of G1[1].

[0313] (a) Alternatively, if the luma sample value of G1[0] is greater than or equal to the luma sample value of G1[1], the luma sample of G1[0] and its corresponding chromatic sample are exchanged with those of G1[1].

[0314] (b) Alternatively, if the luma sample value of G1[0] is smaller than the luma sample value of G1[1], the luma sample of G1[0] and its corresponding chromatic sample are exchanged with those of G1[1].

[0315] (c) Alternatively, if the luma sample value of G1[0] is less than or equal to the luma sample value of G1[1], the luma sample of G1[0] and its corresponding chromatic sample are exchanged with those of G1[1].

[0316] iv. In one example, the luma sample values ​​of G0[0] and G1[1] are compared, and if the luma sample value of G0[0] is greater than (or less than or equal to, or greater than or equal to) the luma sample value of G1[1], G0 and G1 are swapped.

[0317] (a) In one example, the luma sample values ​​of G0[0] and G1[0] are compared, and if the luma sample value of G0[0] is greater than (or less than or equal to, or greater than or equal to) the luma sample value of G1[0], G0 and G1 are swapped.

[0318] (b) In one example, the luma sample values ​​of G0[1] and G1[0] are compared, and if the luma sample value of G0[1] is greater than (or less than or equal to, or greater than or equal to) the luma sample value of G1[0], G0 and G1 are swapped.

[0319] (c) In one example, the luma sample values ​​of G0[1] and G1[1] are compared, and if the luma sample value of G0[1] is greater than (or less than or equal to, or greater than or equal to) the luma sample value of G1[1], G0 and G1 are swapped.

[0320] v. In one example, the luma sample values ​​of G0[0] and G1[1] are compared, and if the luma sample value of G0[0] is greater than (or less than, less than, or greater than) the luma sample value of G1[1], then G0[0] and G1[1] are swapped.

[0321] (a) In one example, the luma sample values ​​of G0[0] and G1[0] are compared, and if the luma sample value of G0[0] is greater than (or less than or equal to, or greater than or equal to) the luma sample value of G1[0], G0[0] and G1[0] are swapped.

[0322] (b) In one example, the luma sample values ​​of G0[1] and G1[0] are compared, and if the luma sample value of G0[1] is greater than (or less than or equal to, or greater than or equal to) the luma sample value of G1[0], G0[1] and G1[0] are swapped.

[0323] (c) In one example, the luma sample values ​​of G0[1] and G1[1] are compared, and if the luma sample value of G0[1] is greater than (or less than or equal to, or greater than or equal to) the luma sample value of G1[1], then G0[1] and G1[1] are swapped.

[0324] vi. In one example, maxY is calculated as the average of the lumasample values ​​of G0[0] and G0[1], and maxC is calculated as the average of the chromasample values ​​of G0[0] and G0[1].

[0325] (a) Alternatively, maxY is calculated as the average of the luma sample values ​​of G1[0] and G1[1], and maxC is calculated as the average of the chroma sample values ​​of G1[0] and G1[1].

[0326] vii. In one example, minY is calculated as the average of the lumasample values ​​of G0[0] and G0[1], and minC is calculated as the average of the chromasample values ​​of G0[0] and G0[1].

[0327] Alternatively, minY is calculated as the average of the luma sample values ​​of G1[0] and G1[1], and minC is calculated as the average of the chroma sample values ​​of G1[0] and G1[1].

[0328] d. In one example, if only two adjacent chroma samples (and / or their corresponding luma samples that may be downsampled) are available, they are first padded to become four chroma samples (and / or their corresponding luma samples), and then the CCLM parameters are derived using those four chroma samples (and / or their corresponding luma samples).

[0329] i. In one example, two padding chroma samples (and / or their corresponding luma samples) are copied from two available adjacent chroma samples (and / or their corresponding luma samples that may be downsampled).

[0330] Example 19. In all the examples above, the selected chroma samples are to be located in the top row (i.e., having W samples) and / or the left column (i.e., having H samples) shown in Figure 10, where W and H are currently the width and height of the block.

[0331] a. Alternatively, the above constraint may apply if the block is currently encoded in normal LM mode.

[0332] b. Alternatively, the selected chromatic samples are those located in the top row (i.e., with W samples) and the upper right row (with H samples).

[0333] i. Alternatively, the above constraints may also apply if the block is currently encoded in LM-A mode.

[0334] ii. Alternatively, the above constraint may also apply when the top row is available but the left column is not, and the block is currently encoded in LM-A mode or normally LM.

[0335] c. Alternatively, the selected chromatic samples are those located in the left column (i.e., with H samples) and the lower left column (with W samples).

[0336] i. Alternatively, the above constraints may also apply if the block is currently encoded in LM-L mode.

[0337] ii. Alternatively, the above constraint may also apply when the top row is unavailable but the left column is available, and the block is currently encoded in LM-L mode or normally LM.

[0338] Example 20 In one example, only adjacent chroma samples located at positions required to derive the corresponding chroma sample for CCLM parameters need to be downsampled.

[0339] Example 21 How the methods disclosed in this document are implemented may depend on the color format (e.g., 4:2:0 or 4:4:4).

[0340] a. Alternatively, how the methods disclosed in this document are carried out may depend on the bit depth (e.g., 8 bits or 10 bits).

[0341] b. Alternatively, how the methods disclosed in this document are implemented may depend on the color representation method (e.g., RGB or YCbCr).

[0342] c. Alternatively, how the methods disclosed in this document are carried out may depend on the color representation method (e.g., RGB or YCbCr).

[0343] d. Alternatively, how the methods disclosed in this document are performed may depend on the chroma downsampling location.

[0344] Example 22 The deriving of the maximum / minimum values ​​of the luma and chroma components used to derive the CCLM parameters may depend on the availability of adjacent blocks to the left and above. For example, if neither adjacent block to the left nor above is available, the maximum / minimum values ​​of the luma and chroma components used to derive the CCLM parameters may not be derived.

[0345] a. Whether the maximum / minimum values ​​of the luma and chroma components used to derive the CCCLM parameters are derived may depend on the number of available neighboring samples. For example, if numSampL == 0 and numSampT == 0, the maximum / minimum values ​​of the luma and chroma components used to derive the CCLM parameters may not be derived. In another example, if numSampL + numSampT == 0, the maximum / minimum values ​​of the luma and chroma components used to derive the CCLM parameters may not be derived. In these two examples, numSampL and numSampT are the number of available neighboring samples from the left and above neighboring blocks.

[0346] b. Whether the maximum / minimum values ​​of the luma and chroma components used to derive the CCCLM parameters are derived may depend on the number of selected samples used to derive those parameters. For example, if cntL==0 and cntT==0, the maximum / minimum values ​​of the luma and chroma components used to derive the CCLM parameters may not be derived. In another example, if cntL+cntT==0, the maximum / minimum values ​​of the luma and chroma components used to derive the CCLM parameters may not be derived. In these two examples, cntL and cntT are the number of selected samples from the adjacent blocks to the left and above.

[0347] Example 23 For example, the proposed method for deriving parameters used in CCLM could be used to derive parameters used in LIC or other coding tools that rely on linear models.

[0348] a. The examples disclosed above can be applied to LIC by, for example, replacing “chroma adjacent samples” with “adjacent samples of the current block” and replacing “corresponding luma samples” with “adjacent samples of the reference block.”

[0349] b. In one example, the samples used to derive the LIC parameters may exclude samples at specific positions in the row above and / or the column to the left.

[0350] i. In one example, the samples used to derive the LIC parameters may exclude the first sample in the row above.

[0351] (a) If the coordinates of the top-left sample are (x0, y0), it is proposed to exclude (x0, y0-1) when using the LIC parameters.

[0352] ii. In one example, the samples used to derive the LIC parameters may exclude the first sample in the left column.

[0353] (a) If the coordinates of the top-left sample are (x0, y0), it is proposed to exclude (x0-1, y0) when using the LIC parameters.

[0354] iii. Whether the above method is applied and / or how a particular position is determined may depend on the availability of the left column / upper row.

[0355] iv. Whether the above method is applied and / or how a particular location is determined may depend on the block dimensions.

[0356] c. In one example, the parameters used for LIC can be derived using N adjacent samples of the current block (which may be downsampled) and N corresponding adjacent samples of the reference block (which may be downsampled accordingly).

[0357] i. For example, N is 4.

[0358] ii. In one example, N adjacent samples may be defined as N / 2 samples from the row above and N / 2 samples from the column to the left.

[0359] (a) Alternatively, the N adjacent samples may be defined as N samples from the row above or the column to the left.

[0360] iii. In another example, N is equal to min(L,T), where T is the total number of available neighboring samples (which may be downsampled) in the current block.

[0361] (a) In one example, L is set to 4.

[0362] iv. In one example, the selection of coordinates for N samples may follow the rules for selecting N samples in the CCLM process.

[0363] v. In one example, the selection of coordinates for N samples may follow the rules for selecting N samples in the LM-A process.

[0364] vi. In one example, the selection of coordinates for N samples may follow the rules for selecting N samples in the LM-L process.

[0365] vii. In one example, how N samples are selected may depend on the availability in the upper row / left column.

[0366] d. In one example, N adjacent samples from the current block (which may be downsampled) and N corresponding adjacent samples from the reference block (which may also be downsampled) may be used to derive the parameters used in the LIC and may be picked based on the sample position.

[0367] i. The pickup method may depend on the current width and height of the block.

[0368] ii. The pickup method may depend on the availability of adjacent blocks.

[0369] iii. For example, if both the upper and left adjacent samples are available, K1 adjacent samples may be picked from the left adjacent samples, and K2 adjacent samples may be picked from the upper adjacent samples. For example, K1 = K2 = 2.

[0370] iv. For example, if only the left neighboring samples are available, K1 neighboring samples can be picked from the left neighboring samples. For example, K1 = 4.

[0371] v. For example, if only the above adjacent samples are available, K2 adjacent samples can be picked from the above adjacent samples. For example, K2 = 4.

[0372] vi. For example, the above sample may be picked using a first positional offset value (denoted as F) and a step value (denoted as S), which may depend on the dimensions of the current block and the availability of adjacent blocks.

[0373] (a) For example, F and S can be derived by applying the method disclosed in Example 16.

[0374] vii. For example, the sample on the left can be picked using a first positional offset value (denoted as F) and a step value (denoted as S), which may depend on the dimensions of the current block and the availability of adjacent blocks.

[0375] (a) For example, F and S can be derived by applying the method disclosed in Example 17.

[0376] e. In one example, the proposed method for deriving the parameters used in CCLM can also be used to derive the parameters used in LIC when the block is currently affine coded.

[0377] f. The above method may be used to derive parameters used in other coding tools that rely on linear models.

[0378] In another example, a cross-component prediction mode is proposed in which the chroma sample is predicted using the corresponding reconstructed chroma sample according to a prediction model as shown in equation (12). In equation (12), Pred C (x,y) represents the predicted chroma sample. α and β are two model parameters. Rec'L(x,y) is the downsampled chroma sample.

number

[0379] As shown in equation (13), a 6-tap filter is introduced into the Luma downsampling process for block A in Figure 11.

number

[0380] As shown in equation (14), the shaded upper ambient reference sample in Figure 11 is downsampled with a 3-tap filter. The left ambient reference sample is downsampled according to equation (15). If the left or upper sample is unavailable, a 2-tap filter as defined by equations (16) and (17) is used.

number

[0381] In particular, surrounding luma reference samples are downsampled to the same size as the chroma reference samples. These sizes (width and height) are denoted as width and height. Only two or four adjacent samples are involved in deriving α and β. A lookup table is applied to avoid division operations when deriving α and β. The derivation method is shown below.

[0382] 3.1 Exemplary method using a maximum of two samples (1) The ratio r of width to height is calculated as shown in equation (18).

number

[0383] (2) If both the top and left blocks are available, two samples are selected: one located at posA on the first top line and the other at posL on the first left line. For simplicity of explanation, we assume the width is the longer side. The derivation of posA and posL is shown in equation (19) (position indices start from 0). Figure 12 shows some examples of different width-to-height ratios (1, 2, 4, and 8, respectively). The selected samples are shaded.

number

[0384] (3) If the upper block is available but the left block is not, the first point on the upper line and point posA are selected, as shown in Figure 13.

[0385] (4) If the left block is available but the top block is not, the first point on the left line and the point at posL are selected, as shown in Figure 14.

[0386] (5) A chroma prediction model is derived according to the luminance and chrominance values ​​of the selected samples.

[0387] (6) If neither the left nor the top block is available, a default prediction model is used in which α is equal to 0 and β is equal to 1 << (BitDepth-1), where BitDepth represents the bit depth of the chroma sample.

[0388] 3.2 Exemplary method using up to four samples (1) The ratio r of width to height is calculated as shown in equation (18).

[0389] (2) If both the upper and left blocks are available, four samples are selected: the first and posA of the first upper line and the first and posL of the first left line. The derivation of posA and posL is shown in equation (19). Figure 15 shows some examples of different width-to-height ratios (1, 2, 4, and 8, respectively). The selected samples are shaded.

[0390] (3) If the upper block is available but the left block is not, the first point on the upper line and point posA are selected, as shown in Figure 13.

[0391] (4) If the left block is available but the top block is not, the first point on the left line and the point at posL are selected, as shown in Figure 14.

[0392] (5) If neither the left nor the top block is available, a default prediction model is used in which α is equal to 0 and β is equal to 1 << (BitDepth-1), where BitDepth represents the bit depth of the chroma sample.

[0393] 3.3 Exemplary Method of Using Lookup Tables in LM Derivation Figure 16 shows examples of lookup tables with 128, 64, and 32 entries, each represented by 16 bits. The two-point LM derivation process is simplified with 64 entries, as shown in Table 1 and Figure 17. It should be noted that the first entry does not necessarily have to be stored in the table.

[0394] It should also be noted that while each entry in these example tables is designed to be 16 bits, it can be easily converted to a smaller number of bits (e.g., 8 bits or 12 bits). For example, a table with 8-bit entries can be achieved as follows: g_aiLMDivTableHighSimp_64_8[i]=(g_aiLMDivTableHighSimp_64[i]+128)>>8

[0395] For example, a table with 12-bit entries can be achieved as follows: g_aiLMDivTableHighSimp_64_12[i]=(g_aiLMDivTableHighSimp_64[i]+8)>>4 [Table 1]

[0396] Note that maxLuma and minLuma may represent the maximum and minimum luma sample values ​​for the selected positions. Alternatively, they may represent functions of the maximum and minimum luma sample values ​​for the selected positions, such as the average. If only four positions are selected, they may also be the average of the two larger luma values ​​and the average of the two smaller luma values. Furthermore, it should be noted that in Figure 17, maxChroma and minChroma represent the chroma values ​​corresponding to maxLuma and minLuma.

[0397] 3.3 Method using up to 4 samples #4 Let W and H be the width and height of the current chroma block. Also, assume that the coordinates of the top-left corner of the chroma block are [0,0].

[0398] If both the top and left blocks are available, and the current mode is a normal LM mode (excluding LM-A and LM-L), then the two chroma samples located in the top row and the two chroma samples located in the left column will be selected.

[0399] The coordinates of the two samples above are [Floor(W / 4),-1] and [Floor(3*W / 4),-1].

[0400] The coordinates of the two leftmost samples are [-1, Floor(H / 4)] and [-1, Floor(3*H / 4)].

[0401] The selected samples are colored red, as shown in Figure 31A.

[0402] Next, these four samples are sorted according to their Luman sample intensity and classified into two groups. The two larger samples and the two smaller samples are each averaged. A cross-component predictive model is derived using these two averages. Alternatively, the LM parameters are derived using the maximum and minimum values ​​of the four samples.

[0403] If the upper block is available but the left block is not, four chroma samples are selected from the upper block when W > 2, and two chroma samples are selected when W = 2.

[0404] The coordinates of the four selected samples above are [W / 8,-1], [W / 8+W / 4,-1], [W / 8+2*W / 4,-1], and [W / 8+3*W / 4,-1].

[0405] The selected samples are colored red, as shown in Figure 31B.

[0406] If the left block is available but the upper block is not, four chroma samples are selected from the left block when H > 2, and two chroma samples are selected when H = 2.

[0407] The coordinates of the four selected left samples are [-1, H / 8], [-1, H / 8 + H / 4], [-1, H / 8 + 2 * H / 4], and [-1, H / 8 + 3 * H / 4].

[0408] If neither the left nor the top block is available, a default prediction is used where α is equal to 0 and β is equal to 1 << (BitDepth-1), where BitDepth represents the bit depth of the chroma sample.

[0409] If the current mode is LM-A mode, then when W'>2, four chroma samples are selected from the block above, and when W'=2, two chroma samples are selected. W' is the number of available adjacent samples above, which can be 2*W.

[0410] The coordinates of the four selected samples above are [W' / 8,-1], [W' / 8+W' / 4,-1], [W' / 8+2*W' / 4,-1], and [W' / 8+3*W' / 4,-1].

[0411] If the current mode is LM-L mode, then when H'>2, four chroma samples are selected from the left block, and when H'=2, two chroma samples are selected. H' is the number of available adjacent samples to the left, which can be 2*H.

[0412] The coordinates of the four selected left samples are [-1,H' / 8], [-1,H' / 8+H' / 4], [-1,H' / 8+2*H' / 4], and [-1,H' / 8+3*H' / 4].

[0413] 3.5 Example of an embodiment for modifying the current VVC standard for the use of CCLM prediction

[0414] 8.3.4.2.8 Specifications for INTRA_LT_CCLM, INTRA_L_CCLM, and INTRA_T_CCLM intra-prediction modes In this section, formulas are described using formula numbers that correspond to those in the current draft of the VVC standard.

[0415] The inputs to this process are as follows: - Intra predictive mode predModeIntra, - The sample position (xTbC, yTbC) of the top-left sample of the current transformation block relative to the top-left sample of the current picture. - Variable nTbW that defines the width of the conversion block, - Variable nTbH that defines the height of the transformation block, - Chromatic adjacent samples p[x][y] for x=-1, y=0..2*nTbH-1 and x=0..2*nTbW-1, y=-1.

[0416] The output of this process is predSamples[x][y], which is a prediction sample for x=0..nTbW-1 and y=0..nTbH-1.

[0417] The current Luma position (xTbY, yTbY) is derived as follows: (xTbY, yTbY)=(xTbC<<1, yTbC<<1) (8-155)

[0418] The variables avalL, avalT, and avalTL are derived as follows: ... - If predModeIntra is equal to INTRA_LT_CCLM, the following applies: numSampT=availT? nTbW:0 (8-156) numSampL=availL? nTbH:0 (8-157) - Otherwise, the following applies: numSampT=(availT&&predModeIntra==INTRA_T_CCLM)? (nTbW+numTopRight):0 (8-158) numSampL=(availL&&predModeIntra==INTRA_L_CCLM)? (nTbH+numLeftBelow):0 (8-159)

[0419] The variable bCTUbordery is derived as follows: bCTUboundary=(yTbC&(1<<(CtbLog2SizeY-1)-1)==0)? TRUE:FALSE (8-160)

[0420] The prediction samples predSamples[x][y] for x=0..nTbW-1, y=0..nTbH-1 are derived as follows: - If both numSampL and numSampT are equal to 0, the following applies: predSamples[x][y]=1<<(BitDepthC-1) (8-161) - Otherwise, the following ordered steps apply: 1. ...[No changes from the current specifications] 2. ... 3. ... 4. ... 5. ... 6. [No changes from the current specifications] 7. The variables minY, maxY, minC, and maxC are derived as follows: - The variable minY is 1 << (BitDepth Y ) is set to equal to +1, and the variable maxY is set to equal to -1. - If avalL is equal to TRUE and predModeIntra is equal to INTRA_LT_CCLM, the variable aboveIs4 is set to 0; otherwise, it is set to 1. - If avallT is equal to TRUE and predModeIntra is equal to INTRA_LT_CCLM, the variable LeftIs4 is set to 0; otherwise, it is set to 1. - The variable arrays startPos[] and pickStep[] are derived as follows: - startPos[0]=actualTopTemplateSampNum>>(2+aboveIs4); - pickStep[0]=std::max(1, actualTopTemplateSampNum>>(1+aboveIs4)); - startPos[1]=actualLeftTemplateSampNum>>(2+leftIs4); - pickStep[1]=std::max(1, actualLeftTemplateSampNum>>(1+leftIs4)); - The variable cnt is set to 0. - When predModeIntra is equal to INTRA_LT_CCLM, the variable nSX is set to nTbW, nSY is set to nTbH; otherwise, nSX is set to numSampLT, and nSY is set to numSampL. - When avallT is equal to TRUE and predModeIntra is not equal to INTRA_L_CCLM, the variables selectLumaPix and selectChromaPix are derived as follows: - While startPos[0]+cnt*pickStep[0]<nSX and cnt<4, the following applies: - selectLumaPix[cnt]=pTopDsY[startPos[0]+cnt*pickStep[0]]; - selectChromaPix[cnt]=p[startPos[0]+cnt*pickStep[0]][-1]; - cnt++; - When avalL is equal to TRUE and predModeIntra is not equal to INTRA_T_CCLM, the variables selectLumaPix and selectChromaPix are derived as follows: - While startPos[1]+cnt*pickStep[1]<nSY and cnt<4, the following applies: - selectLumaPix[cnt]=pLeftDsY[startPos[1]+cnt*pickStep[1]]; - selectChromaPix[cnt]=p[-1][startPos[1]+cnt*pickStep[1]]; - cnt++; - If cnt is equal to 2, the following applies: - If selectLumaPix[0] > selectLumaPix[1], minY is set to equal selectLumaPix[1], minC is set to equal selectChromaPix[1], maxY is set to equal selectLumaPix[0], and maxC is set to equal selectChromaPix[0]. Otherwise, maxY is set to equal selectLumaPix[1], maxC is set to equal selectChromaPix[1], minY is set to equal selectLumaPix[0], and minC is set to equal selectChromaPix[0]. - Otherwise, if cnt is equal to 4, the following applies: - The variable arrays minGrpIdx and maxGrpIdx are, -minGrpIdx[0]=0, minGrpIdx[1]=1, maxGrpIdx[0]=2, maxGrpIdx[1]=3 Initialized as, - The following applies: - If selectLumaPix[minGrpIdx[0]] > selectLumaPix[minGrpIdx[1]], swap minGrpIdx[0] and minGrpIdx[1]; - If selectLumaPix[maxGrpIdx[0]] > selectLumaPix[maxGrpIdx[1]], swap maxGrpIdx[0] and maxGrpIdx[1]; - If selectLumaPix[minGrpIdx[0]] > selectLumaPix[maxGrpIdx[1]], swap minGrpIdx and maxGrpIdx; - If selectLumaPix[minGrpIdx[1]] > selectLumaPix[maxGrpIdx[0]], swap minGrpIdx[1] and maxGrpIdx[0]; - maxY, maxC, minY, and minC are derived as follows: - maxY=(selectLumaPix[maxGrpIdx[0]]+selectLumaPix[maxGrpIdx[1]]+1)>>1; - maxC=(selectChromaPix[maxGrpIdx[0]]+selectChromaPix[maxGrpIdx[1]]+1)>>1; - maxY=(selectLumaPix[minGrpIdx[0]]+selectLumaPix[minGrpIdx[1]]+1)>>1; - maxC=(selectChromaPix[minGrpIdx[0]]+selectChromaPix[minGrpIdx[1]]+1)>>1; - 8. Variables a, b, and k are derived as follows: [End of changes]

[0421] 3.6 Another Exemplary Working Draft on Proposed CCLM Prediction This section describes another exemplary embodiment that demonstrates possible changes to the current working draft of the VVC standard. The equation numbers here refer to the corresponding equation numbers in the VVC standard.

[0422] Specifications for the INTRA_LT_CCLM, INTRA_L_CCLM, and INTRA_T_CCLM intra-prediction modes.

[0423] [The following additions have been made to the VVC working draft at this stage:] The number of available adjacent chroma samples to the right and upper right, numTopSamp, and the number of available adjacent chroma samples to the left and lower left, nLeftSamp, are derived as follows: - If predModeIntra is equal to INTRA_LT_CCLM, the following applies: numSampT=availT? nTbW:0 (8-157) numSampL=availL? nTbH:0 (8-158) - Otherwise, the following applies: numSampT=(availT&&predModeIntra==INTRA_T_CCLM)? (nTbW+Min(numTopRight, nTbH)):0 (8-159) numSampL=(availL&&predModeIntra==INTRA_L_CCLM)? (nTbH+Min(numLeftBelow, nTbW)):0 (8-160) The variable bCTUboundary is derived as follows: bCTUboundary=(yTbC&(1<<(CtbLog2SizeY-1)-1)==0)? TRUE:FALSE (8-161) Replace N with L and T to obtain the variables cntN and The array pickPosN[] is derived as follows: - The variable numIs4N is set to equal to ((availN&&predModeIntra==INTRA_LT_CCLM)? 0:1) - The variable startPosN is set to equal numSampN >> (2 + numIs4N). - The variable pickStepN is set to be equal to Max(1, numSampN>>(1+numIs4N)). - If availN is equal to TRUE and predModeIntra is equal to INTRA_LT_CCLM or INTRA_N_CCLM, then cntN is set to equal to (1+numIs4N)<<1, and pickPosN[pos] is set to equal to (startPosN+pos*pickStepN) at pos=0..(cntN-1). - Otherwise, cntN is set to equal to 0. The prediction samples predSamples[x][y] for x=0..nTbW-1, y=0..nTbH-1 are derived as follows: - If both numSampL and numSampT are equal to 0, the following applies: predSamples[x][y]=1<<(BitDepthC-1) (8-162) - Otherwise, the following ordered steps apply: 1. Prior to the deblocking filter process at position (xTbY+x, yTbY+y), the collated Luma sample pY[x][y] at x = 0..nTbW*2-1, y=0..nTbH*2-1 is set to be equal to the reconstructed Luma sample. 2. The adjacent Luma sample pY[x][y] is derived as follows: - When numSampL is greater than 0, prior to the deblocking filter process at position (xTbY+x, yTbY+y), the adjacent left luma sample pY[x][y] at x=-1..-3, y=0..2*numSampL-1 is set equal to the reconstructed luma sample. - When numSampT is greater than , prior to the deblocking filter process at position (xTbY+x, yTbY+y), the luma sample pY[x][y] at adjacent positions x=0..2*numSampT-1, y=-1,-2 is set equal to the reconstructed luma sample. - When availTL is equal to TRUE, the adjacent upper-left luma sample pY[x][y] at x=-1, y=-1,-2 is set to be equal to the reconstructed luma sample prior to the deblocking filter process at position (xTbY+x, yTbY+y). 3. The downsampled coloctoruma sample pDsY[x][y] for x=0..nTbW-1, y=0..nTbH-1 is derived as follows: - If sps_cclm_colocated_chroma_flag is equal to 1, the following applies: - For x=1..nTbW-1, y=1..nTbH-1, pDsY[x][y] is derived as follows: pDsY[x][y]=(pY[2*x][2*y-1]+ pY[2*x-1][2*y]+4*pY[2*x][2*y]+pY[2*x+1][2*y]+ pY[2*x][2*y+1]+4)>>3 (8-163) - If availL is equal to TRUE, then pDsY[0][y] for y=1..nTbH-1 is derived as follows: pDsY[0][y]=(pY[0][2*y-1]+ pY[-1][2*y]+4*pY[0][2*y]+pY[1][2*y]+ pY[0][2*y+1]+4)>>3 (8-164) - Otherwise, pDsY[0][y] for y=1..nTbH-1 is derived as follows: pDsY[0][y]=(pY[0][2*y-1]+2*pY[0][2*y]+pY[0][2*y+1]+2)>>2 (8-165) - If availT is equal to TRUE, then pDsY[x][0] for x=1..nTbW-1 is derived as follows: pDsY[x][0]=(pY[2*x][-1]+ pY[2*x-1][0]+4*pY[2*x][0]+pY[2*x+1][0]+ pY[2*x][1]+4)>>3 (8-166) - Otherwise, pDsY[x][0] for x=1..nTbW-1 is derived as follows: pDsY[x][0]=(pY[2*x-1][0]+2*pY[2*x][0]+pY[2*x+1][0]+2)>>2 (8-167) - If availL is equal to TRUE and availT is equal to TRUE, then pDsY

[0000]

[0000] is derived as follows: pDsY[0][0]=(pY[0][-1]+ pY[-1][0]+4*pY[0][0]+pY[1][0]+ pY[0][1]+4)>>3 (8-168) - If not, and availL is equal to TRUE and availT is equal to FALSE, then pDsY

[0000]

[0000] is derived as follows: pDsY[0][0]=(pY[-1][0]+2*pY[0][0]+pY[1][0]+2)>>2 (8-169) - Otherwise, if availL is equal to FALSE and availT is equal to TRUE, then pDsY

[0000]

[0000] is derived as follows: pDsY[0][0]=(pY[0][-1]+2*pY[0][0]+pY[0][1]+2)>>2 (8-170) - Otherwise (availL is equal to FALSE and availT is equal to FALSE), pDsY

[0000]

[0000] is derived as follows: pDsY[0][0]=pY[0][0] (8-171) - Otherwise, the following applies: - For x=1..nTbW-1, y=0..nTbH-1, the pDsY[x][y] is derived as follows: pDsY[x][y]=(pY[2*x-1][2*y]+pY[2*x-1][2*y+1]+ 2*pY[2*x][2*y]+2*pY[2*x][2*y+1]+ pY[2*x+1][2*y]+pY[2*x+1][2*y+1]+4)>>3 (8-172) - If availL is equal to TRUE, then pDsY[0][y] for y=0..nTbH-1 is derived as follows: pDsY[0][y]=(pY[-1][2*y]+pY[-1][2*y+1]+ 2*pY[0][2*y]+2*pY[0][2*y+1]+ pY[1][2*y]+pY[1][2*y+1]+4)>>3 (8-173) - Otherwise, pDsY[0][y] for y=0..nTbH-1 is derived as follows: pDsY[0][y]=(pY[0][2*y]+pY[0][2*y+1]+1)>>1 (8-174) 4. When numSampL is greater than 0, the selected adjacent left chroma sample pSelC[idx] is set to equal p[-1][pickPosL[idx]] with idx=0..(cntL-1), and the selected downsampled left chroma sample pSelDsY[idx] with idx=0..(cntL-1) is derived as follows: - The variable y is set to equal to pickPosL[idx] - If sps_cclm_colocated_chroma_flag is equal to 1, the following applies: - If y>0||availTL==TRUE, pSelDsY[idx]=(pY[-2][2*y-1]+ pY[-3][2*y]+4*pY[-2][2*y]+pY[-1][2*y]+ pY[-2][2*y+1]+4)>>3 (8-175) - Otherwise, pSelDsY[idx]=(pY[-3][0]+2*pY[-2][0]+pY[-1][0]+2)>>2 (8-177) - Otherwise, the following applies: pSelDsY[idx]=(pY[-1][2*y]+pY[-1][2*y+1]+ 2*pY[-2][2*y]+2*pY[-2][2*y+1]+ pY[-3][2*y]+pY[-3][2*y+1]+4)>>3 (8-178) 5. When numSampT is greater than 0, the selected adjacent upper chroma sample pSelC[idx] is set to equal p[pickPosT[idx]][-1] for idx=0..(cntT-1), and the downsampled adjacent upper chroma sample pSelDsY[idx] for idx=cntL..(cntL+cntT-1) is defined as follows: - x is set to equal to pickPosT[idx-cntL] - If sps_cclm_colocated_chroma_flag is equal to 1, the following applies: - If x > 0: - If bCTUboundary is equal to FALSE, the following applies: pSelDsY[idx]=(pY[2*x][-3]+ pY[2*x-1][-2]+4*pY[2*x][-2]+pY[2*x+1][-2]+ pY[2*x][-1]+4)>>3 (8-179) - Otherwise (bCTUboundary is equal to TRUE), the following applies: pSelDsY[idx]=(pY[2*x-1][-1]+ 2*pY[2*x][-1]+ pY[2*x+1][-1]+2)>>2 (8-180) - Otherwise, - If availTL is equal to TRUE and bCTUboundary is equal to FALSE, the following applies: pSelDsY[idx]=(pY[0][-3]+ pY[-1][-2]+4*pY[0][-2]+pY[1][-2]+ pY[0][-1]+4)>>3 (8-181) - If not, and availTL is equal to TRUE and bCTUboundary is equal to TRUE, then the following applies: pSelDsY[idx]=(pY[-1][-1]+ 2*pY[0][-1]+ pY[1][-1]+2)>>2 (8-182) - If not, and availTL is equal to FALSE and bCTUboundary is equal to FALSE, then the following applies: pSelDsY[idx]=(pY[0][-3]+2*pY[0][-2]+pY[0][-1]+2)>>2 (8-183) - Otherwise (availTL is equal to FALSE and bCTUboundary is equal to TRUE), the following applies: pSelDsY[idx]=pY[0][-1] (8-184) - Otherwise, the following applies: - If x > 0: - If bCTUboundary is equal to FALSE, the following applies: pSelDsY[idx]=(pY[2*x-1][-2]+pY[2*x-1][-1]+ 2*pY[2*x][-2]+2*pY[2*x][-1]+ pY[2*x+1][-2]+pY[2*x+1][-1]+4)>>3 (8-185) - Otherwise (bCTUboundary is equal to TRUE), the following applies: pSelDsY[idx]=(pY[2*x-1][-1]+ 2*pY[2*x][-1]+ pY[2*x+1][-1]+2)>>2 (8-186) - Otherwise - If availTL is equal to TRUE and bCTUboundary is equal to FALSE, the following applies: pSelDsY[idx]=(pY[-1][-2]+pY[-1][-1]+ 2*pY[0][-2]+2*pY[0][-1]+ pY[1][-2]+pY[1][-1]+4)>>3 (8-187) - If not, and availTL is equal to TRUE and bCTUboundary is equal to TRUE, then the following applies: pSelDsY[idx]=(pY[-1][-1]+ 2*pY[0][-1]+ pY[1][-1]+2)>>2 (8-188) - If not, and availTL is equal to FALSE and bCTUboundary is equal to FALSE, then the following applies: pSelDsY[idx]=(pY[0][-2]+pY[0][-1]+1)>>1 (8-189) - Otherwise (availTL is equal to FALSE and bCTUboundary is equal to TRUE), the following applies: pSelDsY[idx]=pY[0][-1] (8-190) 6. The variables minY, maxY, minC, and maxC are derived as follows: - - When cntT+cntL is equal to 2, idx=0 and 1, and set pSelC[idx+2]=pSelC[idx] and pSelDsY[idx+2]=pSelDsY[idx]. - The arrays minGrpIdx[] and maxGrpIdx[] are set as follows: minGrpIdx[0]=0, minGrpIdx[1]=1, maxGrpIdx[0]=2, maxGrpIdx[1]=3 - If pSelDsY[minGrpIdx[0]]>pSelDsY[minGrpIdx[1]], Swap(minGrpIdx[0], minGrpIdx[1]). - If pSelDsY[maxGrpIdx[0]]>pSelDsY[maxGrpIdx[1]], Swap(maxGrpIdx[0], maxGrpIdx[1]). - If pSelDsY[minGrpIdx[0]]>pSelDsY[maxGrpIdx[1]], Swap(minGrpIdx, maxGrpIdx ). - If pSelDsY[minGrpIdx[1]]>pSelDsY[maxGrpIdx[0]], Swap(minGrpIdx[1], maxGrpIdx[0]). - maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1. - maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1. - minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1. - minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1. 7. Variables a, b, and k are derived as follows: - If numSampL is equal to 0 and numSampT is equal to 0, the following applies: k=0 (8-208) a=0 (8-209) b=1<<(BitDepthC-1) (8-210) - Otherwise, the following applies: diff = maxY - minY (8 - 211) - If diff is not equal to 0, the following applies: diffC = maxC - minC (8 - 212) x = Floor(Log2(diff)) (8-213) normDiff=((diff<<4)>>x)&15 (8-214) x + = (normDiff != 0) ? 1:0 (8-215) y=Floor(Log2(Abs(diffC)))+1 (8-216) a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (8-217) k=((3+xy)<1)? 1:3+xy (8-218) a=((3+xy)<1)? Sign(a)*15:a (8-219) b = minC - ((a*minY)>>k) (8-220) Here, divSigTable[ ] is defined as follows: divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (8-221) - Otherwise (diff is equal to 0), the following applies: k=0 (8-222) a=0 (8-223) b = minC (8-224) 8. The predicted samples predSamples[x][y] for x=0..nTbW-1, y=0..nTbH-1 are derived as follows: predSamples[x][y]=Clip1C(((pDsY[x][y]*a)>>k)+b) (8-225) [End of Example Embodiment]

[0424] 3.7 Another Exemplary Working Draft on Proposed CCLM Prediction This section describes another exemplary embodiment that demonstrates possible changes to the current working draft of the VVC standard. The equation numbers here refer to the corresponding equation numbers in the VVC standard.

[0425] Specifications for INTRA_LT_CCLM, INTRA_L_CCLM, and INTRA_T_CCLM intra-prediction modes. ... The number of available adjacent chroma samples to the right and upper right, numTopSamp, and the number of available adjacent chroma samples to the left and lower left, nLeftSamp, are derived as follows: - If predModeIntra is equal to INTRA_LT_CCLM, the following applies: numSampT=availT? nTbW:0 (8-157) numSampL=availL? nTbH:0 (8-158) - Otherwise, the following applies: numSampT=(availT&&predModeIntra==INTRA_T_CCLM)? (nTbW+Min(numTopRight,nTbH)):0 (8-159) numSampL=(availL&&predModeIntra==INTRA_L_CCLM)? (nTbH+Min(numLeftBelow, nTbW)):0 (8-160) The variable bCTUboundary is derived as follows: bCTUboundary=(yTbC&(1<<(CtbLog2SizeY-1)-1)==0)? TRUE:FALSE (8-161) Replace N with L and T to obtain the variables cntN and The array pickPosN[] is derived as follows: - The variable numIs4N is set to equal to ((availN&&predModeIntra==INTRA_LT_CCLM)? 0:1) - The variable startPosN is set to equal numSampN >> (2 + numIs4N). - The variable pickStepN is set to be equal to Max(1, numSampN >> (1 + numIs4N)). - If availN is equal to TRUE and predModeIntra is equal to INTRA_LT_CCLM or INTRA_N_CCLM, then cntN is set to Min(numSampN,(1+numIs4N)<<1) and pickPosN[pos] is set to (startPosN+pos*pickStepN),withpos=0..(cntN-1) - Otherwise, cntN is set to equal to 0. The prediction samples predSamples[x][y] for x=0..nTbW-1, y=0..nTbH-1 are derived as follows: - If both numSampL and numSampT are equal to 0, the following applies: predSamples[x][y]=1<<(BitDepthC-1) (8-162) - Otherwise, the following ordered steps apply: 1. Prior to the deblocking filter process at position (xTbY+x, yTbY+y), the collated Luma sample pY[x][y] at x=0..nTbW*2-1, y=0..nTbH*2-1 is set to be equal to the reconstructed Luma sample. 2. The adjacent Luma sample pY[x][y] is derived as follows: - When numSampL is greater than 0, prior to the deblocking filter process at position (xTbY+x, yTbY+y), the adjacent left luma sample pY[x][y] at x=-1..-3, y=0..2*numSampL-1 is set equal to the reconstructed luma sample. - When numSampT is greater than , prior to the deblocking filter process at position (xTbY+x, yTbY+y), the luma sample pY[x][y] at adjacent positions x=0..2*numSampT-1, y=-1,-2 is set equal to the reconstructed luma sample. - When availTL is equal to TRUE, the adjacent upper-left luma sample pY[x][y] at x=-1, y=-1,-2 is set to be equal to the reconstructed luma sample prior to the deblocking filter process at position (xTbY+x, yTbY+y). 3. The downsampled coloctoruma sample pDsY[x][y] for x=0..nTbW-1, y=0..nTbH-1 is derived as follows: - If sps_cclm_colocated_chroma_flag is equal to 1, the following applies: - For x=1..nTbW-1, y=1..nTbH-1, pDsY[x][y] is derived as follows: pDsY[x][y]=(pY[2*x][2*y-1]+ pY[2*x-1][2*y]+4*pY[2*x][2*y]+pY[2*x+1][2*y]+ pY[2*x][2*y+1]+4)>>3 (8-163) - If availL is equal to TRUE, then pDsY[0][y] for y=1..nTbH-1 is derived as follows: pDsY[0][y]=(pY[0][2*y-1]+ pY[-1][2*y]+4*pY[0][2*y]+pY[1][2*y]+ pY[0][2*y+1]+4)>>3 (8-164) - Otherwise, pDsY[0][y] for y=1..nTbH-1 is derived as follows: pDsY[0][y]=(pY[0][2*y-1]+2*pY[0][2*y]+pY[0][2*y+1]+2)>>2 (8-165) - If availT is equal to TRUE, then pDsY[x][0] for x=1..nTbW-1 is derived as follows: pDsY[x][0]=(pY[2*x][-1]+ pY[2*x-1][0]+4*pY[2*x][0]+pY[2*x+1][0]+ pY[2*x][1]+4)>>3 (8-166) - Otherwise, pDsY[x][0] for x=1..nTbW-1 is derived as follows: pDsY[x][0]=(pY[2*x-1][0]+2*pY[2*x][0]+pY[2*x+1][0]+2)>>2 (8-167) - If availL is equal to TRUE and availT is equal to TRUE, then pDsY[0][0] is derived as follows: pDsY[0][0]=(pY[0][-1]+ pY[-1][0]+4*pY[0][0]+pY[1][0]+ pY[0][1]+4)>>3 (8-168) - Otherwise, if availL is equal to TRUE and availT is equal to FALSE, then pDsY[0][0] is derived as follows: pDsY[0][0]=(pY[-1][0]+2*pY[0][0]+pY[1][0]+2)>>2 (8-169) - Otherwise, if availL is equal to FALSE and availT is equal to TRUE, then pDsY[0][0] is derived as follows: pDsY[0][0]=(pY[0][-1]+2*pY[0][0]+pY[0][1]+2)>>2 (8-170) - Otherwise (availL is equal to FALSE and availT is equal to FALSE), pDsY[0][0] is derived as follows: pDsY[0][0]=pY[0][0] (8-171) - Otherwise, the following applies: - For x=1..nTbW-1, y=0..nTbH-1, the pDsY[x][y] is derived as follows: pDsY[x][y]=(pY[2*x-1][2*y]+pY[2*x-1][2*y+1]+ 2*pY[2*x][2*y]+2*pY[2*x][2*y+1]+ pY[2*x+1][2*y]+pY[2*x+1][2*y+1]+4)>>3 (8-172) - If availL is equal to TRUE, then pDsY[0][y] for y=0..nTbH-1 is derived as follows: pDsY[0][y]=(pY[-1][2*y]+pY[-1][2*y+1]+ 2*pY[0][2*y]+2*pY[0][2*y+1]+ pY[1][2*y]+pY[1][2*y+1]+4)>>3 (8-173) - Otherwise, pDsY[0][y] for y=0..nTbH-1 is derived as follows: pDsY[0][y]=(pY[0][2*y]+pY[0][2*y+1]+1)>>1 (8-174) 4. When numSampL is greater than 0, the selected adjacent left chroma sample pSelC[idx] is set to equal p[-1][pickPosL[idx]] with idx=0..(cntL-1), and the selected downsampled left chroma sample pSelDsY[idx] with idx=0..(cntL-1) is derived as follows: - The variable y is set to equal to pickPosL[idx] - If sps_cclm_colocated_chroma_flag is equal to 1, the following applies: - If y>0||availTL==TRUE, pSelDsY[idx]=(pY[-2][2*y-1]+ pY[-3][2*y]+4*pY[-2][2*y]+pY[-1][2*y]+ pY[-2][2*y+1]+4)>>3 (8-175) - Otherwise, pSelDsY[idx]=(pY[-3][0]+2*pY[-2][0]+pY[-1][0]+2)>>2 (8-177) - Otherwise, the following applies: pSelDsY[idx]=(pY[-1][2*y]+pY[-1][2*y+1]+ 2*pY[-2][2*y]+2*pY[-2][2*y+1]+ pY[-3][2*y]+pY[-3][2*y+1]+4)>>3 (8-178) 5. When numSampT is greater than 0, the selected adjacent upper chroma sample pSelC[idx] is set to equal p[pickPosT[idx]][-1] for idx=0..(cntT-1), and the downsampled adjacent upper chroma sample pSelDsY[idx] for idx=cntL..(cntL+cntT-1) is defined as follows: - x is set to equal to pickPosT[idx-cntL] - If sps_cclm_colocated_chroma_flag is equal to 1, the following applies: - If x > 0: - If bCTUboundary is equal to FALSE, the following applies: pSelDsY[idx]=(pY[2*x][-3]+ pY[2*x-1][-2]+4*pY[2*x][-2]+pY[2*x+1][-2]+ pY[2*x][-1]+4)>>3 (8-179) - Otherwise (bCTUboundary is equal to TRUE), the following applies: pSelDsY[idx]=(pY[2*x-1][-1]+ 2*pY[2*x][-1]+ pY[2*x+1][-1]+2)>>2 (8-180) - Otherwise, - If availTL is equal to TRUE and bCTUboundary is equal to FALSE, the following applies: pSelDsY[idx]=(pY[0][-3]+ pY[-1][-2]+4*pY[0][-2]+pY[1][-2]+ pY[0][-1]+4)>>3 (8-181) - If not, and availTL is equal to TRUE and bCTUboundary is equal to TRUE, then the following applies: pSelDsY[idx]=(pY[-1][-1]+ 2*pY[0][-1]+ pY[1][-1]+2)>>2 (8-182) - If not, and availTL is equal to FALSE and bCTUboundary is equal to FALSE, then the following applies: pSelDsY[idx]=(pY[0][-3]+2*pY[0][-2]+pY[0][-1]+2)>>2 (8-183) - Otherwise (availTL is equal to FALSE and bCTUboundary is equal to TRUE), the following applies: pSelDsY[idx]=pY[0][-1] (8-184) - Otherwise, the following applies: - If x > 0: - If bCTUboundary is equal to FALSE, the following applies: pSelDsY[idx]=(pY[2*x-1][-2]+pY[2*x-1][-1]+ 2*pY[2*x][-2]+2*pY[2*x][-1]+ pY[2*x+1][-2]+pY[2*x+1][-1]+4)>>3 (8-185) - Otherwise (bCTUboundary is equal to TRUE), the following applies: pSelDsY[idx]=(pY[2*x-1][-1]+ 2*pY[2*x][-1]+ pY[2*x+1][-1]+2)>>2 (8-186) - Otherwise - If availTL is equal to TRUE and bCTUboundary is equal to FALSE, the following applies: pSelDsY[idx]=(pY[-1][-2]+pY[-1][-1]+ 2*pY[0][-2]+2*pY[0][-1]+ pY[1][-2]+pY[1][-1]+4)>>3 (8-187) - If not, and availTL is equal to TRUE and bCTUboundary is equal to TRUE, then the following applies: pSelDsY[idx]=(pY[-1][-1]+ 2*pY[0][-1]+ pY[1][-1]+2)>>2 (8-188) - If not, and availTL is equal to FALSE and bCTUboundary is equal to FALSE, then the following applies: pSelDsY[idx]=(pY[0][-2]+pY[0][-1]+1)>>1 (8-189) - Otherwise (availTL is equal to FALSE and bCTUboundary is equal to TRUE), the following applies: pSelDsY[idx]=pY[0][-1] (8-190) 6. When cntT + cntL is not equal to 0, the variables minY, maxY, minC, and maxC are derived as follows: - - When cntT + cntL is equal to 2, replace Comp with DsY and C, set pSelComp[3] to equal pSelComp[0], set pSelComp[2] to equal pSelComp[1], set pSelComp[0] to equal pSelComp[1], and then set pSelComp[1] to equal pSelComp[3]. - The arrays minGrpIdx[] and maxGrpIdx[] are set as follows: minGrpIdx[0]=0, minGrpIdx[1]=1, maxGrpIdx[0]=2, maxGrpIdx[1]=3 - If pSelDsY[minGrpIdx[0]] > pSelDsY[minGrpIdx[1]], Swap(minGrpIdx[0], minGrpIdx[1]). - If pSelDsY[maxGrpIdx[0]]>pSelDsY[maxGrpIdx[1]], Swap(maxGrpIdx[0], maxGrpIdx[1]). - If pSelDsY[minGrpIdx[0]]>pSelDsY[maxGrpIdx[1]], Swap(minGrpIdx, maxGrpIdx). - If pSelDsY[minGrpIdx[1]]>pSelDsY[maxGrpIdx[0]], Swap(minGrpIdx[1], maxGrpIdx[0]). - maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1. - maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1. - minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1. - minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1. 7. Variables a, b, and k are derived as follows: - If numSampL is equal to 0 and numSampT is equal to 0, the following applies: k=0 (8-208) a=0 (8-209) b=1<<(BitDepthC-1) (8-210) - Otherwise, the following applies: diff = maxY - minY (8 - 211) - If diff is not equal to 0, the following applies: diffC = maxC - minC (8 - 212) x = Floor(Log2(diff)) (8-213) normDiff=((diff<<4)>>x)&15 (8-214) x + = (normDiff != 0) ? 1 : 0 (8 - 215) y=Floor(Log2(Abs(diffC)))+1 (8-216) a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (8-217) k=((3+xy)<1)?1 :3+xy (8-218) a=((3+xy)<1)?Sign(a)*15:a (8-219) b = minC - ((a*minY)>>k) (8-220) Here, divSigTable[] is defined as follows: divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (8-221) - Otherwise (diff is equal to 0), the following applies: k=0 (8-222) a=0 (8-223) b = minC (8-224) 8. The predicted samples predSamples[x][y] for x=0..nTbW-1, y=0..nTbH-1 are derived as follows: predSamples[x][y]=Clip1C(((pDsY[x][y]*a)>>k)+b) (8-225)

[0426] 3.8 Alternative Working Draft for Proposed CCLM Prediction This section describes alternative exemplary embodiments that demonstrate other possible changes to the current working draft of the VVC standard. Equation numbers here refer to the corresponding equation numbers in the VVC standard.

[0427] Specifications for INTRA_LT_CCLM, INTRA_L_CCLM, and INTRA_T_CCLM intra-prediction modes. ... The number of available adjacent chroma samples to the right and upper right, numTopSamp, and the number of available adjacent chroma samples to the left and lower left, nLeftSamp, are derived as follows: - If predModeIntra is equal to INTRA_LT_CCLM, the following applies: numSampT=availT? nTbW:0 (8-157) numSampL=availL? nTbH:0 (8-158) - Otherwise, the following applies: numSampT=(availT&&predModeIntra==INTRA_T_CCLM)? (nTbW+Min(numTopRight,nTbH)):0 (8-159) numSampL=(availL&&predModeIntra==INTRA_L_CCLM)? (nTbH+Min(numLeftBelow,nTbW)):0 (8-160) The variable bCTUboundary is derived as follows: bCTUboundary=(yTbC&(1<<(CtbLog2SizeY-1)-1)==0)? TRUE:FALSE (8-161) Replace N with L and T to obtain the variables cntN and The array pickPosN[] is derived as follows: - The variable numIs4N is set to equal to ((availT&&availL&&predModeIntra==INTRA_LT_CCLM)? 0:1) - The variable startPosN is set to equal numSampN >> (2 + numIs4N). - The variable pickStepN is set to be equal to Max(1, numSampN >> (1 + numIs4N)). - If availN is equal to TRUE and predModeIntra is equal to INTRA_LT_CCLM or INTRA_N_CCLM, then cntN is set to equal to Min(numSampN,(1+numIs4N)<<1) and pickPosN[pos] is set to equal to (startPosN+pos*pickStepN) at pos=0..(cntN-1). - Otherwise, cntN is set to equal to 0. The prediction samples predSamples[x][y] for x=0..nTbW-1, y=0..nTbH-1 are derived as follows: - If both numSampL and numSampT are equal to 0, the following applies: predSamples[x][y]=1<<(BitDepthC-1) (8-162) - Otherwise, the following ordered steps apply: 1. Prior to the deblocking filter process at position (xTbY+x, yTbY+y), the collated Luma sample pY[x][y] at x=0..nTbW*2-1, y=0..nTbH*2-1 is set to be equal to the reconstructed Luma sample. 2. The adjacent Luma sample pY[x][y] is derived as follows: - When numSampL is greater than 0, prior to the deblocking filter process at position (xTbY+x, yTbY+y), the adjacent left luma sample pY[x][y] at x=-1..-3, y=0..2*numSampL-1 is set equal to the reconstructed luma sample. - When numSampT is greater than , prior to the deblocking filter process at position (xTbY+x, yTbY+y), the luma sample pY[x][y] at adjacent positions x=0..2*numSampT-1, y=-1,-2 is set equal to the reconstructed luma sample. - When availTL is equal to TRUE, the adjacent upper-left luma sample pY[x][y] at x=-1, y=-1,-2 is set to be equal to the reconstructed luma sample prior to the deblocking filter process at position (xTbY+x, yTbY+y). 3. The downsampled coloctoruma sample pDsY[x][y] for x=0..nTbW-1, y=0..nTbH-1 is derived as follows: - If sps_cclm_colocated_chroma_flag is equal to 1, the following applies: - For x=1..nTbW-1, y=1..nTbH-1, pDsY[x][y] is derived as follows: pDsY[x][y]=(pY[2*x][2*y-1]+ pY[2*x-1][2*y]+4*pY[2*x][2*y]+pY[2*x+1][2*y]+ pY[2*x][2*y+1]+4)>>3 (8-163) - If availL is equal to TRUE, then pDsY[0][y] for y=1..nTbH-1 is derived as follows: pDsY[0][y]=(pY[0][2*y-1]+ pY[-1][2*y]+4*pY[0][2*y]+pY[1][2*y]+ pY[0][2*y+1]+4)>>3 (8-164) - Otherwise, pDsY[0][y] for y=1..nTbH-1 is derived as follows: pDsY[0][y]=(pY[0][2*y-1]+2*pY[0][2*y]+pY[0][2*y+1]+2)>>2 (8-165) - If availT is equal to TRUE, then pDsY[x][0] for x=1..nTbW-1 is derived as follows: pDsY[x][0]=(pY[2*x][-1]+ pY[2*x-1][0]+4*pY[2*x][0]+pY[2*x+1][0]+ pY[2*x][1]+4)>>3 (8-166) - Otherwise, pDsY[x][0] for x=1..nTbW-1 is derived as follows: pDsY[x][0]=(pY[2*x-1][0]+2*pY[2*x][0]+pY[2*x+1][0]+2)>>2 (8-167) - If availL is equal to TRUE and availT is equal to TRUE, then pDsY[0][0] is derived as follows: pDsY[0][0]=(pY[0][-1]+ pY[-1][0]+4*pY[0][0]+pY[1][0]+ pY[0][1]+4)>>3 (8-168) - Otherwise, if availL is equal to TRUE and availT is equal to FALSE, then pDsY[0][0] is derived as follows: pDsY[0][0]=(pY[-1][0]+2*pY[0][0]+pY[1][0]+2)>>2 (8-169) - Otherwise, if availL is equal to FALSE and availT is equal to TRUE, then pDsY[0][0] is derived as follows: pDsY[0][0]=(pY[0][-1]+2*pY[0][0]+pY[0][1]+2)>>2 (8-170) - Otherwise (availL is equal to FALSE and availT is equal to FALSE), pDsY[0][0] is derived as follows: pDsY[0][0]=pY[0][0] (8-171) - Otherwise, the following applies: - For x=1..nTbW-1, y=0..nTbH-1, the pDsY[x][y] is derived as follows: pDsY[x][y]=(pY[2*x-1][2*y]+pY[2*x-1][2*y+1]+ 2*pY[2*x][2*y]+2*pY[2*x][2*y+1]+ pY[2*x+1][2*y]+pY[2*x+1][2*y+1]+4)>>3 (8-172) - If availL is equal to TRUE, then pDsY[0][y] for y=0..nTbH-1 is derived as follows: pDsY[0][y]=(pY[-1][2*y]+pY[-1][2*y+1]+ 2*pY[0][2*y]+2*pY[0][2*y+1]+ pY[1][2*y]+pY[1][2*y+1]+4)>>3 (8-173) - Otherwise, pDsY[0][y] for y=0..nTbH-1 is derived as follows: pDsY[0][y]=(pY[0][2*y]+pY[0][2*y+1]+1)>>1 (8-174) 4. When numSampL is greater than 0, the selected adjacent left chroma sample pSelC[idx] is set to equal p[-1][pickPosL[idx]] with idx=0..(cntL-1), and the selected downsampled left chroma sample pSelDsY[idx] with idx=0..(cntL-1) is derived as follows: - The variable y is set to equal to pickPosL[idx] - If sps_cclm_colocated_chroma_flag is equal to 1, the following applies: - If y>0||availTL==TRUE, pSelDsY[idx]=(pY[-2][2*y-1]+ pY[-3][2*y]+4*pY[-2][2*y]+pY[-1][2*y]+ pY[-2][2*y+1]+4)>>3 (8-175) - Otherwise, pSelDsY[idx]=(pY[-3][0]+2*pY[-2][0]+pY[-1][0]+2)>>2 (8-177) - Otherwise, the following applies: pSelDsY[idx]=(pY[-1][2*y]+pY[-1][2*y+1]+ 2*pY[-2][2*y]+2*pY[-2][2*y+1]+ pY[-3][2*y]+pY[-3][2*y+1]+4)>>3 (8-178) 5. When numSampT is greater than 0, the selected adjacent upper chroma sample pSelC[idx] is set to equal p[pickPosT[idx-cntL]][-1] for idx=cntL..(cntL+cntT-1), and the downsampled adjacent upper chroma sample pSelDsY[idx] for idx=cntL..(cntL+cntT-1) is defined as follows: - x is set to equal to pickPosT[idx-cntL] - If sps_cclm_colocated_chroma_flag is equal to 1, the following applies: - If x > 0: - If bCTUboundary is equal to FALSE, the following applies: pSelDsY[idx]=(pY[2*x][-3]+ pY[2*x-1][-2]+4*pY[2*x][-2]+pY[2*x+1][-2]+ pY[2*x][-1]+4)>>3 (8-179) - Otherwise (bCTUboundary is equal to TRUE), the following applies: pSelDsY[idx]=(pY[2*x-1][-1]+ 2*pY[2*x][-1]+ pY[2*x+1][-1]+2)>>2 (8-180) - Otherwise, - If availTL is equal to TRUE and bCTUboundary is equal to FALSE, the following applies: pSelDsY[idx]=(pY[0][-3]+ pY[-1][-2]+4*pY[0][-2]+pY[1][-2]+ pY[0][-1]+4)>>3 (8-181) - If not, and availTL is equal to TRUE and bCTUboundary is equal to TRUE, then the following applies: pSelDsY[idx]=(pY[-1][-1]+ 2*pY[0][-1]+ pY[1][-1]+2)>>2 (8-182) - If not, and availTL is equal to FALSE and bCTUboundary is equal to FALSE, then the following applies: pSelDsY[idx]=(pY[0][-3]+2*pY[0][-2]+pY[0][-1]+2)>>2 (8-183) - Otherwise (availTL is equal to FALSE and bCTUboundary is equal to TRUE), the following applies: pSelDsY[idx]=pY[0][-1] (8-184) - Otherwise, the following applies: - If x > 0: - If bCTUboundary is equal to FALSE, the following applies: pSelDsY[idx]=(pY[2*x-1][-2]+pY[2*x-1][-1]+ 2*pY[2*x][-2]+2*pY[2*x][-1]+ pY[2*x+1][-2]+pY[2*x+1][-1]+4)>>3 (8-185) - Otherwise (bCTUboundary is equal to TRUE), the following applies: pSelDsY[idx]=(pY[2*x-1][-1]+ 2*pY[2*x][-1]+ pY[2*x+1][-1]+2)>>2 (8-186) - Otherwise - If availTL is equal to TRUE and bCTUboundary is equal to FALSE, the following applies: pSelDsY[idx]=(pY[-1][-2]+pY[-1][-1]+ 2*pY[0][-2]+2*pY[0][-1]+ pY[1][-2]+pY[1][-1]+4)>>3 (8-187) - If not, and availTL is equal to TRUE and bCTUboundary is equal to TRUE, then the following applies: pSelDsY[idx]=(pY[-1][-1]+ 2*pY[0][-1]+ pY[1][-1]+2)>>2 (8-188) - If not, and availTL is equal to FALSE and bCTUboundary is equal to FALSE, then the following applies: pSelDsY[idx]=(pY[0][-2]+pY[0][-1]+1)>>1 (8-189) - Otherwise (availTL is equal to FALSE and bCTUboundary is equal to TRUE), the following applies: pSelDsY[idx]=pY[0][-1] (8-190) 6. When cntT + cntL is not equal to 0, the variables minY, maxY, minC, and maxC are derived as follows: - - When cntT + cntL is equal to 2, replace Comp with DsY and C, set pSelComp[3] to equal pSelComp[0], set pSelComp[2] to equal pSelComp[1], set pSelComp[0] to equal pSelComp[1], and then set pSelComp[1] to equal pSelComp[3]. - The arrays minGrpIdx[] and maxGrpIdx[] are set as follows: minGrpIdx[0]=0, minGrpIdx[1]=2, maxGrpIdx[0]=1, maxGrpIdx[1]=3 - If pSelDsY[minGrpIdx[0]] > pSelDsY[minGrpIdx[1]], Swap(minGrpIdx[0], minGrpIdx[1]). - If pSelDsY[maxGrpIdx[0]]>pSelDsY[maxGrpIdx[1]], Swap(maxGrpIdx[0], maxGrpIdx[1]). - If pSelDsY[minGrpIdx[0]]>pSelDsY[maxGrpIdx[1]], Swap(minGrpIdx, maxGrpIdx ). - If pSelDsY[minGrpIdx[1]]>pSelDsY[maxGrpIdx[0]], Swap(minGrpIdx[1], maxGrpIdx[0]). - maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1. - maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1. - minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1. - minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1. 7. Variables a, b, and k are derived as follows: - If numSampL is equal to 0 and numSampT is equal to 0, the following applies: k=0 (8-208) a=0 (8-209) b=1<<(BitDepthC-1) (8-210) - Otherwise, the following applies: diff = maxY - minY (8 - 211) - If diff is not equal to 0, the following applies: diffC = maxC - minC (8 - 212) x = Floor(Log2(diff)) (8-213) normDiff=((diff<<4)>>x)&15 (8-214) x + = (normDiff != 0) ? 1:0 (8-215) y=Floor(Log2(Abs(diffC)))+1 (8-216) a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (8-217) k=((3+xy)<1)? 1:3+xy (8-218) a=((3+xy)<1)? Sign(a)*15:a (8-219) b = minC - ((a*minY)>>k) (8-220) Here, divSigTable[] is defined as follows: divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (8-221) - Otherwise (diff is equal to 0), the following applies: k=0 (8-222) a=0 (8-223) b = minC (8-224) 8. The prediction samples predSamples[x][y] for x=0..nTbW-1, y=0..nTbH-1 are derived as follows: predSamples[x][y]=Clip1C(((pDsY[x][y]*a)>>k)+b) (8-225)

[0428] The above examples may be incorporated in the context of methods such as methods 1800, 1900, and 2000 described below, which can be implemented in video encoders and / or decoders.

[0429] Figure 18 shows a flowchart of an exemplary method for image processing. Method 1800 includes, in step 1802, determining the parameters of a cross-component linear model based on R chroma samples from a group of adjacent chroma samples for a transformation between the current image block of the image, which is a chroma block, and the encoded representation of the image, where the R chroma samples are selected from the group based on a position rule, and R is 2 or greater. Method 1800 further includes, in step 1804, performing the transformation based on the above determination.

[0430] Figure 19A shows a flowchart of an exemplary method for image processing. Method 1900 includes, in step 1902, determining the parameters of a cross-component linear model based on a chroma sample selected based on the position of the chroma sample for a conversion between the current image block of the image, which is a chroma block, and the encoded representation of the image, wherein the selected chroma sample is selected from a group of adjacent chroma samples. Method 1900 further includes, in step 1904, performing the conversion based on the above determination.

[0431] Figure 19B shows a flowchart of an exemplary method for image processing. Method 1910 includes, in step 1912, determining a group of adjacent chroma samples to be used to derive a set of values ​​for the parameters of a linear model for the current image block, where the width and height of the current image block are W and H, respectively, and the group of adjacent chroma samples includes at least one sample located beyond 2 × W adjacent chroma samples above or 2 × H adjacent chroma samples to the left. Method 1910 further includes, in step 1914, performing a transformation between the current image block and the encoded representation of the image containing the current image block, based on the linear model.

[0432] Figure 20A shows a flowchart of an exemplary method for image processing. Method 2000 includes, in step 2002, determining several sets of parameters for the transformation between the current image block of the image, which is a chroma block, and the encoded representation of the image, where each set of parameters defines a cross-component linear model (CCLM) and is derived from a group of corresponding chroma samples at the corresponding chroma sample positions. Method 2000 further includes, in step 2004, determining the parameters for the final CCLM based on the multiple sets of parameters. Method 2000 further includes, in step 2006, performing the transformation based on the final CCLM.

[0433] Figure 20B shows a flowchart of an exemplary method for image processing. Method 2010 includes, in step 2012, determining the parameters of a cross-component linear model (CCLM) based on the minimum and maximum chroma and luma samples from N groups of chroma and luma samples selected from adjacent chroma and luma samples of the current chroma and luma samples of the current chroma and luma samples for conversion between the current chroma and luma samples of the image and the encoded representation of the image. Method 2010 further includes, in step 2014, performing the conversion using the CCLM.

[0434] Figure 21 shows a flowchart of an exemplary method for image processing. Method 2100 includes, in step 2102, determining the parameters of a cross-component linear model that can be fully determined by two chroma samples and two corresponding chroma samples for the transformation between the current image block of the image, which is a chroma block, and the encoded representation of the image. Method 2100 further includes, in step 2104, performing the transformation based on the above determination.

[0435] Figure 22 shows a flowchart of an exemplary method for image processing. Method 2200 includes, in step 2202, determining the parameters of a cross-component linear model using a parameter table for the conversion between the current image block of the image, which is a chroma block, and the encoded representation of the image, where entries in the parameter table are retrieved according to two chroma sample values ​​and two luma sample values. Method 2100 further includes, in step 2204, performing the conversion based on the above determination.

[0436] Figure 23A shows a flowchart of an exemplary method for image processing. Method 2310 includes, in step 2312, determining the final prediction P(x,y) of a chroma sample at position (x,y) in the current image block as a combination of prediction results of multiple cross-component linear models (MCCLMs) for conversion between the current image block and the encoded representation of the image, where the MCCLMs are selected based on the position (x,y) of the chroma sample. Method 2310 further includes, in step 2314, performing the conversion based on the final prediction.

[0437] Figure 23B shows a flowchart of an exemplary method for image processing. Method 2320 includes, in step 2322, making a first decision regarding whether a first cross-component linear model (CCLM) using only left-neighbor samples is used to predict the samples of the current image block for the conversion between the current image block, which is a chroma block, and the encoded representation of the image, and / or a second cross-component linear model (CCLM) using only upper-neighbor samples is used to predict the samples of the current image block. Method 2320 further includes, in step 2324, performing the conversion based on the first and / or second decisions.

[0438] Figure 24A shows a flowchart of an exemplary method for video processing. Method 2410 includes, in step 2412, determining the context to be used to encode a flag using arithmetic coding to the encoded representation of the current video block for a conversion between the current video block and the encoded representation of the video, the context being based on whether the upper-left adjacent block of the current video block is encoded using a cross-component linear model (CCLM) prediction mode. Method 2410 further includes, in step 2414, performing the conversion based on the above determination.

[0439] Figure 24B shows a flowchart of an exemplary method for video processing. Method 2420 includes, in step 2422, determining an encoding order for one or more indications of direct intra-predictive mode (DM mode) and linear intra-predictive mode (LM mode) based on the encoding modes of one or more adjacent blocks of the current video block for conversion between the current video block and the encoded representation of the video. Method 2420 further includes, in step 2424, performing the conversion based on the above determination.

[0440] Figure 24C shows a flowchart of an exemplary method for image processing. Method 2430 includes, in step 2432, determining parameters for linear model prediction or cross-color component prediction based on refined chroma and luma samples of the current image block for conversion between the current image block and the encoded representation of the image. Method 2430 further includes, in step 2434, performing the conversion based on the above determination.

[0441] Figure 24D shows a flowchart of an exemplary method for image processing. Method 2440 includes, in step 2442, determining parameters for linear model prediction or cross-color component prediction by selecting adjacent samples based on the positions of the maximum adjacent samples or minimum adjacent samples for conversion between the current image block of the image, which is a chroma block, and the encoded representation of the image. Method 2440 further includes, in step 2444, performing the conversion based on the above determination.

[0442] Figure 24E shows a flowchart of an exemplary method for image processing. Method 2450 includes, in step 2452, determining parameters for linear model prediction or cross-color component prediction based on a primary color component and a secondary color component for conversion between the current image block of the image and the encoded representation of the image, where the primary color component is selected as one of the luminacolor component and the chromacolor component, and the secondary color component is selected as the other of the luminacolor component and the chromacolor component. Method 2450 further includes, in step 2454, performing the conversion based on the above determination.

[0443] Figure 25A shows a flowchart of an exemplary method for image processing. Method 2510 includes, in step 2512, performing downsampling on chroma and luma samples of adjacent blocks to the current image block. Method 2510 further includes, in step 2514, determining the parameters of a cross-component linear model (CCLM) based on the downsampled chroma and luma samples obtained from the downsampling for the conversion between the current image block and the encoded representation of the image, which is a chroma block. Method 2510 further includes, in step 2516, performing the conversion based on the above determination.

[0444] Figure 25B shows a flowchart of an exemplary method for image processing. Method 2520 includes, in step 2522, determining the parameters of a cross-component linear model (CCLM) based on two or more chroma samples from a group of adjacent chroma samples for a conversion between the current image block and the encoded representation of the image, the two or more chroma samples being selected based on the encoding mode of the current image block. Method 2520 further includes, in step 2524, performing the conversion based on the above determination.

[0445] Figure 26A shows a flowchart of an exemplary method for image processing. Method 2610 includes, in step 2612, determining the parameters of a cross-component linear model (CCLM) based on chroma samples selected based on W available adjacent samples for the conversion between the current image block of the image, which is a chroma block, and the encoded representation of the image, where W is an integer. Method 2520 further includes, in step 2524, performing the conversion based on the above determination.

[0446] Figure 26B shows a flowchart of an exemplary method for image processing. Method 2620 includes, in step 2622, determining the parameters of a cross-component linear model (CCLM) based on chroma samples selected based on H available, left-adjacent samples of the current image block, for the conversion between the current image block and the encoded representation of the image, which are chroma blocks. Method 2620 further includes, in step 2624, performing the conversion based on the above determination.

[0447] Figure 27A shows a flowchart of an exemplary method for image processing. Method 2710 includes, in step 2712, determining the parameters of a cross-component linear model (CCLM) based on two or four chroma samples and / or corresponding chroma samples for conversion between the current image block of the image, which is a chroma block, and the encoded representation of the image. Method 2710 further includes, in step 2714, performing the conversion based on the above determination.

[0448] Figure 27B shows a flowchart of an exemplary method for image processing. Method 2720 is a step in step 2722 in which a chroma sample is selected based on a position rule for a transformation between the current image block of the image, which is a chroma block, and the encoded representation of the image, the chroma sample is used to derive parameters for a cross-component linear model (CCLM). Method 2720 further includes in step 2724 performing the transformation based on the above decision. In this example, the position rule specifies selecting a chroma sample located in the row above and / or the column to the left of the current image block.

[0449] Figure 28A shows a flowchart of an exemplary method for image processing. Method 2810 includes, in step 2812, determining the position where luma samples are downsampled for conversion between the current image block of the image, which is a chroma block, and the encoded representation of the image, the downsampled luma samples being used to determine the parameters of a cross-component linear model (CCLM) based on the chroma samples and the downsampled luma samples, the downsampled luma samples being located at positions corresponding to the positions of the chroma samples used to derive the CCLM parameters. Method 2810 further includes, in step 2814, performing the conversion based on the above determination.

[0450] Figure 28B shows a flowchart of an exemplary method for image processing. Method 2820 includes, in step 2822, determining a method for deriving parameters of a cross-component linear model (CCLM) using chroma samples and luma samples based on encoding conditions associated with the current image block for conversion between the current image block and the encoded representation of the image, which is a chroma block. Method 2820 further includes, in step 2824, performing the conversion based on the above determination.

[0451] Figure 28C shows a flowchart of an exemplary method for image processing. Method 2830 includes, in step 2732, determining whether to derive the maximum and / or minimum values ​​of the luma and chroma components used to derive the parameters of a cross-component linear model (CCLM) based on the availability of the left and above adjacent blocks of the current image block for the conversion between the current image block, which is a chroma block, and the encoded representation of the image. Method 2830 further includes, in step 2834, performing the conversion based on the above determination.

[0452] Figure 29A shows a flowchart of an exemplary method for image processing. Method 2910 includes, in step 2912, determining the parameters of an encoding tool using a linear model based on selected adjacent samples of the current image block and corresponding adjacent samples of a reference block for conversion between the current image block and the encoded representation of the image. Method 2910 further includes, in step 2914, performing the conversion based on the above determination.

[0453] Figure 29B shows a flowchart of an exemplary method for image processing. Method 2920 includes, in step 2922, determining the parameters of a Local Illumination Compensation (LIC) tool based on N adjacent samples in the current image block and N corresponding adjacent samples in a reference block for conversion between the current image block and the encoded representation of the image, where the N adjacent samples in the current image block are selected based on the positions of the N adjacent samples. Method 2920 further includes, in step 2924, performing the conversion based on the above determination. The LIC tool uses a linear model of illumination changes in the current image block during the conversion.

[0454] Figure 29C shows a flowchart of an exemplary method for image processing. Method 2930 includes, in step 2932, determining the parameters of a cross-component linear model (CCLM) based on chroma samples and corresponding luma samples for conversion between the current image block of the image, which is a chroma block, and the encoded representation of the image. Method 2930 further includes, in step 2934, performing the conversion based on the above determination. In this example, a portion of the chroma samples are obtained by a padding operation, and the chroma samples and corresponding luma samples are grouped into two sequences G0 and G1, each sequence containing two chroma samples and corresponding luma samples.

[0455] Examples of implementations of the disclosed technologies Figure 30A is a block diagram of the video processing device 3000. The device 3000 may be used to implement one or more of the methods described herein. The device 3000 may be embodied in a smartphone, tablet, computer, or Internet of Things (IoT) receiver. The device 3000 may include one or more processors 3002, one or more memories 3004, and video processing hardware 3006. The (one or more) processors 3002 may be configured to perform one or more of the methods described herein (including, but not limited to, the methods shown in Figure 18-29C). The (one or more) memories 3004 may be used to store data and code used to perform the methods and techniques described herein. The video processing hardware 3006 may be used to implement some of the techniques described herein in hardware circuitry.

[0456] Figure 30B is another example of a block diagram of a video processing system in which the disclosed technologies may be implemented. Figure 30B is a block diagram of an example of a video processing system 3100 in which various technologies disclosed herein may be implemented. Various implementations may include some or all of the components of system 3100. System 3100 may include an input 3102 that receives video content. The video content may be received in a raw or uncompressed format, such as 8-bit or 10-bit multi-component pixel values, or in a compressed or encoded format. Input 3102 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet® and passive optical networking (PON), and wireless interfaces such as Wi-Fi® or cellular interfaces.

[0457] System 3100 may include an encoding component 3104 that can implement various coding or encoding methods described in this document. The encoding component 3104 can reduce the average bitrate of the video from input 3102 to the output of the encoding component 3104 to generate an encoded representation of the video. Encoding techniques are therefore sometimes called video compression techniques or video transcoding techniques. The output of the encoding component 3104 may be stored or connected and transmitted via communication as represented by component 3106. The stored or transmitted bitstream (or encoded) representation of the video received at input 3102 may be used by component 3108 to generate pixel values ​​or a displayable image to be sent to the display interface 3110. The process of generating a user-viewable image from the bitstream representation is sometimes called video decompression. Also, certain video processing operations may be referred to as “encoding” operations or tools, but to understand it, encoding tools or operations are used in encoders, and the corresponding decoding tools or operations that reverse the result of encoding are performed in decoders.

[0458] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB), High Definition Multimedia Interface (HDMI®), or DisplayPort. Examples of storage interfaces include SATA (Serial Advanced Technology Attachment), PCI, and IDE interfaces. The technologies described herein can be embodied in various electronic devices, such as mobile phones, laptops, smartphones, or other devices capable of performing digital data processing and / or video display.

[0459] In some embodiments, the video encoding method may be performed using a device implemented on a hardware platform such as that described with respect to Figure 30A or 30B.

[0460] Various technologies that are suitably incorporated into certain embodiments can be described using the following section-based format.

[0461] The first set of items describes specific features and aspects of the disclosed technology enumerated in the preceding section, including, for example, Examples 1.ad and 1.j.

[0462] 1. A method for processing video, comprising the steps of: determining the parameters of a cross-component linear model based on R chroma samples from a group of adjacent chroma samples for a conversion between a current video block of video which is a chroma block and an encoded representation of the video, wherein the R chroma samples are selected from the group based on a position rule and R is 2 or greater; and performing the conversion based on the determination.

[0463] 2. The method according to item 1, wherein the parameter has a value determined based on the luma samples of the R chromatic samples.

[0464] 3. The method according to item 2, wherein the luma sample is downsampled and used to derive the parameters of the cross-component linear model.

[0465] 4. The above parameters are 2 S The method described in item 1, having a value determined based on a chroma sample at position, where S is an integer.

[0466] 5. The upper left sample of the chroma block is (x,y), the width and height of the chroma block are W and H, respectively, and the group of adjacent chroma samples is: Sample A with coordinate (x-1,y), Sample B with coordinate (x-1,y+H / 2-1), Sample C with coordinate (x-1,y+H / 2), Sample D with coordinate (x-1,y+H-1), Sample E with coordinate (x-1,y+H), Sample F with coordinate (x-1,y+H+H / 2-1), and Sample Stan with coordinate (x-1,y+H+H / 2). The method according to item 1, comprising pull G, sample I having coordinates (x-1, y+H+H-1), sample J having coordinates (x, y-1), sample K having coordinates (x+W / 2-1, y-1), sample L having coordinates (x+W / 2, y-1), sample M having coordinates (x+W-1, y-1), sample N having coordinates (x+W, y-1), sample O having coordinates (x+W+W / 2-1, y-1), sample P having coordinates (x+W+W / 2, y-1), and sample Q having coordinates (x+W+W-1, y-1).

[0467] 6. The method according to paragraph 5, wherein the position rule specifies that the two chroma samples are selected from samples A, D, J, and M.

[0468] 7. The method according to paragraph 5, wherein the position rule specifies that the two chroma samples are selected from the samples A, B, C, D, J, K, L, and M.

[0469] 8. The method according to paragraph 5, wherein the position rule specifies that the two chroma samples are selected from the samples A, I, J, and Q.

[0470] 9. The method according to paragraph 5, wherein the position rule specifies that the two chroma samples are selected from the samples A, B, D, I, J, K, M, and Q.

[0471] 10. The method according to paragraph 5, wherein the positional rule specifies that the two chroma samples are selected from the samples A, B, D, F, J, K, M, and O.

[0472] 11. The method according to paragraph 5, wherein the positional rule specifies that the two chroma samples are selected from the samples A, C, G, I, J, L, P, and Q.

[0473] 12. The method according to paragraph 5, wherein the position rule specifies that the two chroma samples are selected from the samples A, C, E, G, J, L, N, and P.

[0474] 13. The method according to paragraph 5, wherein the positional rule specifies that the two chromatic samples are selected from the samples J, K, L, and M.

[0475] 14. The method according to paragraph 5, wherein the position rule specifies that the two chroma samples are selected from the samples J, L, N, and Q.

[0476] 15. The method according to paragraph 5, wherein the positional rule specifies that the two chromatic samples are selected from the samples J, K, L, M, N, O, P, and Q.

[0477] 16. The method according to paragraph 5, wherein the positional rule specifies that the two chroma samples are selected from the samples A, B, C, D, E, F, G, and I.

[0478] 17. The method according to paragraph 5, wherein the positional rule specifies that the two chromatic samples are selected from the samples J, K, L, M, N, O, P, and Q.

[0479] 18. The method according to paragraph 5, wherein the positional rule specifies that one of the two chroma samples is selected from samples A, B, C, D, E, F, G, and I, and the other of the two chroma samples is selected from samples J, K, L, M, N, O, P, and Q.

[0480] 19. The method according to any one of paragraphs 5 to 18, wherein the two chroma samples have equal corresponding luma values, and the method further includes checking additional chroma samples.

[0481] 20. The method according to item 1, wherein chroma samples within the group of adjacent chroma samples are searched to find the two chroma samples having the minimum and maximum corresponding luma values ​​in order to determine a first set of values ​​for the parameter.

[0482] 21. The method according to item 1, wherein adjacent samples having coordinates (x, y) are in the group only if x % K = 0, where K is 2, 4, 6, or 8 and % is the modulo operator.

[0483] 22. The method according to item 1, wherein the left adjacent sample having coordinates (x, y) is in the group only if y%K=0, where K is 2, 4, 6, or 8 and % is the modulo operator.

[0484] 23. The method according to item 1, wherein the two chromatic samples are selected based on the availability of adjacent blocks.

[0485] 24. The method according to any one of items 1 to 23, wherein the execution of the transformation includes generating the encoded representation from the current block.

[0486] 25. The method according to any one of items 1 to 23, wherein the execution of the transformation includes generating the current block from the encoded representation.

[0487] 26. A device in a video system having a processor and a non-temporary memory having instructions, wherein, when executed by the processor, the instructions cause the processor to perform the method described in any one of items 1 to 25.

[0488] 27. A computer program product stored on a non-temporary computer-readable medium, which includes program code for performing the method described in any one of items 1 to 25.

[0489] The second set of sections describes specific features and aspects of the disclosed technology enumerated in the preceding sections, including, for example, Example 1.ei and Example 9.

[0490] 1. A method for image processing, comprising the steps of: determining parameters of a cross-component linear model based on a chroma sample selected based on the position of the chroma sample, for a conversion between a current image block of an image which is a chroma block and an encoded representation of the image, wherein the selected chroma sample is selected from a group of adjacent chroma samples; and performing the conversion based on the determination.

[0491] 2. The method according to item 1, wherein at least one adjacent chromatic sample does not belong to the selected chromatic sample.

[0492] 3. The method according to item 1, wherein the prediction mode of the current image block is a first linear mode that uses only the left adjacent sample, and all of the selected chroma samples are to the left of the current block.

[0493] 4. The method according to item 1, wherein the prediction mode of the current image block is a second linear mode that uses only the adjacent samples above, and all of the selected chroma samples are above the current block.

[0494] 5. The method according to any one of items 1 to 4, wherein the position of the chromatic sample is selected based on the width or height of the chromatic block.

[0495] 6. The method according to item 1, wherein the position of the chroma sample corresponds to signal transmission in the video parameter set (VPS), sequence parameter set (SPS), picture parameter set (PPS), slice header, tile group header, tile, coding unit (CU), coding tree unit (CTU), or prediction unit (PU).

[0496] 7. The determination of the aforementioned parameters is further based on the least mean squares method, as described in item 1.

[0497] 8. The determination of the aforementioned parameters is further based on the two-point method, as described in item 1.

[0498] 9. A method for image processing, comprising the steps of: determining a group of adjacent chroma samples used to derive a set of values ​​relating to the parameters of a linear model for a current image block, wherein the width and height of the current image block are W and H, and the group of adjacent chroma samples includes at least one sample located beyond 2 × W adjacent chroma samples above or 2 × H adjacent chroma samples to the left; and performing a transformation between the current image block and an encoded representation of an image containing the current image block, based on the linear model.

[0499] 10. The method according to item 9, wherein the current video block is encoded using a linear intra-predictive mode, the top-left sample of the current video block is (x,y), and the at least one sample is (x-1,y+d), where d is an integer in the range [T,S], and T and S are integers.

[0500] 11. The method described in item 9, wherein T<0 and S>(2×H-1).

[0501] 12. The method described in item 9, wherein T = -4 and S = 3 × H.

[0502] 13. The method described in item 9, where T=0 and S=max(2×W,W+H).

[0503] 14. The method described in item 9, wherein T=0 and S=4×H.

[0504] 15. The method according to item 9, wherein the current video block is encoded using a linear intra-predictive mode, the top-left sample of the current video block is (x, y), and the at least one sample is (x+d, y-1), where d is an integer in the range [T, S], and T and S are integers.

[0505] 16. The method according to item 15, wherein T<0 and S>(2×W-1).

[0506] 17. The method described in item 15, wherein T = -4 and S = 3 × W.

[0507] 18. The method described in item 15, where T=0 and S=max(2×W,W+H).

[0508] 19. The method described in item 15, wherein T=0 and S=4×W.

[0509] 20. The method according to any one of items 1 to 19, wherein the execution of the transformation includes generating the encoded representation from the current block.

[0510] 21. The method according to any one of items 1 to 19, wherein the execution of the transformation includes generating the current block from the encoded representation.

[0511] 22. A device in a video system having a processor and a non-temporary memory having instructions, wherein, when executed by the processor, the instructions cause the processor to perform the method described in any one of items 1 to 21.

[0512] 23. A computer program product stored on a non-temporary computer-readable medium, which includes program code for performing the method described in any one of items 1 to 21.

[0513] The third set of sections describes specific features and aspects of the disclosed technology enumerated in the preceding sections, including, for example, Examples 2 and 5.

[0514] 1. A method for image processing, comprising the steps of: determining a plurality of sets of parameters for a transformation between a current image block of an image which is a chroma block and an encoded representation of the image, wherein each set of parameters defines a cross-component linear model (CCLM) and is derived from a group of corresponding chroma samples at corresponding chroma sample locations; determining parameters for a final CCLM based on the plurality of sets of parameters; and performing the transformation based on the final CCLM.

[0515] 2. The method according to item 1, wherein the final parameter for CCLM is determined as the average of the corresponding parameters in the set of parameters.

[0516] 3. The method according to item 1, wherein the multiple sets of parameters include a first set of (α1, β1) and a second set of (α2, β2), and chroma prediction is calculated based on the parameters α1, β1, α2, β2.

[0517] 4. The method according to item 1, wherein the multiple sets of parameters are shifted and combined to form the final CCLM.

[0518] 5. The method according to item 1, wherein the plurality of sets of parameters include a first set of (α1, β1) derived from a first group of chroma samples and a second set of (α2, β2) derived from a second group of chroma samples, the first group and the second group corresponding to different chroma sample positions.

[0519] 6. The upper left sample of the chroma block is (x,y), the width and height of the chroma block are W and H, respectively, and the group of chroma samples is Sample A has coordinates (x-1, y), Sample B has coordinates (x-1, y+H / 2-1), Sample C has coordinates (x-1, y+H / 2), Sample D has coordinates (x-1, y+H-1). Sample E has coordinates (x-1, y+H), Sample F has coordinates (x-1, y+H+H / 2-1), Sample G has coordinates (x-1, y+H+H / 2), Sample I has coordinates (x-1, y+H+H-1), Sample J has coordinates (x, y-1), Sample K has coordinates (x+W / 2-1, y-1), Sample L has coordinates (x+W / 2, y-1), Sample M has coordinates (x+W-1, y-1). Sample N has coordinates (x+W, y-1), Sample O has coordinates (x+W+W / 2-1, y-1). A sample P having coordinates (x+W+W / 2, y-1), or Sample Q has coordinates (x+W+W-1, y-1), The method according to paragraph 5, wherein at least one of the following is present.

[0520] 7. The method according to item 6, wherein the first group comprises samples A and D, and the second group comprises samples J and M, or samples E and I.

[0521] 8. The method according to item 6, wherein the first group comprises samples A and I, and the second group comprises samples J and Q.

[0522] 9. The method according to item 6, wherein the first group comprises samples A and B, and the second group comprises samples C and D.

[0523] 10. The method according to item 6, wherein the first group comprises samples J and M, and the second group comprises samples N and Q.

[0524] 11. The method according to item 6, wherein the first group comprises samples J and K, and the second group comprises samples L and M.

[0525] 12. A method for video processing, comprising the steps of: determining the parameters of a cross-component linear model (CCLM) for conversion between a current video block of video and an encoded representation of the video, based on the minimum and maximum chroma and luma samples from N groups of chroma and luma samples selected from adjacent chroma and luma samples of the current video block; and performing the conversion using the CCLM.

[0526] 13. The chromatic and luma samples of the N groups are S0, S1, ..., S m This includes the case where 1 ≤ m ≤ N-1, and m and N are non-negative integers, and the maximum luma value is maxL = f1(maxL S0 ,maxL S1 ,…,maxL Sm ) is calculated as, where f1 is the first function, and maxL Si This refers to group S among several groups. i The maximum chroma value is maxC = f2(maxC S0 maxC S1 ,…,maxC Sm ) is calculated as, and f2 is the second function, maxC Si is maxL Si Corresponding to group S i This is the chroma value, and the minimum luma value is minL = f3(minL S0 ,minL S1 ,…,minL Sm) is calculated as, and f3 is the third function, minL Si Group S i This is the minimum chroma value, and the minimum chroma value is minC = f4(minC S0 ,minC S1 ,…,minC Sm ) is calculated as, f4 is the fourth function, minC Si is minL Si Corresponding to group S i The method according to item 12, wherein the chromatic value is such that the parameters of the linear model have α and β calculated as α = (maxC - minC) / (maxL - minL) and β = minC - α × minL.

[0527] 14. The method described in item 13, wherein f1, f2, f3, and f4 are averaging functions.

[0528] 15. The method described in item 13 or 14, wherein m = N-1. 16. m=1 and S1=S N-1 The method described in paragraph 13 or 14.

[0529] 17. The method described in item 13 or 14, wherein m=0.

[0530] 18. The method according to paragraph 13 or 14, wherein S0 has a sample from the top row of the current video block, and S1 has a sample from the left row of the current video block.

[0531] 19. The method according to item 13 or 14, wherein a sample from the top row of the current video block has coordinates (x,y), S0 has a first part of the sample, each sample in the first part satisfies x%P=Q, S1 has a second part of the sample, each sample in the second part satisfies x%P≠Q, where % is the modulo operator and P and Q are non-negative integers.

[0532] 20. The method according to item 13 or 14, wherein a sample from the left row of the current video block has coordinates (x,y), S0 has a first part of the sample, each sample in the first part satisfies y%P=Q, S1 has a second part of the sample, each sample in the second part satisfies y%P≠Q, where % is the modulo operator and P and Q are non-negative integers.

[0533] 21. The method according to item 19 or 20, wherein P=2 and Q=1, or P=2 and Q=0, or P=4 and Q=0.

[0534] 22. The method according to any one of items 12 to 14, wherein the chromatic and luma samples consist of only a portion of the chromatic and luma samples of the adjacent block.

[0535] 23. N is predetermined, as described in any of items 13 to 22.

[0536] 24. The method according to any one of items 13 to 23, wherein N is a sequence parameter set (SPS), a video parameter set (VPS), a picture parameter set (PPS), a picture header, a slice header, a tile group header, one or more maximum encoding units, or one or more encoding units within which signals are transmitted.

[0537] 25. The method according to paragraph 12, wherein the chroma and luma samples for each group are selected based on the availability of adjacent blocks to the current image block.

[0538] 26. The method according to item 12, wherein the chroma and luma samples for each group are selected based on the width and height of the current image block.

[0539] 27. The method according to item 12, wherein the chroma and luma samples for each group are selected based on the values ​​of the chroma and luma samples.

[0540] 28. The method according to any one of items 1 to 27, wherein the execution of the transformation includes generating the encoded representation from the current block.

[0541] 29. The method according to any one of items 1 to 27, wherein the execution of the transformation includes generating the current block from the encoded representation.

[0542] 30. A device in a video system having a processor and a non-temporary memory having instructions, wherein, when executed by the processor, the instructions cause the processor to perform the method described in any one of items 1 to 29.

[0543] 31. A computer program product stored on a non-temporary computer-readable medium, which includes program code for performing the method described in any one of items 1 through 29.

[0544] The fourth set of items describes specific features and aspects of the disclosed technology enumerated in the preceding sections, including, for example, Examples 3.ab and 3.d.

[0545] 1. A method for processing video, comprising the steps of: determining the parameters of a cross-component linear model that can be fully determined by two chroma samples and two corresponding chroma samples for a transformation between a current video block of video which is a chroma block and an encoded representation of the video; and performing the transformation based on the determination.

[0546] 2. The method according to item 1, wherein the two chroma samples are denoted as C0 and C1, the corresponding luma samples are denoted as L0 and L1, the parameters of the cross-component linear model are denoted as α and β, and α and β are defined by the equations α = (C1 - C0) / (L1 - L0) and β = C0 - α × L0.

[0547] 3. The method described in item 2, where α = 0 when L1 is equal to L0.

[0548] 4. The method according to item 2, wherein if L1 is equal to L0, an intra-prediction mode other than the mode of the cross-component linear model is used.

[0549] 5. α is determined by the method described in item 2, excluding division operations.

[0550] 6. The method according to item 2, wherein α is determined using a process that does not use a lookup table, and the process does not involve division.

[0551] 7. The method according to item 2, wherein the parameters of the cross-component linear model have values ​​determined based on the values ​​of (L1-L0).

[0552] 8. The method described in item 2, where α = Shift(C1-C0, Floor(log2(L1-L0))), where Shift(x, s) = (x + off) >> s, off is an integer, and Floor(x) is a floor function that outputs the integer part of x.

[0553] 9. α = Shift(C1-C0, Ceiling(log2(L1-L0))), where Shift(x, s) = (x + off) >> s, and off is an integer. Ceiling(x) is the ceiling function that outputs the smallest integer greater than or equal to x, as described in item 2.

[0554] 10. The method according to item 8 or 9, wherein the process for obtaining the value of log2(x) is performed by examining the position of the most significant digit of x.

[0555] 11. The method according to item 1, wherein the determination of the parameter is performed within K bits, where K is 8, 10, 12, 16, 24, or 32.

[0556] 12. The method according to paragraph 11, wherein the intermediate variable is clipped or right-shifted so that it is within the K bits.

[0557] 13. The method according to any one of items 1 to 12, wherein the execution of the transformation includes generating the encoded representation from the current block.

[0558] 14. The method according to any one of items 1 to 12, wherein the execution of the transformation includes generating the current block from the encoded representation.

[0559] 15. A device in a video system having a processor and a non-temporary memory having instructions, wherein, when executed by the processor, the instructions cause the processor to perform the method described in any one of items 1 to 14.

[0560] 16. A computer program product stored on a non-temporary computer-readable medium, which includes program code for performing the method described in any one of items 1 to 14.

[0561] The fifth set of items describes specific features and aspects of the disclosed technology enumerated in the preceding section, including, for example, Example 3.c.

[0562] 1. A method for processing video, comprising the steps of: determining the parameters of a cross-component linear model using a parameter table for a conversion between a current video block of video which is a chroma block and an encoded representation of the video, wherein entries in the parameter table are retrieved according to two chroma sample values ​​and two luma sample values; and performing the conversion based on the determination.

[0563] 2. The parameter table is 2 P The method described in item 1, having a size V smaller than and P being an integer.

[0564] 3. The method according to item 1, wherein the parameter table has multiple entries, each entry storing an F-bit integer, where F is 8 or 16.

[0565] 4. The parameter table M[k] satisfies M[k - Z] = ((1 << S) + Off) / k, where S is an integer determining the precision, Off indicates the offset, and Z is the first value of the parameter table, the method according to item 1.

[0566] 5. The two chroma samples are denoted as C0 and C1, the luma samples are denoted as L0 and L1, the parameters of the cross-component linear model are denoted as α and β, and α and β are defined by the formulas α = (C1 - C0) / (L1 - L0) and β = C0 - α × L0, the method according to item 1.

[0567] 6. k = Shift(L1 - L0, W), where k is used to query an entry in the parameter table, Shift(x, s) = (x + off) >> s, off is an integer, and W is the width of the current video block, the method according to item 5.

[0568] 7. When k - Z < 0 or k - Z ≧ V, α is zero, V indicates the size of the parameter table, and Z indicates the first value of the parameter table, the method according to item 6.

[0569] 8. α = Shift((C1 - C0) × M[k - Z], D) or α = SignShift((C1 - C0) × M[k - Z], D), where Shift(x, s) = (x + off) >> s, SignShift(x, s) is (x + off) >> s when x ≧ 0 and -(-x + off) >> s when x < 0, off is an integer, and k indicates an index for querying an entry in the parameter table, the method according to item 5.

[0570] 9. k is derived based on the value of (L1 - L0) without depending on the value of (C1 - C0), the method according to item 8.

[0571] 10. The method described in item 8, wherein k is derived based on both the values ​​of (L1-L0) and (C1-C0).

[0572] 11. The method according to paragraph 6, wherein k is valid within the range between kMin and kMax.

[0573] 12. The method according to item 8, wherein k = Shift(L1-L0,W), where k is an index for querying an entry in the parameter table, Shift(x,s) = (x+off)>>s, where off is an integer, and W is the width of the current video block.

[0574] 13. The method described in item 8, wherein k is valid within the range between kMin and kMax, and k=L1-L0 if (L1-L0)≦kMax, and k=Shift(L1-L0,W) if (L1=L0)>kMax.

[0575] 14. The method according to item 8, wherein k is valid in the range between kMin and kMax, and k=Min(kMax,L1-L0) or k=Max(kMin,Min(kMax,L1-L0)).

[0576] 15. The method in item 5, wherein (L1-L0)<0, and the determination is performed to derive a value of '-α' instead of α.

[0577] 16. The method according to item 5, wherein (L1-L0)=0 and α is set to a default value of 0 or 1.

[0578] 17. (L1-L0)=2 E The method described in item 5, where E≧0, α=Shift((C1-C0),E) or Signshift((C1-C0),E), where Shift(x,s)=(x+off)>>s, and SignShift(x,s) is (x+off)>>s when x≧0, and -(-x+off)>>s when x<0.

[0579] 18. The method according to any one of items 1 to 17, wherein the execution of the transformation includes generating the encoded representation from the current block.

[0580] 19. The method according to any one of items 1 to 17, wherein the execution of the transformation includes generating the current block from the encoded representation.

[0581] 20. A device in a video system having a processor and a non-temporary memory having instructions, wherein, when executed by the processor, the instructions cause the processor to perform the method described in any one of items 1 to 19.

[0582] 21. A computer program product stored on a non-temporary computer-readable medium, which includes program code for performing the method described in any one of items 1 to 19.

[0583] The sixth set of sections describes specific features and aspects of the disclosed technology enumerated in the preceding sections, including, for example, Examples 4 and 6.

[0584] 1. A method for video processing, comprising the steps of: determining a final prediction P(x,y) of a chroma sample at position (x,y) in the current video block as a combination of prediction results of a plurality of cross-component linear models (MCCLMs) for conversion between the current video block of the video, which is a chroma block, and an encoded representation of the video, wherein the MCCLMs are selected based on the position (x,y) of the chroma sample; and performing the conversion based on the final prediction.

[0585] 2. The method according to item 1, wherein the plurality of cross-component linear models include a first linear model whose parameters are derived only from the left neighboring sample, and a second linear model whose parameters are derived only from the upper neighboring sample.

[0586] 3. The method according to item 1, wherein a part of the chroma sample is predicted based on only the left adjacent sample, and a part of the chroma sample is predicted based on only the upper adjacent sample.

[0587] 4. The method according to item 2 or 3, wherein the final prediction P(x, y) of the chroma sample is based on a weighted average of the prediction P1(x, y) by the first linear model and the prediction P2(x, y) by the second linear model.

[0588] 5. The method according to item 4, wherein P(x, y)=w1×P1(x, y)+w2×P2(x, y), and w1 and w2 are weights constrained by w1+w2=1.

[0589] 6. The method according to item 4, wherein P(x, y)=(w1*P1(x, y)+w2*P2(x, y)+Offset)>>shift, where offset is an integer including 0 or 1<<(shift-1), shift is an integer, and w1 and w2 are weights constrained by w1+w2=1<<shift.

[0590] 7. The method according to item 4, wherein P(x, y)=(w1*P1(x, y)+((1<<shift)-w1)*P2(x, y)+Offset)>>shift, where offset is an integer including 0 or 1<<(shift-1), shift is an integer, and w1 and w2 are weights.

[0591] 8. The method according to any one of items 5 to 7, wherein the values of w1 and w2 depend on the position (x, y).

[0592] 9. The method according to any one of items 5 to 7, wherein w1<w2 when x>y, w1>w2 when x<y, and w1=w2 when x=y.

[0593] 10. The method according to any one of items 5 to 7, wherein when x<y, the value of (w1-w2) increases as the value of (y-x) increases.

[0594] 11. The method according to any one of terms 5 to 7, wherein when x > y, the value of (w2 - w1) increases as the value of (xy) increases.

[0595] 12. A method for processing video, comprising: making a first determination regarding whether a first cross-component linear model (CCLM) using only left-neighboring samples is used to predict the samples of the current video block, and / or a second determination regarding whether a second cross-component linear model (CCLM) using only upper-neighboring samples is used to predict the samples of the current video block; and performing the conversion based on the first determination and / or the second determination.

[0596] 13. The method described in item 12, wherein the first CCLM described above does not apply if W > K × H, and K is a non-negative integer.

[0597] 14. The method described in item 12, wherein the second CCLM described above does not apply if H > K × W, and K is a non-negative integer.

[0598] 15. The method of paragraph 12, wherein if neither the first CCLM nor the second CCLM is applied, no flag indicating the application of the first CCLM or the second CCLM is signaled.

[0599] 16. The method according to any one of items 1 to 15, wherein the execution of the transformation includes generating the encoded representation from the current block.

[0600] 17. The method according to any one of items 1 to 15, wherein the execution of the transformation includes generating the current block from the encoded representation.

[0601] 18. A device in a video system having a processor and a non-temporary memory having instructions, wherein, when executed by the processor, the instructions cause the processor to perform the method described in any one of items 1 to 17.

[0602] 19. A computer program product stored on a non-temporary computer-readable medium, which includes program code for performing the method described in any one of items 1 to 17.

[0603] The seventh set of sections describes specific features and aspects of the disclosed technology enumerated in the preceding sections, including, for example, Examples 7, 8, and 11–13.

[0604] 1. A method for processing video, comprising the steps of: determining a context used to encode a flag using arithmetic coding of the current video block to the encoded representation for a conversion between the current video block and the encoded representation of the video, wherein the context is based on whether the upper-left adjacent block of the current video block is encoded using a cross-component linear model (CCLM) prediction mode; and performing the conversion based on the determination.

[0605] 2. The method according to item 1, wherein the context has a first context when the upper-left adjacent block uses the CCLM prediction mode, and has a second context different from the first context when the upper-left adjacent block does not use the CCLM prediction mode.

[0606] 3. The method according to item 1, wherein the upper left adjacent block is unavailable and the CCLM prediction mode is considered to be enabled.

[0607] 4. The method according to item 1, wherein the upper left adjacent block is deemed unavailable and the CCLM prediction mode is considered disabled.

[0608] 5. The method according to item 1, wherein the upper-left adjacent block is intra-encoded and the CCLM prediction mode is considered to be enabled.

[0609] 6. The method according to item 1, wherein the upper-left adjacent block is intra-encoded and the CCLM prediction mode is considered disabled.

[0610] 7. A method for processing video, comprising the steps of: determining an encoding order for one or more indications of direct intra-prediction mode (DM mode) and linear intra-prediction mode (LM mode) based on the encoding modes of one or more adjacent blocks of the current video block, for the purpose of converting between a current video block of video and an encoded representation of the video; and performing the conversion based on the determination.

[0611] 8. The method according to paragraph 7, wherein the upper-left adjacent block of the one or more adjacent blocks is encoded in LM mode, and the indication of LM mode is encoded first.

[0612] 9. The method according to paragraph 7, wherein the upper-left adjacent block of the one or more adjacent blocks is encoded in DM mode, and the indication of DM mode is encoded first.

[0613] 10. The method according to paragraph 7, wherein the upper-left adjacent block of the one or more adjacent blocks is encoded in an encoding mode different from the LM mode, and the indication of the DM mode is encoded first.

[0614] 11. The method according to any one of items 7 to 10, wherein the one or more indications are transmitted within a sequence parameter set (SPS), a video parameter set (VPS), a picture parameter set (PPS), a picture header, a slice header, a tile group header, one or more maximum encoding units, or one or more encoding units.

[0615] 12. A method for processing video, comprising the steps of: determining parameters relating to linear model prediction or cross-color component prediction based on refined chroma and luma samples of the current video block for conversion between the current video block and the encoded representation of the video; and performing the conversion based on the determination.

[0616] 13. The chromatic and luminal samples are downsampled according to the method of item 12.

[0617] 14. The method according to item 12, wherein the refinement process comprises a filtering process or a nonlinear process.

[0618] 15. The method according to item 12, wherein the parameters of the linear model prediction are α and β, where α = (C1 - C0) / (L1 - L0) and β = C0 - αL0, where C0 and C1 are derived from chroma samples and L0 and L1 are derived from luma samples.

[0619] 16. The method according to item 15, wherein the luma sample may be downsampled before being used to derive L0 and L1.

[0620] 17. C0 and L0 are based on S chroma and luma samples denoted as {Cx1, Cx2, ..., CxS} and {Lx1, Lx2, ..., LxS} respectively, C1 and L1 are based on T chroma and luma samples denoted as {Cy1, Cy2, ..., CyT} and {Ly1, Ly2, ..., LyT} respectively, and {Cx1, Cx2, ..., CxS} is {Lx1, Lx2, ... The method described in item 15, where {Cy1,Cy2,…,CyT} corresponds to {Ly1,Ly2,…,LyT}, C0=f0(Cx1,Cx2,…,CxS), L0=f1(Lx1,Lx2,…,LxS), C1=f2(Cy1,Cy2,…,CyT), and L1=f3(Ly1,Ly2,…,LyT), where f0, f1, f2, and f3 are functions.

[0621] 18. The method described in item 17, where f0 and f1 are the first functions.

[0622] 19. f2 and f3 are second functions, as described in item 17.

[0623] 20. The method described in item 17, where f0, f1, f2, and f3 are third functions.

[0624] 21. The third function is an averaging function, as described in item 20.

[0625] 22. The method described in item 17, where S=T. 23. (Lx1, Lx2, ..., LxS) is the smallest sample from a group of Luma samples, as described in item 17.

[0626] 24. The method described in item 17, wherein {Ly1, Ly2, ..., LyT} is the largest sample among a group of Luma samples.

[0627] 25. The method according to item 23 or 24, wherein the group of Luma samples has all the neighboring samples used in VTM-3.0 to derive the parameters of the linear model prediction.

[0628] 26. The method according to item 23 or 24, wherein the group of Luma samples comprises a subset, but not all, of the neighboring samples used in VTM-3.0 to derive the parameters of the linear model prediction.

[0629] 27. A method for processing video, comprising the steps of: determining parameters for linear model prediction or cross-color component prediction by selecting adjacent samples based on the positions of the maximum adjacent samples or minimum adjacent samples for a conversion between the current video block of a video which is a chroma block and an encoded representation of the video; and performing the conversion based on the determination.

[0630] 28. The method according to item 27, wherein the largest adjacent sample is located at position (x0, y0), and samples within the regions (x0-d1, y0), (x0, y0-d2), (x0+d3, y0), and (x0, y0+d4) are used to select the adjacent sample, where {d1, d2, d3, d4} depends on the position (x0, y0).

[0631] 29. The method according to item 27, wherein the minimum adjacent sample is located at position (x1, y1), and samples within the regions (x1-d1, y1), (x1, y1-d2), (x1+d3, y1), and (x1, y1+d4) are used to select the adjacent sample, where {d1, d2, d3, d4} depends on the position (x1, y1).

[0632] 30. The method according to any one of items 27 to 29, wherein the adjacent samples represent color components.

[0633] 31. A method for processing video, comprising the steps of: determining parameters for linear model prediction or cross-color component prediction based on a primary color component and a secondary color component for conversion between a current video block of video and an encoded representation of the video, wherein the primary color component is selected as one of a luminacolor component and a chromacolor component, and the secondary color component is selected as the other of the luminacolor component and the chromacolor component; and performing the conversion based on the determination.

[0634] 32. The method according to any one of items 1 to 31, wherein the execution of the transformation includes generating the encoded representation from the current block.

[0635] 33. The method according to any one of items 1 to 31, wherein the execution of the transformation includes generating the current block from the encoded representation.

[0636] 34. A device in a video system having a processor and a non-temporary memory having instructions, wherein, when executed by the processor, the instructions cause the processor to perform the method described in any one of items 1 to 33.

[0637] 35. A computer program product stored on a non-temporary computer-readable medium, which includes program code for performing the method described in any one of items 1 to 33.

[0638] The eighth set of sections describes specific features and aspects of the disclosed technology enumerated in the preceding sections, including, for example, Examples 10 and 14.

[0639] 1. A method comprising the steps of: performing downsampling on chroma and luma samples of adjacent blocks of the current video block; determining the parameters of a cross-component linear model (CCLM) based on the downsampled chroma and luma samples obtained from the downsampling for the purpose of converting between the current video block, which is a chroma block, and the encoded representation of the video; and performing the conversion based on the determination.

[0640] 2. The method according to item 1, wherein the current video block has a height (H) and a width (W), and the downsampling is based on the height or the width.

[0641] 3. The method according to item 1, wherein the downsampled chromatic and lunar samples are obtained before deriving the parameters of the CCLM, including α and β, and α and β are defined by the formulas α = (C1 - C0) / (L1 - L0) and β = C0 - α × L0.

[0642] 4. The method according to item 1, wherein the number of left neighboring samples used to derive the parameters of the CCLM is the same as the number of upper neighboring samples used to derive the parameters of the CCLM.

[0643] 5. The method according to claim 2, wherein W < H or W > H.

[0644] 6. The method according to claim 2, wherein whether to downsample the chroma and luma samples of the left adjacent block or the chroma and luma samples of the upper adjacent block depends on the relative sizes of W and H.

[0645] 7. The method according to claim 6, wherein when H > W, the downsampling is performed on the chroma and luma samples of the left adjacent block.

[0646] 8. The method according to claim 6, wherein when W > H, the downsampling is performed on the chroma and luma samples of the upper adjacent block.

[0647] 9. The method according to claim 7, wherein the top - left sample of the current video block is R[0,0], and the downsampled chroma sample has sample R[-1, K×H / W], where K is a non - negative integer in the range from 0 to W - 1.

[0648] 10. The method according to claim 8, wherein the top - left sample of the current video block is R[0,0], and the downsampled chroma sample has sample R[K×H / W, -1], where K is a non - negative integer in the range from 0 to H - 1.

[0649] 11. A method for video processing, comprising: determining parameters of a cross - component linear model (CCLM) based on two or more chroma samples from a group of adjacent chroma samples for conversion between a current video block of a video that is a chroma block and an encoded representation of the video, wherein the two or more chroma samples are selected based on an encoding mode of the current video block; and performing the conversion based on the determination.

[0650] 12. The method according to item 11, wherein two or more luma samples corresponding to the two or more chroma samples are used to derive the parameters of the cross-component linear model.

[0651] 13. The method according to item 12, wherein the two or more Luma samples are downsampled to derive the parameters of the cross-component linear model.

[0652] 14. The method according to item 11, wherein the two or more chromatic samples are selected based on the availability of adjacent samples.

[0653] 15. The method according to item 11, wherein the two or more chroma samples are selected from one or more of the left column, top row, top-right row, or bottom-left column with respect to the current video block.

[0654] 16. The method according to item 11, wherein the two or more chroma samples are selected based on the ratio of the height of the current image block to the width of the current image block.

[0655] 17. The method according to paragraph 11, wherein the two or more chroma samples are selected based on whether the width or height of the current image block is equal to K, where K is an integer.

[0656] 18. The method described in item 17, where K=2. 19. The method according to item 11, wherein the encoding mode of the current video block is a first linear mode distinct from a second linear mode that uses only the left neighboring sample and a third linear mode that uses only the top neighboring sample, the coordinates of the top-left sample of the current video block are (x,y), and the width and height of the current video block are W and H, respectively.

[0657] 20. The method according to item 19, wherein the two or more chromatic samples have samples with coordinates (x-1, y), (x, y-1), (x-1, y+H-1), and (x+W-1, y-1).

[0658] 21. The method according to claim 19, wherein the two or more chroma samples have samples at coordinates (x-1, y), (x, y-1), (x-1, y+H-H / W-1), and (x+W-1, y-1), and H>W.

[0659] 22. The method according to claim 19, wherein the two or more chroma samples have samples at coordinates (x-1, y), (x, y-1), (x-1, y+H-1), and (x+W-W / H-1, y-1), and H<W.

[0660] 23. The method according to claim 19, wherein the two or more chroma samples have samples at coordinates (x-1, y), (x, y-1), (x-1, y+H-max(1, H / W)), and (x+W-max(1, W / H), y-1).

[0661] 24. The method according to claim 19, wherein the two or more chroma samples have samples at coordinates (x, y-1), (x+W / 4, y-1), (x+2*W / 4, y-1), and (x+3*W / 4, y-1).

[0662] 25. The method according to claim 19, wherein the two or more chroma samples have samples at coordinates (x, y-1), (x+W / 4, y-1), (x+3*W / 4, y-1), and (x+W-1, y-1).

[0663] 26. The method according to claim 19, wherein the two or more chroma samples have samples at coordinates (x, y-1), (x+(2W) / 4, y-1), (x+2*(2W) / 4, y-1), and (x+3*(2W) / 4, y-1).

[0664] 27. The method according to claim 19, wherein the two or more chroma samples have samples at coordinates (x, y-1), (x+(2W) / 4, y-1), (x+3*(2W) / 4, y-1), and (x+(2W)-1, y-1).

[0665] 28. The method according to item 19, wherein the two or more chromatic samples have the coordinates (x-1, y), (x-1, y + H / 4), (x-1, y + 2*H / 4), and (x-1, y + 3*H / 4).

[0666] 29. The method according to item 19, wherein the two or more chromatic samples have the coordinates (x-1, y), (x-1, y+2*H / 4), (x-1, y+3*H / 4), and (x-1, y+H-1).

[0667] 30. The method according to item 19, wherein the two or more chromatic samples have the coordinates (x-1,y), (x-1,y+(2H) / 4), (x-1,y+2*(2H) / 4), and (x-1,y+3*(2H) / 4).

[0668] 31. The method according to item 19, wherein the two or more chromatic samples have the coordinates (x-1, y), (x-1, y + 2*(2H) / 4), (x-1, y + 3*(2H) / 4), and (x-1, y + (2H)-1).

[0669] 32. The method according to any one of items 20 to 31, wherein exactly two samples are selected to determine the parameters of the CCLM.

[0670] 33. The method according to any one of items 1 to 32, wherein the execution of the transformation includes generating the encoded representation from the current block.

[0671] 34. The method according to any one of items 1 to 32, wherein the execution of the transformation includes generating the current block from the encoded representation.

[0672] 35. A device in a video system having a processor and a non-temporary memory having instructions, wherein, when executed by the processor, the instructions cause the processor to perform the method described in any one of items 1 to 34.

[0673] 36. A computer program product stored on a non-temporary computer-readable medium, which includes program code for performing the method described in any one of items 1 to 34.

[0674] The ninth set of sections describes specific features and aspects of the disclosed technology enumerated in the preceding sections, including, for example, Examples 16 and 17.

[0675] 1. A method for image processing, comprising the steps of: determining the parameters of a cross-component linear model (CCLM) based on chroma samples selected based on W available adjacent samples for a transformation between a current image block of an image which is a chroma block and an encoded representation of the image, where W is an integer; and performing the transformation based on the determination.

[0676] 2. The method according to item 1, wherein W is set to i) the width of the current video block, ii) L is an integer and is L times the width of the current video block, iii) the sum of the height of the current video block and the width of the current video block, or iv) the sum of the width of the current video block and the number of available upper right adjacent samples.

[0677] 3. The method according to item 1, wherein W depends on the availability of at least one of the adjacent blocks above or to the left of the current video block.

[0678] 4. The method according to item 1, wherein W depends on the encoding mode of the current video block.

[0679] 5. The method according to item 2, wherein L has a value that depends on the availability of the upper right block or upper left sample located adjacent to the current video block.

[0680] 6. The method according to item 1, wherein the chromatic sample is selected based on a first position offset value (F) and a step value (S), the first position offset value (F) and the step value (S) depend on W.

[0681] 7. The method according to item 6, wherein the upper left sample has coordinates (x0, y0), and the selected chroma sample has coordinates (x0 + F + K × S, y0 - 1), where K is an integer between 0 and kMax.

[0682] 8. The method described in item 6, where F = W / P or F = W / P + offset, and P is an integer.

[0683] 9. F = W >> (2 + numIs4T), where numIs4T is equal to 1 if four adjacent samples are selected in the adjacent row above, and otherwise numIs4T is equal to 0, as described in item 8.

[0684] 10. The method described in item 6, where S = W / Q and Q is an integer.

[0685] 11. The method described in item 6, wherein S is 1 or greater.

[0686] 12. S = Max(1, W >> (1 + numIs4T)), where numIs4T is equal to 1 if four adjacent samples are selected in the adjacent row above, and otherwise numIs4T is equal to 0, as described in item 10 or 11.

[0687] 13. The method according to item 9 or 12, where the upper adjacent sample is available, the left adjacent sample is available, and the current video block is encoded with a normal CCLM which is different from a first CCLM which uses only the left adjacent sample and different from a second CCLM which uses only the upper adjacent sample.

[0688] 14. The method described in item 6, where F = S / R, and R is an integer.

[0689] 15. The method described in item 6, where S = F / Z and Z is an integer.

[0690] 16. The method according to any one of items 7 to 15, wherein at least one of Kmax, F, S, or offset depends on the prediction mode of the current video block, which is one of a first CCLM using only left adjacent samples, a second CCLM using only upper adjacent samples, a third CCLM using both left adjacent samples and upper adjacent samples, or another mode different from the first CCLM, the second CCLM, or the third CCLM.

[0691] 17. The method according to any one of paragraphs 7 to 15, wherein at least one of Kmax, F, S, or offset depends on the width and / or height of the current video block.

[0692] 18. The method according to any one of items 7 to 15, wherein at least one of Kmax, F, S, or offset depends on the availability of adjacent samples.

[0693] 19. The method according to any one of paragraphs 7 to 15, wherein at least one of Kmax, F, S, or offset depends on W.

[0694] 20. A method for image processing, comprising the steps of: determining the parameters of a cross-component linear model (CCLM) based on chroma samples selected based on H available left neighboring samples of the current image block, which are chroma blocks, for a transformation between a current image block of the image and an encoded representation of the image; and performing the transformation based on the determination.

[0695] 21. The method according to paragraph 20, wherein H is set to i) the height of the current video block, ii) L is an integer, such that L is L times the height of the current video block, iii) the sum of the height of the current video block and the width of the current video block, or iv) the sum of the height of the current video block and the number of available lower-left adjacent samples.

[0696] 22. The method according to paragraph 20, wherein H depends on the availability of at least one of the adjacent blocks above or to the left of the current video block.

[0697] 23. The method according to item 20, wherein H depends on the encoding mode of the current video block.

[0698] 24. The method according to item 21, wherein L has a value that depends on the availability of the lower-left block or lower-left sample located adjacent to the current image block.

[0699] 25. The method according to item 20, wherein the chromatic sample is selected based on a first position offset value (F) and a step value (S), the first position offset value (F) and the step value (S) depend on H.

[0700] 26. The method according to item 25, wherein the upper left sample has coordinates (x0, y0), and the selected chroma sample has coordinates (x0-1, y0+F+K×S), where K is an integer between 0 and kMax.

[0701] 27. The method described in item 25, where F = H / P or F = H / P + offset, and P is an integer.

[0702] 28. F = H >> (2 + numIs4L), where numIs4L is equal to 1 if four adjacent samples are selected in the left adjacent column, and equal to 0 otherwise, as described in item 27.

[0703] 29. The method described in item 25, where S = H / Q and Q is an integer.

[0704] 30. The method described in item 25, wherein S is 1 or greater.

[0705] 31. S = Max(1, H >> (1 + numIs4L)), where numIs4L is equal to 1 if four adjacent samples are selected in the left adjacent column, and otherwise numIs4L is equal to 0, as described in section 29 or 30.

[0706] 32. The method according to item 9 or 12, where the upper adjacent sample is available, the left adjacent sample is available, and the current video block is encoded with a normal CCLM which is different from a first CCLM which uses only the left adjacent sample and different from a second CCLM which uses only the upper adjacent sample.

[0707] 33. The method described in item 25, where F = S / R, and R is an integer.

[0708] 34. The method described in item 25, where S = F / Z and Z is an integer.

[0709] 35. The method according to any one of paragraphs 26 to 34, wherein at least one of Kmax, F, S, or offset depends on the prediction mode of the current video block, which is one of a first CCLM using only left adjacent samples, a second CCLM using only upper adjacent samples, a third CCLM using both left adjacent samples and upper adjacent samples, or another mode different from the first CCLM, the second CCLM, or the third CCLM.

[0710] 36. The method according to any one of paragraphs 26 to 34, wherein at least one of Kmax, F, S, or offset depends on the width and / or height of the current video block.

[0711] 37. The method according to any one of paragraphs 26 to 34, wherein at least one of Kmax, F, S, or offset depends on H.

[0712] 38. The method according to any one of items 26 to 34, wherein at least one of Kmax, F, S, or offset depends on the availability of adjacent samples.

[0713] 39. The method according to paragraph 20, wherein H is set to the sum of the height and width of the current video block, if the adjacent block to the upper right of the current video block is available.

[0714] 40. If the left adjacent sample is unavailable, the selected chroma sample has a height H, regardless of whether the current image block has a first CCLM that uses only the adjacent sample above, as described in paragraph 20.

[0715] 41. The method according to item 1, wherein W is set to the sum of the height and width of the current video block, if the adjacent block to the lower left of the current video block is available.

[0716] 42. If the above adjacent sample is not available, the selected chroma sample has a number of W, regardless of whether the current image block has a first CCLM that uses only the left adjacent sample, according to the method of item 1.

[0717] 43. The method according to any one of items 1 to 42, wherein the execution of the transformation includes generating the encoded representation from the current block.

[0718] 44. The method according to any one of items 1 to 42, wherein the execution of the transformation includes generating the current block from the encoded representation.

[0719] 45. A device in a video system having a processor and a non-temporary memory having instructions, wherein, when executed by the processor, the instructions cause the processor to perform the method described in any one of items 1 to 44.

[0720] 46. ​​A computer program product stored on a non-temporary computer-readable medium, which includes program code for performing the method described in any one of items 1 to 44.

[0721] The tenth set of sections describes specific features and aspects of the disclosed technology enumerated in the preceding sections, including, for example, Examples 18 and 19.

[0722] 1. A method for image processing, comprising the steps of: determining the parameters of a cross-component linear model (CCLM) based on two or four chroma samples and / or corresponding chroma samples for a conversion between a current image block of an image which is a chroma block and an encoded representation of the image; and performing the conversion based on the determination.

[0723] 2. The method described in item 1, wherein the corresponding luma sample is obtained by downsampling.

[0724] 3. The method according to item 1, wherein the parameters of the CCLM include maxY / maxC and minY / minC.

[0725] 4. The method according to item 3, wherein the two chroma samples are selected to derive maxY / maxC and minY / minC, with minY set to the smaller chroma sample value and its corresponding chroma sample value being minC, and maxY set to the larger chroma sample value and its corresponding chroma sample value being maxC.

[0726] 5. The method according to item 3, wherein the four chromatic samples are selected to derive maxY / maxC and minY / minC, and the four chromatic samples and the corresponding luma samples are divided into two sequences G0 and G1, each sequence comprising two chromatic samples and their corresponding luma samples.

[0727] 6. The two arrays G0 and G1 are the following set: i) G0={S0,S1}, G1={S2,S3}, ii) G0={S1,S0}, G1={S3,S2}, iii) G0={S0,S2}, G1={S1,S3}, iv) G0={S2,S0}, G1={S3,S1}, v) G0={S1,S2}, G1={S0,S3, vi) G0={S2,S1}, G1={S3,S0}, vii) G0={S0,S3}, G1={S1,S2}, viii) G0={S3,S0}, G1={S2,S1}, ix) G0={S1,S3}, G1={S0,S2}, x) G0={S3,S1}, G1={S2,S0, xi) G0={S3,S2}, G1={S0,S1}, or xii) Xii)G0={S2,S3}, G1={S1,S0}, Includes one of the following: S0, S1, S2, and S3 each contain the four chromatic samples mentioned above, and each further contains the corresponding chromatic sample. The method described in item 5.

[0728] 7. The method according to paragraph 6, wherein, following a comparison of two luma sample values, G0[0] and G0[1], the chromatic sample of G0[0] and its corresponding luma sample are exchanged for those of G0[1].

[0729] 8. The method according to paragraph 7, wherein if the luma sample value of G0[0] is greater than the luma sample value of G0[1], the chromatic sample of G0[0] and its corresponding luma sample are exchanged with those of G0[1].

[0730] 9. The method of paragraph 6, wherein, following a comparison of two luma sample values ​​of G1[0] and G1[1], the chromatic sample of G1[0] and its corresponding luma sample are exchanged for those of G1[1].

[0731] 10. The method according to paragraph 9, wherein if the luma sample value of G1[0] is greater than the luma sample value of G1[1], the chromatic sample of G1[0] and its corresponding luma sample are exchanged with those of G1[1].

[0732] 11. The method according to paragraph 6, wherein, following a comparison of two luma sample values ​​of G0[0] and G1[1], the chromatic sample of G0[0] or G0[1] and its corresponding luma sample are exchanged for those of G1[0] or G1[1].

[0733] 12. The method according to paragraph 11, wherein if the luma sample value of G0[0] is greater than the luma sample value of G1[1], the chromatic sample of G0[0] or G0[1] and its corresponding luma sample are exchanged for those of G1[0] or G1[1].

[0734] 13. The method according to paragraph 6, wherein, following a comparison of two luma sample values, G0[1] and G1[0], the chromatic sample of G0[1] and its corresponding luma sample are exchanged for those of G1[0].

[0735] 14. The method according to paragraph 13, wherein if the luma sample value of G0[1] is greater than the luma sample value of G1[0], the chromatic sample of G0[1] and its corresponding luma sample are exchanged with those of G1[0].

[0736] 15. The method according to item 6, wherein, after comparing two luma sample values ​​of G0[0], G0[1], G1[0], and G1[1], the following exchange operations are performed in order: i) the exchange of the chromatic sample of G0[0] and its corresponding luma sample for those of G0[1]; ii) the exchange of the chromatic sample of G1[0] and its corresponding luma sample for those of G1[1]; iii) the exchange of the chromatic sample of G0[0] or G0[1] and its corresponding luma sample for those of G0[1] or G1[1]; and iv) the exchange of the chromatic sample of G0[1] and its corresponding luma sample for those of G1[0].

[0737] 16. The method according to item 6, wherein maxY is calculated as the mean of the luma sample values ​​of G0[0] and G0[1], or the mean of the luma sample values ​​of G1[0] and G1[1], and maxC is calculated as the mean of the chroma sample values ​​of G0[0] and G0[1], or the mean of the chroma sample values ​​of G1[0] and G1[1].

[0738] 17. The method according to item 6, wherein MinY is calculated as the mean of the luma sample values ​​of G0[0] and G0[1], or the mean of the luma sample values ​​of G1[0] and G1[1], and minC is calculated as the mean of the chroma sample values ​​of G0[0] and G0[1], or the mean of the chroma sample values ​​of G1[0] and G1[1].

[0739] 18. The method according to item 16 or 17, wherein the calculation of maxY and maxC, or the calculation of minY and minC, is performed after any of a plurality of exchange operations performed in response to a comparison of two luma sample values ​​of G0[0], G0[1], G1[0] and G1[1], the plurality of exchange operations including i) an exchange of a chromatic sample of G1[0] and its corresponding luma sample for those of G1[1], ii) an exchange of a chromatic sample of G0[0] or G0[1] and its corresponding luma sample for those of G0[1] or G1[1], and iii) an exchange of a chromatic sample of G0[1] and its corresponding luma sample for those of G1[0].

[0740] 19. The method according to item 1, wherein if only two chroma samples are available, padding is performed on the two available chroma samples to provide four chroma samples.

[0741] 20. The method according to item 19, wherein the four chroma samples include the two available chroma samples and two padding chroma samples copied from the two available chroma samples.

[0742] 21. The method according to item 6, wherein S0, S1, S2, and S3 are chroma samples, and the corresponding luma samples are selected in a given order within the top row and / or left column of the current video block.

[0743] 22. A method for image processing, comprising the steps of: selecting a chroma sample based on a position rule for a transformation between a current image block of an image which is a chroma block and an encoded representation of the image, wherein the chroma sample is used to derive parameters of a cross-component linear model (CCLM); and performing the transformation based on the determination, wherein the position rule specifies that a chroma sample located in the row above and / or the column to the left of the current image block should be selected.

[0744] 23. The method according to paragraph 22, wherein the upper row and the left column each have W samples and H samples, respectively, where W and H are the width and height of the current image block.

[0745] 24. The method according to paragraph 22, wherein the position rule is applied to the current video block encoded in a normal CCLM mode that is different from a first CCLM mode which uses only the upper adjacent samples to derive the CCLM and also different from a second CCLM mode which uses only the left adjacent samples to derive the CCLM.

[0746] 25. The method according to paragraph 22, wherein the position rule specifies to select chroma samples located in the top row and the top-right row of the current image block, the top row and the top-right row each having W and H samples, respectively, where W and H are the width and height of the current image block.

[0747] 26. The method of paragraph 25, wherein only the available samples in the row above and the row to the upper right are selected.

[0748] 27. The method of paragraph 25, wherein the position rule is applied to the current video block which is encoded in a first CCLM mode that uses only the adjacent samples above to derive the CCLM.

[0749] 28. The method of paragraph 25, wherein the position rule is applied when the upper row is available, the left column is not available, and the current video block is encoded in a normal CCLM mode that is different from a first CCLM mode that uses only the upper adjacent samples to derive the CCLM, and also different from a second CCLM mode that uses only the left adjacent samples to derive the CCLM.

[0750] 29. The method according to any one of paragraphs 23 to 28, wherein numSampT is set to equal to nTbW if an adjacent sample above is available, and to equal to 0 if an adjacent sample above is not available, and numSampT is set to equal to 0, wherein numSampT represents the number of chroma samples in the adjacent row above used to derive the parameters of the cross-component linear model, and nTbW represents the width of the current image block.

[0751] 30. The method according to paragraph 29, wherein the rule applies to the current video block encoded in a normal CCLM mode that is different from a first CCLM mode which uses only the upper adjacent samples to derive the CCLM and also different from a second CCLM mode which uses only the left adjacent samples to derive the CCLM.

[0752] 31. The method according to any one of paragraphs 23 to 28, wherein numSampT is set to equal nTbW + Min(numTopRight, nTbH) if upper adjacent samples are available and the current video block is encoded in a first CCLM mode that uses only upper adjacent samples to derive the CCLM, and numSampT is set to equal 0 otherwise, and numSampT represents the number of chroma samples in the upper adjacent row used to derive the parameters of the cross-component linear model, nTbW and nTbH represent the width and height of the current video block, respectively, and numTopRight represents the number of available upper right adjacent samples.

[0753] 32. The method according to paragraph 31, wherein the rule applies to the current video block that is not encoded in a normal CCLM mode, which is different from a first CCLM mode that uses only the upper adjacent samples to derive the CCLM and also different from a second CCLM mode that uses only the left adjacent samples to derive the CCLM.

[0754] 33. The method according to paragraph 22, wherein the position rule specifies to select chroma samples located in the left column and the lower left column of the current image block, the left column and the lower left column having H samples and W samples, respectively, where W and H are the width and height of the current image block.

[0755] 34. The method according to item 33, wherein only the available samples in the left column and the lower left column are selected.

[0756] 35. The method according to paragraph 33, wherein the position rule is applied to the current video block which is encoded in a second CCLM mode which uses only the left adjacent sample to derive the CCLM.

[0757] 36. The method according to paragraph 33, wherein the position rule is applied when the upper row is unavailable, the left column is available, and the current video block is encoded in a normal CCLM mode that is different from a first CCLM mode that uses only upper adjacent samples to derive the CCLM, and also different from a second CCLM mode that uses only left adjacent samples to derive the CCLM.

[0758] 37. The method according to any one of items 33 to 36, wherein numSampL is set to be equal to nTbH if a left adjacent sample is available, and otherwise numSampL is set to be equal to 0, and numSampL represents the number of chroma samples in the left adjacent column used to derive the parameters of the cross-component linear model, and nTbH represents the height of the current image block.

[0759] 38. The method according to paragraph 37, wherein the rule applies to the current video block encoded in a normal CCLM mode that is different from a first CCLM mode which uses only the upper adjacent samples to derive the CCLM and also different from a second CCLM mode which uses only the left adjacent samples to derive the CCLM.

[0760] 39. The method according to any one of paragraphs 33 to 36, wherein numSampL is set to equal nTbH + Min(numLeftBelow, nTbW) if the left adjacent sample is available and the current video block is encoded in a second CCLM mode that uses only the left adjacent sample to derive the CCLM, and numSampL is set to equal 0 otherwise, and numSampL represents the number of chroma samples in the left adjacent column used to derive the parameters of the cross-component linear model, nTbW and nTbH represent the width and height of the current video block, respectively, and numLeftBelow represents the number of available lower-left adjacent samples.

[0761] 40. The method according to paragraph 39, wherein the rule applies to the current video block that is not encoded in a normal CCLM mode, which is different from a first CCLM mode that uses only the upper adjacent samples to derive the CCLM and also different from a second CCLM mode that uses only the left adjacent samples to derive the CCLM.

[0762] 41. The method according to any one of items 22 to 40, wherein a luma sample corresponding to a selected chroma sample is used to derive the parameters of the cross-component linear model.

[0763] 42. The luma sample is derived by downsampling, as described in item 41.

[0764] 43. The method according to any one of items 1 to 42, wherein the execution of the transformation includes generating the encoded representation from the current block.

[0765] 44. The method according to any one of items 1 to 42, wherein the execution of the transformation includes generating the current block from the encoded representation.

[0766] 45. A device in a video system having a processor and a non-temporary memory having instructions, wherein, when executed by the processor, the instructions cause the processor to perform the method described in any one of items 1 to 44.

[0767] 46. ​​A computer program product stored on a non-temporary computer-readable medium, which includes program code for performing the method described in any one of items 1 to 44.

[0768] The eleventh set of items describes specific features and aspects of the disclosed technology enumerated in the preceding sections, including, for example, Examples 20–22.

[0769] 1. A method for image processing, comprising the steps of: determining the position at which a luma sample is downsampled for a conversion between a current image block of an image which is a chroma block and an encoded representation of the image, wherein the downsampled luma sample is used to determine the parameters of a cross-component linear model (CCLM) based on the chroma sample and the downsampled luma sample, and the downsampled luma sample is located at a position corresponding to the position of the chroma sample used to derive the parameters of the CCLM; and performing the conversion based on the determination.

[0770] 2. The method of item 1, wherein the luma sample is not downsampled at locations that are outside the current video block and are not used to determine the parameters of the CCLM.

[0771] 3. A method for video processing, comprising the steps of: determining a method for deriving parameters of a cross-component linear model (CCLM) using chroma samples and luma samples based on encoding conditions related to the current video block for a conversion between the current video block, which is a chroma block, and an encoded representation of the video; and performing the conversion based on the determination.

[0772] 4. The encoding condition is the method described in item 3, which corresponds to the color format of the current video block.

[0773] 5. The method according to item 4, wherein the color format is 4:2:0 or 4:4:4.

[0774] 6. The encoding condition is the method described in item 3, which corresponds to the color representation method of the current video block.

[0775] 7. The method according to item 6, wherein the color representation method is RGB or YCbCr.

[0776] 8. The method according to item 3, wherein the chroma sample is downsampled, and the determination depends on the position of the downsampled chroma sample.

[0777] 9. The method for deriving parameters, comprising determining the parameters of the CCLM based on the chromatic sample and the luma sample selected from a group of adjacent chromatic samples based on a positional rule.

[0778] 10. The method for deriving parameters, comprising determining the parameters of the CCLM based on the maximum and minimum values ​​of the chroma sample and the luma sample, according to the method of paragraph 3.

[0779] 11. The method for deriving parameters, comprising determining the parameters of the CCLM which are fully determinable by two chroma samples and two corresponding luma samples, according to the method of paragraph 3.

[0780] 12. The method for deriving parameters, comprising determining the parameters of the CCLM using a parameter table in which entries are retrieved according to two chroma sample values ​​and two luma sample values.

[0781] 13. A method for image processing, comprising the steps of: determining whether to derive maximum and / or minimum values ​​of chroma components and chroma components used to derive parameters of a cross-component linear model (CCLM) based on the availability of the left adjacent block and the above adjacent block of the current image block for a conversion between the current image block, which is a chroma block, and an encoded representation of the image; and performing the conversion based on the determination.

[0782] 14. The method according to paragraph 13, wherein if the left adjacent block and the upper adjacent block are unavailable, the maximum and / or minimum values ​​are not derived.

[0783] 15. The method according to paragraph 13, wherein the determination is made based on the number of available adjacent samples of the current image block, the available adjacent samples being used to derive the parameters of the cross-component linear model.

[0784] 16. The method according to item 15, where numSampL == 0 and numSampT == 0, the maximum and / or minimum values ​​are not derived, and numSampL and numSampT represent the number of available neighbor samples from the left neighboring block and the number of available neighbor samples from the upper neighboring block, respectively, and the available neighbor samples from the left neighboring block and the available neighbor samples from the upper neighboring block are used to derive the parameters of the cross-component linear model.

[0785] 17. The method according to item 15, where numSampL + numSampT == 0, the maximum and / or minimum values ​​are not derived, and numSampL and numSampT represent the number of available neighbor samples from the left neighboring block and the number of available neighbor samples from the upper neighboring block, respectively, and the available neighbor samples from the left neighboring block and the available neighbor samples from the upper neighboring block are used to derive the parameters of the cross-component linear model.

[0786] 18. The method according to any one of items 1 to 17, wherein the execution of the transformation includes generating the encoded representation from the current block.

[0787] 19. The method according to any one of items 1 to 17, wherein the execution of the transformation includes generating the current block from the encoded representation.

[0788] 20. A device in a video system having a processor and a non-temporary memory having instructions, wherein, when executed by the processor, the instructions cause the processor to perform the method described in any one of items 1 to 19.

[0789] 21. A computer program product stored on a non-temporary computer-readable medium, which includes program code for performing the method described in any one of items 1 to 19.

[0790] The twelfth set of items describes specific features and aspects of the disclosed technology enumerated in the preceding section, including, for example, Example 23.

[0791] 1. A method for video processing, comprising the steps of: determining parameters of an encoding tool using a linear model based on selected adjacent samples of the current video block and corresponding adjacent samples of a reference block for a conversion between the current video block and an encoded representation of the video; and performing the conversion based on the determination.

[0792] 2. The method according to item 1, wherein the encoding tool is a local illumination compensation (LIC) tool that includes using a linear model of illumination changes in the current video block during the conversion.

[0793] 3. The method according to item 2, wherein the adjacent samples of the current video block and the adjacent samples of the reference block are selected based on positional rules.

[0794] 4. The method according to item 3, wherein the parameters of the encoding tool are determined based on the maximum and minimum values ​​of the adjacent samples of the current video block and the adjacent samples of the reference block.

[0795] 5. The method according to item 2, wherein the parameters of the encoding tool are determined using a parameter table in which entries are retrieved according to two adjacent samples of the current video block and two adjacent samples of the reference block.

[0796] 6. The method of paragraph 2, wherein the adjacent samples of the current video block and the adjacent samples of the reference block are downsampled in order to derive the parameters of the encoding tool.

[0797] 7. The method according to item 2, wherein the adjacent samples used to derive the parameters of the LIC tool do not include samples located in a specific position in the row above and / or column to the left of the current video block.

[0798] 8. The method according to item 2, wherein the top-left sample of the current video block has coordinates (x0, y0), and the sample having coordinates (x0, y0-1) is not used to derive the parameters of the LIC tool.

[0799] 9. The method according to item 2, wherein the top-left sample of the current video block has coordinates (x0, y0), and the sample having coordinates (x0-1, y0) is not used to derive the parameters of the LIC tool.

[0800] 10. The method according to paragraph 7, wherein the specific location depends on the availability of the upper row and / or the left column.

[0801] 11. The method according to paragraph 7, wherein the specific position depends on the block dimensions of the current image block.

[0802] 12. The method according to paragraph 1, wherein the determination depends on the availability of the row above and / or the column to the left.

[0803] 13. The method according to item 2, wherein N adjacent samples of the current video block and N adjacent samples of the reference block are used to derive the parameters of the LIC tool.

[0804] 14. The method described in item 13, wherein N is 4.

[0805] 15. The method according to item 13, wherein the N adjacent samples of the current video block include N / 2 samples from the top row of the current video block and N / 2 samples from the left column of the current video block.

[0806] 16. The method according to item 13, wherein N is equal to min(L,T), where T is the total number of available adjacent samples in the current image block, and L is an integer.

[0807] 17. The method according to paragraph 13, wherein the N adjacent samples are selected based on the same rules applicable to selecting samples for deriving the parameters of the CCLM.

[0808] 18. The method according to item 13, wherein N neighboring samples are selected based on the same rules applicable to selecting samples for deriving the parameters of the first mode of the CCLM using only the above neighboring samples.

[0809] 19. The method according to item 13, wherein N adjacent samples are selected based on the same rules applicable to selecting samples for deriving the parameters of the second mode of the CCLM, using only the left adjacent sample.

[0810] 20. The method according to paragraph 13, wherein the N adjacent samples of the current video block are selected based on the availability of the row above or the column to the left of the current video block.

[0811] 21. A method for image processing, comprising the steps of: determining parameters of a local illumination compensation (LIC) tool for a conversion between a current image block of an image and an encoded representation of the image, based on N adjacent samples of the current image block and N corresponding adjacent samples of a reference block, wherein the N adjacent samples of the current image block are selected based on the positions of the N adjacent samples; and performing the conversion based on the determination, wherein the LIC tool uses a linear model of illumination changes in the current image block during the conversion.

[0812] 22. The method according to item 21, wherein the N adjacent samples of the current video block are selected based on the width and height of the current video block.

[0813] 23. The method according to item 21, wherein the N adjacent samples of the current video block are selected based on the availability of adjacent blocks of the current video block.

[0814] 24. The method according to item 21, wherein the N adjacent samples of the current image block are selected by a first positional offset value (F) and a step value (S) that depend on the dimensions of the current image block and the availability of adjacent blocks.

[0815] 25. The method according to any one of items 1 to 24, wherein the current video block is affine encoded.

[0816] 26. A method for image processing, comprising the steps of: determining parameters of a cross-component linear model (CCLM) based on chroma samples and corresponding luma samples for a conversion between a current image block of an image which is a chroma block and an encoded representation of the image; and performing the conversion based on the determination, wherein a portion of the chroma samples is obtained by a padding operation, and the chroma samples and the corresponding luma samples are grouped into two sequences G0 and G1, each sequence comprising two chroma samples and corresponding luma samples.

[0817] 27. The method according to Section 26, wherein when the sum of cntT and cntL is equal to 2, the following operations are performed in order: i) pSelComp[3] is set to equal to pSelComp[0], ii) pSelComp[2] is set to equal to pSelComp[1], iii) pSelComp[0] is set to equal to pSelComp[1], and iv) pSelComp[1] is set to equal to pSelComp[3], where cntT and cntL indicate the number of samples selected from the adjacent block above and the adjacent block to the left, respectively, and pSelComp[0] through pSelComp[3] indicate the pixel values ​​of the color components of the corresponding samples selected.

[0818] 28. The method according to paragraph 26, wherein the determination of the parameter comprises initializing the values ​​of G0[0], G0[1], G1[0], and G1[1].

[0819] 29. The method described in item 28, wherein G0[0]=0, G0[1]=2, G1[0]=1, and G1[1]=3.

[0820] 30. The method of paragraph 28, wherein the determination of the parameter further includes, after the initialization of the value, a comparison of two luma sample values, G0[0] and G0[1], and exchanging the chroma sample of G0[0] and its corresponding luma sample for those of G0[1].

[0821] 31. The method according to paragraph 30, wherein if the luma sample value of G0[0] is greater than the luma sample value of G0[1], the chromatic sample of G0[0] and its corresponding luma sample are exchanged for those of G0[1].

[0822] 32. The method of paragraph 28, wherein the determination of the parameter further includes, after the initialization of the value, a comparison of two luma sample values ​​of G1[0] and G1[1], and exchanging the chroma sample of G1[0] and its corresponding luma sample with those of G1[1].

[0823] 33. The method according to paragraph 32, wherein if the luma sample value of G1[0] is greater than the luma sample value of G1[1], the chromatic sample of G1[0] and its corresponding luma sample are exchanged with those of G1[1].

[0824] 34. The method of paragraph 28, wherein the determination of the parameter further includes, after the initialization of the value, a comparison of two luma sample values ​​of G0[0] and G1[1], and exchanging the chromatic sample of G0[0] or G0[1] and its corresponding luma sample of G1[0] or G1[1].

[0825] 35. The method according to paragraph 34, wherein if the luma sample value of G0[0] is greater than the luma sample value of G1[1], the chromatic sample of G0[0] or G0[1] and its corresponding luma sample are exchanged for those of G1[0] or G1[1].

[0826] 36. The method of paragraph 28, wherein the determination of the parameter further includes, after the initialization of the value, a comparison of two luma sample values ​​of G0[1] and G1[0], and exchanging the chroma sample of G0[1] and its corresponding luma sample with those of G1[0].

[0827] 37. The method according to paragraph 36, wherein if the luma sample value of G0[1] is greater than the luma sample value of G1[0], the chromatic sample of G0[1] and its corresponding luma sample are exchanged with those of G1[0].

[0828] 38. The method according to paragraph 28, wherein the determination of the parameter further includes, after the initialization of the value, a comparison of two luma sample values ​​G0[0], G0[1], G1[0], and G1[1], followed by the following exchange operations in order: i) an exchange of the chroma sample of G0[0] and its corresponding luma sample for those of G0[1]; ii) an exchange of the chroma sample of G1[0] and its corresponding luma sample for those of G1[1]; iii) an exchange of the chroma sample of G0[0] or G0[1] and its corresponding luma sample for those of G0[1] or G1[1]; and iv) an exchange of the chroma sample of G0[1] and its corresponding luma sample for those of G1[0].

[0829] 39. The method according to any one of items 1 to 38, wherein the execution of the transformation includes generating the encoded representation from the current block.

[0830] 40. The method according to any one of items 1 to 38, wherein the execution of the transformation includes generating the current block from the encoded representation.

[0831] 41. A device in a video system having a processor and a non-temporary memory having instructions, wherein, when executed by the processor, the instructions cause the processor to perform the method described in any one of items 1 to 40.

[0832] 42. A computer program product stored on a non-temporary computer-readable medium, which includes program code for performing the method described in any one of items 1 to 40.

[0833] It can be understood from the foregoing that, for illustrative purposes, specific embodiments of the technology disclosed herein have been described, but various modifications can be made without departing from the scope of the invention. Accordingly, the technology disclosed herein is not limited to the claims provided herein.

[0834] The implementation of the matters and functional operations described in this patent document can be carried out in various systems, digital electronic circuits, or computer software, firmware, or hardware, or in one or more combinations thereof, including the structures disclosed in this specification and those structurally equivalent thereto. The implementation of the matters described in this specification can be carried out as one or more computer program products, that is, as one or more modules of computer program instructions encoded on a tangible, non-temporary computer-readable medium for execution by a data processing device or for controlling the operation of a data processing device. The computer-readable medium can be a machine-readable storage device, a machine-readable storage board, a memory device, a composition of a material that produces a machine-readable propagating signal, or one or more combinations thereof. The term “data processing unit” or “data processing device” encompasses any device, apparatus, and machine that processes data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, the apparatus may include code that creates an execution environment for the computer program in question, such as processor firmware, a protocol stack, a database management system, an operating system, or code that constitutes one or more combinations thereof.

[0835] Computer programs (also known as programs, software, software applications, scripts, or code) may be written in any form of programming language, including compiled or interpreted languages, and may be deployed in any form, including as standalone programs or as modules, components, subroutines, or other units suitable for use in a computing environment. Computer programs do not necessarily correspond to files in a file system. A program may be part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), or it may be stored in a single file dedicated to the program in question, or it may be stored in multiple collaborative files (e.g., a file that holds one or more modules, subprograms, or parts of code). A computer program may be deployed to run on a single computer, or it may be deployed to run on multiple computers located in one place or distributed across multiple locations and interconnected by a communication network.

[0836] The processes and logic flows described in this specification can be executed by one or more programmable processors that run one or more computer programs to perform functions by performing calculations on input data and generating outputs. These processes and logic flows can also be executed by dedicated logic circuits, such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits), and the devices can also be implemented as such dedicated logic circuits.

[0837] Processors suitable for executing computer programs include, for example, both general-purpose and dedicated microprocessors, and any one or more processors in any type of digital computer. Generally, a processor receives instructions and data from read-only memory, random-access memory, or both. Essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer also includes one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, or is operationally coupled to receive data from or transfer data to mass storage devices. However, a computer is not required to have such devices. Computer-readable media suitable for storing computer program instructions and data include, for example, semiconductor memory devices such as EPROMs, EEPROMs, and flash memory devices, and include all forms of non-volatile memory, media, and memory devices. Processors and memory may be supplemented by or incorporated into dedicated logic circuits.

[0838] The specification, along with the drawings, is intended to be considered merely illustrative, and illustrative means example. Where used herein, the use of “or” is intended to include “and / or” unless the context explicitly indicates otherwise.

[0839] This patent document contains numerous details, which should not be interpreted as limitations on the scope of any invention or claim, but rather as descriptions of mechanisms that may be specific to a particular embodiment of a particular invention. Certain mechanisms described in this patent document in the context of separate embodiments may be implemented in combination in a single embodiment. Conversely, various mechanisms described in the context of a single embodiment may be implemented separately or in some preferred subcombination in multiple embodiments. Furthermore, while several mechanisms may be described above as operating in a particular combination, and may even be initially claimed in this manner, it may be possible to remove one or more mechanisms from a claimed combination, or to lead the claimed combination into a subcombination or a variation of a subcombination.

[0840] Similarly, although the drawings show processes in a specific order, this should not be understood as requiring that those operations be performed in a specific order or sequence as illustrated, or that all illustrated processes be performed, in order to achieve the desired result. Furthermore, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.

[0841] Only a few implementations and examples are described, and other implementations, extensions, and modifications may be made based on those described and illustrated in this patent document.

Claims

1. A method for processing video data, A step of determining the parameters of a cross-component linear model using a lookup table for conversion between the current video block of a chroma block and the bitstream of the video, wherein the index of the lookup table is determined according to two chroma values ​​derived from reconstructed chroma samples. A step of performing the transformation based on the above decision, It has, The two aforementioned luma values ​​are denoted as L0 and L1, and the index of the lookup table is derived based on the difference between L1 and L0. L0 and L1 are further derived based on the positions of adjacent chroma samples in the current video block. The parameter values ​​of the cross-component linear model are determined based on at least R chromosamples from a group of adjacent chromosamples, where the R chromosamples are selected from the group based on a position rule, and R is 2 or greater. method.

2. The aforementioned lookup table is 2 P The method according to claim 1, wherein the size V is smaller than and P is an integer.

3. The method according to claim 2, wherein P is equal to 5.

4. The method according to any one of claims 1 to 3, wherein the lookup table has a plurality of entries, each entry storing an F-bit integer, where F is 8 or 16.

5. The method according to any one of claims 1 to 4, wherein the predicted sample of the current video block is derived based on the reconstructed sample of the luma block corresponding to the current video block and the parameters of the cross-component linear model.

6. The method according to claim 1, wherein when L1 is equal to L0, the predicted sample of the current video block is derived based on a specific chroma value C0, where C0 is derived based on adjacent chroma samples of the current video block.

7. The method according to claim 6, wherein the predicted sample of the current video block is set to C0.

8. The parameter has a value that is further determined based on the luma samples corresponding to the R chroma samples, Whether the luma sample is downsampled to derive the values ​​of the parameters in the cross-component linear model is determined based on the color format of the current video block. In response to the color format being 4:2:0 or 4:2:2, the luma sample is downsampled. The aforementioned parameters are 2 S It has a value determined based on the number of chroma samples, where S is an integer, S is equal to 1 or 2, Based on the dimensions of the current image block, at least one adjacent chroma sample among the adjacent chroma samples of the group does not belong to the R chroma samples. In order to determine the first set of values ​​for the parameters, chroma samples within the group of adjacent chroma samples are searched to find the R chroma samples having the minimum and maximum corresponding luma values. The R chromatic samples are selected based on the availability of adjacent blocks. The method according to claim 1.

9. The parameters of the cross-component linear model are determined based on at least a selected chroma sample, the selected chroma sample being chosen from the group of adjacent chroma samples based on the position of the adjacent chroma sample and the prediction mode of the current image block. The method according to claim 1.

10. If the prediction mode of the current video block is a first linear mode that uses only the left adjacent sample, then all of the selected chroma samples are to the left of the current video block. If the lower left adjacent chroma sample is available, the number of adjacent chroma samples in the group used in the first linear mode is greater than H, where H is the height of the current image block. If the prediction mode of the current image block is a second linear mode that uses only the adjacent samples above, then all of the selected chroma samples are on the current image block, If the adjacent chroma sample in the upper right is available, the number of selected chroma samples used in the second linear mode is greater than W, where W is the width of the current image block. The position of the selected chromat sample is selected based on the width or height of the chromat block. The aforementioned parameters are further determined based on the two-point method. The current image block is coded using a linear intra-prediction mode, the top-left sample of the current image block is (x, y), and at least one sample of the group of adjacent chroma samples is (x-1, y+d), where d is an integer within the range [T, S], and T and S are integers. The at least one sample in the group of adjacent chromatic samples is located beyond 2 × W adjacent chromatic samples above or 2 × H adjacent chromatic samples to the left. The method according to claim 9.

11. The parameters of the cross-component linear model, which can be determined by two chroma values ​​and two luma values, are determined. The two chroma values ​​are denoted as C0 and C1, and the parameters of the cross-component linear model are derived based on the difference between C1 and C0 and the difference between L1 and L0. The predicted sample of the current video block is derived based on the reconstructed sample of the Luma block corresponding to the current video block and the parameters of the cross-component linear model. The method according to claim 1.

12. If L1 is equal to L0, an intra-prediction mode other than the cross-component linear model mode is used. The parameters of the aforementioned cross-component linear model are derived by eliminating division operations. The parameters of the aforementioned cross-component linear model are derived using logarithmic operations. The parameters of the cross-component linear model are derived based on the value of Floor(log2(L1-L0)), where Floor(x) is a floor function that outputs the integer part of x. The method according to claim 11.

13. The parameters of the cross-component linear model (CCLM) are determined based on at least two or more chroma samples from adjacent chroma samples of the current image block, and the two or more chroma samples are selected based on the CCLM mode of the current image block and the availability of the adjacent chroma samples. CCLM is applied to the luma sample located within the luma block corresponding to the current video block to derive the predicted value of the current video block. The above conversion is further performed based on the above predicted values. The method according to claim 1.

14. The adjacent chroma sample includes, with respect to the current image block, the adjacent chroma sample to the left, the adjacent chroma sample above, the adjacent chroma sample to the upper right, or the adjacent chroma sample to the lower left. The CCLM mode of the current video block is one of the following: a first CCLM mode that introduces the CCLM parameters based on the left adjacent chroma sample and the upper adjacent chroma sample; a second CCLM mode that introduces the CCLM parameters based on the left adjacent chroma sample and the lower left adjacent chroma sample; and a third CCLM mode that introduces the CCLM parameters based on the upper adjacent chroma sample and the upper right adjacent chroma sample, wherein the width and height of the current video block are W and H, respectively. In response to both the left adjacent chroma sample and the upper adjacent chroma sample being available, and the current CCLM mode of the video block being the first CCLM mode, two chroma samples are selected from the left adjacent chroma sample and two other chroma samples are selected from the upper adjacent chroma sample. In response to the fact that only the above adjacent chroma samples are available, the CCLM mode of the current video block is the first CCLM mode, and W is equal to 2, exactly two chroma samples are selected from the above adjacent chroma samples. In response to the fact that only the left adjacent chroma sample is available, the CCLM mode of the current video block is the first CCLM mode, and H is equal to 2, exactly two chroma samples are selected from the left adjacent chroma samples. In response to the fact that only the above adjacent chroma samples are available, the CCLM mode of the current video block is the first CCLM mode, and W is greater than 2, exactly four chroma samples are selected from the above adjacent chroma samples. In response to the fact that only the left adjacent chroma sample is available, the CCLM mode of the current video block is the first CCLM mode, and H is greater than 2, exactly four chroma samples are selected from the left adjacent chroma samples. In response to both the left adjacent chroma sample and the lower left adjacent chroma sample being available, and the current CCLM mode of the video block being the second CCLM mode, exactly four chroma samples are selected from the left adjacent chroma sample and the lower left adjacent chroma sample. In response to the fact that only the left adjacent chroma sample is available, the CCLM mode of the current video block is the second CCLM mode, and H is equal to 2, exactly two chroma samples are selected from the left adjacent chroma samples. In response to the fact that only the left adjacent chroma sample is available, the current CCLM mode of the video block is the second CCLM mode, and H is greater than 2, exactly four chroma samples are selected from the left adjacent chroma samples. In response to the fact that both the upper adjacent chroma sample and the upper right adjacent chroma sample are available, and the current CCLM mode of the video block is the third CCLM mode, exactly four chroma samples are selected from the upper adjacent chroma sample and the upper right adjacent chroma sample. In response that only the above adjacent chroma samples are available, the CCLM mode of the current video block is the third CCLM mode, and W is equal to 2, exactly two chroma samples are selected from the above adjacent chroma samples. In response that only the above adjacent chroma samples are available, the CCLM mode of the current video block is the third CCLM mode, and W is greater than 2, exactly four chroma samples are selected from the above adjacent chroma samples. Two or more luma samples corresponding to the two or more chromato samples mentioned above are determined. In response to the determination of four luma samples, a first average luma value is derived based on averaging the two maximum values ​​of the four luma samples, and a second average luma value is derived based on averaging the two minimum values ​​of the four luma samples. The first average luma value and the second average luma value are used to derive the parameters of the CCLM. The method according to claim 13.

15. The parameters of the cross-component linear model (CCLM) are determined based on, at least, a selected chroma sample chosen from adjacent chroma samples of the current image block, the position of the selected chroma sample being derived from a first position offset value (F) and a step value (S), where F and S are derived based on, at least, the availability of the adjacent chroma samples of the current image block and the dimensions of the current image block. The method according to claim 1.

16. The adjacent chroma sample includes, with respect to the current image block, the adjacent chroma sample to the left, the adjacent chroma sample above, the adjacent chroma sample to the upper right, or the adjacent chroma sample to the lower left. F = (M >> i), where M is the number of adjacent chroma samples used to derive the selected chroma sample in the horizontal direction, or F = (N >> i), where N is the number of adjacent chroma samples used to derive the selected chroma sample in the vertical direction, i is equal to 2 or 3, and >> is a right shift operation. S = Max(1, (M >> j)), or S = Max(1, (N >> j)), where j is equal to 1 or 2, and the Max operation is used to obtain the maximum value among multiple numbers. Both M and N are less than or equal to W + H, and are determined based on the CCLM mode of the current video block, where W and H are the width and height of the current video block, respectively. The CCLM mode of the current video block is one of the following: a first CCLM mode that introduces the CCLM parameters based on the left adjacent chroma sample and the upper adjacent chroma sample; a second CCLM mode that introduces the CCLM parameters based on the left adjacent chroma sample and the lower left adjacent chroma sample; and a third CCLM mode that introduces the CCLM parameters based on the upper adjacent chroma sample and the upper right adjacent chroma sample. In response to selecting two chromatic samples in the horizontal direction, the positions of the two selected chromatic samples in the horizontal direction are (M>>2) and ((M>>2) + (M>>1)), In response to selecting two chromatic samples in the aforementioned vertical direction, the positions of the two selected chromatic samples in the aforementioned vertical direction are (N>>2) and ((N>>2) + (N>>1)), In response to selecting four chroma samples in the horizontal direction, the positions of the four selected chroma samples in the horizontal direction are (M>>3), ((M>>3) + (M>>2)), ((M>>3) + 2 * (M>>2)), ((M>>3) + 3 * (M>>2)), In response to selecting four chroma samples in the vertical direction, the positions of the four selected chroma samples in the vertical direction are (N>>3), ((N>>3) + (N>>2)), ((N>>3) + 2 * (N>>2)), ((N>>3) + 3 * (N>>2)), In response that the CCLM mode is the first CCLM mode and the above adjacent chromatic sample is available, M is equal to W, In response that the CCLM mode is the third CCLM mode, the upper adjacent chromatic sample is available, and the upper right adjacent chromatic sample is not available, M is equal to W. In response that the CCLM mode is the first CCLM mode and the left adjacent chromatic sample is available, N is equal to H. In response that the CCLM mode is the second CCLM mode, the left adjacent chromat sample is available, and the lower left adjacent chromat sample is not available, N is equal to H. In response to the fact that the adjacent chroma samples of the current video block are unavailable, the predicted value of the current video block is set to the default value. The default value is equal to 1 << (Bitdepth - 1), where Bitdepth represents the bit depth of the chroma sample. The method according to claim 15.

17. The parameters of the cross-component linear model (CCLM) are determined based on maxY, maxC, minY, and minC, where maxY, maxC, minY, and minC are derived from two or four indices, and the indices are mapped to chroma samples and corresponding luma samples. The method according to claim 1.

18. The corresponding lumens sample is obtained by downsampling when the color format of the current video block is 4:2:0 or 4:2:2, and the corresponding lumens sample is obtained without downsampling when the color format of the current video block is 4:4:

4. In response to the use of two original indices and two mapped chroma samples and two corresponding luma samples to derive maxY, maxC, minY, and minC, a padding operation is applied to generate two padded chroma samples and two padded luma samples. The two original indices are denoted as S0 and S1, the two mapped indices to which the two padded chroma samples and the two padded luma samples are mapped are denoted as S2 and S3, and the padding operations are performed in order as follows: 1) The chromatic sample mapped to S0 and the corresponding luma sample are copied to the chromatic sample mapped to S3 and the corresponding luma sample, respectively. 2) The chromatic sample and corresponding luma sample mapped to S1 are copied to the chromatic sample and corresponding luma sample mapped to S2, respectively. 3) The chromatic sample mapped to S1 and the corresponding luma sample are copied to the chromatic sample mapped to S0 and the corresponding luma sample, respectively. 4) The chromatic sample and corresponding luma sample mapped to S3 are copied to the chromatic sample and corresponding luma sample mapped to S1, respectively. maxY is equal to the larger of the two luma samples mapped to the two original indices, maxC is equal to the chroma sample corresponding to the larger luma sample, minY is equal to the smaller of the two luma samples mapped to the two original indices, minC is equal to the chroma sample corresponding to the smaller luma sample, In response to the use of four chroma samples and four corresponding luma samples mapped to four indices in order to derive maxY, maxC, minY, and minC, the four indices are divided into two sequences G0 and G1, each sequence containing two indices, G0[0] = S0, G0[1] = S2, G1[0] = S1, G1[1] = S3, where S0, S1, S2, and S3 each represent one index mapped to a chroma sample and its corresponding luma sample. A first comparison is applied between the luma sample of G0[0] and the luma sample of G0[1], and based on the first comparison, G0[0] and G0[1] are selectively exchanged. In response to the luma sample of G0[0] being larger than the luma sample of G0[1], G0[0] and G0[1] are exchanged. Following the first comparison described above, a second comparison is applied between the luma sample of G1[0] and the luma sample of G1[1], and based on the second comparison, G1[0] and G1[1] are selectively exchanged. In response to the luma sample of G1[0] being larger than the luma sample of G1[1], G1[0] and G1[1] are exchanged. Following the second comparison described above, a third comparison is applied between the luma sample of G0[0] and the luma sample of G1[1], and based on the third comparison, G0 and G1 are selectively exchanged, and the exchange of G0 and G1 includes the exchange of G0[0] and G1[0], and the exchange of G0[1] and G1[1]. In response to the luma sample of G0[0] being larger than the luma sample of G1[1], G0 and G1 are exchanged. Following the third comparison described above, a fourth comparison is applied between the luma sample of G0[1] and the luma sample of G1[0], and based on the fourth comparison, G0[1] and G1[0] are selectively exchanged. In response to the fact that the luma sample of G0[1] is larger than the luma sample of G1[0], G0[1] and G1[0] are exchanged. After the fourth comparison described above, maxY is derived based on the mean of the luma samples of G1[0] and G1[1], and maxC is derived based on the mean of the chroma samples of G1[0] and G1[1]. After the fourth comparison described above, minY is derived based on the mean of the luma samples of G0[0] and G0[1], and minC is derived based on the mean of the chroma samples of G0[0] and G0[1]. The method according to claim 17.

19. The values ​​of the parameters of the cross-component linear model are determined based on at least the R chroma samples and downsampled adjacent chroma samples, the downsampled adjacent chroma samples being generated by a downsampling process based on the color format of the current image block. An adjacent chroma sample corresponding to at least one adjacent chroma sample that does not belong to the R chroma samples is not subject to the downsampling process. The method according to claim 1.

20. The group of adjacent chromatic samples includes the adjacent chromatic sample on the left and the adjacent chromatic sample above. To generate the aforementioned values ​​of the parameters, the maximum and / or minimum values ​​of the luma component and the chroma component are derived, and these maximum and / or minimum values ​​are derived based on the left adjacent chroma sample and the upper adjacent chroma sample. The aforementioned maximum and / or minimum values ​​are not derived when numSampL == 0 and numSampT == 0, where numSampL and numSampT represent the number of available left neighboring chromat samples and the number of available upper neighboring chromat samples, respectively. The aforementioned maximum and / or minimum values ​​are not derived when cntL == 0 and cntT == 0, where cntL and cntT represent the number of selected chromatic samples from the left adjacent chromatic sample and the number of selected chromatic samples from the upper adjacent chromatic sample, respectively. The method according to claim 19.

21. The method according to any one of claims 1 to 20, wherein the conversion includes decoding the current video block from the bitstream.

22. The method according to any one of claims 1 to 20, wherein the conversion includes encoding the current video block into the bitstream.

23. A device for processing video data, comprising a processor and non-temporary memory having instructions, wherein when an instruction is executed by the processor, the processor receives For the conversion between the current video block of the video, which is a chroma block, and the bitstream of the video, a lookup table is used to determine the parameters of a cross-component linear model, and the index of the lookup table is determined according to two luma values ​​derived from the reconstructed luma sample. Based on the above decision, the conversion is performed. The two aforementioned luma values ​​are denoted as L0 and L1, and the index of the lookup table is derived based on the difference between L1 and L0. L0 and L1 are further derived based on the positions of adjacent chroma samples in the current video block. The parameter values ​​of the cross-component linear model are determined based on at least R chromosamples from a group of adjacent chromosamples, where the R chromosamples are selected from the group based on a position rule, and R is 2 or greater. Device.

24. A non-temporary computer-readable storage medium storing instructions, wherein the instructions are transmitted to a processor. For the conversion between the current video block of the video, which is a chroma block, and the bitstream of the video, a lookup table is used to determine the parameters of a cross-component linear model, and the index of the lookup table is determined according to two luma values ​​derived from the reconstructed luma sample. Based on the above decision, the conversion is performed. The two aforementioned luma values ​​are denoted as L0 and L1, and the index of the lookup table is derived based on the difference between L1 and L0. L0 and L1 are further derived based on the positions of adjacent chroma samples in the current video block. The parameter values ​​of the cross-component linear model are determined based on at least R chromosamples from a group of adjacent chromosamples, where the R chromosamples are selected from the group based on a position rule, and R is 2 or greater. Computer-readable storage medium.

25. A method for storing a video bitstream, The step of determining the parameters of a cross-component linear model using a lookup table, wherein the index of the lookup table is determined according to two luma values ​​derived from the reconstructed luma sample. A step of generating the bitstream based on the above decision, The steps include storing the bitstream in a non-temporary computer-readable recording medium, It has, The two aforementioned luma values ​​are denoted as L0 and L1, and the index of the lookup table is derived based on the difference between L1 and L0. L0 and L1 are further derived based on the positions of adjacent chroma samples in the current video block. The parameter values ​​of the cross-component linear model are determined based on at least R chromosamples from a group of adjacent chromosamples, where the R chromosamples are selected from the group based on a position rule, and R is 2 or greater. method.