Size-dependent cross-component linear models
By simplifying the cross-component prediction method, removing unnecessary downsampling and only adjacent samples using intra prediction, the complexity of CCLM in hardware implementation is solved, and video encoding and codec efficiency and performance are improved.
Patent Information
- Application Number
- CN202080008152.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-01-11
- Filing Date
- 2020-01-13
- Publication Date
- 2025-01-17
- Estimated Expiration
- 2040-01-13
AI Technical Summary
In the existing video encoding and decoding technology, the cross-component linear model (CCLM) is highly complex when implemented in hardware and requires a large number of near-brightness samples and downsampling filters, resulting in increased computational complexity and difficult to adapt to efficient hardware implementation.
A simplified cross-component prediction method is proposed, by removing unnecessary downsampling, using only adjacent brightness samples in intra prediction, and downsampling through simple double-sample averaging, reducing computational complexity, applicable For existing and future video encoding and codec standards.
It improves video encoding and decoding efficiency, reduces computing complexity, enhances the performance of existing video encoding and decoding standards and future standards, and is suitable for hardware implementation.
Smart Images

Figure CN113366836B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application is to timely claim the priority and benefits of International Patent Application No. PCT / CN2019 / 071382 filed on January 11, 2019, under applicable patent law and / or under the rules of the Paris Convention. The entire disclosure of International Patent Application No. PCT / CN2019 / 071382 is incorporated by reference as part of the disclosure of this application for all purposes under the law. Technical Field
[0003] This patent document relates to video coding and decoding technology, equipment and systems. Background Art
[0004] Despite advances in video compression technology, digital video still accounts for the largest use of bandwidth on the Internet and other digital communications networks. As the number of connected user devices capable of receiving and displaying video increases, bandwidth demand for digital video usage is expected to continue to grow. Summary of the invention
[0005] Devices, systems and methods related to digital video coding are described, in particular, a low-complexity implementation of a cross-component linear model (CCLM) prediction mode in video coding. The described method can be applied to existing video coding standards (e.g., High Efficiency Video Coding (HEVC)) and future video coding standards (e.g., Versatile Video Coding (VVC)) or codecs.
[0006] In one example aspect, a method of video processing is disclosed. The method includes: using training samples of a luma block to determine a linear model for predicting a first chroma block; and using a sample set of the luma block and the linear model to determine samples of the first chroma block; wherein the training sample or sample set is determined without using a multi-tap downsampling filter.
[0007] In another example aspect, another video processing method is disclosed. The method includes: using training samples of a luma block to determine a linear model for predicting a first chroma block; and using a sample set of the luma block and the linear model to determine samples of the first chroma block; wherein the training luma samples are limited to luma samples adjacent to the luma block at a location used for an intra prediction process.
[0008] In another example aspect, another video processing method is disclosed. The method includes: for conversion between a current video block and a bitstream representation of the current video block, selectively determining a cross-component prediction scheme for generating samples of a first chroma block from a sample set of the luminance block based on a rule related to the current video block including a luminance block and a first chroma block; and generating samples of the first chroma block according to the cross-component prediction scheme, wherein the cross-component prediction scheme is one of the following: a first cross-component prediction scheme, which uses a linear model generated from training samples of the luminance block so that the training samples and the sample set are determined without using a multi-tap downsampling filter; or a second cross-component prediction scheme, in which the training luminance samples are restricted to luminance samples adjacent to the current video block at a position used for an intra-frame prediction process; wherein the rule specifies that the cross-component prediction scheme is selected according to the video region to which the current video block belongs.
[0009] In another example aspect, another video processing method is disclosed. The method includes: determining samples of a first chroma block of a video block from a luma block of the video block for conversion between a video block and a codec representation of the video block; wherein the samples of the first chroma block correspond to a weighted combination of a first intermediate chroma block and N second intermediate chroma blocks, wherein the first intermediate chroma block is generated from a first set of samples of the luma block using a first cross-component linear model, wherein the first cross-component linear model is generated using a first training sequence of luma samples; and wherein the N second intermediate chroma blocks are generated from N second sets of samples of the luma block using N second cross-component linear models, wherein the N second cross-component linear models are generated using N second training sequences of luma samples, where N is an integer.
[0010] In another example aspect, another video processing method is disclosed. The method includes: downsampling a set of samples of a luma block using a downsampling process, wherein a downsampling filter used in the downsampling process depends on the position of luma samples that are downsampled to generate the downsampled set of samples of the luma block; and determining samples of a first chroma block from the downsampled set of samples of the luma block using a linear model.
[0011] In another example aspect, another video processing method is disclosed. The method includes: for a conversion between a video block of a video and a codec representation of the video block, determining one or more cross-component linear models (CCLMs) for the conversion based on the size or dimension of the video block; and performing the conversion using the cross-component linear model, wherein the cross-component linear model is one of the following: a CCLM derived only from the top neighboring values of the video block (CCLM-T); a CCLM derived only from the left neighboring values of the video block (CCLM-L); or a CCLM derived only from the left and top neighboring values of the video block (CCLM-TL).
[0012] In another representative aspect, the disclosed technology can be used to provide a method for simplified cross-component prediction. The method includes: receiving a bitstream representation of a current block of video data including at least one luma component and at least one chroma component; predicting a first set of samples of at least one chroma component based on a second set of samples using a linear model, the second set of samples being selected by subsampling samples of at least one luma component; and processing the bitstream representation based on the first set of samples and the second set of samples to generate the current block.
[0013] In another representative aspect, the disclosed technology can be used to provide a method for simplified cross-component prediction. The method includes: receiving a bitstream representation of a current block of video data including at least one luma component and at least one chroma component; predicting a first sample set of at least one chroma component based on a second sample set using a linear model, the second sample set being neighboring samples and used for an intra-frame prediction mode of at least one luma component; and processing the bitstream representation based on the first sample set and the second sample set to generate the current block.
[0014] In yet another representative aspect, the disclosed technology can be used to provide a method for simplified cross-component prediction. The method includes: receiving a bitstream representation of a picture segment including a plurality of blocks, wherein the plurality of blocks includes a current block, and wherein each of the plurality of blocks includes a chroma component and a luma component; performing a prediction step on each of the plurality of blocks; and processing the bitstream representation based on a corresponding first sample set and a second sample set to generate a corresponding block of the plurality of blocks.
[0015] In another representative aspect, the disclosed technology can be used to provide a method for simplified cross-component prediction. The method includes: receiving a bitstream representation of a current block of video data including at least one luma component and at least one chroma component; performing a prediction step for the current block a predetermined number of times; generating a final first sample set based on each of a predetermined number of first sample sets; and processing the bitstream representation based on at least the final first sample set to generate the current block.
[0016] In another representative aspect, the disclosed technology can be used to provide a method for simplified cross-component prediction. The method includes: determining the size of a first video block; determining parameters for application of a cross-component linear model (CCLM) prediction mode based on the determination of the size of the first video block; and performing further processing of the first video block using the CCLM prediction mode according to the parameters.
[0017] In yet another representative aspect, the above method is embodied in the form of processor executable code and stored in a computer readable program medium.
[0018] In yet another representative aspect, a device configured or operable to perform the above method is disclosed. The device may include a processor programmed to implement the method.
[0019] In yet another representative aspect, a video decoder device may implement a method as described herein.
[0020] The above and other aspects and features of the disclosed technology are described in more detail in the drawings, the description and the claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] Figure 1 An example of the locations of samples used to derive weights for a linear model for cross-component prediction is shown.
[0022] Figure 2 An example of classifying neighboring samples into two groups is shown.
[0023] Figure 3A An example of chroma samples and their corresponding luma samples is shown.
[0024] Figure 3B An example of down-filtering for a cross-component linear model (CCLM) in a Joint Exploration Model (JEM) is shown.
[0025] Figure 4 An exemplary arrangement of four luma samples corresponding to a single chroma sample is shown.
[0026] Figure 5A and Figure 5B An example of samples of a 4x4 chroma block with neighboring samples, and corresponding luma samples is shown.
[0027] Figure 6A-6J An example of CCLM without luma sample down-filtering is shown.
[0028] Figure 7A-7D An example of a CCLM that only requires neighboring luma samples used in normal intra prediction is shown.
[0029] Fig. 8A and Figure 8B An example of a Coding Unit (CU) at the boundary of a Coding Tree Unit (CTU) is shown.
[0030] Fig. 9 A flow chart of an example method for cross-component prediction according to the disclosed technology is shown.
[0031] Fig.10A flowchart of another example method for cross-component prediction according to the disclosed technology is shown.
[0032] Fig.11 A flowchart of yet another example method for cross-component prediction according to the disclosed technology is shown.
[0033] Fig.12 A flowchart of yet another example method for cross-component prediction according to the disclosed technology is shown.
[0034] Fig.13 is a block diagram of an example of a hardware platform for implementing the visual media decoding or visual media encoding techniques described in this document.
[0035] Figure 14-Figure 19 is a flowchart of various methods of video processing.
[0036] Figure 20A-20B Describes the downsampled positions of luma samples inside and outside the current block. Assume the current block size is WxH. Fig. 20A The situation is shown when W upper neighboring samples and H left neighboring samples are involved. Fig. 20B The situation is shown when 2W upper neighboring samples and 2H left neighboring samples are involved.
[0037] Fig.21 is a block diagram of an example video processing system in which the disclosed technology may be implemented. DETAILED DESCRIPTION
[0038] Due to the growing demand for higher resolution video, video coding methods and techniques are ubiquitous in modern technology. Video codecs generally include electronic circuits or software that compress or decompress digital video, and are constantly being improved to provide higher coding 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 bit rate), the complexity of the encoding and decoding algorithms, the sensitivity to data loss and errors, the ease of editing, random access, and end-to-end delay (latency). The compression format usually conforms to a standard video compression specification, such as the High Efficiency Video Codec (HEVC) standard (also known as H.265 or MPEG-H Part 2), the Versatile Video Codec standard (VVC) to be completed, or other current and / or future video codec standards.
[0039] Embodiments of the disclosed technology can be applied to existing video codec standards (e.g., HEVC, H.265) and future standards to improve runtime performance. Section headings are used in this document to improve the readability of the description and do not in any way limit the discussion or embodiments (and / or implementation methods) to only the corresponding sections.
[0040] 1. Example of cross-component prediction
[0041] Cross-component prediction is a form of chroma-to-luma prediction method with a well-balanced trade-off between complexity and compression efficiency improvement.
[0042] 1.1 Example of Cross-Component Linear Model (CCLM)
[0043] In some embodiments, to reduce cross-component redundancy, a cross-component linear model (CCLM) prediction mode (also referred to as LM) is used in JEM, for which chroma samples are predicted based on reconstructed luma samples of the same CU using the following linear model:
[0044] pred C (i,j)=α·rec L ′(i,j)+β (1)
[0045] Here, pred C (i, j) represents the predicted chroma sample in the CU. For color formats 4:2:0 or 4:2:2, rec L ′(i,j) represents the downsampled reconstructed luminance sample of the same CU, and for the color format 4:4:4, rec L ′(i,j) represents the reconstructed luma sample of the same CU. The CCLM parameters α and β are derived by minimizing the regression error between the neighboring reconstructed luma and chroma samples around the current block, as follows:
[0046]
[0047] as well as
[0048] Here, L(n) represents the top and left adjacent reconstructed luma samples that are downsampled (for color format 4:2:0 or 4:2:2) or original (for color format 4:4:4), C(n) represents the top and left adjacent reconstructed chroma samples, and the value of N is equal to twice the minimum of the width and height of the current chroma codec block.
[0049] In some embodiments, for square codec blocks, the above two equations are directly applied. In other embodiments, for non-square codec blocks, the neighboring samples of the longer boundary are first sub-sampled to have the same number of samples as the shorter boundary. Figure 1 The samples of the current block involved in CCLM mode and the positions of the left and top reconstructed samples are shown.
[0050] In some embodiments, this regression error minimization calculation is performed as part of the decoding process, rather than just as an encoder search operation, so no syntax is used to communicate the α and β values.
[0051] In some embodiments, the CCLM prediction mode also includes prediction between two chrominance components, for example, predicting the Cr (red-difference) component from the Cb (blue-difference) component. Instead of using the reconstructed sample signal, the CCLM Cb-to-Cr prediction is applied in the residual domain. This is implemented by adding the weighted reconstructed Cb residual to the original Cr intra prediction to form the final Cr prediction:
[0052]
[0053] Here, resi Cb ′(i,j) represents the reconstructed Cb residual sample at position (i,j).
[0054] In some embodiments, the scaling factor α can be derived in a similar manner as in CCLM luma-to-chroma prediction. The only difference is that a regression cost is added relative to the default α value in the error function, so that the derived scaling factor is biased towards the default value of -0.5 as shown below:
[0055]
[0056] Here, Cb(n) represents the adjacent reconstructed Cb sample, Cr(n) represents the adjacent reconstructed Cr sample, and λ is equal to ∑(Cb(n)·Cb(n))>>9.
[0057] In some embodiments, CCLM luma-to-chroma prediction mode is added as an additional chroma intra prediction mode. On the encoder side, one more RD cost check for chroma components is added for selecting chroma intra prediction mode. When intra prediction modes other than CCLM luma-to-chroma prediction mode are used for chroma components of a CU, CCLM Cb-to-Cr prediction is used for Cr component prediction.
[0058] 1.2 Example of Multi-Model CCLM
[0059] In JEM, there are two CCLM modes: Single Model CCLM Mode and Multiple Model CCLM Mode (MMLM). As the name indicates, for the entire CU, Single Model CCLM Mode adopts one linear model for predicting chrominance samples from luma samples, while in MMLM, there can be two models.
[0060] In MMLM, the neighboring luma samples and chroma samples of the current block are classified into two groups, each of which is used as a training set to derive a linear model (i.e., derive a specific α and β for a specific group). In addition, the samples of the current luma block are also classified based on the same rules for classifying neighboring luma samples.
[0061] Figure 2 An example of classifying neighboring samples into two groups is shown. The threshold Threshold is calculated as the average value of the neighboring reconstructed brightness samples. Rec′ L The adjacent samples where [x,y]<=Threshold are classified as group 1; and Rec′ L Adjacent samples where [x,y]>Threshold are classified into group 2.
[0062]
[0063] 1.3 Example of CCLM downsampling filter
[0064] In some embodiments, in order to perform cross-component prediction, for a 4:2:0 chroma format where 4 luma samples correspond to 1 chroma sample, the reconstructed luma block needs to be downsampled to match the size of the chroma signal. The default downsampling filter used in CCLM mode is as follows:
[0065] Rec' L [x,y]={2×Rec L [2x,2y]+2×Rec L [2x,2y+1]+
[0066] Rec L [2x-1,2y]+Rec L [2x+1,2y]+
[0067] Rec L [2x-1,2y+1]+Rec L [2x+1,2y+1]+4}>>3 (7)
[0068] Here, for the position of chroma samples relative to the position of luma samples, downsampling assumes that Figure 3A A "Type 0" phase relationship is shown, for example, with samples collocated horizontally and interleaved vertically.
[0069] The exemplary 6-tap downsampling filter defined in (6) is used as the default filter for both the single-model CCLM mode and the multi-model CCLM mode.
[0070] In some embodiments, for MMLM mode, the encoder may alternatively select one of four additional luma downsampling filters to apply to prediction in the CU and send a filter index to indicate which of these filters is used. Figure 3B As shown, the four optional brightness downsampling filters of MMLM mode are as follows:
[0071] Rec' L [x,y]=(Rec L [2x,2y]+Rec L [2x+1,2y]+1)>>1 (8)
[0072] Rec' L [x,y]=(Rec L [2x+1,2y]+Rec L [2x+1,2y+1]+1)>>1 (9)
[0073] Rec' L [x,y]=(Rec L [2x,2y+1]+Rec L [2x+1,2y+1]+1)>>1 (10)
[0074] Rec' L [x,y]=(Rec L [2x,2y]+Rec L [2x,2y+1]+Rec L [2x+1,2y]+Rec L [2x+1,2y+1]+2)>>2 (11)
[0075] Extension of Multi-model CCLM in JVET-M0098
[0076] In JVET-M0098, MM-CCLM was extended. Two additional modes, named CCLM-L and CCLM-T modes, were added to the original MM-CCLM, named CCLM-TL. With CCLM-L, the linear parameters of the two models are derived using only the left neighboring samples. With CCLM-T, the linear parameters of the two models are derived using only the top neighboring samples.
[0077] 2 Examples of Disadvantages in Existing Implementations
[0078] Current CCLM implementations are not easily amenable to efficient hardware implementations due to at least the following issues:
[0079] ● Requires more neighboring luma samples than those used in normal intra prediction. CCLM requires two luma samples from the upper neighboring rows and three luma samples from the left neighboring columns. MM-CCLM requires four luma samples from the upper neighboring rows and four luma samples from the left neighboring columns.
[0080] ● Luma samples (for both adjacent luma samples used for parameter derivation and co-located luma reconstruction samples) need to be downsampled using a 6-tap filter, which increases computational complexity.
[0081] 3. Exemplary Method for Simplified Cross-Component Prediction in Video Coding
[0082] Embodiments of the presently disclosed technology overcome the shortcomings of existing implementations, thereby providing a video codec with higher codec efficiency but lower computational complexity. Based on the disclosed technology, simplified cross-component prediction can enhance existing video codec standards and future video codec standards, as described in the following examples described for various implementations. The examples of the disclosed technology provided below explain the general concepts and are not meant to be interpreted as limiting. In the examples, the various features described in these examples can be combined unless explicitly indicated to the contrary.
[0083] The proposed simplified CCLM approach includes, but is not limited to:
[0084] ● Only nearby luma samples are needed for use in normal intra prediction; and
[0085] ● No downsampling of luma samples is required, or downsampling is performed via simple two-sample averaging.
[0086] The examples described below assume a 4:2:0 color format. Figure 3A As shown, one chrominance (Cb or Cr) sample (represented by a triangle) corresponds to four luma (Y) samples (represented by a circle): Figure 4 A, B, C and D shown. Figure 5A and Figure 5B An example of samples of a 4x4 chroma block with neighboring samples, and corresponding luma samples is shown.
[0087] Example 1. In one example, it is proposed that CCLM be accomplished without downsampling filtering of luma samples.
[0088] (a) In one example, the downsampling process of adjacent luma samples is removed in the CCLM parameter (eg, α and β) derivation process. Instead, the downsampling process is replaced by a subsampling process in which non-consecutive luma samples are utilized.
[0089] (b) In one example, the downsampling process of samples in the co-located luma block is removed in the CCLM chroma prediction process. Instead, only some luma samples in the co-located luma block are used to derive the predicted block of chroma samples.
[0090] (c) Figure 6A-6J An example is shown regarding an 8x8 luma block corresponding to a 4x4 chroma block.
[0091] (d) In Fig. 6A In an example shown, Figure 4 The luma sample at position "C" in is used to correspond to the chroma sample. The upper neighboring samples are used during training to infer the linear model.
[0092] (e) In Figure 6B In an example shown, Figure 4 The luma sample at position "C" in is used to correspond to the chroma sample. The upper neighboring sample and the upper right neighboring sample are used to derive the linear model during training.
[0093] (f) In Figure 6C In an example shown, Figure 4 The luma sample at position "D" in is used to correspond to the chroma sample. The upper neighboring samples are used to infer the linear model during training.
[0094] (g) In Fig.6D In an example shown, Figure 4 The luma sample at position "D" in is used to correspond to the chroma sample. The upper neighboring sample and the upper right neighboring sample are used to derive the linear model during training.
[0095] (h) In Fig. 6E In an example shown, Figure 4 The luma sample at position "B" in is used to correspond to the chroma sample. The left neighboring samples are used to infer the linear model during training.
[0096] (i) In Fig. 6F In an example shown, Figure 4 The luma sample at position "B" in is used to correspond to the chroma sample. The left neighboring sample and the bottom left neighboring sample are used to infer the linear model during training.
[0097] (j) In Figure 6G In an example shown, Figure 4 The luma sample at position "D" in is used to correspond to the chroma sample. The left neighboring samples are used to infer the linear model during training.
[0098] (k) Figure 6H In an example shown, Figure 4 The luma sample at position "D" in is used to correspond to the chroma sample. The left neighboring sample and the bottom left neighboring sample are used to infer the linear model during training.
[0099] (1) In Fig.6I In an example shown, Figure 4 The luma sample at position "D" in is used to correspond to the chroma sample. The upper neighboring samples and the left neighboring samples are used to derive the linear model during the training process.
[0100] (m) In Figure 6J In an example shown, Figure 4 The luma sample at position "D" in is used to correspond to the chroma sample. The upper neighboring sample, the left neighboring sample, the upper right neighboring sample, and the lower left neighboring sample are used during the training process to derive the linear model.
[0101] Example 2. In one example, it is proposed that CCLM only requires neighboring luma samples used in the normal intra prediction process, that is, other neighboring luma samples are not allowed to be used in the CCLM process. In one example, CCLM is accomplished by performing a 2-tap filtering on the luma samples. Figure 7A-7D An example is shown regarding an 8x8 luma block corresponding to a 4x4 chroma block.
[0102] (a) In Fig. 7A In an example shown, Figure 4 The luma samples at position "C" and position "D" in are filtered to F(C, D) for use in corresponding to the chroma samples. The upper neighboring samples are used to derive the linear model during the training process.
[0103] (b) In Figure 7B In an example shown, Figure 4 The luma samples at position "C" and position "D" in are filtered to F(C, D) for use in corresponding to the chroma samples. The upper neighboring samples and the upper right neighboring samples are used to derive the linear model during the training process.
[0104] (c) In Figure 7C In an example shown, Figure 4 The luma samples at position "B" and position "D" in are filtered to F(B,D) for use in corresponding to the chroma samples. The left neighboring samples are used to infer the linear model during training.
[0105] (d) In Fig.7D In an example shown, Figure 4The luma samples at position "B" and position "D" in are filtered to F(B,D) for use in corresponding to the chroma samples. The left neighboring samples and the bottom left neighboring samples are used to derive the linear model during the training process.
[0106] (e) In one example, F is defined as F(X,Y)=(X+Y)>>1. Alternatively, F(X,Y)=(X+Y+1)>>1.
[0107] Example 3. In one example, it is suggested that the proposed simplified CCLM method (eg, Example 1 and Example 2) may be applied in a selective manner. That is, different blocks within a region / slice / picture / sequence may select different kinds of simplified CCLM methods.
[0108] (a) In one embodiment, the encoder selects a type of simplified CCLM method from a predefined candidate set and signals it to the decoder.
[0109] (i) For example, the encoder may select between Example 1(a) and Example 1(e). Alternatively, the encoder may select between Example 1(b) and Example 1(f). Alternatively, the encoder may select between Example 1(c) and Example 1(g). Alternatively, the encoder may select between Example 1(d) and Example 1(h). Alternatively, the encoder may select between Example 2(a) and Example 2(c). Alternatively, the encoder may select between Example 2(b) and Example 2(d).
[0110] (ii) The candidate set to be selected from and the signaling may depend on the shape or size of the block. Assume that W and H denote the width and height of the chroma block, and T1 and T2 are integers.
[0111] (1) In one example, if W<=T1 and H<=T2, there is no candidate, for example, CCLM is disabled. For example, T1=T2=2.
[0112] (2) In one example, if W<=T1 or H<=T2, there is no candidate, for example, CCLM is disabled. For example, T1=T2=2.
[0113] (3) In one example, if W×H<=T1, there is no candidate, for example, CCLM is disabled. For example, T1=4.
[0114] (4) In one example, if W<=T1 and H<=T2, there is only one candidate, such as example 1(i). No CCLM method selection information is signaled. For example, T1=T2=4.
[0115] (5) In one example, if W <= T1 or H <= T2, there is only one candidate, such as Example 1(i). No signaling is used to notify the CCLM method selection information. For example, T1 = T2 = 4.
[0116] (6) In one example, if W × H <= T1, there is only one candidate, such as Example 1(i). No signaling is used to notify the CCLM method selection information. For example, T1 = 16.
[0117] (7) In one example, if W > H, there is only one candidate, such as Example 1(a). No signaling is used to notify the CCLM method selection information. Alternatively, if W > H (or W > N * H, where N is a positive integer), only the candidate (or some candidates) of the upper side or / and upper right adjacent reconstruction samples are included in the candidate set when deriving the CCLM parameters.
[0118] (8) In one example, if W < H, there is only one candidate, such as Example 1(e). No signaling is used to notify the CCLM method selection information. Alternatively, if W < H (or N * W < H), only the candidate (or some candidates) of the left side or / and lower left adjacent reconstruction samples are included in the candidate set when deriving the CCLM parameters.
[0119] (b) In one embodiment, both the encoder and the decoder select the simplified CCLM method based on the same rule. The encoder does not signal it to the decoder. For example, the selection may depend on the shape or size of the block. In one example, if the width is greater than the height, Example 1(a) is selected; otherwise, Example 1(e) is selected.
[0120] (c) One or more sets of simplified CCLM candidates can be signaled in the sequence parameter set / picture parameter set / slice header / CTU / CTB / CTU group.
[0121] Example 4. In one example, it is proposed to apply multiple CCLM methods (e.g., Example 1 and Example 2) to the same chrominance block. That is, a block within a region / slice / picture / sequence can select different types of simplified CCLM methods to derive multiple intermediate chrominance prediction blocks, and the final chrominance prediction block is derived from the multiple intermediate chrominance prediction blocks.
[0122] (a) Alternatively, multiple sets of CCLM parameters (e.g., α and β) can be first derived according to multiple selected CCLM methods. A final set of CCLM parameters can be derived from the multiple sets and used in the chrominance prediction block generation process.
[0123] (b) The selection of multiple CCLM methods may be signaled (implicitly or explicitly) in a manner similar to that described in Example 3.
[0124] (c) An indication of the use of the proposed method may be signaled in a sequence parameter set / picture parameter set / slice header / CTU group / CTU / codec block.
[0125] Example 5. In one example, whether and how to apply the proposed simplified CCLM method may depend on the location of the current block.
[0126] (a) In one example, Fig. 8A As shown, one or more of the suggested methods are applied to the CU located at the upper boundary of the current CTU.
[0127] (b) In one example, Figure 8B As shown, one or more of the suggested methods are applied to the CU located at the left boundary of the current CTU.
[0128] (c) In one example, one or more of the proposed methods are applied in both cases above.
[0129] Example 6. In one example, when the luma sample is inside the current block or outside the current block, the luma sample is downsampled in different ways to correspond to the chroma sample. In addition, when the external luma sample is on the left side of the current block or on the upper side of the current block, the external luma sample is downsampled in different ways to correspond to the chroma sample.
[0130] a. In one example, luma samples are downsampled as specified below, such as Figure 20A-20B As shown:
[0131] i. Luma samples inside the current block are downsampled in the same way as in JEM.
[0132] ii. Luma samples outside the current block and on the upper side of the current block are downsampled to position C or D.
[0133] 1. Alternatively, the luma sample is downsampled to position C using a filter. Assuming that the luma sample adjacent to the current block on the upper side is denoted as a[i], then d[i]=(a[2i-1]+2*a[2i]+a[2i+1]+2)>>2, where d[i] represents the downsampled luma sample.
[0134] a. If sample a[2i-1] is not available, then d[i] = (3*a[2i] + a[2i+1] + 2) >> 2;
[0135] b. If sample a[2i+1] is not available, then d[i]=(a[2i-1]+3*a[2i]+2)>>2;
[0136] iii. Luma samples outside the current block and to the left of the current block are downsampled to position B or D,
[0137] 1. Alternatively, the luma sample is downsampled to halfway between B and D. Assuming that the luma sample adjacent to the current block on the left is denoted as a[j], then d[j] = (a[2j] + a[2j + 1] + 1) >> 1, where d[j] represents the downsampled luma sample.
[0138] Example 7. In one example, the proposed luminance downsampling method can be applied to the LM mode in JEM or VTM, and can also be applied to the MMLM mode in JEM. In addition, it can also be applied to the left-LM mode that uses only the left neighboring samples to derive the linear model, or the above-LM mode that uses only the upper neighboring samples to derive the linear model.
[0139] Example 8. No matter which kind of downsampling filter is applied, boundary filtering can be applied in LM mode, MMLM mode, left LM mode or upper LM mode.
[0140] a. Assuming that the reconstructed chroma sample adjacent to the current block on the upper side is represented as a[-1][j], and the LM predicted sample at the i-th row and j-th column is a[i][j], the predicted sample after boundary filtering is calculated as a'[i][j] = (w1*a[i][j] + w2*a[-1][i] + 2N-1)>>N, where w1+w2=2N.
[0141] i. In one example, boundary filtering is applied only when i<=K. K is an integer, such as 0 or 1. For example, K=0, w1=w2=1. In another example, K=0, w1=3, w2=1.
[0142] ii. In one example, w1 and w2 depend on the row index (i). For example, for sample a[0][j], K=1, w1=w2=1, but for sample a[1][j], w1=3, w2=1.
[0143] b. Assuming that the reconstructed chroma sample adjacent to the current block on the left is represented as a[i][-1], and the LM predicted sample in the i-th row and j-th column is a[i][j], the predicted sample after boundary filtering is calculated as a'[i][j] = (w1*a[i][j] + w2*a[i][-1] + 2N-1)>>N, where w1+w2=2N.
[0144] i. In one example, boundary filtering is applied only when j<=K. K is an integer, such as 0 or 1. For example, K=0, w1=w2=1. In another example, K=0, w1=3, w2=1.
[0145] ii. In one example, w1 and w2 depend on the column index (i). For example, for sample a[0][j], K=1, w1=w2=1, but for sample a[1][j], w1=3, w2=1.
[0146] Example 9. In one example, how CCLM-TL, CCLM-T, and CCLM-L are applied may depend on the size of the current block (block width represented by W and block height represented by H).
[0147] (a) In one example, if W <= T, CCLM-T cannot be applied. T is an integer, such as 2;
[0148] (b) In one example, if H<=T, CCLM-L cannot be applied. T is an integer, such as 2;
[0149] (c) In one example, if H<=T1 and W<=T2, CCLM-TL cannot be applied. T1 and T2 are integers, such as 2;
[0150] (d) In one example, if H<=T1 or W<=T2, CCLM-TL cannot be applied. T1 and T2 are integers, such as 2;
[0151] (e) In one example, if W*H<=T, CCLM-TL cannot be applied. T is an integer, such as 4;
[0152] (f) In one example, if CCLM-T cannot be applied, the flag signaling whether CCLM-T is applied is not signaled and is inferred to be 0.
[0153] (g) In one example, if CCLM-L cannot be applied, the flag signaling whether CCLM-L is applied is not signaled and is inferred to be 0.
[0154] (h) In one example, if CCLM-TL cannot be applied, the flag signaling whether CCLM-TL is applied is not signaled and is inferred to be 0.
[0155] (i) Whether to apply the above method may also depend on the color format (eg, 4:2:0, 4:2:2, or 4:4:4).
[0156] Example 10.In one example, CCLM-T may be referred to as those CCLM methods that utilize only upper reference samples to derive linear model parameters.
[0157] (a) Alternatively, CCLM-L can be referred to as those CCLM methods that utilize only the left reference samples to derive the linear model parameters.
[0158] (b) In one example, CCLM-T can also represent a multi-model CCLM-T method that derives multiple linear models from upper reference samples.
[0159] (c) In one example, CCLM-L can also represent a multi-model CCLM-L method that derives multiple linear models from the left reference sample.
[0160] The examples described above may be incorporated in the context of the methods described below, such as method 900 and method 1000 , which may be implemented at a video encoder and / or decoder.
[0161] Fig. 9 A flow chart of an exemplary method for cross-component prediction is shown. Method 900 includes, at step 910, receiving a bitstream representation of a current block of video data including at least one luma component and at least one chroma component.
[0162] The method 900 includes, at step 920, predicting a first set of samples of at least one chroma component based on a second set of samples using a linear model, the second set of samples being selected by subsampling samples of at least one luma component.
[0163] The method 900 includes, at step 930 , processing the bitstream representation based on the first set of samples and the second set of samples to generate a current block.
[0164] In some embodiments, method 900 further includes inferring parameters of the linear model based on the training samples. For example, in the context of Example 1, the training samples include one or more samples of a luma sample block associated with a chroma sample that is a neighbor of the current block. In some embodiments, the luma sample block is a 2×2 luma sample block. In other embodiments, its size may be 2 N ×2 N .
[0165] In some embodiments, at least one of the luma samples corresponds to a chroma sample, and the training sample may be selected as described in Examples 1(d) to 1(m). For example, in some embodiments, the luma sample block is a 2×2 luma sample block. In some embodiments, the lower left sample of the luma sample block corresponds to the chroma sample, and the training sample includes the upper neighboring sample of the lower left sample. In some embodiments, the lower left sample of the luma sample block corresponds to the chroma sample, and the training sample includes the upper neighboring sample and the upper right neighboring sample of the lower left sample. In some embodiments, the lower right sample of the luma sample block corresponds to the chroma sample, and the training sample includes the upper neighboring sample and the upper right neighboring sample of the lower right sample. In some embodiments, the upper right sample of the luma sample block corresponds to the chroma sample, and the training sample includes the left neighboring sample of the upper right sample. In some embodiments, the upper right sample of the luma sample block corresponds to the chroma sample, and the training sample includes the left neighboring sample and the lower left neighboring sample of the upper right sample. In some embodiments, the lower right sample of the luma sample block corresponds to the chroma sample, and the training sample includes the left neighboring sample of the upper right sample and the lower left neighboring sample. In some embodiments, the lower right sample of the luma sample block corresponds to the chroma sample, and the training sample includes the left neighboring sample of the lower right sample. In some embodiments, the lower right sample of the luma sample block corresponds to the chroma sample, and the training sample includes the left neighboring sample and the lower left neighboring sample of the lower right sample. In some embodiments, the lower right sample of the luma sample block corresponds to the chroma sample, and the training sample includes the left neighboring sample and the upper neighboring sample of the lower right sample. In some embodiments, the lower right sample of the luma sample block corresponds to the chroma sample, and the training sample includes the upper neighboring sample, the left neighboring sample, the upper right neighboring sample, and the lower left neighboring sample of the lower right sample.
[0166] Fig.10 A flowchart of another exemplary method for cross-component prediction is shown. This example includes a method similar to Fig. 9 Some of the above features and / or steps shown in . At least some of these features and / or components may not be described separately in this section. Method 1000 includes, at step 1010, receiving a bitstream representation of a current block of video data including at least one luma component and at least one chroma component.
[0167] The method 1000 includes, at step 1020, predicting a first set of samples of at least one chroma component based on a second set of samples that are neighboring samples and are used in an intra prediction mode of at least one luma component using a linear model.
[0168] The method 1000 comprises, at step 1030 , processing a bitstream representation based on the first set of samples and the second set of samples to generate a current block.
[0169] In some embodiments, method 1000 further includes inferring parameters of the linear model based on the training samples. For example, in the context of Example 2, the training samples include one or more samples of a luma sample block associated with a chroma sample that is a neighborhood of the current block. In some embodiments, the luma sample block is a 2×2 luma sample block. In other embodiments, its size may be 2 N ×2 N .
[0170] In some embodiments, the filtered samples based on two luma samples in the luma sample correspond to the chroma samples, and the training samples can be selected as described in Examples 2(a)-2(d). For example, in some embodiments, the luma sample block is a 2×2 luma sample block. In some embodiments, the lower left sample and the lower right sample of the luma sample block are filtered using a two-tap filter to generate filtered samples corresponding to the chroma samples, and the training samples include the upper neighboring samples of each of the lower left sample and the lower right sample. In some embodiments, the lower left sample and the lower right sample of the luma sample block are filtered using a two-tap filter to generate filtered samples corresponding to the chroma samples, and the training samples include the upper neighboring samples and the upper right neighboring samples of each of the lower left sample and the lower right sample. In some embodiments, the upper right sample and the lower right sample of the luma sample block are filtered using a two-tap filter to generate filtered samples corresponding to the chroma samples, and the training samples include the left neighboring samples of each of the upper right sample and the lower right sample. In some embodiments, an upper right sample and a lower right sample of a luma sample block are filtered using a two-tap filter to generate filtered samples corresponding to chroma samples, and wherein the training samples include a left neighboring sample and a lower left neighboring sample of each of the upper right sample and the lower right sample.
[0171] Fig.11 A flowchart of another exemplary method for cross-component prediction is shown. This example includes a method similar to Fig. 9 and Fig.10 Some of the features and / or steps described above are shown in . At least some of these features and / or components may not be described separately in this section. The method 1100 includes, at step 1110, receiving a bitstream representation of a picture segment including a plurality of blocks, the plurality of blocks including a current block, and each of the plurality of blocks including a chrominance component and a luminance component.
[0172] The method 1100 includes, at step 1120 , performing a prediction step on each of the plurality of blocks.
[0173] The method 1100 includes, at step 1130 , processing the bitstream representation based on the respective first set of samples and the second set of samples to generate respective blocks of the plurality of blocks.
[0174] In some embodiments, and in the context of Example 3, the prediction step may be selected from the prediction steps described in method 900 , while in other embodiments, the prediction step may be selected from the prediction steps described in method 1000 .
[0175] Fig.12 A flowchart of another exemplary method for cross-component prediction is shown. This example includes a method similar to Figure 9-11 Some of the features and / or steps described above are shown in . At least some of these features and / or components may not be described separately in this section. Method 1200 includes, at step 1210, receiving a bitstream representation of a current block of video data including at least one luma component and at least one chroma component.
[0176] The method 1200 includes, at step 1220 , performing a predetermined number of prediction steps on the current block.
[0177] The method 1200 includes, at step 1230 , generating a final first sample set based on each of the predetermined number of first sample sets.
[0178] The method 1200 includes, at step 1240 , processing the bitstream representation based on at least the final first set of samples to generate a current block.
[0179] In some embodiments, and in the context of Example 4, the prediction step may be selected from the prediction steps described in method 900 , while in other embodiments, the prediction step may be selected from the prediction steps described in method 1000 .
[0180] In some embodiments, and in the context of Example 5, performing the prediction step is based on the position of the current block in the current CTU. In one example, the position of the current block is at the upper boundary, and in another example, the position of the current block is at the left boundary of the current CTU.
[0181] In some embodiments, a method of video coding includes: determining a size of a first video block; determining parameters regarding application of a CCLM prediction mode based on the determination of the size; and performing further processing of the first video block using the CCLM prediction mode according to the parameters. In various embodiments, the CCLM mode may include one or more of CCLM-TL, CCLM-T, or CCLM-L.
[0182] In some embodiments, based on the width of the size being less than or equal to a threshold, the CCLM prediction mode excludes CCLM-T.
[0183] In some embodiments, based on the height of the size being less than or equal to a threshold, the CCLM prediction mode excludes CCLM-L.
[0184] In some embodiments, the CCLM prediction mode excludes CCLM-TL based on the height of the size being less than a first threshold and based on the width of the size being less than a second threshold.
[0185] In some embodiments, the CCLM prediction mode excludes CCLM-TL based on the width of the size multiplied by the height of the size being less than or equal to a threshold.
[0186] In some embodiments, based on the fact that CCLM-T cannot be applied, the flag signaling that the CCLM prediction mode is CCLM-T is not signaled and is inferred to be 0.
[0187] In some embodiments, based on CCLM-T not being applicable, a flag signaling the CCLM prediction mode to be CCLM-L is not signaled and is inferred to be zero.
[0188] In some embodiments, based on the fact that CCLM-T cannot be applied, the flag signaling that the CCLM prediction mode is CCLM-TL is not signaled and is inferred to be zero.
[0189] In some embodiments, the method further comprises determining a color format of the first video block, and wherein determining the parameter is based on the determination of the color format.
[0190] In some embodiments, the CCLM prediction mode is CCLM-T, and CCLM-T uses upper reference samples to derive linear model parameters.
[0191] In some embodiments, the CCLM prediction mode is CCLM-L, and CCLM-L uses the left reference samples to derive linear model parameters.
[0192] In some embodiments, the CCLM prediction mode is CCLM-T, and CCLM-T is used to derive multiple linear models from upper reference samples.
[0193] In some embodiments, the CCLM prediction mode is CCLM-L, and CCLM-L is used to derive multiple linear models from left reference samples.
[0194] In some embodiments, the following list of technical solutions may be preferred implementations.
[0195] 1. A method for video processing (eg, Fig.14The method 1400 shown in FIG. 1 comprises: using training samples of a luminance block to determine (1402) a linear model for predicting a first chrominance block; and using a sample set of the luminance block and the linear model to determine (1404) samples of the first chrominance block; wherein the training samples or sample sets are determined without using a multi-tap downsampling filter.
[0196] 2. The method according to solution 1, wherein the linear model comprises a first parameter α and a second parameter β, and wherein α and β are derived from the training samples by subsampling the training samples.
[0197] 3. The method of solution 2, wherein subsampling uses non-contiguous luma samples.
[0198] 4. The method of solution 1, wherein the set of samples corresponds to luma samples co-located with samples of the first chroma block.
[0199] 5. A method according to any one of solutions 1-4, wherein the training sample corresponds to an upper neighboring sample of a luminance block, and wherein the sample set of the luminance block corresponds to a lower left pixel of the luminance block.
[0200] 6. A method according to any one of solutions 1-4, wherein the training samples correspond to neighboring samples on the upper side and upper right of the luminance block, and wherein the sample set of the luminance block corresponds to the lower left pixel of the luminance block.
[0201] 7. A method according to any one of solutions 1-4, wherein the training sample corresponds to an upper neighboring sample of a luminance block, and wherein the sample set of the luminance block corresponds to a lower right pixel of the luminance block.
[0202] 8. A method according to any one of solutions 1-4, wherein the training samples correspond to neighboring samples on the upper side and upper right of the luminance block, and wherein the sample set of the luminance block corresponds to the lower right pixel of the luminance block.
[0203] 9. A method according to any one of solutions 1-4, wherein the training sample corresponds to a left neighboring sample of a luma block, and wherein the sample set of the luma block corresponds to an upper right pixel of the luma block.
[0204] 10. The method according to any one of solutions 1-4, wherein the training samples correspond to upper neighboring samples of the luma block, and wherein the sample set of the luma block corresponds to a lower left pixel of the luma block.
[0205] 11. A method according to any one of solutions 1-4, wherein the training sample corresponds to a left neighboring sample of a luma block, and wherein the sample set of the luma block corresponds to a lower right pixel of the luma block.
[0206] 12. A method according to any one of solutions 1-4, wherein the training samples correspond to neighboring samples to the left and bottom left of the luminance block, and wherein the sample set of the luminance block corresponds to the bottom right pixel of the luminance block.
[0207] 13. A method according to any one of solutions 1-4, wherein the training samples correspond to neighboring samples on the upper and left sides of the luminance block, and wherein the sample set of the luminance block corresponds to the lower right pixel of the luminance block.
[0208] 14. A method according to any one of solutions 1-4, wherein the training samples correspond to adjacent samples on the upper side, left side, upper right and lower left of the luminance block, and wherein the sample set of the luminance block corresponds to the lower right pixel of the luminance block.
[0209] The previous section provides additional features of the above solution (eg, item 1).
[0210] 15. A method for video processing (e.g., Fig.15 ), comprising: using training samples of a luma block to determine (1502) a linear model for predicting a first chroma block; and using a sample set of the luma block and the linear model to determine (1504) samples of the first chroma block; wherein the training luma samples are restricted to luma samples adjacent to the luma block at a position used for an intra prediction process.
[0211] 16. The method of solution 15, wherein the chroma samples in the first chroma block are determined by applying a 2-tap filter to first and second samples in a set of samples of a luminance block at positions corresponding to positions of the chroma blocks.
[0212] 17. The method according to solution 16, wherein the first sample is a lower left sample, the second sample is a lower right sample, and wherein the training sample corresponds to an upper neighboring sample.
[0213] 18. The method according to solution 16, wherein the first sample is a lower left sample, the second sample is a lower right sample, and wherein the training samples correspond to upper and upper right neighboring samples.
[0214] 19. The method according to solution 16, wherein the first sample is an upper right sample, the second sample is a lower right sample, and wherein the training sample corresponds to a left adjacent sample.
[0215] 20. The method according to solution 16, wherein the first sample is an upper right sample, the second sample is a lower right sample, and wherein the training samples correspond to the left and lower left adjacent samples.
[0216] 21. A method according to any one of solutions 16 to 20, wherein the two-tap filter is an averaging filter.
[0217] 22. A method according to any one of solutions 16 to 21, wherein the two-tap filter averages the sum of one plus the first sample plus the second sample.
[0218] The previous section provides additional features of the above solution (eg, item 1).
[0219] 23. A method of video processing (e.g., Fig.16 ), comprising: for conversion between a current video block and a bitstream representation of the current video block, selectively determining (1602) a cross-component prediction scheme for generating samples of a first chroma block from a set of samples of the luminance block based on a rule associated with the current video block including a luminance block and a first chroma block; and generating (1604) samples of the first chroma block according to the cross-component prediction scheme, wherein the cross-component prediction scheme is one of: a first cross-component prediction scheme that uses a linear model generated based on training samples of the luminance block so that the training samples and the set of samples are determined without using a multi-tap downsampling filter; or a second cross-component prediction scheme in which the training luminance samples are restricted to luminance samples adjacent to the current video block at a position used for an intra-frame prediction process; wherein the rule specifies that the cross-component prediction scheme is selected based on a video region to which the current video block belongs.
[0220] 24. The method of solution 23, wherein the cross-component prediction scheme selected for the current video block is different from another cross-component prediction scheme selected for another video block in the video region.
[0221] 25. The method of solution 24, wherein the video area comprises a video strip.
[0222] 26. The method of solution 24, wherein the video area comprises a video picture.
[0223] 27. The method of solution 24, wherein the video region comprises a sequence of video pictures.
[0224] 28. The method of solution 23, wherein the codec condition is signaled in a codec representation of the current video block.
[0225] 29. The method of solution 23, wherein the codec condition is not explicitly signaled in the codec representation of the current video block.
[0226] 30. The method of solution 28 or 29, wherein the rule specifies that a cross-component prediction scheme is selected based on a shape or size of the current video block.
[0227] 31. A method according to any one of solutions 28 or 29, wherein: the training samples are selected from the following:
[0228] an upper neighboring sample of the luma block, and wherein the sample set of the luma block corresponds to a lower left pixel of the luma block;
[0229] Neighboring samples at the upper side and upper right of the luminance block, wherein the sample set of the luminance block corresponds to the lower left pixel of the luminance block;
[0230] The upper side of the luma block is adjacent to the sample, and wherein the sample set of the luma block corresponds to a lower right pixel of the luma block;
[0231] Neighboring samples on the upper side and upper right of the luminance block, and wherein the sample set of the luminance block corresponds to the lower right pixel of the luminance block;
[0232] a left neighboring sample of a luma block, and wherein the set of samples of the luma block corresponds to an upper right pixel of the luma block;
[0233] an upper neighboring sample of the luma block, and wherein the sample set of the luma block corresponds to a lower left pixel of the luma block;
[0234] neighboring samples to the left and bottom left of the luma block, and wherein the sample set of the luma block corresponds to a bottom right pixel of the luma block;
[0235] The training samples correspond to neighboring samples on the upper and left sides of the luminance block, and the sample set of the luminance block corresponds to a lower right pixel of the luminance block; or
[0236] Neighboring samples on the upper side, left side, upper right, and lower left of the luma block, and wherein the sample set of the luma block corresponds to the lower right pixel of the luma block; and / or
[0237] wherein the first chroma block is determined by applying a 2-tap filter to a first sample and a second sample in a sample set of a luminance block, the luminance block being at a position corresponding to the position of the first chroma block; wherein the first sample is a lower left sample, the second sample is a lower right sample, and wherein the training sample corresponds to an upper neighboring sample; wherein the first sample is a lower left sample, the second sample is a lower right sample, and wherein the training sample corresponds to an upper and upper right neighboring sample; wherein the first sample is an upper right sample, the second sample is a lower right sample, and wherein the training sample corresponds to a left neighboring sample; or wherein the first sample is an upper right sample, the second sample is a lower right sample, and wherein the training sample corresponds to a left neighboring sample.
[0238] 32. The method of solution 30, wherein the current video block has a width of W pixels and a height of H pixels, and wherein the rule specifies that the cross-component prediction scheme is disabled because W<=T1 and H<=T2, where T1 and T2 are integers.
[0239] 33. The method of solution 30, wherein the current video block has a width of W pixels and a height of H pixels, and wherein the rule specifies that the cross-component prediction scheme is disabled because W*H<=T1.
[0240] 34. A method according to solution 30, wherein the width of the current video block is W pixels and the height is H pixels, and wherein the rule specifies that a specific cross-component prediction scheme is selected because W<=T1 and H<=T2, wherein T1 and T2 are integers, and wherein the specific cross-component prediction scheme is signaled in the codec representation.
[0241] 35. A method according to solution 30, wherein the width of the current video block is W pixels and the height is H pixels, and wherein the rule specifies that a specific cross-component prediction scheme is selected because W<=T1 and H<=T2, wherein T1 and T2 are integers, and wherein the specific cross-component prediction scheme is not signaled in the codec representation.
[0242] 36. A method according to solution 32, wherein the width of the current video block is W pixels and the height is H pixels, and wherein the rule specifies that a specific cross-component prediction scheme is selected because W*H<=T1, and wherein the specific cross-component prediction scheme is signaled in the codec representation.
[0243] 37. A method according to solution 32, wherein the width of the current video block is W pixels and the height is H pixels, and wherein the rule specifies that a specific cross-component prediction scheme is selected because W>N*H, and wherein the specific cross-component prediction scheme is not signaled in the codec representation, where N is an integer.
[0244] 38. A method according to solution 32, wherein the width of the current video block is W pixels and the height is H pixels, and wherein the rule specifies that a specific cross-component prediction scheme is selected because W>N*H, and wherein the specific cross-component prediction scheme only uses pixels from upper or upper right neighboring samples, and wherein the specific cross-component prediction scheme is signaled in the codec representation.
[0245] 39. The method according to solution 32, wherein the current video block has a width of W pixels and a height of H pixels, and wherein a rule specifies selection of a particular cross-component prediction scheme due to N*W < H, and wherein the particular cross-component prediction scheme is signaled in the codec representation, where N is an integer.
[0246] 40. The method according to solution 32, wherein the current video block has a width of W pixels and a height of H pixels, and wherein a rule specifies selection of a particular cross-component prediction scheme due to W > N*H, and wherein the particular cross-component prediction scheme uses only pixels from neighboring samples to the left or bottom-left.
[0247] 41. The method according to any one of solutions 34 to 40, wherein T1 = 2.
[0248] 42. The method according to any one of solutions 10 to 17, wherein T2 = 2.
[0249] 43. The method according to any one of solutions 10 to 17, wherein T1 = 4.
[0250] 44. The method according to any one of solutions 10 to 17, wherein T2 = 4.
[0251] 45. The method according to any one of solutions 10 to 17, wherein T2 = 16.
[0252] The previous section provides additional features of the above solutions (e.g., item 3).
[0253] 46. A method of video processing (e.g., Fig.17 method 1700 depicted in), comprising: determining (1702) samples of a first chrominance block of a video block from a luminance block of the video block for conversion between the video block and a codec representation of the video block; wherein the samples of the first chrominance block correspond to a weighted combination of a first intermediate chrominance block and N second intermediate chrominance blocks, wherein the first intermediate chrominance block is generated using a first cross-component linear model according to a first set of samples of the luminance block, wherein the first cross-component linear model is generated using a first training sequence of luminance samples; and wherein the N second intermediate chrominance blocks are generated using N second cross-component linear models according to N second sets of samples of the luminance block, wherein the N second cross-component linear models are generated using N second training sequences of luminance samples, where N is an integer.
[0254] 47. The method according to solution 46, wherein at least some of the first cross-component linear model and the N second cross-component linear models are different from each other within a region of the video, wherein the region of the video corresponds to a stripe, or a picture, or a video sequence.
[0255] 48. A method according to any one of solutions 46-47, wherein the codec representation includes identification of a first cross-component linear model and N second cross-component linear models.
[0256] 49. A method according to solution 47, wherein the identifier is included in a sequence parameter set level, or a picture parameter set level, or a slice header, or a codec tree unit group, or a codec tree unit, or a codec unit level.
[0257] 50. A method according to any one of solutions 46-49, wherein the codec representation includes an indication of a first cross-component linear model and / or N second cross-component linear models based on a rule depending on a width W of the video block or a height H of the video block.
[0258] 51. A method according to solution 50, wherein the indication is included at a sequence parameter set level, or a picture parameter set level, or a slice header level, or a codec tree unit group level, or a codec tree unit level, or a codec block level.
[0259] The previous section provides additional features of the above solution (e.g., item 4).
[0260] 52. A method according to any one of solutions 1-51, wherein the method is selectively applied to the current video block based on an applicability rule, and the applicability rule is related to whether the current video block satisfies a position condition within the current picture.
[0261] 53. The method according to solution 52, wherein, since the video block is located at the upper boundary of the codec tree unit, the applicability rule specifies the method of applying the above solution.
[0262] 54. The method according to solution 52 or 53, wherein, since the current video block is located at the left boundary of the codec tree unit, the applicability rule specifies the method of applying the above solution.
[0263] The previous section provides additional features of the above solution (eg, item 5).
[0264] 55. A method according to any one of solutions 1-54, wherein the sample set of the luminance block is generated using a downsampling process, wherein a first downsampling filter is used to downsample the luminance samples inside the video block, and a second downsampling filter is applied to the luminance samples outside the video block to generate the sample set of the luminance block.
[0265] 56. A method according to solution 55, wherein the first downsampling filter corresponds to a traditional filter used by a joint exploration model (JEM).
[0266] 57. A method according to any of solutions 55-56, wherein the second downsampling filter downsamples the luma samples at the upper side of the video block to the lower left and lower right positions.
[0267] 58. A method according to solution 55, wherein the luma sample adjacent to the video block on the upper side is represented as a[i], and then d[i] = (a[2i-1]+2*a[2i]+a[2i+1]+2)>>2, where d[i] represents the downsampled luma sample, and i is a variable representing the horizontal sample offset.
[0268] 59. A method according to solution 58, wherein if sample a[2i-1] is not available, d[i] is determined as d[i]=(3*a[2i]+a[2i+1]+2)>>2.
[0269] 60. A method according to solution 58, wherein if sample a[2i+1] is not available, then d[i]=(a[2i-1]+3*a[2i]+2)>>2.
[0270] 61. A method according to any of solutions 55-56, wherein the second downsampling filter downsamples the luma samples on the outer left side to the upper right and lower right positions.
[0271] 62. A method according to any one of solutions 55-56, wherein the second downsampling filter downsamples the luma samples on the outer left side to the middle between the upper right and lower right positions, so that if the left neighboring sample of the current block is represented as a[j], then d[j] = (a[2j] + a[2j+1] + 1) >> 1, where d[j] represents the downsampled luma sample.
[0272] The previous section provides additional features of the above solution (eg, item 5).
[0273] 63. A method of video processing (e.g., Fig.18 The method 1800 depicted in the claims comprises: downsampling a set of samples of a luma block using a downsampling process (1802), wherein a downsampling filter used in the downsampling process depends on the positions of luma samples that are downsampled to generate the downsampled set of samples of the luma block; and determining (1804) samples of a first chroma block from the downsampled set of samples of the luma block using a linear model.
[0274] 64. The method of solution 63, wherein the linear model is defined by a first parameter α and a second parameter β, and wherein the chrominance sample predc(i,j) at position (i,j) is determined from the luma sample recL(i,j) as:
[0275] predc(i,j)=α*recL(i,j)+β.
[0276] The previous section provides additional features of the above solution (e.g., item 7).
[0277] 65. The method according to any of solutions 63-64 also includes applying a boundary filter to samples of the first chroma block that is a region of the current video block.
[0278] 66. A method according to solution 65, wherein a sample adjacent to the video block on the upper side is represented as a[-1][j], a sample in the i-th row and the j-th column of the first chroma block is a[i][j], and then applying a boundary filter is selectively performed based on the value i, and applying the boundary filter includes calculating a'[i][j]=(w1*a[i][j]+w2*a[-1][i]+2 N-1 )>>N, where w1+w2=2 N Represents weight.
[0279] 67. The method of solution 66, wherein applying boundary filtering is performed only for i<=K.
[0280] 68. The method of solution 66, wherein w1 and w2 are functions of the row index i.
[0281] 69. A method according to solution 65, wherein the left neighboring sample of the video block is represented as a[i[[-1], the sample in the i-th row and j-th column of the first chroma block is a[i][j], and then applying the boundary filter is selectively performed based on the value j, and applying the boundary filter includes calculating a'[i][j] = (w1*a[i][j] + w2*a[i][-1] + 2 N-1 )>>N, where w1+w2=2 N .
[0282] 70. The method of solution 69, wherein applying boundary filtering is performed only for j<=K.
[0283] 71. The method of solution 70, wherein w1 and w2 are functions of column index j.
[0284] 72. A method according to solution 67 or 70, wherein K=0, w1=w2=1.
[0285] 73. A method according to solution 67 or 70, wherein K=0, w1=3, w2=1.
[0286] The previous section provides additional features of the above solution (e.g., item 8).
[0287] 74. A method of video processing (e.g., Fig.19 The method 1900 depicted in the claims includes: for a conversion between a video block of a video and a codec representation of the video block, determining (1902) one or more cross-component linear models (CCLM) for the conversion based on a size or dimension of the video block; and performing (1904) the conversion using the cross-component linear model, wherein the cross-component linear model is one of: a CCLM derived only from top neighboring values of the video block (CCLM-T); a CCLM derived only from left neighboring values of the video block (CCLM-L); or a CCLM derived only from left and top neighboring values of the video block (CCLM-TL).
[0288] 75. The method of solution 74, wherein the determination excludes the use of CCLM-T because the width of the video block is less than a threshold.
[0289] 76. The method of solution 75, wherein the threshold is 2.
[0290] 77. The method of solution 74, wherein the determination excludes the use of CCLM-L because the width of the video block is less than a threshold.
[0291] 78. The method of solution 77, wherein the threshold is 2.
[0292] 79. The method of solution 74, wherein the determination excludes the use of CCLM-T or CCLM-L because the height H and width W of the video block satisfy H<=T1 and W<=T2, where T1 and T2 are integers.
[0293] 80. The method of solution 79, wherein T1=2 and T2=2.
[0294] 81. The method of solution 74, wherein the determination excludes the use of CCLM-T or CCLM-L because the height H and width W of the video block satisfy W*H<=T, where T is an integer.
[0295] 82. The method of solution 81, wherein T=4.
[0296] 83. A method according to any of solutions 74 to 82, wherein the codec representation includes a field identifying the CCLM used for the conversion.
[0297] 84. A method according to any of solutions 74 to 82, wherein the codec representation does not include a field identifying the CCLM used for the conversion.
[0298] 85. A method according to any one of solutions 74 to 84, wherein the determination is also based on a color format of the video, wherein the color format includes a 4:2:0 format, or a 4:2:2 format, or a 4:4:4 color format.
[0299] In the above solutions, at the encoding or transcoding device, the conversion may include generating a codec representation (eg, a bitstream conforming to a predefined syntax) from pixel values of the video.
[0300] In these solutions, at a decoding device or at a decoding step performed by an encoding or transcoding device, conversion may include generating pixel values from a codec representation, for example by decoding and decompressing the codec representation to generate pixel values. The video thus generated by conversion may then be displayed to a user on a display.
[0301] The previous section provides additional features of the above solution (eg, items 9 and 10).
[0302] 86. An apparatus in a video system, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to implement a method according to any one of solutions 1 to 85.
[0303] 87. A computer program product stored on a non-transitory computer-readable medium, the computer program product comprising a program code for executing a method according to any one of solutions 1 to 85.
[0304] 88. A video decoding device comprising a processor configured to implement the method according to one or more of solutions 1 to 85.
[0305] 89. A video encoding device comprising a processor configured to implement the method according to one or more of solutions 1 to 85.
[0306] 90. A method, apparatus or system as described in this document.
[0307] 4. Example Implementations of the Disclosed Technology
[0308] Fig.131 is a block diagram of a video processing device 1300. Device 1300 can be used to implement one or more of the methods described herein. Device 1300 can be embodied in a smart phone, a tablet computer, a computer, an Internet of Things (IoT) receiver, etc. Device 1300 may include one or more processors 1302, one or more memories 1304, and video processing hardware 1306. (Multiple) processors 1302 can be configured to implement one or more methods described in this document (including but not limited to methods 900, 1000, 1100, and 1200). Memory (multiple memories) 1304 can be used to store data and code for implementing the methods and techniques described herein. Video processing hardware 1306 can be used to implement some of the techniques described in this document in hardware circuits.
[0309] In some embodiments, the video encoding and decoding method can use the reference Fig.13 The invention is implemented by a device described in the embodiment of the present invention being implemented on a hardware platform.
[0310] Fig.21 21 is a block diagram illustrating an example video processing system 2100 in which various techniques disclosed herein may be implemented. Various embodiments may include some or all of the components of system 2100. System 2100 may include an input 2102 for receiving video content. The video content may be received in a raw or uncompressed format (e.g., 8 or 10 bit multi-component pixel values), or may be in a compressed or encoded format. Input 2102 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet, a passive optical network (PON), and wireless interfaces such as Wi-Fi or a cellular interface.
[0311] System 2100 may include a codec component 2104 that can implement various codecs or encoding methods described in this document. Codec component 2104 can reduce the average bit rate of the video from input end 2102 to the output of codec component 2104 to generate a codec representation of the video. Codec technology is therefore sometimes referred to as video compression or video transcoding technology. The output of codec component 2104 can be stored, or sent via the communication of the connection represented by component 2106. The bitstream (or codec) representation of the storage or communication transmission of the video received at input end 2102 can be used by component 2108 to generate pixel values or be sent to the displayable video of display interface 2110. The process of generating user-visible video from bitstream representation is sometimes referred to as video decompression. In addition, although specific video processing operations are referred to as "codec" operations or tools, it should be understood that codec tools or operations are used at encoders, and the corresponding decoding tools or operations of the inverse codec results will be performed by decoders.
[0312] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB), High Definition Multimedia Interface (HDMI), or DisplayPort, etc. Examples of storage interfaces include SATA (serial advanced technology attachment), PCI, IDE interface, etc. The technology described in this document may be embodied in various electronic devices such as mobile phones, laptops, smart phones, or other devices capable of performing digital data processing and / or video display.
[0313] Example of simulation results
[0314] Various CCLM methods are implemented on VTM-2.0.1. To test the effectiveness of the proposed methods, two solutions are tested.
[0315] The difference between these two solutions is that different sets of neighboring luminance samples are used. Assume that the width and height of a block are denoted as W and H respectively. In solution #1, the training process involves W upper neighboring samples and H left neighboring samples for deriving α and β parameters. In solution #2, 2W upper neighboring samples and 2H left neighboring samples are used for training.
[0316] Test #1 and Test #2 were conducted for Solution #1 and Solution #2, respectively. The simulation results for All Intra (AI) and Random Access (RA) configurations for Test 1 and Test 2 are summarized in Tables 1 and 2, respectively.
[0317] Table 1: Results of Test 1
[0318]
[0319]
[0320] Table 2: Results of Test 2
[0321]
[0322] From the foregoing, it will be appreciated that specific embodiments of the disclosed technology have been described herein for purposes of illustration, but that various modifications may be made without departing from the scope of the invention. Accordingly, the disclosed technology is not to be limited except by the appended claims.
[0323] The embodiments of the subject matter and functional operations described in this patent document can be implemented in various systems, digital electronic circuits or computer software, firmware or hardware (including the structures disclosed in this specification and their structural equivalents, or a combination of one or more of them). The embodiments of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible and non-temporary computer-readable medium, which are used to be run by a data processing device or control the operation of the data processing device. The computer-readable medium can be a combination of a machine-readable storage device, a machine-readable storage substrate, a memory device, a material that affects a machine-readable propagation signal, or a combination of one or more of them. The term "data processing unit" or "data processing device" includes all devices, equipment and machines for processing data, including, for example, a programmable processor, a computer, or a plurality of processors or computers. In addition to hardware, the device may also include code that creates an operating environment for the computer program in question, for example, code that constitutes a processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
[0324] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language (including compiled or interpreted languages), and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subroutines, or code portions). A computer program may be deployed to run on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.
[0325] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by special purpose logic circuits, and the apparatus can also be implemented as special purpose logic circuits, such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application Specific Integrated Circuits).
[0326] Processors suitable for running computer programs include, for example, general-purpose and special-purpose microprocessors, and any one or more processors of any type of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more large-capacity storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data, or be operably coupled to receive data from the one or more large-capacity storage devices or to transfer data to the one or more large-capacity storage devices, or to receive data from and transfer data to the one or more large-capacity storage devices. However, the computer does not need such a device. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices. Processors and memory can be supplemented by or incorporated into a dedicated logic circuit.
[0327] Instructions and Appendix Figure 1The foregoing is intended to be regarded as exemplary, where exemplary means example. As used herein, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. In addition, the use of "or" is intended to include "and / or" unless the context clearly indicates otherwise.
[0328] Although this patent document contains many details, these details should not be interpreted as limitations on any invention or the scope that may be claimed, but rather as descriptions of features specific to a particular embodiment of a particular invention. Certain features described in this patent document in the context of a separate embodiment may also be implemented in combination in a single embodiment. On the contrary, the various features described in the context of a single embodiment may also be implemented in multiple embodiments or in any suitable sub-combination, respectively. In addition, although features may be described above as working in certain combinations and even initially claimed as such, one or more features from the claimed combination may be excluded from the combination in some cases, and the claimed combination may be directed to a sub-combination or a variation of the sub-combination.
[0329] Similarly, although operations are depicted in a particular order in the drawings, this should not be understood as requiring that such operations be performed in the particular order shown or in a sequential order, or that all illustrated operations be performed to achieve the desired results. In addition, 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.
[0330] Only a few implementations and examples are described, and other implementations, enhancements, and variations may be made based on what is described and shown in this patent document.
Claims
1. A video processing method, comprising: For conversion between a video block of a video and a bitstream of the video block, determining one or more cross-component linear models (CCLMs) for the conversion based on a size or dimension of the video block; and performing the transformation using the cross-component linear model, Wherein, the cross-component linear model is one of the following: CCLM derived only from the top neighboring values of the video block (CCLM-T); A CCLM derived only from the left neighboring values of the video block (CCLM-L); or CCLM derived only from the left and top neighbors of the video block (CCLM-TL); wherein, because the width of the video block is less than the first threshold, the determination excludes the use of CCLM-T; wherein, because the height of the video block is less than the second threshold, the determination excludes the use of CCLM-L; wherein, since the height H and width W of the video block satisfy H<=T1 and W<=T2, the determination excludes the use of CCLM-T or CCLM-L, where T1 and T2 are integers; or Here, since the height H and width W of the video block satisfy W*H<=T3, the determination excludes the use of CCLM-T or CCLM-L, where T3 is an integer.
2. The method according to claim 1, wherein: The first threshold is 2.
3. The method according to claim 1, wherein: The second threshold is 2.
4. The method according to claim 1, wherein: T1=2 and T2=2.
5. The method according to claim 1, wherein: T3=4。 6. The method according to any one of claims 1 to 5, wherein: The bitstream includes a field identifying the CCLM used for the conversion.
7. The method according to any one of claims 1 to 5, wherein: The bitstream does not include a field identifying the CCLM used for the conversion.
8. The method according to any one of claims 1 to 5, wherein: The determination is also based on a color format of the video, wherein the color format comprises a 4:2:0 format, or a 4:2:2 format, or a 4:4:4 color format.
9. The method according to claim 1, wherein: The conversion includes encoding the video blocks into a bitstream.
10. The method according to claim 1, wherein: The conversion includes decoding video blocks from a bitstream.
11. An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to implement the method according to any one of claims 1 to 10.
12. A non-transitory computer readable medium having stored thereon instructions, the instructions causing a processor to execute the method according to any one of claims 1 to 10.
13. A video decoding device comprising a processor, the processor being configured to implement the method according to any one of claims 1 to 10.
14. A video encoding apparatus comprising a processor, the processor being configured to implement the method according to any one of claims 1 to 10.
15. A method for storing a bitstream of a video, the method comprising: generating a bitstream for a video block based on the video, determining one or more cross-component linear models (CCLMs) for use in the generating based on a size or dimension of the video block; generating a bitstream based on video blocks of a video using the cross-component linear model; as well as storing the generated bitstream on a non-transitory computer-readable medium, Wherein, the cross-component linear model is one of the following: CCLM derived only from the top neighboring values of the video block (CCLM-T); A CCLM derived only from the left neighboring values of the video block (CCLM-L); or CCLM derived only from the left and top neighbors of the video block (CCLM-TL); wherein, because the width of the video block is less than the first threshold, the determination excludes the use of CCLM-T; wherein, because the height of the video block is less than the second threshold, the determination excludes the use of CCLM-L; wherein, since the height H and width W of the video block satisfy H<=T1 and W<=T2, the determination excludes the use of CCLM-T or CCLM-L, where T1 and T2 are integers; or Here, since the height H and width W of the video block satisfy W*H<=T3, the determination excludes the use of CCLM-T or CCLM-L, where T3 is an integer.